Message ID | 20231129172615.1683565-11-dario.binacchi@amarulasolutions.com |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Add support for AM62x-SK HS-FS devices | expand |
Le mer. 29 nov. 2023 à 18:28, Dario Binacchi < dario.binacchi@amarulasolutions.com> a écrit : > The 2023.10 version of U-Boot for the am62x-sk board has introduced two > major changes: > - The device tree k3-am625-sk.dtb is no longer searched in /boot, but in > /boot/dtb/ti. Hence, the disabling of BR2_LINUX_KERNEL_INSTALL_TARGET > and the use of extlinux.conf for the proper loading of the device tree. > Furthermore, the parameter BR2_ROOTFS_POST_SCRIPT_ARGS was used to > auto-generate the extlinux.conf file so that developers can change the > kernel loading options by modifying the .config. > - The use of binman for building images. This application uses several > Python modules that must be enabled in their host variant. > > Tested on SK-AM62B-P1. > > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > --- > board/ti/am62x-sk/genimage.cfg | 7 ++++- > board/ti/am62x-sk/post-build.sh | 49 +++++++++++++++++++++++++++++++++ > board/ti/am62x-sk/post-image.sh | 5 ++++ > configs/ti_am62x_sk_defconfig | 17 +++++++++--- > 4 files changed, 73 insertions(+), 5 deletions(-) > create mode 100755 board/ti/am62x-sk/post-build.sh > create mode 100755 board/ti/am62x-sk/post-image.sh > > diff --git a/board/ti/am62x-sk/genimage.cfg > b/board/ti/am62x-sk/genimage.cfg > index 26304fe98f99..398209f4d831 100644 > --- a/board/ti/am62x-sk/genimage.cfg > +++ b/board/ti/am62x-sk/genimage.cfg > @@ -4,10 +4,15 @@ image boot.vfat { > "tiboot3.bin", > "tispl.bin", > "u-boot.img", > + "k3-am625-sk.dtb", > + "Image" > + } > + file extlinux/extlinux.conf { > + image = extlinux.conf > } > } > > - size = 16M > + size = 64M > } > > image sdcard.img { > diff --git a/board/ti/am62x-sk/post-build.sh > b/board/ti/am62x-sk/post-build.sh > new file mode 100755 > index 000000000000..0f1f98ef217a > --- /dev/null > +++ b/board/ti/am62x-sk/post-build.sh > @@ -0,0 +1,49 @@ > +#!/bin/sh -x > + > +# genimage will need to find the extlinux.conf > +# in the binaries directory > + > +die() { > + cat <<EOF >&2 > +Error: $@ > + > +Usage: ${0} -c <console> -r <root> [-x <extra-args>] > +EOF > + exit 1 > +} > + > +o='c:r:x:' > +O='console:,root:,extra-args:' > +opts="$(getopt -n "${0##*/}" -o "${o}" -l "${O}" -- "${@}")" > +eval set -- "${opts}" > +while [ ${#} -gt 0 ]; do > + case "${1}" in > + (-c|--console) > + CONSOLE="${2}"; shift 2 > + ;; > + (-r|--root) > + ROOT="${2}"; shift 2 > + ;; > + (-x|--extra-args) > + EXTRA_ARGS="${2}"; shift 2 > + ;; > + (--) > + shift 1; break > + ;; > + esac > +done > + > +[ -n "${CONSOLE}" ] || die "Missing argument" > +[ -n "${ROOT}" ] || die "Missing argument" > +append="console=${CONSOLE} root=${ROOT} rw rootfstype=ext4 rootwait" > +if [ -n "${EXTRA_ARGS}" ]; then > + append="${append} ${EXTRA_ARGS}" > +fi > + > +mkdir -p "${BINARIES_DIR}" > +cat <<-__HEADER_EOF > "${BINARIES_DIR}/extlinux.conf" > + label am62x-sk-buildroot > + kernel /Image > + fdtdir / > + append ${append} > + __HEADER_EOF > diff --git a/board/ti/am62x-sk/post-image.sh > b/board/ti/am62x-sk/post-image.sh > new file mode 100755 > index 000000000000..34f732c091ad > --- /dev/null > +++ b/board/ti/am62x-sk/post-image.sh > @@ -0,0 +1,5 @@ > +#!/bin/sh -x > + > +BOARD_DIR="$(dirname "$0")" > + > +support/scripts/genimage.sh -c "${BOARD_DIR}/genimage.cfg" > diff --git a/configs/ti_am62x_sk_defconfig b/configs/ti_am62x_sk_defconfig > index b98a68ff153f..9e4df5e8b2ed 100644 > --- a/configs/ti_am62x_sk_defconfig > +++ b/configs/ti_am62x_sk_defconfig > @@ -1,11 +1,11 @@ > BR2_aarch64=y > -BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" > -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am62x-sk/genimage.cfg" > +BR2_ROOTFS_POST_BUILD_SCRIPT="board/ti/am62x-sk/post-build.sh" > +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/ti/am62x-sk/post-image.sh" > +BR2_ROOTFS_POST_SCRIPT_ARGS="-c ttyS2,115200n8 -r PARTUUID=00000000-02 -x > earlycon=ns16550a,mmio32,0x02800000" > BR2_LINUX_KERNEL=y > BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y > BR2_LINUX_KERNEL_DTS_SUPPORT=y > BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am625-sk" > -BR2_LINUX_KERNEL_INSTALL_TARGET=y > BR2_PACKAGE_LINUX_FIRMWARE=y > BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y > BR2_TARGET_ROOTFS_EXT2=y > @@ -23,13 +23,16 @@ BR2_TARGET_TI_K3_IMAGE_GEN=y > BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X=y > BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_GP=y > BR2_TARGET_TI_K3_R5_LOADER=y > +BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION=y > +BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE="2023.10" > BR2_TARGET_TI_K3_R5_LOADER_BOARD_DEFCONFIG="am62x_evm_r5" > BR2_TARGET_UBOOT=y > BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y > BR2_TARGET_UBOOT_CUSTOM_VERSION=y > -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10" > +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2023.10" > BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am62x_evm_a53" > BR2_TARGET_UBOOT_NEEDS_DTC=y > +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y > BR2_TARGET_UBOOT_NEEDS_OPENSSL=y > BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y > BR2_TARGET_UBOOT_NEEDS_TI_K3_DM=y > @@ -41,3 +44,9 @@ > BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="TEE=$(BINARIES_DIR)/tee-pager_v2.bin" > BR2_PACKAGE_HOST_DOSFSTOOLS=y > BR2_PACKAGE_HOST_GENIMAGE=y > BR2_PACKAGE_HOST_MTOOLS=y > +BR2_PACKAGE_HOST_PYTHON_ATTRS=y > +BR2_PACKAGE_HOST_PYTHON_JSONSCHEMA=y > +BR2_PACKAGE_HOST_PYTHON_JSONSCHEMA_SPECIFICATIONS=y > +BR2_PACKAGE_HOST_PYTHON_PYYAML=y > +BR2_PACKAGE_HOST_PYTHON_REFERENCING=y > +BR2_PACKAGE_HOST_PYTHON_RPDS_PY=y > as mentioned in previous patches, all these host python packages are used by binman, so they could be selected in boot/ti-k3-r5-loader/Config.in instead of here in configs/ti_am62x_sk_defconfig François > -- > 2.43.0 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot >
diff --git a/board/ti/am62x-sk/genimage.cfg b/board/ti/am62x-sk/genimage.cfg index 26304fe98f99..398209f4d831 100644 --- a/board/ti/am62x-sk/genimage.cfg +++ b/board/ti/am62x-sk/genimage.cfg @@ -4,10 +4,15 @@ image boot.vfat { "tiboot3.bin", "tispl.bin", "u-boot.img", + "k3-am625-sk.dtb", + "Image" + } + file extlinux/extlinux.conf { + image = extlinux.conf } } - size = 16M + size = 64M } image sdcard.img { diff --git a/board/ti/am62x-sk/post-build.sh b/board/ti/am62x-sk/post-build.sh new file mode 100755 index 000000000000..0f1f98ef217a --- /dev/null +++ b/board/ti/am62x-sk/post-build.sh @@ -0,0 +1,49 @@ +#!/bin/sh -x + +# genimage will need to find the extlinux.conf +# in the binaries directory + +die() { + cat <<EOF >&2 +Error: $@ + +Usage: ${0} -c <console> -r <root> [-x <extra-args>] +EOF + exit 1 +} + +o='c:r:x:' +O='console:,root:,extra-args:' +opts="$(getopt -n "${0##*/}" -o "${o}" -l "${O}" -- "${@}")" +eval set -- "${opts}" +while [ ${#} -gt 0 ]; do + case "${1}" in + (-c|--console) + CONSOLE="${2}"; shift 2 + ;; + (-r|--root) + ROOT="${2}"; shift 2 + ;; + (-x|--extra-args) + EXTRA_ARGS="${2}"; shift 2 + ;; + (--) + shift 1; break + ;; + esac +done + +[ -n "${CONSOLE}" ] || die "Missing argument" +[ -n "${ROOT}" ] || die "Missing argument" +append="console=${CONSOLE} root=${ROOT} rw rootfstype=ext4 rootwait" +if [ -n "${EXTRA_ARGS}" ]; then + append="${append} ${EXTRA_ARGS}" +fi + +mkdir -p "${BINARIES_DIR}" +cat <<-__HEADER_EOF > "${BINARIES_DIR}/extlinux.conf" + label am62x-sk-buildroot + kernel /Image + fdtdir / + append ${append} + __HEADER_EOF diff --git a/board/ti/am62x-sk/post-image.sh b/board/ti/am62x-sk/post-image.sh new file mode 100755 index 000000000000..34f732c091ad --- /dev/null +++ b/board/ti/am62x-sk/post-image.sh @@ -0,0 +1,5 @@ +#!/bin/sh -x + +BOARD_DIR="$(dirname "$0")" + +support/scripts/genimage.sh -c "${BOARD_DIR}/genimage.cfg" diff --git a/configs/ti_am62x_sk_defconfig b/configs/ti_am62x_sk_defconfig index b98a68ff153f..9e4df5e8b2ed 100644 --- a/configs/ti_am62x_sk_defconfig +++ b/configs/ti_am62x_sk_defconfig @@ -1,11 +1,11 @@ BR2_aarch64=y -BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am62x-sk/genimage.cfg" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/ti/am62x-sk/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/ti/am62x-sk/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c ttyS2,115200n8 -r PARTUUID=00000000-02 -x earlycon=ns16550a,mmio32,0x02800000" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am625-sk" -BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y BR2_TARGET_ROOTFS_EXT2=y @@ -23,13 +23,16 @@ BR2_TARGET_TI_K3_IMAGE_GEN=y BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X=y BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_GP=y BR2_TARGET_TI_K3_R5_LOADER=y +BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION=y +BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE="2023.10" BR2_TARGET_TI_K3_R5_LOADER_BOARD_DEFCONFIG="am62x_evm_r5" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2023.10" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am62x_evm_a53" BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y BR2_TARGET_UBOOT_NEEDS_OPENSSL=y BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y BR2_TARGET_UBOOT_NEEDS_TI_K3_DM=y @@ -41,3 +44,9 @@ BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="TEE=$(BINARIES_DIR)/tee-pager_v2.bin" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_PYTHON_ATTRS=y +BR2_PACKAGE_HOST_PYTHON_JSONSCHEMA=y +BR2_PACKAGE_HOST_PYTHON_JSONSCHEMA_SPECIFICATIONS=y +BR2_PACKAGE_HOST_PYTHON_PYYAML=y +BR2_PACKAGE_HOST_PYTHON_REFERENCING=y +BR2_PACKAGE_HOST_PYTHON_RPDS_PY=y
The 2023.10 version of U-Boot for the am62x-sk board has introduced two major changes: - The device tree k3-am625-sk.dtb is no longer searched in /boot, but in /boot/dtb/ti. Hence, the disabling of BR2_LINUX_KERNEL_INSTALL_TARGET and the use of extlinux.conf for the proper loading of the device tree. Furthermore, the parameter BR2_ROOTFS_POST_SCRIPT_ARGS was used to auto-generate the extlinux.conf file so that developers can change the kernel loading options by modifying the .config. - The use of binman for building images. This application uses several Python modules that must be enabled in their host variant. Tested on SK-AM62B-P1. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> --- board/ti/am62x-sk/genimage.cfg | 7 ++++- board/ti/am62x-sk/post-build.sh | 49 +++++++++++++++++++++++++++++++++ board/ti/am62x-sk/post-image.sh | 5 ++++ configs/ti_am62x_sk_defconfig | 17 +++++++++--- 4 files changed, 73 insertions(+), 5 deletions(-) create mode 100755 board/ti/am62x-sk/post-build.sh create mode 100755 board/ti/am62x-sk/post-image.sh