On 2022-04-14, phodina@protonmail.com wrote: > (u-boot-rpi-0-w, u-boot-rpi, u-boot-rpi-2, u-boot-rpi-3, u-boot-rpi-4, > u-boot-rpi-64, u-boot-rpi-0-w-efi, u-boot-rpi-efi, u-boot-rpi-2-efi, > u-boot-rpi-3-efi, u-boot-rpi-4-efi, u-boot-rpi-efi-64): New packages. Comments from November are still relevent: https://issues.guix.gnu.org/48314#12 (e.g. drop drop u-boot-rpi-0-w*, u-boot-rpi, u-boot-rpi-efi, maybe consider droping u-boot-rpi-2* and the 32-bit variants for rpi3 and rpi4, as armhf is not well maintained at the moment). Basically, ARMv6 is not supportable by guix, ARMv7 is poorly supported in the armhf architecture, and ARMv8 is capable of running aarch64 (a.k.a. arm64): https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications Only proposing aarch64 variants would pretty much leave you with rpi-arm64. The EFI variants and 32-bit variants supported on armhf could be easily added later once the other patches land. > +(define-public %u-boot-rpi-efi-configs > + '("CONFIG_OF_EMBED=" > + "CONFIG_OF_BOARD=y" > + "CONFIG_BOOTDELAY=0")) See comment: https://issues.guix.gnu.org/48314#15 e.g. Please do not set BOOTDELAY=0. It makes it nearly impossible to debug. For people who want to live on the edge, they could build custom variants and set it to 0. > +(define-public u-boot-rpi-64 > + (make-preinstalled-u-boot-package > + "rpi_arm64" > + "aarch64-linux-gnu" > + #:name "rpi-64" > + #:description %u-boot-rpi-description-64-bit)) Please keep package names consistent with defconfig name. (e.g. u-boot-rpi-arm64). It's confusing enough without extra newly invented names! :) > +(define-public u-boot-rpi-3-efi > + (make-preinstalled-u-boot-package > + "rpi_3_32b" > + "arm-linux-gnueabihf" > + #:name "rpi-3-efi" > + #:configs %u-boot-rpi-efi-configs > + #:description %u-boot-rpi-efi-description-32-bit)) Ditto, or drop this variant; same for the 32-bit rpi-4 variants. > Subject: [PATCH v3 2/8] build: kconfig: Add new module to modify a defconfig > file. ... > (define-public u-boot-pinebook > - (let ((base (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu"))) > - (package > - (inherit base) > - (arguments > - (substitute-keyword-arguments (package-arguments base) > - ((#:phases phases) > - `(modify-phases ,phases > - (add-after 'unpack 'patch-pinebook-config > - ;; Fix regression with LCD video output introduced in 2020.01 > - ;; https://patchwork.ozlabs.org/patch/1225130/ > - (lambda _ > - (substitute* "configs/pinebook_defconfig" > - (("CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y") "CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y\nCONFIG_VIDEO_BPP32=y")) > - #t))))))))) > + (make-u-boot-sunxi64-package "pinebook" "aarch64-linux-gnu" > + ;; Fix regression with LCD video output introduced in 2020.01 > + ;; https://patchwork.ozlabs.org/patch/1225130/ > + #:configs '("CONFIG_VIDEO_BPP32=y"))) I like how this simplifies the package definitions where you need to adjust the defconfig! This particular workaround for u-boot-pinebook may no longer be needed, thanks for the reminder to check. > (define-public u-boot-novena > - (let ((base (make-u-boot-package "novena" "arm-linux-gnueabihf"))) > + (let ((base (make-u-boot-package "novena" "arm-linux-gnueabihf" > + ;; Patch configuration to disable loading u-boot.img from FAT > + ;; partition, allowing it to be installed at a device offset. > + #:configs '("CONFIG_SPL_FS_FAT=")))) Maybe this is different in upstream u-boot, but in the past setting it to an empty value could result in the default value, which is why: > - (substitute* "configs/novena_defconfig" > - (("CONFIG_SPL_FS_FAT=y") "# CONFIG_SPL_FS_FAT is not set")) > - #t))))))))) ... was used previously. > Subject: [PATCH v3 5/8] gnu: raspberry-pi: Add defconfig objects to build > customized Linux kernels. > > gnu/packages/raspberry-pi.scm (make-raspi-defconig): New function to make > downloaded defconfig objects from the Linux repository of the Raspberry Pi > Foundation. > (%bcm2709-defconfig, %bcm2710-defconfig, %bcm2711-defconfig, > %bcm2835-defconfig, %bcmrpi-defconfig, %bcm2711-defconfig-64, > %bcmrpi3-defconfig): New variables containing defconfig objects to build > Linux kernels customized for Raspberry Pi single board computers. Similar to my comments on u-boot variants, some of these are for models that are not supportable on guix (rpi, rpi-0), so probably best to leave out entirely, and the 32-bit variants for armhf are debatable at this point. live well, vagrant