{ lib, buildLinux, fetchFromGitHub , kernelPatches ? [] , structuredExtraConfig ? {} , extraMeta ? {} , argsOverride ? {} , ... } @ args: let version = "6.1.43-linux4microchip+fpga-2023.09"; in buildLinux (args // { inherit version kernelPatches extraMeta; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = version; defconfig = "mpfs_defconfig"; autoModules = false; structuredExtraConfig = with lib.kernel; { OF_OVERLAY = yes; OF_CONFIGFS = yes; MFD_SENSEHAT_CORE = module; INPUT_JOYDEV = module; INPUT_JOYSTICK = yes; JOYSTICK_SENSEHAT = module; AUXDISPLAY = yes; SENSEHAT_DISPLAY = module; HTS221 = module; IIO_ST_PRESS = module; IIO_ST_LSM6DSX = module; IIO_ST_MAGN_3AXIS = module; POLARFIRE_SOC_DMA_NONCOHERENT = yes; MTD_SPI_NOR_USE_4K_SECTORS = no; MTD_UBI = yes; MTD_CMDLINE_PARTS = yes; UBIFS_FS = yes; USB_UAS = module; EFI_STUB = yes; EFI = yes; USBIP_CORE = module; USBIP_VHCI_HCD = module; USBIP_HOST = module; USBIP_VUDC = module; CRYPTO_TLS = module; MD = yes; BLK_DEV_MD = module; MD_LINEAR = module; MD_RAID0 = module; MD_RAID1 = module; MD_RAID10 = module; MD_RAID456 = module; # This device doesn't have any kind of display output at all FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER = lib.mkForce no; FB_EFI = lib.mkForce no; } // structuredExtraConfig; src = fetchFromGitHub { owner = "linux4microchip"; repo = "linux"; rev = "25e35c7c54ad853d03c14a02b189b408cb5b5eb3"; sha256 = "sha256-wj7lz247MkhxmhSHUcNeWmcZK+DL+5PAnLwTmALD97M="; }; } // argsOverride)