u-boot-friendlyarm: add u-boot for nanopi-r1 to boot from eMMC
authorArne Fitzenreiter <arne_f@ipfire.org>
Tue, 6 Aug 2019 04:32:22 +0000 (04:32 +0000)
committerArne Fitzenreiter <arne_f@ipfire.org>
Tue, 6 Aug 2019 04:32:22 +0000 (04:32 +0000)
this is a heavy patched version and should replaced when stock
u-boot is able to boot from h3 eMMC.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
config/rootfiles/common/armv5tel/u-boot-friendlyarm [new file with mode: 0644]
lfs/u-boot-friendlyarm [new file with mode: 0644]
make.sh
src/patches/u-boot/sunxi/nanopi-r1-add-mac.diff [new file with mode: 0644]

diff --git a/config/rootfiles/common/armv5tel/u-boot-friendlyarm b/config/rootfiles/common/armv5tel/u-boot-friendlyarm
new file mode 100644 (file)
index 0000000..d3d3e10
--- /dev/null
@@ -0,0 +1 @@
+usr/share/u-boot/nanopi-r1/u-boot-sunxi-with-spl.bin
diff --git a/lfs/u-boot-friendlyarm b/lfs/u-boot-friendlyarm
new file mode 100644 (file)
index 0000000..5945ef6
--- /dev/null
@@ -0,0 +1,93 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2019  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# 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        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1ee53f5
+
+THISAPP    = u-boot-friendlyarm-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/u-boot-$(VER)*
+TARGET     = $(DIR_INFO)/$(THISAPP)
+SUP_ARCH   = armv5tel
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = a329359aa0e9211f02526548eb6a6208
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+
+ifeq "${BUILD_ARCH}" "armv5tel"
+       # Nanopi-R1 eMMC
+       -mkdir -pv /usr/share/u-boot/nanopi-r1
+       cd $(DIR_APP) && cp arch/arm/dts/sun8i-h3-nanopi-m1-plus.dts arch/arm/dts/sun8i-h3-nanopi-r1.dts
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot/sunxi/nanopi-r1-add-mac.diff
+       cd $(DIR_APP) && make CROSS_COMPILE="" nanopi_h3_config
+       cd $(DIR_APP) && sed -i -e 's!^CONFIG_IDENT_STRING=.*!CONFIG_IDENT_STRING=" Nanopi-R1 eMMC - IPFire.org"!' .config
+       cd $(DIR_APP) && sed -i -e 's!^CONFIG_DEFAULT_DEVICE_TREE=.*!CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-r1"!' .config
+       cd $(DIR_APP) && make CROSS_COMPILE="" HOSTCC="gcc $(CFLAGS)"
+       cd $(DIR_APP) && install -v -m 644 u-boot-sunxi-with-spl.bin \
+               /usr/share/u-boot/nanopi-r1
+       cd $(DIR_APP) && make distclean
+endif
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index d6f6f71..9613b4e 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -1518,6 +1518,7 @@ buildipfire() {
   lfsmake2 swig
   lfsmake2 u-boot
   lfsmake2 u-boot-kirkwood
+  lfsmake2 u-boot-friendlyarm
   lfsmake2 python-typing
   lfsmake2 python-m2crypto
   lfsmake2 wireless-regdb
diff --git a/src/patches/u-boot/sunxi/nanopi-r1-add-mac.diff b/src/patches/u-boot/sunxi/nanopi-r1-add-mac.diff
new file mode 100644 (file)
index 0000000..70cf4a6
--- /dev/null
@@ -0,0 +1,15 @@
+diff -Naur u-boot-1ee53f5cff60d4daf9e5b49873932c454d53383a.org/arch/arm/dts/sun8i-h3-nanopi-r1.dts u-boot-1ee53f5cff60d4daf9e5b49873932c454d53383a/arch/arm/dts/sun8i-h3-nanopi-r1.dts
+--- u-boot-1ee53f5cff60d4daf9e5b49873932c454d53383a.org/arch/arm/dts/sun8i-h3-nanopi-r1.dts    2019-08-05 09:02:22.211159367 +0000
++++ u-boot-1ee53f5cff60d4daf9e5b49873932c454d53383a/arch/arm/dts/sun8i-h3-nanopi-r1.dts        2019-08-05 09:05:25.745207373 +0000
+@@ -46,6 +46,11 @@
+       model = "FriendlyElec NanoPi H3";
+       compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3";
++      aliases {
++              /* entry to generate a second mac address for the realtek
++                 u-boot ignore that it point to wrong device */
++              ethernet1 = &emac;
++      };
+       reg_gmac_3v3: gmac-3v3 {
+               compatible = "regulator-fixed";