Working aarch64 configs for 21.1 (#222)
This commit is contained in:
parent
a0e08bdccc
commit
91757dae56
2
Makefile
2
Makefile
|
@ -81,7 +81,7 @@ ADDITIONS?= os-dyndns
|
|||
DEVICE?= A10
|
||||
COMSPEED?= 115200
|
||||
COMPORT?= 0x3f8
|
||||
UEFI?= dvd serial vga vm
|
||||
UEFI?= dvd serial vga vm arm
|
||||
GITBASE?= https://github.com/opnsense
|
||||
MIRRORS?= https://opnsense.c0urier.net \
|
||||
http://mirrors.nycbug.org/pub/opnsense \
|
||||
|
|
17
build/arm.sh
17
build/arm.sh
|
@ -32,7 +32,7 @@ SELF=arm
|
|||
|
||||
. ./common.sh
|
||||
|
||||
if [ ${PRODUCT_ARCH} != armv6 -a ${PRODUCT_ARCH} != aarch64 ]; then
|
||||
if [ ${PRODUCT_ARCH} != armv6 -a ${PRODUCT_ARCH} != armv7 -a ${PRODUCT_ARCH} != aarch64 ]; then
|
||||
echo ">>> Cannot build arm image with arch ${PRODUCT_ARCH}"
|
||||
exit 1
|
||||
fi
|
||||
|
@ -56,7 +56,7 @@ truncate -s ${ARMSIZE} ${ARMIMG}
|
|||
|
||||
DEV=$(mdconfig -a -t vnode -f ${ARMIMG} -x 63 -y 255)
|
||||
|
||||
ARM_FAT_SIZE=${ARM_FAT_SIZE:-"50m"}
|
||||
ARM_FAT_SIZE=${ARM_FAT_SIZE:-"50m -b 1m"}
|
||||
|
||||
gpart create -s MBR ${DEV}
|
||||
gpart add -t '!12' -a 512k -s ${ARM_FAT_SIZE} ${DEV}
|
||||
|
@ -98,10 +98,23 @@ arm_unmount()
|
|||
umount ${STAGEDIR}
|
||||
}
|
||||
|
||||
arm_install_efi()
|
||||
{
|
||||
DEV_EFI=$(mdconfig -a -t vnode -f ${STAGEDIR}/boot/boot1.efifat)
|
||||
mount_msdosfs /dev/${DEV_EFI} ${STAGEDIR}/mnt
|
||||
cp -r ${STAGEDIR}/mnt/efi ${STAGEDIR}/boot/msdos/efi
|
||||
umount ${STAGEDIR}/mnt
|
||||
mdconfig -d -u ${DEV_EFI}
|
||||
}
|
||||
|
||||
echo -n ">>> Building arm image... "
|
||||
|
||||
arm_install_uboot
|
||||
|
||||
if [ -z "${PRODUCT_UEFI%%*"${SELF}"*}" ]; then
|
||||
arm_install_efi
|
||||
fi
|
||||
|
||||
arm_unmount
|
||||
mdconfig -d -u ${DEV}
|
||||
|
||||
|
|
14
build/vm.sh
14
build/vm.sh
|
@ -84,7 +84,7 @@ GPTDUMMY="-p freebsd-swap::512k"
|
|||
SWAPARGS=
|
||||
UEFIBOOT=
|
||||
|
||||
if [ ${PRODUCT_ARCH} = "amd64" -a -n "${PRODUCT_UEFI}" -a \
|
||||
if [ ${PRODUCT_ARCH} = "amd64" -o ${PRODUCT_ARCH} = "aarch64" -a -n "${PRODUCT_UEFI}" -a \
|
||||
-z "${PRODUCT_UEFI%%*"${SELF}"*}" ]; then
|
||||
UEFIBOOT="-p efi:=${STAGEDIR}/boot/boot1.efifat"
|
||||
fi
|
||||
|
@ -107,8 +107,14 @@ mdconfig -d -u ${DEV}
|
|||
|
||||
echo -n ">>> Building vm image... "
|
||||
|
||||
mkimg -s gpt -f ${VMFORMAT} -o ${VMIMG} -b ${STAGEDIR}/boot/pmbr \
|
||||
${UEFIBOOT} -p freebsd-boot/bootfs:=${STAGEDIR}/boot/gptboot \
|
||||
${GPTDUMMY} -p freebsd-ufs/rootfs:=${VMBASE} ${SWAPARGS}
|
||||
if [ ${PRODUCT_ARCH} = "aarch64" ]; then
|
||||
mkimg -s gpt -f ${VMFORMAT} -o ${VMIMG} \
|
||||
${UEFIBOOT} \
|
||||
-p freebsd-ufs/rootfs:=${VMBASE} ${SWAPARGS}
|
||||
else
|
||||
mkimg -s gpt -f ${VMFORMAT} -o ${VMIMG} -b ${STAGEDIR}/boot/pmbr \
|
||||
${UEFIBOOT} -p freebsd-boot/bootfs:=${STAGEDIR}/boot/gptboot \
|
||||
${GPTDUMMY} -p freebsd-ufs/rootfs:=${VMBASE} ${SWAPARGS}
|
||||
fi
|
||||
|
||||
echo "done"
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
include ALLWINNER
|
||||
include GENERIC
|
||||
|
||||
ident SMP-BANANAPI
|
||||
ident SMP-ARM
|
||||
|
||||
# Remove cloudabi device config
|
||||
nodevice cloudabi32
|
||||
nodevice cloudabi64
|
||||
|
||||
# Remove to build a debug kernel:
|
||||
nomakeoptions DEBUG
|
||||
|
@ -17,6 +21,9 @@ options MROUTING
|
|||
options PPS_SYNC
|
||||
options TCP_SIGNATURE
|
||||
|
||||
# XXX required for GEOM
|
||||
device xz
|
||||
|
||||
# Wireless features
|
||||
device wlan_acl
|
||||
device wlan_xauth
|
||||
|
@ -34,3 +41,24 @@ options PAX_CONTROL_ACL
|
|||
options PAX_CONTROL_ACL_OVERRIDE_SUPPORT
|
||||
options PAX_CONTROL_EXTATTR
|
||||
options PAX_JAIL_SUPPORT
|
||||
|
||||
# Additional built-in devices
|
||||
#device bwi
|
||||
device bwn
|
||||
#device rum
|
||||
#device run
|
||||
device u3g
|
||||
device uark
|
||||
#device uath
|
||||
device ucom
|
||||
device uftdi
|
||||
device umct
|
||||
device umodem
|
||||
#device upgt
|
||||
device uplcom
|
||||
#device ural
|
||||
#device urtw
|
||||
device usb
|
||||
device uvisor
|
||||
device uvscom
|
||||
#device zyd
|
|
@ -1,36 +0,0 @@
|
|||
include RPI2
|
||||
|
||||
ident SMP-RPI2
|
||||
|
||||
# Remove to build a debug kernel:
|
||||
nomakeoptions DEBUG
|
||||
|
||||
options DDB
|
||||
options GEOM_BDE
|
||||
options GEOM_ELI
|
||||
options GEOM_MIRROR
|
||||
options GEOM_UZIP
|
||||
options IPFIREWALL_DEFAULT_TO_ACCEPT
|
||||
options IPFIREWALL_VERBOSE
|
||||
options IPSTEALTH
|
||||
options MROUTING
|
||||
options PPS_SYNC
|
||||
options TCP_SIGNATURE
|
||||
|
||||
# Wireless features
|
||||
device wlan_acl
|
||||
device wlan_xauth
|
||||
|
||||
# Not all architectures have a consistent GENERIC
|
||||
device netmap
|
||||
|
||||
# HardenedBSD goodies
|
||||
options PAX
|
||||
options PAX_ASLR
|
||||
options PAX_HARDENING
|
||||
options PAX_SEGVGUARD
|
||||
options PAX_INSECURE_MODE
|
||||
options PAX_CONTROL_ACL
|
||||
options PAX_CONTROL_ACL_OVERRIDE_SUPPORT
|
||||
options PAX_CONTROL_EXTATTR
|
||||
options PAX_JAIL_SUPPORT
|
|
@ -14,6 +14,34 @@ arm_hook()
|
|||
{
|
||||
loader_conf_fixup ${1}
|
||||
|
||||
cat > ${1}/tmp/arm.xml << EOF
|
||||
<use_mfs_tmp/>
|
||||
<use_mfs_var/>
|
||||
<serialspeed>${PRODUCT_COMSPEED}</serialspeed>
|
||||
<primaryconsole>video</primaryconsole>
|
||||
<secondaryconsole>serial</secondaryconsole>
|
||||
EOF
|
||||
sed -i '' -e "/<system>/r ${1}/tmp/arm.xml" ${1}${CONFIG_XML}
|
||||
rm ${1}/tmp/arm.xml
|
||||
|
||||
sed -i '' -e '/<rrd>/,/<\/rrd>/d' ${1}${CONFIG_XML}
|
||||
|
||||
echo "-S${PRODUCT_COMSPEED} -D" > ${1}/boot.config
|
||||
|
||||
cat >> ${1}/boot/loader.conf << EOF
|
||||
beastie_disable="YES"
|
||||
verbose_loading="YES"
|
||||
comconsole_speed="${PRODUCT_COMSPEED}"
|
||||
console="comconsole,vidconsole"
|
||||
boot_multicons="YES"
|
||||
boot_serial="YES"
|
||||
usb_load="YES"
|
||||
ugen_load="YES"
|
||||
uhid_load="YES"
|
||||
ukbd_load="YES"
|
||||
umass_load="YES"
|
||||
EOF
|
||||
|
||||
sed -I '' -e "/<tunable>hw\.uart\.console</{" -e \
|
||||
"n;s/>default</></" -e "}" ${1}${CONFIG_XML}
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# for generic ARM64 machine
|
||||
# such as qemu & ESXi virtual machines
|
||||
|
||||
export MAKE_ARGS_DEV="
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/aarch64-unknown-freebsd${SRCREVISION}/bin
|
||||
"
|
||||
|
||||
export PRODUCT_KERNEL=SMP-ARM
|
||||
export PRODUCT_TARGET=arm64
|
||||
export PRODUCT_ARCH=aarch64
|
||||
export PRODUCT_WANTS="aarch64-binutils qemu-user-static"
|
|
@ -3,15 +3,15 @@
|
|||
# http://www.banana-pi.org/r1.html
|
||||
|
||||
export MAKE_ARGS_DEV="
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/arm-gnueabi-freebsd11.2/bin
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/arm-gnueabi-freebsd${SRCREVISION}/bin
|
||||
UBLDR_LOADADDR=0x42000000
|
||||
"
|
||||
|
||||
export PRODUCT_KERNEL=SMP-ARM
|
||||
export PRODUCT_TARGET=arm
|
||||
export PRODUCT_ARCH=armv6
|
||||
export PRODUCT_WANTS="arm-gnueabi-binutils qemu-user-static u-boot-bananapi"
|
||||
export PRODUCT_ARCH=armv7
|
||||
export PRODUCT_WANTS="arm-none-eabi-binutils qemu-user-static u-boot-bananapi"
|
||||
|
||||
export ARM_FAT_SIZE="32m -b 1m"
|
||||
export ARM_UBOOT_DIR="/usr/local/share/u-boot/u-boot-bananapi"
|
||||
|
||||
arm_install_uboot()
|
||||
|
@ -21,5 +21,5 @@ arm_install_uboot()
|
|||
arm_mount
|
||||
cp ${ARM_UBOOT_DIR}/boot.scr ${STAGEDIR}/boot/msdos
|
||||
cp -p ${STAGEDIR}/boot/ubldr.bin ${STAGEDIR}/boot/msdos
|
||||
ln ${STAGEDIR}/boot/dtb/bananapi.dtb ${STAGEDIR}/boot/dtb/sun7i-a20-bananapi.dtb
|
||||
cp -pr ${STAGEDIR}/boot/dtb ${STAGEDIR}/boot/msdos
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
# https://www.solid-run.com/marvell-armada-family/clearfog/
|
||||
|
||||
export MAKE_ARGS_DEV="
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/arm-gnueabi-freebsd${SRCREVISION}/bin
|
||||
UBLDR_LOADADDR=0x900000
|
||||
"
|
||||
|
||||
export PRODUCT_KERNEL=SMP-ARM
|
||||
export PRODUCT_TARGET=arm
|
||||
export PRODUCT_ARCH=armv7
|
||||
export PRODUCT_WANTS="arm-none-eabi-binutils qemu-user-static u-boot-clearfog"
|
||||
|
||||
export ARM_UBOOT_DIR="/usr/local/share/u-boot/u-boot-clearfog"
|
||||
|
||||
arm_install_uboot()
|
||||
{
|
||||
arm_unmount
|
||||
dd if=${ARM_UBOOT_DIR}/u-boot-spl.kwb of=/dev/${DEV} bs=512 seek=1 conv=sync
|
||||
arm_mount
|
||||
cp ${ARM_UBOOT_DIR}/boot.scr ${STAGEDIR}/boot/msdos
|
||||
cp -p ${STAGEDIR}/boot/ubldr.bin ${STAGEDIR}/boot/msdos
|
||||
cp -pr ${STAGEDIR}/boot/dtb ${STAGEDIR}/boot/msdos
|
||||
}
|
|
@ -1,13 +1,14 @@
|
|||
# https://www.raspberrypi.org/products/raspberry-pi-2-model-b/
|
||||
|
||||
export MAKE_ARGS_DEV="
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/arm-gnueabi-freebsd11.2/bin
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/arm-gnueabi-freebsd${SRCREVISION}/bin
|
||||
UBLDR_LOADADDR=0x2000000
|
||||
"
|
||||
|
||||
export PRODUCT_KERNEL=SMP-ARM
|
||||
export PRODUCT_TARGET=arm
|
||||
export PRODUCT_ARCH=armv6
|
||||
export PRODUCT_WANTS="arm-gnueabi-binutils qemu-user-static rpi-firmware u-boot-rpi2"
|
||||
export PRODUCT_ARCH=armv7
|
||||
export PRODUCT_WANTS="arm-none-eabi-binutils qemu-user-static rpi-firmware u-boot-rpi2"
|
||||
|
||||
export ARM_FIRMWARE_DIR="/usr/local/share/rpi-firmware"
|
||||
export ARM_UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi2"
|
||||
|
@ -24,5 +25,5 @@ arm_install_uboot()
|
|||
mkdir -p ${STAGEDIR}/boot/msdos/overlays
|
||||
cp -p ${ARM_FIRMWARE_DIR}/overlays/mmc.dtbo ${STAGEDIR}/boot/msdos/overlays
|
||||
cp -p ${STAGEDIR}/boot/ubldr.bin ${STAGEDIR}/boot/msdos/ubldr.bin
|
||||
cp -p ${STAGEDIR}/boot/dtb/rpi2.dtb ${STAGEDIR}/boot/msdos/rpi2.dtb
|
||||
cp -pr ${STAGEDIR}/boot/dtb ${STAGEDIR}/boot/msdos
|
||||
}
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
# https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
|
||||
# https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/
|
||||
|
||||
export MAKE_ARGS_DEV="
|
||||
CROSS_BINUTILS_PREFIX=/usr/local/aarch64-unknown-freebsd${SRCREVISION}/bin
|
||||
UBLDR_LOADADDR=0x42000000
|
||||
"
|
||||
|
||||
export PRODUCT_KERNEL=SMP-ARM
|
||||
export PRODUCT_TARGET=arm64
|
||||
export PRODUCT_ARCH=aarch64
|
||||
export PRODUCT_WANTS="aarch64-binutils qemu-user-static u-boot-rpi3 rpi-firmware"
|
||||
|
||||
export ARM_FIRMWARE_DIR="/usr/local/share/rpi-firmware"
|
||||
export ARM_UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi3"
|
||||
|
||||
arm_install_uboot()
|
||||
{
|
||||
cp -p ${ARM_UBOOT_DIR}/README ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_UBOOT_DIR}/u-boot.bin ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/armstub8*.bin ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/bootcode.bin ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/fixup* ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/LICENCE.broadcom ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/start* ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/config*.txt ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/bcm2710-rpi-3-b*.dtb ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/bcm2711-rpi-4*.dtb ${STAGEDIR}/boot/msdos
|
||||
cp -p ${ARM_FIRMWARE_DIR}/bcm271*-rpi-cm*.dtb ${STAGEDIR}/boot/msdos
|
||||
cp -pr ${ARM_FIRMWARE_DIR}/overlays ${STAGEDIR}/boot/msdos/overlays
|
||||
cp -pr ${STAGEDIR}/boot/dtb ${STAGEDIR}/boot/msdos/dtb
|
||||
}
|
Loading…
Reference in New Issue