Module Name:    src
Committed By:   rin
Date:           Sun Jul 21 16:05:24 UTC 2019

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

Log Message:
Fallback to non-EFI boot script if EFI bootloader is absent.

Note that we do not currently build EFI bootloader for earmv7hf-eb,
as it requires little-endian version of toolchain.


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/distrib/utils/embedded/conf/armv7.conf
cvs rdiff -u -r0 -r1.1 src/distrib/utils/embedded/files/armv7_boot_nonefi.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.34 src/distrib/utils/embedded/conf/armv7.conf:1.35
--- src/distrib/utils/embedded/conf/armv7.conf:1.34	Sat May 18 07:33:10 2019
+++ src/distrib/utils/embedded/conf/armv7.conf	Sun Jul 21 16:05:24 2019
@@ -1,4 +1,4 @@
-# $NetBSD: armv7.conf,v 1.34 2019/05/18 07:33:10 skrll Exp $
+# $NetBSD: armv7.conf,v 1.35 2019/07/21 16:05:24 rin Exp $
 # ARMv7 customization script used by mkimage
 #
 board=armv7
@@ -30,8 +30,8 @@ EOF
 }
 
 populate_common() {
-	# Install EFI bootloader
 	if [ -f "${release}/usr/mdec/bootarm.efi" ]; then
+		# Install EFI bootloader
 		mkdir -p "${mnt}/boot/EFI/BOOT"
 		cp "${release}/usr/mdec/bootarm.efi" "${mnt}/boot/EFI/BOOT/bootarm.efi"
 
@@ -39,10 +39,14 @@ populate_common() {
 		${GZIP_CMD} -dc ${kernel}/netbsd-${kernels_generic}.gz > "${mnt}/netbsd"
 		echo "./netbsd type=file uname=root gname=wheel mode=0755" \
 		    >> "$tmp/selected_sets"
+
+		cp ${DIR}/files/armv7_boot.cmd ${mnt}/boot/boot.cmd
+	else
+		# Fallback to non-EFI boot command
+		cp ${DIR}/files/armv7_boot_nonefi.cmd ${mnt}/boot/boot.cmd
 	fi
 
 	# 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"
 }
 

Added files:

Index: src/distrib/utils/embedded/files/armv7_boot_nonefi.cmd
diff -u /dev/null src/distrib/utils/embedded/files/armv7_boot_nonefi.cmd:1.1
--- /dev/null	Sun Jul 21 16:05:24 2019
+++ src/distrib/utils/embedded/files/armv7_boot_nonefi.cmd	Sun Jul 21 16:05:24 2019
@@ -0,0 +1,61 @@
+if test "${board}" = "am335x" ; then
+	setenv kernel netbsd.ub
+	setenv mmcpart 0:1
+	setenv bootargs root=wd0a
+fi
+if test "${board}" = "de0-nano-soc" ; then
+	setenv kernel netbsd.ub
+	setenv bootargs 'root=wd0a'
+	setenv mmcpart 0:1
+	setenv use_fdt 1
+fi
+if test "${soc}" = "exynos" ; then
+	setenv kernel netbsd.ub
+	setenv bootargs 'root=wd0a'
+	setenv mmcpart 2:1
+	setenv use_fdt 1
+fi
+if test "${soc}" = "sunxi" ; then
+	setenv kernel netbsd.ub
+	setenv bootargs 'root=wd0a'
+	setenv mmcpart 0:1
+	setenv use_fdt 1
+fi
+if test "${soc}" = "tegra" ; then
+	setenv kernel netbsd.ub
+	setenv bootargs root=wd0a
+	setenv mmcpart 1:1
+	setenv use_fdt 1
+fi
+if test "${soc}" = "tegra124" ; then
+	setenv kernel netbsd.ub
+	setenv bootargs root=wd0a
+	setenv mmcpart 1:1
+	setenv use_fdt 1
+fi
+if test "${soc}" = "tegra210" ; then
+	setenv kernel netbsd.ub
+	setenv bootargs root=wd0a
+	setenv mmcpart 1:1
+	setenv use_fdt 1
+	setenv fdtfile ${soc}-${board}.dtb
+	# enable PCIe
+	pci enum
+fi
+
+if test "${kernel}" = "" ; then
+	echo '>>>'
+	echo '>>> Target device is not supported by this script.'
+	echo '>>>'
+	exit
+fi
+
+if test "${use_fdt}" = "1" ; 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