nixos-hardware/milkv/pioneer/linux.nix

45 lines
1.7 KiB
Nix

{ buildLinux, fetchFromGitHub, kernelPatches, lib, ... } @ args:
let
modDirVersion = "6.6.20";
in
buildLinux (args // {
inherit kernelPatches modDirVersion;
version = "${modDirVersion}-milkv-pioneer";
src = fetchFromGitHub {
owner = "sophgo";
repo = "linux-riscv";
rev = "caa949e3690fe8a4656313b2b56f52666fa880db";
hash = "sha256-qJpR3KMgvP4tfPfBfQ/MiEWg/uuuxHYuACK8taKKK3E=";
};
defconfig = "sophgo_mango_normal_defconfig";
structuredExtraConfig = let inherit (lib.kernel) freeform module yes; in {
# LinuxBoot will override the console bootparams which will result
# in the distro kernel to be booted with e.g. console=tty1 only.
# https://github.com/sophgo/bootloader-riscv/issues/71
# Force output on serial console through the config. This is also
# needed to get the forced serial-getty to be started.
# We also list tty1 again because according to
# https://docs.kernel.org/admin-guide/serial-console.html and
# https://0pointer.de/blog/projects/serial-console.html
# this will be the main console.
CMDLINE = freeform "console=ttyS0,115200 console=tty1";
CMDLINE_EXTEND = yes;
# Enable these explicitly because they are not enabled by the defconfig.
# The all-hardware profile expects these to be built.
VIRTIO_MENU = yes;
VIRTIO_PCI = module;
# There is an i2c mcu driver (drivers/soc/sophgo/umcu) which is always
# compiled into the kernel. Hence some of the i2c support also needs to
# be compiled in instead of being compiled as a module.
I2C = yes;
I2C_CHARDEV = yes;
I2C_DESIGNWARE_PLATFORM = yes;
};
extraMeta.branch = "sg2042-dev-6.6";
} // (args.argsOverride or { }))