From 75c9d8c20c1d2ff768ae5b6a362ed546f5982812 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Sat, 29 Jan 2022 20:32:02 +0000 Subject: [PATCH] u-boot: add/fix NanoPi R2S and R4S -update arm-trusted firmware to 2.6 -fix mac address generation on R2S because the CPUID fuses are not uniqe -add support for NanoPi R4S Signed-off-by: Arne Fitzenreiter --- config/rootfiles/common/aarch64/u-boot | 2 ++ lfs/u-boot | 41 +++++++++++++++++++------- src/initscripts/system/partresize | 18 +++++++++-- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/config/rootfiles/common/aarch64/u-boot b/config/rootfiles/common/aarch64/u-boot index bef7b7986a..ab22769e3a 100644 --- a/config/rootfiles/common/aarch64/u-boot +++ b/config/rootfiles/common/aarch64/u-boot @@ -8,6 +8,8 @@ boot/uboot.env #usr/share/u-boot #usr/share/u-boot/nanopi_r2s usr/share/u-boot/nanopi_r2s/u-boot-rockchip.bin +#usr/share/u-boot/nanopi_r4s +usr/share/u-boot/nanopi_r4s/u-boot-rockchip.bin #usr/share/u-boot/rpi usr/share/u-boot/rpi/u-boot-rpi3.bin usr/share/u-boot/rpi/u-boot-rpi4.bin diff --git a/lfs/u-boot b/lfs/u-boot index 4fd6289d9f..b68cd6faf0 100644 --- a/lfs/u-boot +++ b/lfs/u-boot @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2021 IPFire Team # +# Copyright (C) 2007-2022 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -35,17 +35,21 @@ SUP_ARCH = armv6l aarch64 CFLAGS := $(patsubst -fstack-protector-strong,,$(CFLAGS)) +ATF_VER = 2.6 + ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) arm-trusted-firmware-2.5.tar.gz +objects = $(DL_FILE) arm-trusted-firmware-$(ATF_VER).tar.gz arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -arm-trusted-firmware-2.5.tar.gz = $(DL_FROM)/arm-trusted-firmware-2.5.tar.gz +arm-trusted-firmware-$(ATF_VER).tar.gz = $(DL_FROM)/arm-trusted-firmware-$(ATF_VER).tar.gz +arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz = $(DL_FROM)/arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz $(DL_FILE)_MD5 = 7afbe0ef070dc0e8e970c57a08e3f336 -arm-trusted-firmware-2.5.tar.gz_MD5 = a3c01d2a73d5171e3f1c0737ff5321d9 +arm-trusted-firmware-$(ATF_VER).tar.gz_MD5 = 2622f7077e30436b2310bea0232c7cec +arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz_MD5 = b81fc982c982f06c439043385a5ba8ea install : $(TARGET) @@ -183,22 +187,37 @@ else cd $(DIR_APP) && make distclean # Nanopi R2S - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot/rockchip/generate-2-ethaddr.diff - cd $(DIR_APP) && rm -rf arm-trusted-firmware-2.5 - cd $(DIR_APP) && tar axf $(DIR_DL)/arm-trusted-firmware-2.5.tar.gz - cd $(DIR_APP)/arm-trusted-firmware-2.5 && make PLAT=rk3328 ARCH=aarch64 DEBUG=0 bl31 - cd $(DIR_APP) && cp arm-trusted-firmware-2.5/build/rk3328/release/bl31/bl31.elf bl31.elf - cd $(DIR_APP) && rm -rf arm-trusted-firmware-2.5 +# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot/rockchip/generate-2-ethaddr.diff + cd $(DIR_APP) && rm -rf arm-trusted-firmware-$(ATF_VER) + cd $(DIR_APP) && tar axf $(DIR_DL)/arm-trusted-firmware-$(ATF_VER).tar.gz + cd $(DIR_APP)/arm-trusted-firmware-$(ATF_VER) && make PLAT=rk3328 ARCH=aarch64 DEBUG=0 bl31 + cd $(DIR_APP) && cp arm-trusted-firmware-$(ATF_VER)/build/rk3328/release/bl31/bl31.elf bl31.elf + cd $(DIR_APP) && rm -rf arm-trusted-firmware-$(ATF_VER) -mkdir -pv /usr/share/u-boot/nanopi_r2s cd $(DIR_APP) && make CROSS_COMPILE="" nanopi-r2s-rk3328_config cd $(DIR_APP) && sed -i -e 's!^CONFIG_IDENT_STRING=.*!CONFIG_IDENT_STRING=" Nanopi R2S - IPFire.org"!' .config cd $(DIR_APP) && sed -i -e 's!^CONFIG_BOOTCOMMAND=.*!CONFIG_BOOTCOMMAND="console=ttyS2,115200n8;run distro_bootcmd"!' .config - cd $(DIR_APP) && sed -i -e 's!^CONFIG_BAUDRATE=.*!CONFIG_BAUDRATE=115200"!' .config + cd $(DIR_APP) && sed -i -e 's!^CONFIG_BAUDRATE=.*!CONFIG_BAUDRATE=115200!' .config + cd $(DIR_APP) && sed -i -e 's!.*CONFIG_MISC_INIT_R.*!# CONFIG_MISC_INIT_R is not set!' .config cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" cd $(DIR_APP) && install -v -m 644 u-boot-rockchip.bin \ /usr/share/u-boot/nanopi_r2s/u-boot-rockchip.bin cd $(DIR_APP) && make distclean + # Nanopi R4S + # arm trusted firmware for rk3399 cannot build without cortex m0 gcc crosscompiler + cd $(DIR_APP) && tar axf $(DIR_DL)/arm-trusted-firmware-$(ATF_VER)-rk3399-binary.tar.xz + -mkdir -pv /usr/share/u-boot/nanopi_r4s + cd $(DIR_APP) && make CROSS_COMPILE="" nanopi-r4s-rk3399_config + cd $(DIR_APP) && sed -i -e 's!^CONFIG_IDENT_STRING=.*!CONFIG_IDENT_STRING=" Nanopi R4S - IPFire.org"!' .config + cd $(DIR_APP) && sed -i -e 's!^CONFIG_BOOTCOMMAND=.*!CONFIG_BOOTCOMMAND="console=ttyS2,115200n8;run distro_bootcmd"!' .config + cd $(DIR_APP) && sed -i -e 's!^CONFIG_BAUDRATE=.*!CONFIG_BAUDRATE=115200!' .config +# cd $(DIR_APP) && sed -i -e 's!.*CONFIG_MISC_INIT_R.*!CONFIG_MISC_INIT_R=y!' .config + cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)" + cd $(DIR_APP) && install -v -m 644 u-boot-rockchip.bin \ + /usr/share/u-boot/nanopi_r4s/u-boot-rockchip.bin + cd $(DIR_APP) && make distclean + endif # create an empty 128 KB File for the u-boot env dd if=/dev/zero of=/boot/uboot.env bs=1K count=128 diff --git a/src/initscripts/system/partresize b/src/initscripts/system/partresize index 2206ca4516..b51f8af972 100644 --- a/src/initscripts/system/partresize +++ b/src/initscripts/system/partresize @@ -51,17 +51,29 @@ case "${1}" in scon="on" fi - # Install AP6112 wlan config on NanoPi R1 + mount /boot > /dev/null case "$(< /proc/device-tree/model )" in - "FriendlyElec NanoPi-R1") + "FriendlyElec NanoPi-R1" ) + # Install AP6112 wlan config on NanoPi R1 cp -f /lib/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \ /lib/firmware/brcm/brcmfmac43430-sdio.txt cp -f /lib/firmware/brcm/brcmfmac43430a0-sdio.ONDA-V80_PLUS.txt \ /lib/firmware/brcm/brcmfmac43430a0-sdio.txt ;; + "FriendlyElec NanoPi R2*" ) + # Generate MAC address at first boot + SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]` + echo ethaddr=$SWMAC:00 >> /boot/uEnv.txt + echo eth1addr=$SWMAC:01 >> /boot/uEnv.txt + ;; + "FriendlyElec NanoPi R4S" ) + # Generate MAC address at first boot + SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]` + echo ethaddr=$SWMAC:00 >> /boot/uEnv.txt + echo eth1addr=$SWMAC:01 >> /boot/uEnv.txt + ;; esac 2>/dev/null - mount /boot > /dev/null if [ -e /boot/grub/grub.cfg ]; then # swtich permanent to serial console if it was selected on first boot if [ "${scon}" = "on" ]; then -- 2.39.5