Module Name:    src
Committed By:   jmcneill
Date:           Sat Oct  7 23:40:00 UTC 2017

Modified Files:
        src/distrib/utils/embedded/conf: armv7.conf
Added Files:
        src/distrib/utils/embedded/files: armv7_boot.cmd

Log Message:
Install a boot.scr on armv7.img that detects the running board and selects
the correct kernel and boot protocol. Should work on tegra, sunxi, and
am335x boards for now.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/distrib/utils/embedded/conf/armv7.conf
cvs rdiff -u -r0 -r1.1 src/distrib/utils/embedded/files/armv7_boot.cmd

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/utils/embedded/conf/armv7.conf
diff -u src/distrib/utils/embedded/conf/armv7.conf:1.16 src/distrib/utils/embedded/conf/armv7.conf:1.17
--- src/distrib/utils/embedded/conf/armv7.conf:1.16	Mon Jul 31 16:34:22 2017
+++ src/distrib/utils/embedded/conf/armv7.conf	Sat Oct  7 23:40:00 2017
@@ -1,4 +1,4 @@
-# $NetBSD: armv7.conf,v 1.16 2017/07/31 16:34:22 jmcneill Exp $
+# $NetBSD: armv7.conf,v 1.17 2017/10/07 23:40:00 jmcneill Exp $
 # ARMv7 customization script used by mkimage
 #
 board=armv7
@@ -31,6 +31,12 @@ devpubd=YES
 EOF
 }
 
+populate_common() {
+	# Install boot script
+	cp ${DIR}/files/armv7_boot.cmd ${mnt}/boot/boot.cmd
+	"${MKUBOOTIMAGE}" -A arm -C none -O netbsd -T script -a 0 -n "NetBSD/armv7 boot" "${mnt}/boot/boot.cmd" "${mnt}/boot/boot.scr"
+}
+
 populate_beagle() {
 	bboard_kernelimg=netbsd-BEAGLEBOARD.ub
 	bboard_loadaddr=81000000
@@ -44,10 +50,7 @@ EOF
 }
 
 populate_awin() {
-	cat >> "${mnt}/boot/uEnv.txt" << EOF
-bootargs=root=ld0a console=${console}
-uenvcmd=mmc dev 0; mmc rescan; if test \$fdtfile = sun7i-a20-cubieboard2.dtb; then setenv kernel netbsd-CUBIEBOARD.ub; elif test \$fdtfile = sun7i-a20-cubietruck.dtb; then setenv kernel netbsd-CUBIETRUCK.ub; elif test \$fdtfile = sun6i-a31-hummingbird.dtb; then setenv kernel netbsd-HUMMINGBIRD_A31.ub; elif test \$fdtfile = sun7i-a20-bananapi.dtb; then setenv kernel netbsd-BPI.ub; fi; fatload mmc 0:1 82000000 \$kernel; bootm 82000000
-EOF
+	:
 }
 
 populate_rpi() {
@@ -117,18 +120,7 @@ populate_sunxi() {
 }
 
 populate_tegra() {
-	tegra_kernelimg=netbsd-TEGRA.ub
-	tegra_loadaddr=0x90000000
-
-	# Create a boot.scr for Tegra U-Boot
-	cat > "${mnt}/boot/boot-TEGRA.txt" << EOF
-setenv bootargs root=ld0a
-fatload mmc 1:1 ${tegra_loadaddr} ${tegra_kernelimg}
-fatload mmc 1:1 \${fdt_addr_r} tegra124-\${board}.dtb
-fdt addr \${fdt_addr_r}
-bootm ${tegra_loadaddr} - \${fdt_addr_r}
-EOF
-	"${MKUBOOTIMAGE}" -A arm -C none -O netbsd -T script -a 0 -n "NetBSD/tegra boot" "${mnt}/boot/boot-TEGRA.txt" "${mnt}/boot/boot.scr"
+	:
 }
 
 populate() {
@@ -176,4 +168,7 @@ populate() {
 	populate_amlogic
 	populate_tegra
 	populate_sunxi
+
+	# common configuration
+	populate_common
 }

Added files:

Index: src/distrib/utils/embedded/files/armv7_boot.cmd
diff -u /dev/null src/distrib/utils/embedded/files/armv7_boot.cmd:1.1
--- /dev/null	Sat Oct  7 23:40:00 2017
+++ src/distrib/utils/embedded/files/armv7_boot.cmd	Sat Oct  7 23:40:00 2017
@@ -0,0 +1,34 @@
+if test "${soc}" = "sunxi" ; then
+	setenv kernel netbsd-SUNXI.ub
+	setenv bootargs root=ld0a
+	setenv mmcpart 0:1
+	setenv use_fdt 1
+fi
+if test "${soc}" = "tegra" ; then
+	setenv kernel netbsd-TEGRA.ub
+	setenv bootargs root=ld1a
+	setenv mmcpart 1:1
+	setenv use_fdt 1
+fi
+if test "${board}" = "am335x" ; then
+	setenv kernel netbsd-BEAGLEBONE.ub
+	setenv mmcpart 0:1
+	setenv bootargs root=ld0a
+fi
+
+if test "${kernel}" = "" ; then
+	echo '>>>'
+	echo '>>> Target device is not supported by this script.'
+	echo '>>>'
+	exit
+fi
+
+if test "1" -eq ${use_fdt} ; then
+	fatload mmc ${mmcpart} ${kernel_addr_r} ${kernel}
+	fatload mmc ${mmcpart} ${fdt_addr_r} ${fdtfile}
+	fdt addr ${fdt_addr_r}
+	bootm ${kernel_addr_r} - ${fdt_addr_r}
+else
+	fatload mmc ${mmcpart} ${kernel_addr_r} ${kernel}
+	bootm ${kernel_addr_r} ${bootargs}
+fi

Reply via email to