Index: release/arm64/BOARDS.conf =================================================================== --- /dev/null +++ release/arm64/BOARDS.conf @@ -0,0 +1,150 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +EMBEDDED_TARGET_ARCH="aarch64" +EMBEDDED_TARGET="arm64" +EMBEDDEDBUILD=1 + +FAT_SIZE="54m -b 1m" +FAT_TYPE="16" +IMAGE_SIZE="2560M" +KERNEL="GENERIC" +MD_ARGS="-x 63 -y 255" +NODOC=1 +PART_SCHEME="MBR" + +export BOARDNAMES="" + +## PINE64-LTS +export BOARDNAMES="${BOARDNAMES} PINE64-LTS" +EMBEDDEDPORTS="${EMBEDDEDPORTS} sysutils/u-boot-pine64-lts" +PINE64_FDT_OVERLAYS="sun50i-a64-sid,sun50i-a64-ths,sun50i-a64-timer,sun50i-a64-opp" + +PINE64_LTS_install_uboot() { + UBOOT_DIR="/usr/local/share/u-boot/u-boot-pine64-lts" + UBOOT_FILES="u-boot-sunxi-with-spl.bin" + chroot ${CHROOTDIR} dd if=${UBOOT_DIR}/${UBOOT_FILES} \ + of=/dev/${mddev} bs=1k seek=8 conv=sync + + return 0 +} + +PINE64_LTS_do_quirk() { +} + +## PINE64 +export BOARDNAMES="${BOARDNAMES} PINE64" +EMBEDDEDPORTS="${EMBEDDEDPORTS} sysutils/u-boot-pine64" +PINE64_FDT_OVERLAYS="sun50i-a64-sid,sun50i-a64-ths,sun50i-a64-timer,sun50i-a64-opp" + +PINE64_install_uboot() { + UBOOT_DIR="/usr/local/share/u-boot/u-boot-pine64" + UBOOT_FILES="u-boot-sunxi-with-spl.bin" + chroot ${CHROOTDIR} dd if=${UBOOT_DIR}/${UBOOT_FILES} \ + of=/dev/${mddev} bs=1k seek=8 conv=sync + + return 0 +} + +PINE64_do_quirk() { +} + +## PINEBOOK +export BOARDNAMES="${BOARDNAMES} PINEBOOK" +EMBEDDEDPORTS="${EMBEDDEDPORTS} sysutils/u-boot-pinebook" +PINEBOOK_FDT_OVERLAYS="sun50i-a64-sid,sun50i-a64-ths,sun50i-a64-timer,sun50i-a64-opp" + +PINEBOOK_install_uboot() { + UBOOT_DIR="/usr/local/share/u-boot/u-boot-pinebook" + UBOOT_FILES="u-boot-sunxi-with-spl.bin" + chroot ${CHROOTDIR} dd if=${UBOOT_DIR}/${UBOOT_FILES} \ + of=/dev/${mddev} bs=1k seek=8 conv=sync + + return 0 +} + +PINEBOOK_do_quirk() { + echo '# Enable quirk for trackpad' \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf + echo 'usb_quirk_load=YES' \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf + echo 'ums_load=YES' \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf + echo 'hw.usb.quirk="0x258a 0x000c 0x0000 0xffff UQ_CFG_INDEX=1"' \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf + # We want EFIFB but there is no node and so we cannot know + # which regulator is used for powering lcd/hdmi + echo 'hw.regulator.disable_unused=0' \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf +} + + +## RPI3 +export BOARDNAMES="${BOARDNAMES} RPI3" +EMBEDDEDPORTS="${EMBEDDEDPORTS} sysutils/u-boot-rpi3 sysutils/rpi-firmware" +RPI3_DTB_DIR="/usr/local/share/rpi-firmware" +RPI3_DTB="bcm2710-rpi-3-b.dtb bcm2710-rpi-3-b-plus.dtb" +RPI3_OL_DIR="${RPI3_DTB_DIR}/overlays" +RPI3_OVERLAYS="mmc.dtbo pwm.dtbo pi3-disable-bt.dtbo" + +RPI3_install_uboot() { + UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi3" + UBOOT_FILES="README u-boot.bin" + DTB_FILES="armstub8.bin bootcode.bin fixup_cd.dat \ + fixup_db.dat fixup_x.dat fixup.dat LICENCE.broadcom \ + start_cd.elf start_db.elf start_x.elf start.elf ${RPI3_DTB}" + FATMOUNT="${DESTDIR%${KERNEL}}fat" + chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" + chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} + for _UF in ${UBOOT_FILES}; do + chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \ + ${FATMOUNT}/${_UF} + done + for _DF in ${DTB_FILES}; do + chroot ${CHROOTDIR} cp -p ${RPI3_DTB_DIR}/${_DF} \ + ${FATMOUNT}/${_DF} + done + chroot ${CHROOTDIR} cp -p ${RPI3_DTB_DIR}/config_rpi3.txt \ + ${FATMOUNT}/config.txt + chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/overlays + for _OL in ${RPI3_OVERLAYS}; do + chroot ${CHROOTDIR} cp -p ${RPI3_OL_DIR}/${_OL} \ + ${FATMOUNT}/overlays/${_OL} + done + + sync + umount_loop ${CHROOTDIR}/${FATMOUNT} + chroot ${CHROOTDIR} rmdir ${FATMOUNT} + + return 0 +} + +RPI3_do_quirk() { +} + +## override functions +arm_setup_fdt_overlays() { + eval _fdt_overlays="${BOARDNAME}_FDT_OVERLAYS" + + if [ -z "${_fdt_overlays}" ]; then + return + fi + + echo '# DTB OVERLAYS' \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf + echo "fdt_overlays=\"${_fdt_overlays}\"" \ + >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf +} + +arm_install_uboot() { + __prefix=`echo ${BOARDNAME} | tr '[a-z\-]' '[A-Z_]'` + eval ${__prefix}_install_uboot +} + +arm_do_quirk() { + __prefix=`echo ${BOARDNAME} | tr '[a-z\-]' '[A-Z_]'` + eval ${__prefix}_do_quirk +} + Index: release/release.sh =================================================================== --- release/release.sh +++ release/release.sh @@ -148,6 +148,9 @@ WITH_COMPRESSED_IMAGES= NODOC=yes case ${EMBEDDED_TARGET}:${EMBEDDED_TARGET_ARCH} in + arm64:aarch64) + chroot_build_release_cmd="chroot_arm64_build_release" + ;; arm:arm*|arm64:aarch64) chroot_build_release_cmd="chroot_arm_build_release" ;; @@ -298,7 +301,7 @@ if [ ! -z "${EMBEDDEDPORTS}" ]; then _OSVERSION=$(chroot ${CHROOTDIR} /usr/bin/uname -U) REVISION=$(chroot ${CHROOTDIR} make -C /usr/src/release -V REVISION) - BRANCH=$(chroot ${CHROOTDIR} make -C /usr/src/release -V BRANCH) + export BRANCH=$(chroot ${CHROOTDIR} make -C /usr/src/release -V BRANCH) PBUILD_FLAGS="OSVERSION=${_OSVERSION} BATCH=yes" PBUILD_FLAGS="${PBUILD_FLAGS} UNAME_r=${UNAME_r}" PBUILD_FLAGS="${PBUILD_FLAGS} OSREL=${REVISION}" @@ -409,15 +412,42 @@ mv ${IMGBASE} ${CHROOTDIR}/${OBJDIR}/${OSRELEASE}-${BOARDNAME}.img chroot ${CHROOTDIR} mkdir -p /R chroot ${CHROOTDIR} cp -p ${OBJDIR}/${OSRELEASE}-${BOARDNAME}.img \ - /R/${OSRELEASE}-${BOARDNAME}.img - chroot ${CHROOTDIR} xz -T ${XZ_THREADS} /R/${OSRELEASE}-${BOARDNAME}.img + /R/${OSRELEASE}-${BOARDNAME}${SNAPSHOT}.img + chroot ${CHROOTDIR} xz -T ${XZ_THREADS} /R/${OSRELEASE}-${BOARDNAME}${SNAPSHOT}.img cd ${CHROOTDIR}/R && sha512 ${OSRELEASE}* \ - > CHECKSUM.SHA512 + > ${OSRELEASE}-${BOARDNAME}${SNAPSHOT}.CHECKSUM.SHA512 cd ${CHROOTDIR}/R && sha256 ${OSRELEASE}* \ - > CHECKSUM.SHA256 + > ${OSRELEASE}-${BOARDNAME}${SNAPSHOT}.CHECKSUM.SHA256 return 0 } # chroot_arm_build_release() + +# chroot_arm64_build_release(): Create arm64 SD card image. +chroot_arm64_build_release() { + if [ "X${BOARDNAMES}" == "X" ]; then + BOARDNAMES="${BOARDNAME}" + fi + + if [ "X${BUILDDATE}" != "X" ]; then + SNAPSHOT="-${BUILDDATE}" + + if [ -d ${CHROOTDIR}/usr/src/.svn ]; then + REVISION="svn-$(eval chroot ${CHROOTDIR} svnlite info /usr/src | grep '^Revision: ' | awk '{ print $2 }')" + fi + + if [ "X${REVISION}" != "X" ]; then + SNAPSHOT="${SNAPSHOT}-${REVISION}" + fi + fi + + for BOARDNAME in ${BOARDNAMES} + do + export BOARDNAME + chroot_arm_build_release + done + + return 0 +} # chroot_arm64_build_release() # main(): Start here. main() {