8800d532d3
This changes the build OBJDIR from the older style of /usr/obj/<srcdir> for native builds, and /usr/obj/<target>.<target_arch>/<srcdir> for cross builds to a new simpler format of /usr/obj/<srcdir>/<target>.<target_arch>. This new format is used regardless of cross or native build. It allows easier management of multiple source tree object directories. The UNIFIED_OBJDIR option will be removed and its feature made permanent for the 12.0 release. Relnotes: yes (don't note UNIFIED_OBJDIR option since it will be removed) Prior work: D3711 D874 Reviewed by: gjb, sjg Discussed at: https://lists.freebsd.org/pipermail/freebsd-arch/2016-May/017805.html Discussed with: emaste Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12840
63 lines
1.9 KiB
Bash
63 lines
1.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
SRCBRANCH="base/head@rHEAD"
|
|
EMBEDDEDBUILD=1
|
|
EMBEDDED_TARGET="arm64"
|
|
EMBEDDED_TARGET_ARCH="aarch64"
|
|
EMBEDDEDPORTS="sysutils/u-boot-rpi3 security/ca_root_nss"
|
|
KERNEL="GENERIC"
|
|
WORLD_FLAGS="${WORLD_FLAGS} UBLDR_LOADADDR=0x42000000"
|
|
IMAGE_SIZE="2560M"
|
|
PART_SCHEME="MBR"
|
|
FAT_SIZE="50m -b 1m"
|
|
FAT_TYPE="16"
|
|
MD_ARGS="-x 63 -y 255"
|
|
NODOC=1
|
|
DTB_REPO="https://github.com/raspberrypi/firmware/blob/master/boot"
|
|
DTB="bcm2710-rpi-3-b.dtb"
|
|
OVERLAYS="mmc.dtbo pi3-disable-bt.dtbo"
|
|
export BOARDNAME="RPI3"
|
|
|
|
arm_install_uboot() {
|
|
UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi3"
|
|
UBOOT_FILES="LICENCE.broadcom README armstub8.bin bootcode.bin config.txt \
|
|
fixup.dat fixup_cd.dat fixup_x.dat start.elf start_cd.elf \
|
|
start_x.elf u-boot.bin"
|
|
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}
|
|
for _UF in ${UBOOT_FILES}; do
|
|
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \
|
|
${FATMOUNT}/${_UF}
|
|
done
|
|
chroot ${CHROOTDIR} fetch -o "${FATMOUNT}/${DTB}" "${DTB_REPO}/${DTB}?raw=true"
|
|
chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/overlays
|
|
for _OL in ${OVERLAYS}; do
|
|
chroot ${CHROOTDIR} fetch -o "${FATMOUNT}/overlays/${_OL}"\
|
|
"${DTB_REPO}/overlays/${_OL}?raw=true"
|
|
done
|
|
|
|
BOOTFILES="$(chroot ${CHROOTDIR} \
|
|
env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \
|
|
WITH_UNIFIED_OBJDIR=yes \
|
|
make -C ${WORLDDIR}/sys/boot -V .OBJDIR)"
|
|
BOOTFILES="$(realpath ${BOOTFILES})"
|
|
|
|
chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/EFI/BOOT
|
|
chroot ${CHROOTDIR} cp -p ${BOOTFILES}/efi/boot1/boot1.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
|
|
}
|