aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Vadot <manu@FreeBSD.org>2018-07-22 12:03:17 +0000
committerEmmanuel Vadot <manu@FreeBSD.org>2018-07-22 12:03:17 +0000
commit43e289df5a2c4330de932f490cd4246878c51247 (patch)
tree3061c92b508e8f7416fc7aedf7937ed3dddce1b2
parent1f8b431d185416f70e96f03b8fd69b98442b1913 (diff)
downloadsrc-43e289df5a2c4330de932f490cd4246878c51247.tar.gz
src-43e289df5a2c4330de932f490cd4246878c51247.zip
release: Add arm_install_boot to install the commit boot bits
This reduce the per-board arm_install_uboot to just install u-boot. While here remove the installation of rpi.dtb and rpi2.dtb as we load them from the UFS partition via ubldr. Reviewed by: gjb, imp (older version) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D16239
Notes
Notes: svn path=/head/; revision=336599
-rw-r--r--release/arm/BANANAPI.conf14
-rw-r--r--release/arm/BEAGLEBONE.conf9
-rw-r--r--release/arm/RPI-B.conf11
-rw-r--r--release/arm/RPI2.conf11
-rw-r--r--release/arm/WANDBOARD.conf14
-rw-r--r--release/arm64/PINE64.conf21
-rw-r--r--release/arm64/RPI3.conf16
-rwxr-xr-xrelease/release.sh16
-rw-r--r--release/tools/arm.subr30
9 files changed, 50 insertions, 92 deletions
diff --git a/release/arm/BANANAPI.conf b/release/arm/BANANAPI.conf
index a259e73c27ab..5b06c62600da 100644
--- a/release/arm/BANANAPI.conf
+++ b/release/arm/BANANAPI.conf
@@ -19,22 +19,8 @@ export BOARDNAME="BANANAPI"
arm_install_uboot() {
UBOOT_DIR="/usr/local/share/u-boot/u-boot-bananapi"
UBOOT_FILES="u-boot-sunxi-with-spl.bin"
- FATMOUNT="${DESTDIR%${KERNEL}}/fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
chroot ${CHROOTDIR} dd if=${UBOOT_DIR}/${UBOOT_FILES} \
of=/dev/${mddev} bs=1k seek=8 conv=sync
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
- chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
- ${FATMOUNT}/ubldr.bin
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
- sync
- umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
- chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/arm/BEAGLEBONE.conf b/release/arm/BEAGLEBONE.conf
index b9ab5e3c8c59..aa5c6f1f885f 100644
--- a/release/arm/BEAGLEBONE.conf
+++ b/release/arm/BEAGLEBONE.conf
@@ -19,21 +19,14 @@ export BOARDNAME="BEAGLEBONE"
arm_install_uboot() {
UBOOT_DIR="/usr/local/share/u-boot/u-boot-beaglebone"
FATMOUNT="${DESTDIR%${KERNEL}}/fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
+ chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}"
chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
- ${FATMOUNT}/ubldr.bin
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
sync
umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/arm/RPI-B.conf b/release/arm/RPI-B.conf
index 73911088d10e..ba32862ecfd6 100644
--- a/release/arm/RPI-B.conf
+++ b/release/arm/RPI-B.conf
@@ -23,10 +23,8 @@ arm_install_uboot() {
fixup.dat fixup_cd.dat fixup_db.dat fixup_x.dat \
start.elf start_cd.elf start_db.elf start_x.elf"
FATMOUNT="${DESTDIR%${KERNEL}}/fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
+ chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}"
chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
for _UF in ${UBOOT_FILES}; do
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \
${FATMOUNT}/${_UF}
@@ -35,17 +33,10 @@ arm_install_uboot() {
chroot ${CHROOTDIR} cp -p ${RPI_FIRMWARE_DIR}/${_UF} \
${FATMOUNT}/${_UF}
done
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
- ${FATMOUNT}/ubldr.bin
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi.dtb \
- ${FATMOUNT}/rpi.dtb
chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
sync
umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/arm/RPI2.conf b/release/arm/RPI2.conf
index d2b47edc929f..c9e8db077ccf 100644
--- a/release/arm/RPI2.conf
+++ b/release/arm/RPI2.conf
@@ -24,10 +24,8 @@ arm_install_uboot() {
fixup.dat fixup_cd.dat fixup_db.dat fixup_x.dat \
start.elf start_cd.elf start_db.elf start_x.elf"
FATMOUNT="${DESTDIR%${KERNEL}}/fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
+ chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}"
chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
for _UF in ${UBOOT_FILES}; do
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \
${FATMOUNT}/${_UF}
@@ -36,17 +34,10 @@ arm_install_uboot() {
chroot ${CHROOTDIR} cp -p ${RPI_FIRMWARE_DIR}/${_UF} \
${FATMOUNT}/${_UF}
done
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
- ${FATMOUNT}/ubldr.bin
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi2.dtb \
- ${FATMOUNT}/rpi2.dtb
chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
sync
umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/arm/WANDBOARD.conf b/release/arm/WANDBOARD.conf
index 99ab7a7926f5..9d6e04ea8dfc 100644
--- a/release/arm/WANDBOARD.conf
+++ b/release/arm/WANDBOARD.conf
@@ -19,22 +19,8 @@ export BOARDNAME="WANDBOARD"
arm_install_uboot() {
UBOOT_DIR="/usr/local/share/u-boot/u-boot-wandboard"
UBOOT_FILES="u-boot.imx"
- FATMOUNT="${DESTDIR%${KERNEL}}/fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
chroot ${CHROOTDIR} dd if=${UBOOT_DIR}/${UBOOT_FILES} \
of=/dev/${mddev} bs=512 seek=2 conv=sync
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
- chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
- chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
- ${FATMOUNT}/ubldr.bin
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
- sync
- umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
- chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/arm64/PINE64.conf b/release/arm64/PINE64.conf
index 74ec1ff22eee..f20dafd5e624 100644
--- a/release/arm64/PINE64.conf
+++ b/release/arm64/PINE64.conf
@@ -19,29 +19,8 @@ export BOARDNAME="PINE64"
arm_install_uboot() {
UBOOT_DIR="/usr/local/share/u-boot/u-boot-pine64"
UBOOT_FILES="u-boot-sunxi-with-spl.bin"
- FATMOUNT="${DESTDIR%${KERNEL}}fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}ufs"
chroot ${CHROOTDIR} dd if=${UBOOT_DIR}/${UBOOT_FILES} \
of=/dev/${mddev} bs=1k seek=8 conv=sync
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
- chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
-
- BOOTFILES="$(chroot ${CHROOTDIR} \
- env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \
- WITH_UNIFIED_OBJDIR=yes \
- make -C ${WORLDDIR}/stand -V .OBJDIR)"
- BOOTFILES="$(chroot ${CHROOTDIR} realpath ${BOOTFILES})"
-
- chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/EFI/BOOT
- chroot ${CHROOTDIR} cp -p ${BOOTFILES}/efi/loader/loader.efi \
- ${FATMOUNT}/EFI/BOOT/bootaa64.efi
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
- sync
- umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
- chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/arm64/RPI3.conf b/release/arm64/RPI3.conf
index 50ba75155076..22f5de3105e2 100644
--- a/release/arm64/RPI3.conf
+++ b/release/arm64/RPI3.conf
@@ -27,10 +27,8 @@ arm_install_uboot() {
fixup_db.dat fixup_x.dat fixup.dat LICENCE.broadcom \
start_cd.elf start_db.elf start_x.elf start.elf ${DTB}"
FATMOUNT="${DESTDIR%${KERNEL}}fat"
- UFSMOUNT="${DESTDIR%${KERNEL}}ufs"
- chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
+ chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}"
chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
- chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
for _UF in ${UBOOT_FILES}; do
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \
${FATMOUNT}/${_UF}
@@ -47,21 +45,9 @@ arm_install_uboot() {
${FATMOUNT}/overlays/${_OL}
done
- BOOTFILES="$(chroot ${CHROOTDIR} \
- env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \
- WITH_UNIFIED_OBJDIR=yes \
- make -C ${WORLDDIR}/stand -V .OBJDIR)"
- BOOTFILES="$(chroot ${CHROOTDIR} realpath ${BOOTFILES})"
-
- chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/EFI/BOOT
- chroot ${CHROOTDIR} cp -p ${BOOTFILES}/efi/loader/loader.efi \
- ${FATMOUNT}/EFI/BOOT/bootaa64.efi
- chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
sync
umount_loop ${CHROOTDIR}/${FATMOUNT}
- umount_loop ${CHROOTDIR}/${UFSMOUNT}
chroot ${CHROOTDIR} rmdir ${FATMOUNT}
- chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
return 0
}
diff --git a/release/release.sh b/release/release.sh
index 3f7f401642a9..661ae5bfbd89 100755
--- a/release/release.sh
+++ b/release/release.sh
@@ -358,6 +358,21 @@ chroot_build_release() {
return 0
} # chroot_build_release()
+efi_boot_name()
+{
+ case $1 in
+ arm)
+ echo "bootarm.efi"
+ ;;
+ arm64)
+ echo "bootaa64.efi"
+ ;;
+ amd64)
+ echo "bootx86.efi"
+ ;;
+ esac
+}
+
# chroot_arm_build_release(): Create arm SD card image.
chroot_arm_build_release() {
load_target_env
@@ -387,6 +402,7 @@ chroot_arm_build_release() {
mdconfig -f ${IMGBASE##${CHROOTDIR}} ${MD_ARGS})
arm_create_disk
arm_install_base
+ arm_install_boot
arm_install_uboot
mdconfig -d -u ${mddev}
chroot ${CHROOTDIR} rmdir ${DESTDIR}
diff --git a/release/tools/arm.subr b/release/tools/arm.subr
index 902cf21b9af3..855f7b0d3d12 100644
--- a/release/tools/arm.subr
+++ b/release/tools/arm.subr
@@ -165,6 +165,36 @@ arm_install_base() {
return 0
}
+arm_install_boot() {
+ FATMOUNT="${DESTDIR%${KERNEL}}/fat"
+ UFSMOUNT="${DESTDIR%${KERNEL}}/ufs"
+ chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
+ chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+ chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
+
+ if [ "${EMBEDDED_TARGET}" == "arm" ]; then
+ chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
+ ${FATMOUNT}/ubldr.bin
+ fi
+
+ BOOTFILES="$(chroot ${CHROOTDIR} \
+ env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \
+ WITH_UNIFIED_OBJDIR=yes \
+ make -C ${WORLDDIR}/stand -V .OBJDIR)"
+ BOOTFILES="$(chroot ${CHROOTDIR} realpath ${BOOTFILES})"
+
+ chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/EFI/BOOT
+ chroot ${CHROOTDIR} cp -p ${BOOTFILES}/efi/loader/loader.efi \
+ ${FATMOUNT}/EFI/BOOT/$(efi_boot_name ${EMBEDDED_TARGET})
+
+ chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
+ sync
+ umount_loop ${CHROOTDIR}/${FATMOUNT}
+ umount_loop ${CHROOTDIR}/${UFSMOUNT}
+ chroot ${CHROOTDIR} rmdir ${FATMOUNT}
+ chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
+}
+
arm_install_uboot() {
# Override in the arm/KERNEL.conf file.