From c7f21b91f42e55bcb2abdae06091d47fd4e8d87b Mon Sep 17 00:00:00 2001 From: Ivan Nikolaenko Date: Mon, 27 Jun 2022 15:09:17 +0300 Subject: [PATCH 1/9] libudev-zero: allow to accept more arguments For some reason, more arguments is passed to the libudev-zero than it needs during cross-compilation. Signed-off-by: Ivan Nikolaenko --- pkgs/development/libraries/libudev-zero/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libudev-zero/default.nix b/pkgs/development/libraries/libudev-zero/default.nix index 1c12504aa38c..601ea7c14dbb 100644 --- a/pkgs/development/libraries/libudev-zero/default.nix +++ b/pkgs/development/libraries/libudev-zero/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub }: +{ lib, stdenv, fetchFromGitHub, ... }: stdenv.mkDerivation rec { pname = "libudev-zero"; From 5aa9021e34654b73e72586d61be2085c156fc38b Mon Sep 17 00:00:00 2001 From: Ivan Nikolaenko Date: Tue, 28 Jun 2022 16:06:55 +0300 Subject: [PATCH 2/9] weston: fix cross-compilation pkg-config needs to be explicitly added to the build dependencies of the build environment. wayland-scanner is also needed for cross-compilation, so get that back. Signed-off-by: Ivan Nikolaenko --- pkgs/applications/window-managers/weston/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix index 905af7579549..1def0f87d003 100644 --- a/pkgs/applications/window-managers/weston/default.nix +++ b/pkgs/applications/window-managers/weston/default.nix @@ -25,7 +25,8 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ meson ninja pkg-config /* wayland-scanner */ python3 ]; + depsBuildBuild = [pkg-config]; + nativeBuildInputs = [ meson ninja pkg-config wayland-scanner python3 ]; buildInputs = [ wayland libGL mesa libxkbcommon cairo /* libxcb libXcursor xlibsWrapper udev */ libdrm /* mtdev libjpeg pam dbus */ libinput libevdev /* pango libunwind freerdp vaapi libva */ pixman From 1fde83ab170d0870f0234b6ca9f7d0a955530e03 Mon Sep 17 00:00:00 2001 From: Ville Ilvonen Date: Tue, 30 Aug 2022 15:51:26 +0300 Subject: [PATCH 3/9] Merge pull request #3 from nesteroff/aarch64-imx8-crosscompile-add-imx8qxp-uboot Add support for imx8qxp u-boot --- pkgs/misc/arm-trusted-firmware/default.nix | 12 +++++ pkgs/misc/imx-firmware/default.nix | 60 +++++++++++++++++++++ pkgs/misc/imx-mkimage/default.nix | 33 ++++++++++++ pkgs/misc/imx-mkimage/fix-gcc-for-nix.patch | 12 +++++ pkgs/misc/uboot/default.nix | 29 ++++++++++ pkgs/top-level/all-packages.nix | 6 +++ 6 files changed, 152 insertions(+) create mode 100644 pkgs/misc/imx-firmware/default.nix create mode 100644 pkgs/misc/imx-mkimage/default.nix create mode 100644 pkgs/misc/imx-mkimage/fix-gcc-for-nix.patch diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix index 49fdc7a829c5..fa5b452c571f 100644 --- a/pkgs/misc/arm-trusted-firmware/default.nix +++ b/pkgs/misc/arm-trusted-firmware/default.nix @@ -126,4 +126,16 @@ in { extraMeta.platforms = ["aarch64-linux"]; filesToInstall = [ "build/${platform}/release/bl31.bin"]; }; + + armTrustedFirmwareIMX8QXP = buildArmTrustedFirmware rec { + src = fetchGit { + url = "https://source.codeaurora.org/external/imx/imx-atf"; + ref = "lf_v2.6"; + }; + platform = "imx8qx"; + enableParallelBuilding = true; + extraMakeFlags = [ "bl31" ]; + extraMeta.platforms = [ "aarch64-linux" ]; + filesToInstall = [ "build/${platform}/release/bl31.bin" ]; + }; } diff --git a/pkgs/misc/imx-firmware/default.nix b/pkgs/misc/imx-firmware/default.nix new file mode 100644 index 000000000000..24bf09c01012 --- /dev/null +++ b/pkgs/misc/imx-firmware/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv, fetchurl}: + +let + + imxurl = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO"; + + fwHdmiVersion = "8.16"; + fwScVersion = "1.13.0"; + fwSecoVersion = "3.8.6"; + + firmwareHdmi = fetchurl rec { + url = "${imxurl}/firmware-imx-${fwHdmiVersion}.bin"; + sha256 = "Bun+uxE5z7zvxnlRwI0vjowKFqY4CgKyiGjbZuilER0="; + executable = true; + }; + + firmwareSc = fetchurl rec { + url = "${imxurl}/imx-sc-firmware-${fwScVersion}.bin"; + sha256 = "YUaBIVCeOOTvifhiEIbKgyGsLZYufv5rs2isdSrw4dc="; + executable = true; + }; + + firmwareSeco = fetchurl rec { + url = "${imxurl}/imx-seco-${fwSecoVersion}.bin"; + sha256 = "eoG19xn283fsP2jP49hD4dIBRwEQqFQ9k3yVWOM8uKQ="; + executable = true; + }; + +in + +stdenv.mkDerivation rec { + pname = "imx-firmware"; + version = "5.15.X_1.0.0-Yocto"; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + + sourceRoot = "."; + + unpackPhase = '' + ${firmwareHdmi} --auto-accept --force + ${firmwareSc} --auto-accept --force + ${firmwareSeco} --auto-accept --force + ''; + + filesToInstall = [ + "firmware-imx-${fwHdmiVersion}/firmware/hdmi/cadence/dpfw.bin" + "firmware-imx-${fwHdmiVersion}/firmware/hdmi/cadence/hdmi?xfw.bin" + "imx-sc-firmware-${fwScVersion}/mx8qm-mek-scfw-tcm.bin" + "imx-seco-${fwSecoVersion}/firmware/seco/mx8qmb0-ahab-container.img" + "imx-sc-firmware-${fwScVersion}/mx8qx-mek-scfw-tcm.bin" + "imx-seco-${fwSecoVersion}/firmware/seco/mx8qxc0-ahab-container.img" + ]; + + installPhase = '' + mkdir -p $out + cp ${lib.concatStringsSep " " filesToInstall} $out + ''; +} diff --git a/pkgs/misc/imx-mkimage/default.nix b/pkgs/misc/imx-mkimage/default.nix new file mode 100644 index 000000000000..dafa5d39bb63 --- /dev/null +++ b/pkgs/misc/imx-mkimage/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchgit, git, glibc, gcc }: + +stdenv.mkDerivation rec { + pname = "imx-mkimage"; + version = "lf-5.15.32_2.0.0"; + + src = fetchgit { + url = "https://source.codeaurora.org/external/imx/imx-mkimage.git"; + rev = "a8bb8edb45492ac70b33734122a57aa8e38a20bd"; + sha256 = "sha256-jdmAvmjoWZ1wtpBNX4cF0f2k7lIGjkmoj+SSLGbNq9M="; + }; + + patches = [ + ./fix-gcc-for-nix.patch + ]; + + nativeBuildInputs = [ + git + ]; + + buildInputs = [ + gcc + glibc.static + ]; + + makeFlags = [ + "bin" + ]; + + installPhase = '' + install -m 0755 mkimage_imx8 $out + ''; +} diff --git a/pkgs/misc/imx-mkimage/fix-gcc-for-nix.patch b/pkgs/misc/imx-mkimage/fix-gcc-for-nix.patch new file mode 100644 index 000000000000..8c46b02ac95a --- /dev/null +++ b/pkgs/misc/imx-mkimage/fix-gcc-for-nix.patch @@ -0,0 +1,12 @@ +diff --git a/Makefile b/Makefile +index 1c0b039..d379f08 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + + MKIMG = $(PWD)/mkimage_imx8 +-CC = gcc ++CC ?= gcc + CFLAGS ?= -g -O2 -Wall -std=c99 -static + INCLUDE += $(CURR_DIR)/src + diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index fc874e3d3a8e..9a7667238fed 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -16,7 +16,10 @@ , armTrustedFirmwareRK3328 , armTrustedFirmwareRK3399 , armTrustedFirmwareS905 +, armTrustedFirmwareIMX8QXP , buildPackages +, imx-firmware +, imx-mkimage }: let @@ -515,4 +518,30 @@ in { BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img"]; }; + + ubootIMX8QXP = buildUBoot { + version = "2022.04"; + src = fetchGit { + url = "https://github.com/tiiuae/uboot-imx8.git"; + ref = "lf_v2022.04-uefi"; + }; + BL31 = "${armTrustedFirmwareIMX8QXP}/bl31.bin"; + enableParallelBuilding = true; + defconfig = "imx8qxp_mek_defconfig"; + extraMeta.platforms = ["aarch64-linux"]; + filesToInstall = [ "flash.bin" ]; + preBuildPhases = [ "copyBinaries" ]; + copyBinaries = '' + install -m 0644 ${armTrustedFirmwareIMX8QXP}/bl31.bin ./bl31.bin + install -m 0644 ${imx-firmware}/mx8qxc0-ahab-container.img ./ahab-container.img + install -m 0644 ${imx-firmware}/mx8qx-mek-scfw-tcm.bin ./mx8qx-mek-scfw-tcm.bin + ''; + postBuild = '' + ${imx-mkimage} -commit > head.hash + cat u-boot.bin head.hash > u-boot-hash.bin + cp bl31.bin u-boot-atf.bin + dd if=u-boot-hash.bin of=u-boot-atf.bin bs=1K seek=128 + ${imx-mkimage} -soc QX -rev B0 -append ahab-container.img -c -scfw mx8qx-mek-scfw-tcm.bin -ap u-boot-atf.bin a35 0x80000000 -out flash.bin + ''; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24744e9eefd4..1064f551cb01 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22825,8 +22825,13 @@ with pkgs; armTrustedFirmwareRK3328 armTrustedFirmwareRK3399 armTrustedFirmwareS905 + armTrustedFirmwareIMX8QXP ; + imx-firmware = callPackage ../misc/imx-firmware { }; + + imx-mkimage = callPackage ../misc/imx-mkimage { }; + microcodeAmd = callPackage ../os-specific/linux/microcode/amd.nix { }; microcodeIntel = callPackage ../os-specific/linux/microcode/intel.nix { }; @@ -23932,6 +23937,7 @@ with pkgs; ubootSopine ubootUtilite ubootWandboard + ubootIMX8QXP ; # Upstream Barebox: From 7cb2bc1d2a1ea3590e29554473cbcafa520ef61b Mon Sep 17 00:00:00 2001 From: Ivan Nikolaenko Date: Fri, 2 Sep 2022 14:03:19 +0300 Subject: [PATCH 4/9] ubootIMX8QXP: fix cross-compilation issue. Signed-off-by: Ivan Nikolaenko --- pkgs/misc/imx-mkimage/default.nix | 7 ++++--- pkgs/misc/uboot/default.nix | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/misc/imx-mkimage/default.nix b/pkgs/misc/imx-mkimage/default.nix index dafa5d39bb63..7e402a144294 100644 --- a/pkgs/misc/imx-mkimage/default.nix +++ b/pkgs/misc/imx-mkimage/default.nix @@ -6,8 +6,8 @@ stdenv.mkDerivation rec { src = fetchgit { url = "https://source.codeaurora.org/external/imx/imx-mkimage.git"; - rev = "a8bb8edb45492ac70b33734122a57aa8e38a20bd"; - sha256 = "sha256-jdmAvmjoWZ1wtpBNX4cF0f2k7lIGjkmoj+SSLGbNq9M="; + rev = version; + sha256 = "sha256-9buTYj0NdKV9CpzHfj7sIB5sRzS4Md48pn2joy+T97U="; }; patches = [ @@ -28,6 +28,7 @@ stdenv.mkDerivation rec { ]; installPhase = '' - install -m 0755 mkimage_imx8 $out + mkdir -p $out/bin + install -m 0755 mkimage_imx8 $out/bin ''; } diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 9a7667238fed..e3d2c4af65ee 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -537,11 +537,11 @@ in { install -m 0644 ${imx-firmware}/mx8qx-mek-scfw-tcm.bin ./mx8qx-mek-scfw-tcm.bin ''; postBuild = '' - ${imx-mkimage} -commit > head.hash + ${buildPackages.imx-mkimage}/bin/mkimage_imx8 -commit > head.hash cat u-boot.bin head.hash > u-boot-hash.bin cp bl31.bin u-boot-atf.bin dd if=u-boot-hash.bin of=u-boot-atf.bin bs=1K seek=128 - ${imx-mkimage} -soc QX -rev B0 -append ahab-container.img -c -scfw mx8qx-mek-scfw-tcm.bin -ap u-boot-atf.bin a35 0x80000000 -out flash.bin + ${buildPackages.imx-mkimage}/bin/mkimage_imx8 -soc QX -rev B0 -append ahab-container.img -c -scfw mx8qx-mek-scfw-tcm.bin -ap u-boot-atf.bin a35 0x80000000 -out flash.bin ''; }; } From ddda568aa28e8fb1cbdd70315c4f4f4b7b553e5e Mon Sep 17 00:00:00 2001 From: Ivan Nikolaenko Date: Fri, 2 Sep 2022 14:33:04 +0300 Subject: [PATCH 5/9] imx-mkimage: fix sources fetching Signed-off-by: Ivan Nikolaenko --- pkgs/misc/imx-mkimage/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/misc/imx-mkimage/default.nix b/pkgs/misc/imx-mkimage/default.nix index 7e402a144294..0218f642fc54 100644 --- a/pkgs/misc/imx-mkimage/default.nix +++ b/pkgs/misc/imx-mkimage/default.nix @@ -2,12 +2,13 @@ stdenv.mkDerivation rec { pname = "imx-mkimage"; - version = "lf-5.15.32_2.0.0"; + version = "lf-5.15.32-2.0.0"; src = fetchgit { url = "https://source.codeaurora.org/external/imx/imx-mkimage.git"; rev = version; - sha256 = "sha256-9buTYj0NdKV9CpzHfj7sIB5sRzS4Md48pn2joy+T97U="; + sha256 = "sha256-31pib5DTDPVfiAAoOSzK8HWUlnuiNnfXQIsxbjneMCc="; + leaveDotGit = true; }; patches = [ From 1e93d975ed38333d9b6cfc30f97bd66b4f3b62ea Mon Sep 17 00:00:00 2001 From: Panu Finnila Date: Thu, 8 Sep 2022 12:58:46 +0300 Subject: [PATCH 6/9] Add support for imx8qm u-boot --- pkgs/misc/arm-trusted-firmware/default.nix | 12 ++++ pkgs/misc/uboot/0001-imx8qm-uefi.patch | 69 ++++++++++++++++++++++ pkgs/misc/uboot/default.nix | 30 ++++++++++ pkgs/top-level/all-packages.nix | 2 + 4 files changed, 113 insertions(+) create mode 100644 pkgs/misc/uboot/0001-imx8qm-uefi.patch diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix index fa5b452c571f..8665f479fe8a 100644 --- a/pkgs/misc/arm-trusted-firmware/default.nix +++ b/pkgs/misc/arm-trusted-firmware/default.nix @@ -138,4 +138,16 @@ in { extraMeta.platforms = [ "aarch64-linux" ]; filesToInstall = [ "build/${platform}/release/bl31.bin" ]; }; + + armTrustedFirmwareIMX8QM = buildArmTrustedFirmware rec { + src = fetchGit { + url = "https://source.codeaurora.org/external/imx/imx-atf"; + ref = "lf_v2.6"; + }; + platform = "imx8qm"; + enableParallelBuilding = true; + extraMakeFlags = [ "bl31" ]; + extraMeta.platforms = [ "aarch64-linux" ]; + filesToInstall = [ "build/${platform}/release/bl31.bin" ]; + }; } diff --git a/pkgs/misc/uboot/0001-imx8qm-uefi.patch b/pkgs/misc/uboot/0001-imx8qm-uefi.patch new file mode 100644 index 000000000000..57704c824ba1 --- /dev/null +++ b/pkgs/misc/uboot/0001-imx8qm-uefi.patch @@ -0,0 +1,69 @@ +diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig +index 29e9d796a6..bb8b6a8d1c 100644 +--- a/configs/imx8qm_mek_defconfig ++++ b/configs/imx8qm_mek_defconfig +@@ -31,7 +31,7 @@ CONFIG_PANIC_HANG=y + CONFIG_OF_SYSTEM_SETUP=y + CONFIG_BOOTDELAY=3 + CONFIG_USE_BOOTCOMMAND=y +-CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if test ${sec_boot} = yes; then if run loadcntr; then run mmcboot; else run netboot; fi; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi" ++CONFIG_BOOTCOMMAND="run distro_bootcmd; mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if test ${sec_boot} = yes; then if run loadcntr; then run mmcboot; else run netboot; fi; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi" + CONFIG_LOG=y + CONFIG_BOARD_EARLY_INIT_F=y + CONFIG_SPL_BOARD_INIT=y +@@ -196,3 +196,10 @@ CONFIG_SYS_WHITE_ON_BLACK=y + CONFIG_SPLASH_SCREEN=y + CONFIG_SPLASH_SCREEN_ALIGN=y + CONFIG_CMD_BMP=y ++CONFIG_DISTRO_DEFAULTS=y ++CONFIG_CMD_BOOTEFI_SELFTEST=y ++CONFIG_CMD_BOOTEFI=y ++CONFIG_EFI_LOADER=y ++CONFIG_BLK=y ++CONFIG_PARTITIONS=y ++CONFIG_DM_DEVICE_REMOVE=n +diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h +index ed5c179fc7..ab5b58ec32 100644 +--- a/include/configs/imx8qm_mek.h ++++ b/include/configs/imx8qm_mek.h +@@ -138,6 +138,22 @@ + "m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0\0" \ + "m4boot_1=run loadm4image_1; dcache flush; bootaux ${loadaddr} 1\0" \ + ++#ifdef CONFIG_DISTRO_DEFAULTS ++#define BOOT_TARGET_DEVICES(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++ ++#include ++#else ++#define BOOTENV ++#endif ++ ++#define MEM_LAYOUT_ENV_SETTINGS \ ++ "fdt_addr_r=0x83000000\0" \ ++ "kernel_addr_r=0x80200000\0" \ ++ "ramdisk_addr_r=0x83100000\0" \ ++ "scriptaddr=0x83200000\0" \ ++ + #ifdef CONFIG_NAND_BOOT + #define MFG_NAND_PARTITION "mtdparts=gpmi-nand:128m(boot),32m(kernel),16m(dtb),8m(misc),-(rootfs) " + #else +@@ -166,6 +182,8 @@ + /* Initial environment variables */ + #define CONFIG_EXTRA_ENV_SETTINGS \ + CONFIG_MFG_ENV_SETTINGS \ ++ MEM_LAYOUT_ENV_SETTINGS \ ++ BOOTENV \ + M4_BOOT_ENV \ + XEN_BOOT_ENV \ + JAILHOUSE_ENV\ +@@ -179,7 +197,7 @@ + "cntr_addr=0x98000000\0" \ + "cntr_file=os_cntr_signed.bin\0" \ + "boot_fdt=try\0" \ +- FDT_FILE \ ++ "fdtfile=imx8qm-mek-hdmi.dtb\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ + "mmcpart=1\0" \ + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index e3d2c4af65ee..fba3ea2e4cb2 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -17,6 +17,7 @@ , armTrustedFirmwareRK3399 , armTrustedFirmwareS905 , armTrustedFirmwareIMX8QXP +, armTrustedFirmwareIMX8QM , buildPackages , imx-firmware , imx-mkimage @@ -544,4 +545,33 @@ in { ${buildPackages.imx-mkimage}/bin/mkimage_imx8 -soc QX -rev B0 -append ahab-container.img -c -scfw mx8qx-mek-scfw-tcm.bin -ap u-boot-atf.bin a35 0x80000000 -out flash.bin ''; }; + + ubootIMX8QM = buildUBoot { + version = "2022.04"; + src = fetchGit { + url = "https://github.com/tiiuae/uboot-imx8.git"; + ref = "lf_v2022.04-uefi"; + }; + patches = [ + ./0001-imx8qm-uefi.patch + ]; + BL31 = "${armTrustedFirmwareIMX8QM}/bl31.bin"; + enableParallelBuilding = true; + defconfig = "imx8qm_mek_defconfig"; + extraMeta.platforms = ["aarch64-linux"]; + filesToInstall = [ "flash.bin" ]; + preBuildPhases = [ "copyBinaries" ]; + copyBinaries = '' + install -m 0644 ${armTrustedFirmwareIMX8QM}/bl31.bin ./bl31.bin + install -m 0644 ${imx-firmware}/mx8qmb0-ahab-container.img ./ahab-container.img + install -m 0644 ${imx-firmware}/mx8qm-mek-scfw-tcm.bin ./mx8qm-mek-scfw-tcm.bin + ''; + postBuild = '' + ${buildPackages.imx-mkimage}/bin/mkimage_imx8 -commit > head.hash + cat u-boot.bin head.hash > u-boot-hash.bin + cp bl31.bin u-boot-atf.bin + dd if=u-boot-hash.bin of=u-boot-atf.bin bs=1K seek=128 + ${buildPackages.imx-mkimage}/bin/mkimage_imx8 -soc QM -rev B0 -append ahab-container.img -c -scfw mx8qm-mek-scfw-tcm.bin -ap u-boot-atf.bin a35 0x80000000 -out flash.bin + ''; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1064f551cb01..688ddf9012c0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22826,6 +22826,7 @@ with pkgs; armTrustedFirmwareRK3399 armTrustedFirmwareS905 armTrustedFirmwareIMX8QXP + armTrustedFirmwareIMX8QM ; imx-firmware = callPackage ../misc/imx-firmware { }; @@ -23938,6 +23939,7 @@ with pkgs; ubootUtilite ubootWandboard ubootIMX8QXP + ubootIMX8QM ; # Upstream Barebox: From 377b9ded49d23169dbcbfa8503c3e75692c7117f Mon Sep 17 00:00:00 2001 From: Ville Ilvonen Date: Tue, 13 Sep 2022 15:07:57 +0300 Subject: [PATCH 7/9] Merge branch 'nesteroff-aarch64-imx8-crosscompile-nxp-kernel' into HEAD --- pkgs/os-specific/linux/kernel/linux-imx8.nix | 32 +++++++++----------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-imx8.nix b/pkgs/os-specific/linux/kernel/linux-imx8.nix index b8da9875bd42..0be22ef8d365 100644 --- a/pkgs/os-specific/linux/kernel/linux-imx8.nix +++ b/pkgs/os-specific/linux/kernel/linux-imx8.nix @@ -3,33 +3,31 @@ with lib; buildLinux (args // rec { - version = "5.10.109"; - nxp_ref = "5.10-2.1.x-imx"; + version = "5.15.32"; + nxp_ref = "lf-5.15.y"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; defconfig = "imx_v8_defconfig"; + autoModules = false; + extraConfig = '' - SECURE_KEYS n - FB n - FB_MXC n - FB_MXS n - MFD_MAX17135 n - REGULATOR_ARM_SCMI n - REGULATOR_PF1550_RPMSG n - MXC_PXP y - SND_IMX_SOC n - VIDEO_MXC_CAPTURE n - SENSORS_MAG3110 n - SENSORS_MAX17135 n - CRYPTO_TLS n - STAGING n + CRYPTO_TLS m + TLS y + MD_RAID0 m + MD_RAID1 m + MD_RAID10 m + MD_RAID456 m + DM_VERITY m + LOGO y + FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER n + FB_EFI n ''; src = fetchGit { - url = "https://github.com/Freescale/linux-fslc.git"; + url = "https://source.codeaurora.org/external/imx/linux-imx"; ref = nxp_ref; }; } // (args.argsOverride or { })) From f5d13c7ebd36f4f16ab7e99de3005fc520b3c44d Mon Sep 17 00:00:00 2001 From: Panu Finnila Date: Wed, 14 Sep 2022 14:20:56 +0300 Subject: [PATCH 8/9] Remove imx8qm uboot patch --- pkgs/misc/uboot/0001-imx8qm-uefi.patch | 69 -------------------------- pkgs/misc/uboot/default.nix | 3 -- 2 files changed, 72 deletions(-) delete mode 100644 pkgs/misc/uboot/0001-imx8qm-uefi.patch diff --git a/pkgs/misc/uboot/0001-imx8qm-uefi.patch b/pkgs/misc/uboot/0001-imx8qm-uefi.patch deleted file mode 100644 index 57704c824ba1..000000000000 --- a/pkgs/misc/uboot/0001-imx8qm-uefi.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig -index 29e9d796a6..bb8b6a8d1c 100644 ---- a/configs/imx8qm_mek_defconfig -+++ b/configs/imx8qm_mek_defconfig -@@ -31,7 +31,7 @@ CONFIG_PANIC_HANG=y - CONFIG_OF_SYSTEM_SETUP=y - CONFIG_BOOTDELAY=3 - CONFIG_USE_BOOTCOMMAND=y --CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if test ${sec_boot} = yes; then if run loadcntr; then run mmcboot; else run netboot; fi; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi" -+CONFIG_BOOTCOMMAND="run distro_bootcmd; mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if test ${sec_boot} = yes; then if run loadcntr; then run mmcboot; else run netboot; fi; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi" - CONFIG_LOG=y - CONFIG_BOARD_EARLY_INIT_F=y - CONFIG_SPL_BOARD_INIT=y -@@ -196,3 +196,10 @@ CONFIG_SYS_WHITE_ON_BLACK=y - CONFIG_SPLASH_SCREEN=y - CONFIG_SPLASH_SCREEN_ALIGN=y - CONFIG_CMD_BMP=y -+CONFIG_DISTRO_DEFAULTS=y -+CONFIG_CMD_BOOTEFI_SELFTEST=y -+CONFIG_CMD_BOOTEFI=y -+CONFIG_EFI_LOADER=y -+CONFIG_BLK=y -+CONFIG_PARTITIONS=y -+CONFIG_DM_DEVICE_REMOVE=n -diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h -index ed5c179fc7..ab5b58ec32 100644 ---- a/include/configs/imx8qm_mek.h -+++ b/include/configs/imx8qm_mek.h -@@ -138,6 +138,22 @@ - "m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0\0" \ - "m4boot_1=run loadm4image_1; dcache flush; bootaux ${loadaddr} 1\0" \ - -+#ifdef CONFIG_DISTRO_DEFAULTS -+#define BOOT_TARGET_DEVICES(func) \ -+ func(MMC, mmc, 1) \ -+ func(MMC, mmc, 0) -+ -+#include -+#else -+#define BOOTENV -+#endif -+ -+#define MEM_LAYOUT_ENV_SETTINGS \ -+ "fdt_addr_r=0x83000000\0" \ -+ "kernel_addr_r=0x80200000\0" \ -+ "ramdisk_addr_r=0x83100000\0" \ -+ "scriptaddr=0x83200000\0" \ -+ - #ifdef CONFIG_NAND_BOOT - #define MFG_NAND_PARTITION "mtdparts=gpmi-nand:128m(boot),32m(kernel),16m(dtb),8m(misc),-(rootfs) " - #else -@@ -166,6 +182,8 @@ - /* Initial environment variables */ - #define CONFIG_EXTRA_ENV_SETTINGS \ - CONFIG_MFG_ENV_SETTINGS \ -+ MEM_LAYOUT_ENV_SETTINGS \ -+ BOOTENV \ - M4_BOOT_ENV \ - XEN_BOOT_ENV \ - JAILHOUSE_ENV\ -@@ -179,7 +197,7 @@ - "cntr_addr=0x98000000\0" \ - "cntr_file=os_cntr_signed.bin\0" \ - "boot_fdt=try\0" \ -- FDT_FILE \ -+ "fdtfile=imx8qm-mek-hdmi.dtb\0" \ - "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ - "mmcpart=1\0" \ - "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index fba3ea2e4cb2..5fb637c895b7 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -552,9 +552,6 @@ in { url = "https://github.com/tiiuae/uboot-imx8.git"; ref = "lf_v2022.04-uefi"; }; - patches = [ - ./0001-imx8qm-uefi.patch - ]; BL31 = "${armTrustedFirmwareIMX8QM}/bl31.bin"; enableParallelBuilding = true; defconfig = "imx8qm_mek_defconfig"; From 764dc441d141e6b70ced09a59c72fe890b83702f Mon Sep 17 00:00:00 2001 From: Ville Ilvonen Date: Thu, 29 Sep 2022 12:53:23 +0300 Subject: [PATCH 9/9] Merge pull request #10 from unbel13ver/efiarch lib/systems/default.nix: add efiArch suffixes --- lib/systems/default.nix | 8 ++++++++ nixos/modules/installer/cd-dvd/iso-image.nix | 20 +++++++------------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/systems/default.nix b/lib/systems/default.nix index d9d0918c1cc6..b34147e95289 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -135,6 +135,14 @@ rec { powerpc64le = "ppc64le"; }.${final.parsed.cpu.name} or final.parsed.cpu.name; + # Name used by UEFI for architectures. + efiArch = + if final.isx86_32 then "ia32" + else if final.isx86_64 then "x64" + else if final.isAarch32 then "arm" + else if final.isAarch64 then "aa64" + else final.parsed.cpu.name; + darwinArch = { armv7a = "armv7"; aarch64 = "arm64"; diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index d1ccc6c2072f..c112454798d6 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -53,6 +53,13 @@ let image = "/boot/${config.system.boot.loader.kernelFile}"; initrd = "/boot/initrd"; }; + + targetArch = + if config.boot.loader.grub.forcei686 then + "ia32" + else + stdenv.hostPlatform.efiArch; + in menuBuilderGrub2 finalCfg @@ -431,19 +438,6 @@ let fsck.vfat -vn "$out" ''; # */ - # Name used by UEFI for architectures. - targetArch = - if pkgs.stdenv.isi686 || config.boot.loader.grub.forcei686 then - "ia32" - else if pkgs.stdenv.isx86_64 then - "x64" - else if pkgs.stdenv.isAarch32 then - "arm" - else if pkgs.stdenv.isAarch64 then - "aa64" - else - throw "Unsupported architecture"; - # Syslinux (and isolinux) only supports x86-based architectures. canx86BiosBoot = pkgs.stdenv.hostPlatform.isx86;