# U-Boot: Raspberry Pi # Maintainer: Kevin Mihelich # Maintainer: graysky pkgname=uboot-raspberrypi pkgver=2024.07 pkgrel=4 pkgdesc="U-Boot for Raspberry Pi" arch=('armv7h' 'aarch64') url='https://docs.u-boot.org/en/latest' license=('GPL') backup=('boot/boot.txt' 'boot/boot.scr' 'boot/config.txt') makedepends=('bc' 'dtc' 'git' 'util-linux') conflicts_armv7h=('linux-rpi' 'linux-rpi-16k') _commit=c0307606abef9e6070d50047e7fa62d8354d8c29 source=( # these work for aarch64 but not for armv7h "https://github.com/u-boot/u-boot/archive/refs/tags/v${pkgver/rc/-rc}.tar.gz" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2710-rpi-2-b.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2710-rpi-3-b-plus.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2710-rpi-3-b.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2710-rpi-cm3.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2710-rpi-zero-2-w.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2710-rpi-zero-2.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2711-rpi-4-b.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2711-rpi-400.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2711-rpi-cm4-io.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2711-rpi-cm4.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2711-rpi-cm4s.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2712-rpi-5-b.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2712d0-rpi-5-b.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2712-rpi-cm5-cm4io.dtb" "https://github.com/raspberrypi/firmware/raw/${_commit}/boot/bcm2712-rpi-cm5-cm5io.dtb" # these are from linux-armv7-6.9.8-1 bcm2712-rpi-5-b.v7 bcm2710-rpi-3-b-plus.v7 bcm2711-rpi-cm4-io.v7 bcm2712-rpi-cm5-cm4io.v7 bcm2710-rpi-3-b.v7 bcm2711-rpi-cm4.v7 bcm2711-rpi-cm4s.v7 bcm2711-rpi-400.v7 bcm2712d0-rpi-5-b.v7 bcm2710-rpi-zero-2.v7 bcm2712-rpi-cm5-cm5io.v7 bcm2710-rpi-zero-2-w.v7 bcm2710-rpi-cm3.v7 bcm2711-rpi-4-b.v7 '0001-rpi-increase-space-for-kernel.patch' '0002-fix-serial-console.patch' 'boot.txt.v2' 'boot.txt.v3' 'mkscr') md5sums=('f750ca945f4a4d6a69b36259c8b68689' '11c5a49b7b4951a571fe1a8537c329c6' '0190cba24f7a637cdf6019d6750c59ff' 'c291d947389308411e3779782522f7c3' '8dea82ecb9ec769246767836c74fb8f7' '7e9846deb2c8f81283ccae35240258e1' '7e9846deb2c8f81283ccae35240258e1' 'ce1dc48eb08210929e48eac31d5ec031' 'e7edf95cfa70211a6db053615c8c45c3' '3efd77582f05e5ca6f55ec14f00810e1' '687902e98a5e4367a2b0f3914752a0c9' 'fbfe64dc18614d75d22955eeb3a8cae1' '94abb358fd4af83907dc16e19b65d4f3' 'd8619315e6c8896df1727008b7e9359f' '9fb99782610680f2c5457afb65a60826' '8d16fd383d663662ca60f750a69ed732' '94abb358fd4af83907dc16e19b65d4f3' '0190cba24f7a637cdf6019d6750c59ff' '3efd77582f05e5ca6f55ec14f00810e1' '9fb99782610680f2c5457afb65a60826' 'c291d947389308411e3779782522f7c3' '687902e98a5e4367a2b0f3914752a0c9' 'fbfe64dc18614d75d22955eeb3a8cae1' 'e7edf95cfa70211a6db053615c8c45c3' 'd8619315e6c8896df1727008b7e9359f' '7e9846deb2c8f81283ccae35240258e1' '8d16fd383d663662ca60f750a69ed732' '7e9846deb2c8f81283ccae35240258e1' '8dea82ecb9ec769246767836c74fb8f7' '35074bb767e8b259c5825b0c1f17fd60' '636c8ac2098ebf0acdc2ff15430edf0d' 'daa8314d29129e1b1ae0b316604bf8be' 'f8ad4508b9734e9e13aedb9f7419d7a3' 'be8abe44b86d63428d7ac3acc64ee3bf' '021623a04afd29ac3f368977140cfbfd') prepare() { cd u-boot-${pkgver/rc/-rc} patch -p1 -i ../0001-rpi-increase-space-for-kernel.patch patch -p1 -i ../0002-fix-serial-console.patch } build() { cd u-boot-${pkgver/rc/-rc} unset CFLAGS unset CXXFLAGS unset CPPFLAGS make distclean [[ $CARCH == "armv7h" ]] && make rpi_2_config [[ $CARCH == "aarch64" ]] && make rpi_arm64_config echo 'CONFIG_IDENT_STRING=" Arch Linux ARM"' >> .config make EXTRAVERSION=-${pkgrel} } package() { cd u-boot-${pkgver/rc/-rc} mkdir -p "${pkgdir}"/boot if [[ $CARCH == "armv7h" ]]; then cp u-boot.bin ${pkgdir}/boot/kernel7.img cp ../boot.txt.v2 ../boot.txt cp ../*.v7 ${pkgdir}/boot rename .v7 .dtb ${pkgdir}/boot/* elif [[ $CARCH == "aarch64" ]]; then cp u-boot.bin ${pkgdir}/boot/kernel8.img cp ../*.dtb ${pkgdir}/boot cp ../boot.txt.v3 ../boot.txt fi echo "enable_uart=1" > ${pkgdir}/boot/config.txt tools/mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d ../boot.txt "${pkgdir}"/boot/boot.scr cp ../{boot.txt,mkscr} "${pkgdir}"/boot }