|
| 1 | +{ lib, buildLinux, fetchurl, fetchgit, linux_5_7, kernelPatches, ... }@args: |
| 2 | + |
| 3 | +let |
| 4 | + linux = linux_5_7; |
| 5 | + systemImageSrc = fetchgit { |
| 6 | + url = "https://source.mnt.re/reform/reform-system-image.git"; |
| 7 | + rev = "ef6bae4def9ef08ee388254abf4f1839d44c07a1"; |
| 8 | + sha256 = "03nnwjzm8a0bk821p6sfscd04x3jgj29l16ccdkg10xcv2g2z5s8"; |
| 9 | + } + "/reform2-imx8mq"; |
| 10 | +in lib.overrideDerivation (buildLinux (args // { |
| 11 | + inherit (linux) src version; |
| 12 | + |
| 13 | + features = { |
| 14 | + efiBootStub = false; |
| 15 | + iwlwifi = false; |
| 16 | + } // (args.features or { }); |
| 17 | + |
| 18 | + kernelPatches = let |
| 19 | + patchDir = "${systemImageSrc}/template-kernel/patches"; |
| 20 | + reformPatches = map ({ name, extraConfig ? "" }: { |
| 21 | + inherit name extraConfig; |
| 22 | + patch = "${patchDir}/${name}.patch"; |
| 23 | + }) [ |
| 24 | + { |
| 25 | + name = "0001-drm-bridge-Add-NWL-MIPI-DSI-host-controller-support"; |
| 26 | + extraConfig = '' |
| 27 | + DRM_NWL_MIPI_DSI m |
| 28 | + ''; |
| 29 | + } |
| 30 | + { name = "0002-dt-bindings-display-bridge-Add-binding-for-NWL-mipi-"; } |
| 31 | + { |
| 32 | + name = |
| 33 | + "0003-DCSS-v4-Add-support-for-iMX8MQ-Display-Controller-Subsystem"; |
| 34 | + extraConfig = '' |
| 35 | + DRM_IMX_DCSS m |
| 36 | + ''; |
| 37 | + } |
| 38 | + { name = "4101-media-vb2-wait-for-dmabuf-fences"; } |
| 39 | + { name = "4201-HACK-media-vb2-don-t-validate-buffer-length"; } |
| 40 | + { name = "44f0bbdcf0433052b4e85940cb41d04c13fdad57"; } |
| 41 | + { name = "git.linuxtv.org-28a202c55963386b8bc45bcc52029362e9aa0d33"; } |
| 42 | + { name = "git.linuxtv.org-88d06362d1d052e4c844ac95a2ca308ed4d90452"; } |
| 43 | + { name = "mnt1000-pcie-reparent-clocks"; } |
| 44 | + { name = "mnt1001-pcie-support-internal-refclk-aspm"; } |
| 45 | + { name = "mnt2000-audio-wm8960-add-dacslope-setting"; } |
| 46 | + { name = "mnt2001-audio-sai-workaround-rate-matching"; } |
| 47 | + { name = "mnt3000-imx-dcss-tweak-DCSS-pixel-rate-to-prevent-sporadic-d"; } |
| 48 | + { name = "mnt3001-nwl-dsi-disable-bridge_mode_fixup-that-breaks-hs-vs-"; } |
| 49 | + { name = "mnt3002-MNT-Reform2-add-simple-panel-Innolux-N125HCE-GN1"; } |
| 50 | + { |
| 51 | + name = "mnt3003-MNT-Reform-import-cadence-HDMI-driver-for-imx8mq-fro"; |
| 52 | + extraConfig = '' |
| 53 | + DRM_CDNS_AUDIO m |
| 54 | + DRM_CDNS_DP m |
| 55 | + DRM_CDNS_HDMI m |
| 56 | + DRM_CDNS_HDMI_CEC m |
| 57 | + DRM_CDNS_MHDP m |
| 58 | + ''; |
| 59 | + } |
| 60 | + { name = "mnt3004-MNT-Reform-imx8mq-add-PHY_27M-clock"; } |
| 61 | + { name = "mnt3005-MNT-Reform-imx8mq-DCSS-add-module-option-to-toggle-h"; } |
| 62 | + { name = "mnt3006-MNT-Reform-imx8mq-add-PHY_27M-clock-missing-define"; } |
| 63 | + { |
| 64 | + name = "mnt3007-MNT-Reform-imx8mq-missing-kconf-makefile-for-cadence"; |
| 65 | + extraConfig = '' |
| 66 | + DRM_IMX_CDNS_MHDP m |
| 67 | + DRM_IMX_DCSS m |
| 68 | + ''; |
| 69 | + } |
| 70 | + { |
| 71 | + name = "mnt3008-MNT-Reform-imx8mq-missing-makefile-change-for-imx-dc"; |
| 72 | + extraConfig = '' |
| 73 | + DRM_IMX_DCSS m |
| 74 | + ''; |
| 75 | + } |
| 76 | + ]; |
| 77 | + in lib.lists.unique (kernelPatches ++ reformPatches ++ [{ |
| 78 | + name = "MNT-Reform-imx8mq-config"; |
| 79 | + patch = null; |
| 80 | + extraConfig = fetchurl { |
| 81 | + url = |
| 82 | + "https://github.com/NixOS/nixos-hardware/releases/download/mnt-reform2-nitrogen8m-v1/kernel-config"; |
| 83 | + sha256 = "1brazbr9zflb29i4fjhwn1z87bg475lqvzkksvi5n775zx28fk65"; |
| 84 | + }; |
| 85 | + }]); |
| 86 | + |
| 87 | + allowImportFromDerivation = true; |
| 88 | + |
| 89 | +} // (args.argsOverride or { }))) (attrs: { |
| 90 | + prePatch = attrs.prePatch + '' |
| 91 | + cp ${systemImageSrc}/template-kernel/*.dts arch/arm64/boot/dts/freescale/ |
| 92 | + cp ${systemImageSrc}/template-kernel/*.dtsi arch/arm64/boot/dts/freescale/ |
| 93 | + echo 'dtb-$(CONFIG_ARCH_MXC) += imx8mq-mnt-reform2.dtb' >> \ |
| 94 | + arch/arm64/boot/dts/freescale/Makefile |
| 95 | + ''; |
| 96 | + makeFlags = attrs.makeFlags ++ [ "LOADADDR=0x40480000" ]; |
| 97 | +}) |
0 commit comments