mirror of https://github.com/armbian/build.git
k3: Factor out all K3 common configuration into k3_common.inc
Vendors using TI K3 devices may use kernels downstream from the TI vendor kernel and U-Boot. To make this easier factor out from k3.conf all other configuration that would be common to any kernel and U-Boot used. Signed-off-by: Andrew Davis <afd@ti.com>
This commit is contained in:
parent
1c045c1360
commit
e6e746d3a4
|
|
@ -0,0 +1,100 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Copyright (c) 2013-2023 Igor Pecovnik, igor@armbian.com
|
||||
#
|
||||
# This file is a part of the Armbian Build Framework
|
||||
# https://github.com/armbian/build/
|
||||
#
|
||||
|
||||
declare -g ARCH="arm64"
|
||||
declare -g OVERLAY_DIR="/boot/dtb/ti/overlay"
|
||||
|
||||
declare -g ATFSOURCE="https://github.com/TexasInstruments/arm-trusted-firmware"
|
||||
|
||||
declare -g BOOTSCRIPT="boot-k3.cmd:uEnv.txt"
|
||||
declare -g SPD_OPTEED="SPD=opteed"
|
||||
|
||||
declare -g INSTALL_HEADERS="yes"
|
||||
|
||||
declare -g TI_PACKAGES=()
|
||||
if [[ "${CC33XX_SUPPORT}" == "yes" ]] ; then
|
||||
if [[ "${RELEASE}" == "trixie" || "${RELEASE}" == "noble" ]] ; then
|
||||
TI_PACKAGES+=("cc33xx-fw" "cc33xx-target-scripts" "cc33conf" "cc33calibrator")
|
||||
fi
|
||||
fi
|
||||
|
||||
enable_extension "ti-debpkgs"
|
||||
enable_extension "apa"
|
||||
|
||||
ATF_PLAT="k3"
|
||||
ATF_TARGET_MAP="PLAT=$ATF_PLAT TARGET_BOARD=$ATF_BOARD ${SPD_OPTEED} ${ATF_K3_USART_OFFSET} bl31;;build/$ATF_PLAT/$ATF_BOARD/release/bl31.bin:bl31.bin"
|
||||
|
||||
UBOOT_TARGET_MAP="BL31=bl31.bin TEE=${SRC}/cache/sources/optee-os/out/arm-plat-k3/core/tee-raw.bin BINMAN_INDIRS=${SRC}/cache/sources/ti-linux-firmware all;;tiboot3.bin ${SYSFW_FILE:+sysfw.itb} tispl.bin u-boot.img"
|
||||
|
||||
# To match what our current SDK produces
|
||||
BOOT_FS_LABEL="boot"
|
||||
ROOT_FS_LABEL="root"
|
||||
|
||||
function add_host_dependencies__k3_python3_dep() {
|
||||
display_alert "Preparing K3 U-Boot host-side dependencies" "${EXTENSION}" "info"
|
||||
declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} python3-yaml python3-jsonschema yamllint python3-cryptography python3-pyelftools python3-setuptools"
|
||||
}
|
||||
|
||||
function compile_k3_bootgen() {
|
||||
# Source code checkout
|
||||
(fetch_from_repo "https://github.com/TexasInstruments/ti-linux-firmware" "ti-linux-firmware" ${TI_LINUX_FIRMWARE_BRANCH})
|
||||
|
||||
pushd ${SRC}/cache/sources/u-boot-worktree/${BOOTDIR}/${BOOTBRANCH##*:} || exit
|
||||
|
||||
run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm O=build-r5 ${TIBOOT3_BOOTCONFIG}
|
||||
run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm O=build-r5 BINMAN_INDIRS=${SRC}/cache/sources/ti-linux-firmware
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
function compile_k3_optee() {
|
||||
(fetch_from_repo "https://github.com/OP-TEE/optee_os.git" "optee-os" ${OPTEE_BRANCH})
|
||||
pushd ${SRC}/cache/sources/optee-os || exit
|
||||
run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- CFG_ARM64_core=y PLATFORM=${OPTEE_PLATFORM} ${OPTEE_ARGS}
|
||||
popd
|
||||
}
|
||||
|
||||
function pre_config_uboot_target__build_first_stage() {
|
||||
# Compile first stage bootloader
|
||||
compile_k3_optee
|
||||
compile_k3_bootgen
|
||||
|
||||
cp ${SRC}/cache/sources/u-boot-worktree/${BOOTDIR}/${BOOTBRANCH##*:}/build-r5/${TIBOOT3_FILE} tiboot3.bin
|
||||
cp ${SRC}/cache/sources/u-boot-worktree/${BOOTDIR}/${BOOTBRANCH##*:}/build-r5/${SYSFW_FILE} sysfw.itb || true
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__update_uboot_names() {
|
||||
cp ${TISPL_FILE} tispl.bin || true
|
||||
cp ${UBOOT_FILE} u-boot.img || true
|
||||
}
|
||||
|
||||
function pre_prepare_partitions() {
|
||||
# Filesystem must fill partition regardless of alignment
|
||||
mkopts[fat]='-a'
|
||||
}
|
||||
|
||||
function post_create_partitions() {
|
||||
display_alert "Setting boot partition flags on" "${SDCARD}.raw" "debug"
|
||||
|
||||
# ROM is very particular about boot flags
|
||||
run_host_command_logged parted "${SDCARD}".raw set 1 boot on
|
||||
run_host_command_logged parted "${SDCARD}".raw set 1 bls_boot off
|
||||
}
|
||||
|
||||
function format_partitions() {
|
||||
# ROM is very particular about partition IDs
|
||||
run_host_command_logged sfdisk --part-type ${LOOP} 1 e
|
||||
}
|
||||
|
||||
function write_uboot_platform() {
|
||||
cp $1/tiboot3.bin ${MOUNT}/boot
|
||||
cp $1/sysfw.itb ${MOUNT}/boot || true
|
||||
cp $1/tispl.bin ${MOUNT}/boot
|
||||
cp $1/u-boot.img ${MOUNT}/boot
|
||||
}
|
||||
|
|
@ -7,29 +7,12 @@
|
|||
# https://github.com/armbian/build/
|
||||
#
|
||||
|
||||
declare -g ARCH="arm64"
|
||||
source "${BASH_SOURCE%/*}/include/k3_common.inc"
|
||||
|
||||
declare -g LINUXFAMILY="k3"
|
||||
declare -g OVERLAY_DIR="/boot/dtb/ti/overlay"
|
||||
|
||||
declare -g KERNELSOURCE="https://github.com/TexasInstruments/ti-linux-kernel"
|
||||
declare -g ATFSOURCE="https://github.com/TexasInstruments/arm-trusted-firmware"
|
||||
declare -g BOOTSOURCE="https://github.com/TexasInstruments/ti-u-boot"
|
||||
|
||||
declare -g BOOTSCRIPT="boot-k3.cmd:uEnv.txt"
|
||||
declare -g SPD_OPTEED="SPD=opteed"
|
||||
|
||||
declare -g INSTALL_HEADERS="yes"
|
||||
|
||||
declare -g TI_PACKAGES=()
|
||||
if [[ "${CC33XX_SUPPORT}" == "yes" ]] ; then
|
||||
if [[ "${RELEASE}" == "trixie" || "${RELEASE}" == "noble" ]] ; then
|
||||
TI_PACKAGES+=("cc33xx-fw" "cc33xx-target-scripts" "cc33conf" "cc33calibrator")
|
||||
fi
|
||||
fi
|
||||
|
||||
enable_extension "ti-debpkgs"
|
||||
enable_extension "apa"
|
||||
|
||||
case "${BRANCH}" in
|
||||
|
||||
current | current-rt)
|
||||
|
|
@ -59,75 +42,3 @@ case "${BRANCH}" in
|
|||
;;
|
||||
|
||||
esac
|
||||
|
||||
ATF_PLAT="k3"
|
||||
ATF_TARGET_MAP="PLAT=$ATF_PLAT TARGET_BOARD=$ATF_BOARD ${SPD_OPTEED} ${ATF_K3_USART_OFFSET} bl31;;build/$ATF_PLAT/$ATF_BOARD/release/bl31.bin:bl31.bin"
|
||||
|
||||
UBOOT_TARGET_MAP="BL31=bl31.bin TEE=${SRC}/cache/sources/optee-os/out/arm-plat-k3/core/tee-raw.bin BINMAN_INDIRS=${SRC}/cache/sources/ti-linux-firmware all;;tiboot3.bin ${SYSFW_FILE:+sysfw.itb} tispl.bin u-boot.img"
|
||||
|
||||
# To match what our current SDK produces
|
||||
BOOT_FS_LABEL="boot"
|
||||
ROOT_FS_LABEL="root"
|
||||
|
||||
function add_host_dependencies__k3_python3_dep() {
|
||||
display_alert "Preparing K3 U-Boot host-side dependencies" "${EXTENSION}" "info"
|
||||
declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} python3-yaml python3-jsonschema yamllint python3-cryptography python3-pyelftools python3-setuptools"
|
||||
}
|
||||
|
||||
function compile_k3_bootgen() {
|
||||
# Source code checkout
|
||||
(fetch_from_repo "https://github.com/TexasInstruments/ti-linux-firmware" "ti-linux-firmware" ${TI_LINUX_FIRMWARE_BRANCH})
|
||||
|
||||
pushd ${SRC}/cache/sources/u-boot-worktree/${BOOTDIR}/${BOOTBRANCH##*:} || exit
|
||||
|
||||
run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm O=build-r5 ${TIBOOT3_BOOTCONFIG}
|
||||
run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm O=build-r5 BINMAN_INDIRS=${SRC}/cache/sources/ti-linux-firmware
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
function compile_k3_optee() {
|
||||
(fetch_from_repo "https://github.com/OP-TEE/optee_os.git" "optee-os" ${OPTEE_BRANCH})
|
||||
pushd ${SRC}/cache/sources/optee-os || exit
|
||||
run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- CFG_ARM64_core=y PLATFORM=${OPTEE_PLATFORM} ${OPTEE_ARGS}
|
||||
popd
|
||||
}
|
||||
|
||||
function pre_config_uboot_target__build_first_stage() {
|
||||
# Compile first stage bootloader
|
||||
compile_k3_optee
|
||||
compile_k3_bootgen
|
||||
|
||||
cp ${SRC}/cache/sources/u-boot-worktree/${BOOTDIR}/${BOOTBRANCH##*:}/build-r5/${TIBOOT3_FILE} tiboot3.bin
|
||||
cp ${SRC}/cache/sources/u-boot-worktree/${BOOTDIR}/${BOOTBRANCH##*:}/build-r5/${SYSFW_FILE} sysfw.itb || true
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__update_uboot_names() {
|
||||
cp ${TISPL_FILE} tispl.bin || true
|
||||
cp ${UBOOT_FILE} u-boot.img || true
|
||||
}
|
||||
|
||||
function pre_prepare_partitions() {
|
||||
# Filesystem must fill partition regardless of alignment
|
||||
mkopts[fat]='-a'
|
||||
}
|
||||
|
||||
function post_create_partitions() {
|
||||
display_alert "Setting boot partition flags on" "${SDCARD}.raw" "debug"
|
||||
|
||||
# ROM is very particular about boot flags
|
||||
run_host_command_logged parted "${SDCARD}".raw set 1 boot on
|
||||
run_host_command_logged parted "${SDCARD}".raw set 1 bls_boot off
|
||||
}
|
||||
|
||||
function format_partitions() {
|
||||
# ROM is very particular about partition IDs
|
||||
run_host_command_logged sfdisk --part-type ${LOOP} 1 e
|
||||
}
|
||||
|
||||
function write_uboot_platform() {
|
||||
cp $1/tiboot3.bin ${MOUNT}/boot
|
||||
cp $1/sysfw.itb ${MOUNT}/boot || true
|
||||
cp $1/tispl.bin ${MOUNT}/boot
|
||||
cp $1/u-boot.img ${MOUNT}/boot
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue