add support for TI's AM6X boards
v2 cover add support for TI's AM6X boards
The series applied the changes requested by Thomas Petazzoni and Arnout Vandecappelle to the previous patch for adding support to TI's AM6X boards ([1]). Specifically, it currently added support for the AM64x_sk board and the AM62x_sk board.
[1] http://lists.busybox.net/pipermail/buildroot/2022-July/647460.html
Changes in v2:
- Revert arm-gnu-toolchain back to version 10.x due to a bug. When the pre-packaged GCC was built, it could be targeting a newer x86_64 architecture than the processor being used.
- Add boot/ti-k3-r5-loader package that builds a separate U-Boot for the R5 cores on TI's K3 devices.
- Add boot/ti-k3-image-gen package that builds the full boot binary tiboot3.bin from the spl built from ti-k3-r5-loader.
- Add board/ti directory to include sdcard config and board information for AM64x_sk and AM62x_sk boards.
- Add the Buildroot defconfigs for AM64x_sk and AM62x_sk.
- Add to DEVELOPERS list.
Xuanhao Shi (4):
package/arm-gnu-toolchain: revert to version 10
boot/ti-k3-r5-loader: add new package
boot/ti-k3-image-gen: add new package
board/ti: add new boards
DEVELOPERS | 16 +++++++ board/ti/am62x_sk/genimage.cfg | 27 +++++++++++ board/ti/am62x_sk/readme.txt | 46 +++++++++++++++++++ board/ti/am64x_sk/genimage.cfg | 27 +++++++++++ board/ti/am64x_sk/readme.txt | 46 +++++++++++++++++++ boot/Config.in | 2 + boot/ti-k3-image-gen/Config.in | 24 ++++++++++ boot/ti-k3-image-gen/ti-k3-image-gen.hash | 2 + boot/ti-k3-image-gen/ti-k3-image-gen.mk | 33 +++++++++++++ boot/ti-k3-r5-loader/Config.in | 13 ++++++ boot/ti-k3-r5-loader/ti-k3-r5-loader.hash | 2 + boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 42 +++++++++++++++++ configs/am62x_sk_defconfig | 45 ++++++++++++++++++ configs/am64x_sk_defconfig | 45 ++++++++++++++++++ .../arm-gnu-toolchain/arm-gnu-toolchain.hash | 2 +- .../arm-gnu-toolchain/arm-gnu-toolchain.mk | 6 +-- 16 files changed, 374 insertions(+), 4 deletions(-) create mode 100644 board/ti/am62x_sk/genimage.cfg create mode 100644 board/ti/am62x_sk/readme.txt create mode 100644 board/ti/am64x_sk/genimage.cfg create mode 100644 board/ti/am64x_sk/readme.txt create mode 100644 boot/ti-k3-image-gen/Config.in create mode 100644 boot/ti-k3-image-gen/ti-k3-image-gen.hash create mode 100644 boot/ti-k3-image-gen/ti-k3-image-gen.mk create mode 100644 boot/ti-k3-r5-loader/Config.in create mode 100644 boot/ti-k3-r5-loader/ti-k3-r5-loader.hash create mode 100644 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk create mode 100644 configs/am62x_sk_defconfig create mode 100644 configs/am64x_sk_defconfig
Signature · 6 lines
2.17.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
PATCH v2 1/4 package/arm-gnu-toolchain: revert to version 10
Revert the toolchain to version 10.x because of bug in 11.x:
when the pre-packaged GCC was built, it could be targeting a newer x86_64 architecture than the processor being used. Confirmed fix will be implemented in the next release:
https://bugs.linaro.org/show_bug.cgi?id=5825#c19
--- package/arm-gnu-toolchain/arm-gnu-toolchain.hash | 2 +- package/arm-gnu-toolchain/arm-gnu-toolchain.mk | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-)
package/arm-gnu-toolchain/arm-gnu-toolchain.hash +1 -1
@@ -1,2 +1,2 @@ # Locally calculated -sha256 8c5acd5ae567c0100245b0556941c237369f210bceb196edfe5a2e7532c60326 gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz +sha256 97dbb4f019ad1650b732faffcc881689cedc14e2b7ee863d390e0a41ef16c9a3 gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
package/arm-gnu-toolchain/arm-gnu-toolchain.mk +3 -3
@@ -4,9 +4,9 @@ # ################################################################################ -ARM_GNU_TOOLCHAIN_VERSION = 11.2-2022.02 -ARM_GNU_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu/$(ARM_GNU_TOOLCHAIN_VERSION)/binrel/ -ARM_GNU_TOOLCHAIN_SOURCE = gcc-arm-$(ARM_GNU_TOOLCHAIN_VERSION)-x86_64-arm-none-eabi.tar.xz +ARM_GNU_TOOLCHAIN_VERSION = 10.3-2021.10 +ARM_GNU_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-rm/$(ARM_GNU_TOOLCHAIN_VERSION) +ARM_GNU_TOOLCHAIN_SOURCE = gcc-arm-none-eabi-$(ARM_GNU_TOOLCHAIN_VERSION)-x86_64-linux.tar.bz2 ARM_GNU_TOOLCHAIN_LICENSE = GPL-3.0+ HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR = $(HOST_DIR)/opt/gcc-arm-none-eabi
Signature · 6 lines
2.17.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 1/4] package/arm-gnu-toolchain: revert to version 10
Hi Xuanhao,
Quoted 5 lines · Xuanhao Shi
Revert the toolchain to version 10.x because of bug in 11.x:
when the pre-packaged GCC was built, it could be targeting a newerx86_64architecture than the processor being used. Confirmed fix will be implemented in the next release: >
https://bugs.linaro.org/show_bug.cgi?id=5825#c19
have you tried any possible work-around for this ^^^ bug? At the moment I don't see any other build failure using gcc-arm-11.2-2022.02-x86_64-arm-none-eabi, probably because every package that is built with it doesn't have float type in the code(I presume).
Does the gcc bug show up while building ti-k3-image-gen or ti-k3-r5-loader?
I'd prefer to find a work-around if possible rather than downgrading host-arm-gnu-toolchain, also because this would impact another package that depends on it:
arm-trusted-firmware
Please let me know, maybe I can help finding a work-around for that float ICE.
Best regards
Signature · 2 lines
Giulio Benetti Benetti Engineering sas
Quoted 21 lines
Signed-off-by Xuanhao Shi <[email protected]>--- package/arm-gnu-toolchain/arm-gnu-toolchain.hash | 2 +- package/arm-gnu-toolchain/arm-gnu-toolchain.mk | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-)package/arm-gnu-toolchain/arm-gnu-toolchain.hash +1
-1@@ -1,2 +1,2 @@ # Locally calculated -sha256 8c5acd5ae567c0100245b0556941c237369f210bceb196edfe5a2e7532c60326 gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz +sha256 97dbb4f019ad1650b732faffcc881689cedc14e2b7ee863d390e0a41ef16c9a3 gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2package/arm-gnu-toolchain/arm-gnu-toolchain.mk +0
-0@@ -4,9 +4,9 @@ # ################################################################################
package/arm-gnu-toolchain/arm-gnu-toolchain.mk line 12
Quoted 10 lines
package/arm-gnu-toolchain/arm-gnu-toolchain.mk +3
-3-ARM_GNU_TOOLCHAIN_VERSION = 11.2-2022.02 -ARM_GNU_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu/$(ARM_GNU_TOOLCHAIN_VERSION)/binrel/ -ARM_GNU_TOOLCHAIN_SOURCE = gcc-arm-$(ARM_GNU_TOOLCHAIN_VERSION)-x86_64-arm-none-eabi.tar.xz +ARM_GNU_TOOLCHAIN_VERSION = 10.3-2021.10 +ARM_GNU_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-rm/$(ARM_GNU_TOOLCHAIN_VERSION) +ARM_GNU_TOOLCHAIN_SOURCE = gcc-arm-none-eabi-$(ARM_GNU_TOOLCHAIN_VERSION)-x86_64-linux.tar.bz2 ARM_GNU_TOOLCHAIN_LICENSE = GPL-3.0+ HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR = $(HOST_DIR)/opt/gcc-arm-none-eabi
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 1/4] package/arm-gnu-toolchain: revert to version 10
Hello,
Quoted 5 lines · On Sun, 31 Jul 2022 02:28:49 +0200 Giulio Benetti…
have you tried any possible work-around for this ^^^ bug? At the moment I don't see any other build failure using gcc-arm-11.2-2022.02-x86_64-arm-none-eabi, probably because every package that is built with it doesn't have float type in the code(I presume).
The arm-gnu-toolchain package is not widely used. It's only a few specific ARM Trusted Firmware configurations that use it for the moment, therefore this package is never exercised in the autobuilders, and only by a few defconfigs.
Quoted 9 lines
Does the gcc bug show up while building ti-k3-image-gen or ti-k3-r5-loader?
I'd prefer to find a work-around if possible rather than downgrading host-arm-gnu-toolchain, also because this would impact another package that depends on it:
arm-trusted-firmwarePlease let me know, maybe I can help finding a work-around for that float ICE.
It's not an ICE. What happens is that this gcc toolchain has been compiled for a too recent x86-64 CPU core (the host binary of gcc). Therefore if you use this toolchain on a slightly too old x86-64 machine, it will break.
Reverting to 10.x is fine here: Linaro (who produces the toolchain) has acknowledged the problem, and will generate an updated 11.x toolchain at some point in the future.
Best regards,
Thomas
Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni via buildroot
AppliedRe: [Buildroot] [PATCH v2 1/4] package/arm-gnu-toolchain: revert to version 10
In reply to Xuanhao Shi via buildrootQuoted 11 lines · On Thu, 28 Jul 2022 11:40:03 -0500 Xuanhao Shi via buildroot…
Revert the toolchain to version 10.x because of bug in 11.x:
when the pre-packaged GCC was built, it could be targeting a newerx86_64architecture than the processor being used. Confirmed fix will be implemented in the next release:https://bugs.linaro.org/show_bug.cgi?id=5825#c19
Signed-off-by Xuanhao Shi <[email protected]>--- package/arm-gnu-toolchain/arm-gnu-toolchain.hash | 2 +- package/arm-gnu-toolchain/arm-gnu-toolchain.mk | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-)
Applied to master, thanks.
Thomas
Signature · 7 lines
Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
PATCH v2 2/4 boot/ti-k3-r5-loader: add new package
In reply to Xuanhao Shi via buildrootThis is a separate U-Boot package that would build the intermediate spl binary for the R5 core on TI's k3 boards. Usually, the resulting spl will be used for k3-image-gen to build the full R5 boot binary tiboot3.bin.
--- boot/Config.in | 1 + boot/ti-k3-r5-loader/Config.in | 13 +++++++ boot/ti-k3-r5-loader/ti-k3-r5-loader.hash | 2 ++ boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 42 +++++++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 boot/ti-k3-r5-loader/Config.in create mode 100644 boot/ti-k3-r5-loader/ti-k3-r5-loader.hash create mode 100644 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk
boot/Config.in +1 -0
@@ -22,6 +22,7 @@ source "boot/s500-bootloader/Config.in" source "boot/shim/Config.in" source "boot/sun20i-d1-spl/Config.in" source "boot/syslinux/Config.in" +source "boot/ti-k3-r5-loader/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in"
boot/ti-k3-r5-loader/Config.in new file +13 -0
@@ -0,0 +1,13 @@ +config BR2_TARGET_TI_K3_R5_LOADER + bool "ti-k3-r5-loader" + help + Separate U-Boot build for R5 cores on TI's k3 boards. + Usually used to build tiboot3.bin with k3-image-gen. + +config BR2_TARGET_TI_K3_R5_LOADER_BOARD + string "Board to configure for" + depends on BR2_TARGET_TI_K3_R5_LOADER + help + Specify the board to configure the bootloader for. + This should be the name of a board under board/ti + For example, "am64x_evm".
boot/ti-k3-r5-loader/ti-k3-r5-loader.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally computed: +sha256 6d69d5e4635cb3fa7852bf15f88ca342ef7740196e71961d3572deb58ba44bea u-boot-2022.10-rc1.tar.bz2
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +42 -0
42 lines not on this page · raw message
Signature · 6 lines
2.17.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 2/4] boot/ti-k3-r5-loader: add new package
Hi Xuanhao,
Quoted 3 lines · Xuanhao Shi
This is a separate U-Boot package that would build the intermediate spl binary for the R5 core on TI's k3 boards. Usually, the resulting spl will be used for k3-image-gen
...will be used by k3-image-gen ^^^
Quoted 34 lines
to build the full R5 boot binary tiboot3.bin.
Signed-off-by Xuanhao Shi <[email protected]>--- boot/Config.in | 1 + boot/ti-k3-r5-loader/Config.in | 13 +++++++ boot/ti-k3-r5-loader/ti-k3-r5-loader.hash | 2 ++ boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 42 +++++++++++++++++++++++ 4 files changed, 58 insertions(+)create mode 100644 boot/ti-k3-r5-loader/Config.in create mode 100644 boot/ti-k3-r5-loader/ti-k3-r5-loader.hash create mode 100644
boot/ti-k3-r5-loader/ti-k3-r5-loader.mkboot/Config.in +1
-0@@ -22,6 +22,7 @@ source "boot/s500-bootloader/Config.in" source "boot/shim/Config.in" source "boot/sun20i-d1-spl/Config.in" source "boot/syslinux/Config.in" +source "boot/ti-k3-r5-loader/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in"boot/ti-k3-r5-loader/Config.in new file +3
-0@@ -0,0 +1,13 @@ +config BR2_TARGET_TI_K3_R5_LOADER + bool "ti-k3-r5-loader" + help
boot/ti-k3-r5-loader/Config.in line 13
Quoted 10 lines
boot/ti-k3-r5-loader/Config.in new file +10
-0+ Separate U-Boot build for R5 cores on TI's k3 boards. + Usually used to build tiboot3.bin with k3-image-gen. + +config BR2_TARGET_TI_K3_R5_LOADER_BOARD + string "Board to configure for" + depends on BR2_TARGET_TI_K3_R5_LOADER + help + Specify the board to configure the bootloader for. + This should be the name of a board under board/ti + For example, "am64x_evm".
Here ^^^ I would substitute "config" with "choice", this way everything is easier from the user point of view. On patch 4/4 you're adding 2 boards, so I think it makes sense to add every possible choice(2 for the moment).
Quoted 14 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.hash new file +2
-0@@ -0,0 +1,2 @@ +# Locally computed: +sha256 6d69d5e4635cb3fa7852bf15f88ca342ef7740196e71961d3572deb58ba44bea u-boot-2022.10-rc1.tar.bz2boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +0
-0
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 7
Quoted 7 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +7
-0@@ -0,0 +1,42 @@ +################################################################################ +# +# ti-k3-r5-loader.mk +# +################################################################################ + +TI_K3_R5_LOADER_VERSION = 2022.10-rc1
-rc1 version is the possibly buggiest version you can pick. There are other 2 possible solutions:
1. use 2022.07 and backport all needed patches on a dedicated repository instead of using official u-boot repository
2. wait a bit for at least rc2/3(soon) and later when 2022.10 is released, bump it
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 17
Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +10
-0+TI_K3_R5_LOADER_SITE = https://ftp.denx.de/pub/u-boot +TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.bz2 +TI_K3_R5_LOADER_LICENSE = GPL-2.0+ +TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txt +TI_K3_R5_LOADER_CPE_ID_VENDOR = denx +TI_K3_R5_LOADER_CPE_ID_PRODUCT = u-boot +TI_K3_R5_LOADER_INSTALL_IMAGES = YES +TI_K3_R5_LOADER_DEPENDENCIES = \ + host-pkgconf \ + $(BR2_MAKE_HOST_DEPENDENCY) \
What is this ^^^ needed for?
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 20
Quoted 3 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +3
-0+ host-arm-gnu-toolchain + +TI_K3_R5_LOADER_MAKE = $(BR2_MAKE)
This ^^^ looks superflous, you can directly use $(BR2_MAKE) below
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 21
Quoted 1 line
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +1
-0+TI_K3_R5_LOADER_MAKE_ENV = $(TARGET_MAKE_ENV)
Same here ^^^
In general you'd need this only if you modify it later depending on other variables like:TI_K3_R5_LOADER_MAKE_ENV += blah blah
and so on
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 26
Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +5
-0+TI_K3_R5_LOADER_KCONFIG_DEPENDENCIES = \ + toolchain \ + $(BR2_MAKE_HOST_DEPENDENCY) \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY)
"toolchain" should imply all above _HOST_DEPENDENCY. But here you're using host-arm-gnu-toolchain, so toolchain shouldn't be needed, or yes?
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 28
Quoted 2 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +2
-0+ +TI_K3_R5_LOADER_BOARD = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_BOARD))
This ^^^ can be avoided too since you use it one line below with a suffix only
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 32
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+TI_K3_R5_LOADER_KCONFIG_DEFCONFIG = $(TI_K3_R5_LOADER_BOARD)_r5_defconfig +TI_K3_R5_LOADER_MAKE_OPTS += \ + CROSS_COMPILE=$(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)/bin/arm-none-eabi- \ + ARCH=arm
What is the reason why you need to use arm-gnu-toolchain to build u-boot SPL? Can you please explain it in commit log?
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 42
Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +10
-0+ +define TI_K3_R5_LOADER_BUILD_CMDS + $(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS) +endef + +define TI_K3_R5_LOADER_INSTALL_IMAGES_CMDS + cp $(@D)/spl/u-boot-spl.bin $(BINARIES_DIR)/r5-u-boot-spl.bin +endef + +$(eval $(kconfig-package))
Why do you use kconfig-package? You reimplement anyway BUILD_CMDS and INSTALL_IMAGES_CMDS, so generic-package should be fine.
Thanks for contributing!
Best regards
Signature · 6 lines
Giulio Benetti Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 2/4] boot/ti-k3-r5-loader: add new package
Hello,
Quoted 4 lines · On Sun, 31 Jul 2022 02:54:09 +0200 Giulio Benetti…
Quoted 4 lines
boot/ti-k3-r5-loader/Config.in new file +4
-0+config BR2_TARGET_TI_K3_R5_LOADER_BOARD + string "Board to configure for" + depends on BR2_TARGET_TI_K3_R5_LOADER + help
Quoted 8 lines
boot/ti-k3-r5-loader/Config.in line 13
Quoted 3 lines
boot/ti-k3-r5-loader/Config.in new file +3
-0+ Specify the board to configure the bootloader for. + This should be the name of a board under board/ti + For example, "am64x_evm".Here ^^^ I would substitute "config" with "choice", this way everything is easier from the user point of view. On patch 4/4 you're adding 2 boards, so I think it makes sense to add every possible choice(2 for the moment).
I am afraid I will disagree here. For this type of option, we definitely prefer to have a free-form string rather than an exhaustive list of possible options. See U-Boot/Linux/Barebox and other packages that have configurable defconfigs.
So please keep the string option.
Quoted 8 lines
Quoted 1 line
+TI_K3_R5_LOADER_VERSION = 2022.10-rc1
-rc1 version is the possibly buggiest version you can pick. There are other 2 possible solutions:
1. use 2022.07 and backport all needed patches on a dedicated repository instead of using official u-boot repository
2. wait a bit for at least rc2/3(soon) and later when 2022.10 is released, bump it
I'd say it's fine for the time being to have -rc1, with the assumption that as soon as 2022.10 is out, we bump to it. After all, this package is very specific to TI boards, so if this -rc1 has been tested as working in this particular context, that's fine.
Quoted 4 lines
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+TI_K3_R5_LOADER_SITE = https://ftp.denx.de/pub/u-boot +TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.bz2 +TI_K3_R5_LOADER_LICENSE = GPL-2.0+ +TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txt
Quoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 17
Quoted 6 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +6
-0+TI_K3_R5_LOADER_CPE_ID_VENDOR = denx +TI_K3_R5_LOADER_CPE_ID_PRODUCT = u-boot +TI_K3_R5_LOADER_INSTALL_IMAGES = YES +TI_K3_R5_LOADER_DEPENDENCIES = \ + host-pkgconf \ + $(BR2_MAKE_HOST_DEPENDENCY) \What is this ^^^ needed for?
I guess this is mainly because it's copy/pasted from uboot.mk, and the explanation is:
# u-boot 2020.01+ needs make 4.0+
Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 20
Quoted 3 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +3
-0+ host-arm-gnu-toolchain + +TI_K3_R5_LOADER_MAKE = $(BR2_MAKE)This ^^^ looks superflous, you can directly use $(BR2_MAKE) below
This is also modeled after uboot.mk, though I would agree with you.
Quoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 26
Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +5
-0+TI_K3_R5_LOADER_KCONFIG_DEPENDENCIES = \ + toolchain \ + $(BR2_MAKE_HOST_DEPENDENCY) \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY)"toolchain" should imply all above
_HOST_DEPENDENCY. But here you're using host-arm-gnu-toolchain, so toolchain shouldn't be needed, or yes?
Again, this is modeled after uboot.mk. But indeed, here the toolchain dependency does not make sense, since CROSS_COMPILE points to the toolchain installed by host-arm-gnu-toolchain. So here, we should replace "toolchain" by "host-arm-gnu-toolchain".
Quoted 4 lines
Quoted 1 line
+TI_K3_R5_LOADER_BOARD = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_BOARD))
This ^^^ can be avoided too since you use it one line below with a suffix only
I think it's fine, as it makes the following line more readable.
Quoted 7 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 32
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+TI_K3_R5_LOADER_KCONFIG_DEFCONFIG = $(TI_K3_R5_LOADER_BOARD)_r5_defconfig +TI_K3_R5_LOADER_MAKE_OPTS += \ + CROSS_COMPILE=$(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)/bin/arm-none-eabi- \ + ARCH=armWhat is the reason why you need to use arm-gnu-toolchain to build u-boot SPL? Can you please explain it in commit log?
This has been explained already in previous iterations of the patch series.
This package is about building a special U-Boot, which targets a Cortex-R5 core, that acts as a kind of "co-processor". Since the main processor is an ARM64 core, and an ARM64 toolchain can only be 64-bit code, we need a separate toolchain to be able to build ARM 32-bit code for the Cortex-R5 core.
Quoted 4 lines
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+define TI_K3_R5_LOADER_BUILD_CMDS + $(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS) +endef +
Quoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 42
Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +5
-0+define TI_K3_R5_LOADER_INSTALL_IMAGES_CMDS + cp $(@D)/spl/u-boot-spl.bin $(BINARIES_DIR)/r5-u-boot-spl.bin +endef + +$(eval $(kconfig-package))Why do you use kconfig-package? You reimplement anyway
BUILD_CMDSandINSTALL_IMAGES_CMDS, so generic-package should be fine.
kconfig-package is special, it does not implement BUILD_CMDS, INSTALL_TARGET_CMDS or INSTALL_IMAGES_CMDS. Look at uboot.mk, linux.mk, busybox.mk and others that use kconfig-package. kconfig-package only provides logic for the configuration step, with xxx-menuconfig, xxx-xconfig, xxx-savedefconfig targets and all, but implementing the BUILD_CMDS and others CMDS variables is left to the package .mk file.
Best regards,
Thomas
Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 2/4] boot/ti-k3-r5-loader: add new package
Hi Thomas,
Quoted 96 lines · Thomas Petazzoni via buildroot
Hello,
Quoted 4 lines · On Sun, 31 Jul 2022 02:54:09 +0200 Giulio Benetti…
Quoted 4 lines
boot/ti-k3-r5-loader/Config.in new file +4
-0+config BR2_TARGET_TI_K3_R5_LOADER_BOARD + string "Board to configure for" + depends on BR2_TARGET_TI_K3_R5_LOADER + helpQuoted 8 lines
boot/ti-k3-r5-loader/Config.in line 13
Quoted 3 lines
boot/ti-k3-r5-loader/Config.in new file +3
-0+ Specify the board to configure the bootloader for. + This should be the name of a board under board/ti + For example, "am64x_evm".Here ^^^ I would substitute "config" with "choice", this way everything is easier from the user point of view. On patch 4/4 you're adding 2 boards, so I think it makes sense to add every possible choice(2 for the moment).
I am afraid I will disagree here. For this type of option, we definitely prefer to have a free-form string rather than an exhaustive list of possible options. See U-Boot/Linux/Barebox and other packages that have configurable defconfigs.
So please keep the string option.
Quoted 8 lines
Quoted 1 line
+TI_K3_R5_LOADER_VERSION = 2022.10-rc1
-rc1 version is the possibly buggiest version you can pick. There are other 2 possible solutions:
1. use 2022.07 and backport all needed patches on a dedicated repository instead of using official u-boot repository
2. wait a bit for at least rc2/3(soon) and later when 2022.10 is released, bump itI'd say it's fine for the time being to have -rc1, with the assumption that as soon as 2022.10 is out, we bump to it. After all, this package is very specific to TI boards, so if this -rc1 has been tested as working in this particular context, that's fine.
Quoted 4 lines
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+TI_K3_R5_LOADER_SITE = https://ftp.denx.de/pub/u-boot +TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.bz2 +TI_K3_R5_LOADER_LICENSE = GPL-2.0+ +TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txtQuoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 17
Quoted 6 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +6
-0+TI_K3_R5_LOADER_CPE_ID_VENDOR = denx +TI_K3_R5_LOADER_CPE_ID_PRODUCT = u-boot +TI_K3_R5_LOADER_INSTALL_IMAGES = YES +TI_K3_R5_LOADER_DEPENDENCIES = \ + host-pkgconf \ + $(BR2_MAKE_HOST_DEPENDENCY) \What is this ^^^ needed for?
I guess this is mainly because it's copy/pasted from uboot.mk, and the explanation is:
# u-boot 2020.01+ needs make 4.0+Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 20
Quoted 3 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +3
-0+ host-arm-gnu-toolchain + +TI_K3_R5_LOADER_MAKE = $(BR2_MAKE)This ^^^ looks superflous, you can directly use $(BR2_MAKE) below
This is also modeled after uboot.mk, though I would agree with you.
Quoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 26
Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +5
-0+TI_K3_R5_LOADER_KCONFIG_DEPENDENCIES = \ + toolchain \ + $(BR2_MAKE_HOST_DEPENDENCY) \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY)"toolchain" should imply all above
_HOST_DEPENDENCY. But here you're using host-arm-gnu-toolchain, so toolchain shouldn't be needed, or yes?Again, this is modeled after uboot.mk. But indeed, here the toolchain dependency does not make sense, since
CROSS_COMPILEpoints to the toolchain installed by host-arm-gnu-toolchain. So here, we should replace "toolchain" by "host-arm-gnu-toolchain".Quoted 4 lines
Quoted 1 line
+TI_K3_R5_LOADER_BOARD = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_BOARD))
This ^^^ can be avoided too since you use it one line below with a suffix only
I think it's fine, as it makes the following line more readable.
Quoted 7 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 32
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+TI_K3_R5_LOADER_KCONFIG_DEFCONFIG = $(TI_K3_R5_LOADER_BOARD)_r5_defconfig +TI_K3_R5_LOADER_MAKE_OPTS += \ + CROSS_COMPILE=$(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)/bin/arm-none-eabi- \ + ARCH=armWhat is the reason why you need to use arm-gnu-toolchain to build u-boot SPL? Can you please explain it in commit log?
Quoted 8 lines
This has been explained already in previous iterations of the patch series.
This package is about building a special U-Boot, which targets a Cortex-R5 core, that acts as a kind of "co-processor". Since the main processor is an ARM64 core, and an ARM64 toolchain can only be 64-bit code, we need a separate toolchain to be able to build ARM 32-bit code for the Cortex-R5 core.
Oh, thank you for the explanation, I didn't go so in depth, now the entire situation changes. I had to go more in depth before reviewing.
Quoted 13 lines
Quoted 4 lines
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+define TI_K3_R5_LOADER_BUILD_CMDS + $(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS) +endef +Quoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 42
Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +5
-0+define TI_K3_R5_LOADER_INSTALL_IMAGES_CMDS + cp $(@D)/spl/u-boot-spl.bin $(BINARIES_DIR)/r5-u-boot-spl.bin +endef + +$(eval $(kconfig-package))Why do you use kconfig-package? You reimplement anyway
BUILD_CMDSandINSTALL_IMAGES_CMDS, so generic-package should be fine.
Quoted 6 lines
kconfig-package is special, it does not implement
BUILD_CMDS,INSTALL_TARGET_CMDSorINSTALL_IMAGES_CMDS. Look at uboot.mk, linux.mk, busybox.mk and others that use kconfig-package. kconfig-package only provides logic for the configuration step, with xxx-menuconfig, xxx-xconfig, xxx-savedefconfig targets and all, but implementing theBUILD_CMDSand others CMDS variables is left to the package .mk file.
Ah, so it fits perfectly for this case.
Thank you Thomas for explaining. I went too fast on reviewing.
Kind regards
Signature · 6 lines
Giulio Benetti CEO/CTO@Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 2/4] boot/ti-k3-r5-loader: add new package
In reply to Xuanhao Shi via buildrootHi Xuanhao, Anand, Thomas, All,
I've built with buildroot/utils/docker-run the 2 defconfigs with this package enabled and there is something missing, see below
Quoted 69 lines · Xuanhao Shi
This is a separate U-Boot package that would build the intermediate spl binary for the R5 core on TI's k3 boards. Usually, the resulting spl will be used for k3-image-gen to build the full R5 boot binary tiboot3.bin.
Signed-off-by Xuanhao Shi <[email protected]>--- boot/Config.in | 1 + boot/ti-k3-r5-loader/Config.in | 13 +++++++ boot/ti-k3-r5-loader/ti-k3-r5-loader.hash | 2 ++ boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 42 +++++++++++++++++++++++ 4 files changed, 58 insertions(+)create mode 100644 boot/ti-k3-r5-loader/Config.in create mode 100644 boot/ti-k3-r5-loader/ti-k3-r5-loader.hash create mode 100644
boot/ti-k3-r5-loader/ti-k3-r5-loader.mkboot/Config.in +1
-0@@ -22,6 +22,7 @@ source "boot/s500-bootloader/Config.in" source "boot/shim/Config.in" source "boot/sun20i-d1-spl/Config.in" source "boot/syslinux/Config.in" +source "boot/ti-k3-r5-loader/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in"boot/ti-k3-r5-loader/Config.in new file +13
-0@@ -0,0 +1,13 @@ +config BR2_TARGET_TI_K3_R5_LOADER + bool "ti-k3-r5-loader" + help + Separate U-Boot build for R5 cores on TI's k3 boards. + Usually used to build tiboot3.bin with k3-image-gen. + +config BR2_TARGET_TI_K3_R5_LOADER_BOARD + string "Board to configure for" + depends on BR2_TARGET_TI_K3_R5_LOADER + help + Specify the board to configure the bootloader for. + This should be the name of a board under board/ti + For example, "am64x_evm".boot/ti-k3-r5-loader/ti-k3-r5-loader.hash new file +2
-0@@ -0,0 +1,2 @@ +# Locally computed: +sha256 6d69d5e4635cb3fa7852bf15f88ca342ef7740196e71961d3572deb58ba44bea u-boot-2022.10-rc1.tar.bz2boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +8
-0@@ -0,0 +1,42 @@ +################################################################################ +# +# ti-k3-r5-loader.mk +# +################################################################################ + +TI_K3_R5_LOADER_VERSION = 2022.10-rc1 +TI_K3_R5_LOADER_SITE = https://ftp.denx.de/pub/u-boot
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 18
Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +10
-0+TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.bz2 +TI_K3_R5_LOADER_LICENSE = GPL-2.0+ +TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txt +TI_K3_R5_LOADER_CPE_ID_VENDOR = denx +TI_K3_R5_LOADER_CPE_ID_PRODUCT = u-boot +TI_K3_R5_LOADER_INSTALL_IMAGES = YES +TI_K3_R5_LOADER_DEPENDENCIES = \ + host-pkgconf \ + $(BR2_MAKE_HOST_DEPENDENCY) \ + host-arm-gnu-toolchain
host-openssl is required on this uboot version so please add it here ^^^
Quoted 4 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +4
-0+ +TI_K3_R5_LOADER_MAKE = $(BR2_MAKE) +TI_K3_R5_LOADER_MAKE_ENV = $(TARGET_MAKE_ENV) +TI_K3_R5_LOADER_KCONFIG_DEPENDENCIES = \
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 32
Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +10
-0+ toolchain \ + $(BR2_MAKE_HOST_DEPENDENCY) \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY) + +TI_K3_R5_LOADER_BOARD = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_BOARD)) +TI_K3_R5_LOADER_KCONFIG_DEFCONFIG = $(TI_K3_R5_LOADER_BOARD)_r5_defconfig +TI_K3_R5_LOADER_MAKE_OPTS += \ + CROSS_COMPILE=$(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)/bin/arm-none-eabi- \ + ARCH=arm
host-openssl is used to build host tools so here you need to pass to TI_K3_R5_LOADER_MAKE_OPTS also:
HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS)))" \
HOSTLDFLAGS="$(HOST_LDFLAGS)"
the same way u-boot already does
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 34
Quoted 2 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +2
-0+ +define TI_K3_R5_LOADER_BUILD_CMDS
Here you need:
$(TARGET_CONFIGURE_OPTS) \
while calling make, otherwise host bison and flex won't be found.
You have encountered these problems because you had bison, flex and openssl installed into your pc, but we need to test the worst case where hosts don't provide such utility, so Buildroot can build them.
This to reduce the initial dependencies for Buildroot.
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 42
Quoted 8 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk new file +8
-0+ $(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS) +endef + +define TI_K3_R5_LOADER_INSTALL_IMAGES_CMDS + cp $(@D)/spl/u-boot-spl.bin $(BINARIES_DIR)/r5-u-boot-spl.bin +endef + +$(eval $(kconfig-package))
Wait for V2 with the rest of things I've listed except what Thomas pointed.
Thank you!
Best regards
Signature · 6 lines
Giulio Benetti Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
PATCH v2 3/4 boot/ti-k3-image-gen: add new package
In reply to Xuanhao Shi via buildrootThis is the image generator that builds the full boot binary, tiboot3.bin, for the R5 core on TI's k3 devices.
This requires the R5 spl output from the ti-k3-r5-loader package.
https://git.ti.com/cgit/k3-image-gen/k3-image-gen
--- boot/Config.in | 1 + boot/ti-k3-image-gen/Config.in | 24 +++++++++++++++++ boot/ti-k3-image-gen/ti-k3-image-gen.hash | 2 ++ boot/ti-k3-image-gen/ti-k3-image-gen.mk | 33 +++++++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 boot/ti-k3-image-gen/Config.in create mode 100644 boot/ti-k3-image-gen/ti-k3-image-gen.hash create mode 100644 boot/ti-k3-image-gen/ti-k3-image-gen.mk
boot/Config.in +1 -0
@@ -22,6 +22,7 @@ source "boot/s500-bootloader/Config.in" source "boot/shim/Config.in" source "boot/sun20i-d1-spl/Config.in" source "boot/syslinux/Config.in" +source "boot/ti-k3-image-gen/Config.in" source "boot/ti-k3-r5-loader/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in"
boot/ti-k3-image-gen/Config.in new file +24 -0
@@ -0,0 +1,24 @@ +config BR2_TARGET_TI_K3_IMAGE_GEN + bool "ti-k3-image-gen" + select BR2_TARGET_TI_K3_R5_LOADER + help + Using TI's k3-image-gen to build a separate bare metal + boot binary from a separate spl. Currently supports + version 08.04.00.005 as default. + + https://git.ti.com/cgit/k3-image-gen/k3-image-gen/ + +config BR2_TARGET_TI_K3_IMAGE_GEN_SOC + string "SOC type for image gen" + depends on BR2_TARGET_TI_K3_IMAGE_GEN + help + The target SoC option for image gen. + For example, "am64x" for AM64X boards. + +config BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG + string "CONFIG type for image gen" + depends on BR2_TARGET_TI_K3_IMAGE_GEN + help + The board config option for image gen. + Usually "sk" or "evm". +
boot/ti-k3-image-gen/ti-k3-image-gen.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 e585dc868ada21ef3389159541d669b88bc406b453470e92da85d9222d271c96 k3-image-gen-08.04.00.005.tar.gz
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +33 -0
@@ -0,0 +1,33 @@ +################################################################################ +# +# ti-k3-image-gen +# +################################################################################ + +TI_K3_IMAGE_GEN_VERSION = 08.04.00.005 +TI_K3_IMAGE_GEN_SITE = https://git.ti.com/cgit/k3-image-gen/k3-image-gen/snapshot +TI_K3_IMAGE_GEN_SOURCE = k3-image-gen-$(TI_K3_IMAGE_GEN_VERSION).tar.gz +TI_K3_IMAGE_GEN_LICENSE = BSD-3-Clause +TI_K3_IMAGE_GEN_LICENSE_FILES = system-firmware-image-gen-1.0-manifest.html +TI_K3_IMAGE_GEN_INSTALL_IMAGES = YES +TI_K3_IMAGE_GEN_DEPENDENCIES = host-arm-gnu-toolchain ti-k3-r5-loader +TI_K3_IMAGE_GEN_MAKE = $(BR2_MAKE) +TI_K3_IMAGE_GEN_SOC = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SOC)) +TI_K3_IMAGE_GEN_CONFIG = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG)) +TI_K3_IMAGE_GEN_MAKE_OPTS = \ + SOC=$(TI_K3_IMAGE_GEN_SOC) \ + CONFIG=$(TI_K3_IMAGE_GEN_CONFIG) \ + CROSS_COMPILE=$(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)/bin/arm-none-eabi- \ + SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \ + O=$(BINARIES_DIR) \ + BIN_DIR=$(BINARIES_DIR) + +define TI_K3_IMAGE_GEN_BUILD_CMDS + $(TI_K3_IMAGE_GEN_MAKE) -C $(@D) $(TI_K3_IMAGE_GEN_MAKE_OPTS) +endef + +define TI_K3_IMAGE_GEN_INSTALL_IMAGES_CMDS + cp $(@D)/tiboot3.bin $(BINARIES_DIR) +endef + +$(eval $(generic-package))
Signature · 6 lines
2.17.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 3/4] boot/ti-k3-image-gen: add new package
Hi Xuanhao,
Quoted 34 lines · Xuanhao Shi
This is the image generator that builds the full boot binary, tiboot3.bin, for the R5 core on TI's k3 devices.
This requires the R5 spl output from the ti-k3-r5-loader package.https://git.ti.com/cgit/k3-image-gen/k3-image-gen
Signed-off-by Xuanhao Shi <[email protected]>--- boot/Config.in | 1 + boot/ti-k3-image-gen/Config.in | 24 +++++++++++++++++ boot/ti-k3-image-gen/ti-k3-image-gen.hash | 2 ++ boot/ti-k3-image-gen/ti-k3-image-gen.mk | 33 +++++++++++++++++++++++ 4 files changed, 60 insertions(+)create mode 100644 boot/ti-k3-image-gen/Config.in create mode 100644 boot/ti-k3-image-gen/ti-k3-image-gen.hash create mode 100644
boot/ti-k3-image-gen/ti-k3-image-gen.mkboot/Config.in +1
-0@@ -22,6 +22,7 @@ source "boot/s500-bootloader/Config.in" source "boot/shim/Config.in" source "boot/sun20i-d1-spl/Config.in" source "boot/syslinux/Config.in" +source "boot/ti-k3-image-gen/Config.in" source "boot/ti-k3-r5-loader/Config.in" source "boot/uboot/Config.in" source "boot/vexpress-firmware/Config.in"boot/ti-k3-image-gen/Config.in new file +0
-0
boot/ti-k3-image-gen/Config.in line 5
Quoted 5 lines
boot/ti-k3-image-gen/Config.in new file +5
-0@@ -0,0 +1,24 @@ +config BR2_TARGET_TI_K3_IMAGE_GEN + bool "ti-k3-image-gen" + select BR2_TARGET_TI_K3_R5_LOADER + help + Using TI's k3-image-gen to build a separate bare metal
s/Using/Use
boot/ti-k3-image-gen/Config.in line 16
Quoted 11 lines
boot/ti-k3-image-gen/Config.in new file +11
-0+ boot binary from a separate spl. Currently supports + version 08.04.00.005 as default. + + https://git.ti.com/cgit/k3-image-gen/k3-image-gen/ + +config BR2_TARGET_TI_K3_IMAGE_GEN_SOC + string "SOC type for image gen" + depends on BR2_TARGET_TI_K3_IMAGE_GEN + help + The target SoC option for image gen. + For example, "am64x" for AM64X boards.
As in previous patch I would add a "choice" instead of a "config"
boot/ti-k3-image-gen/Config.in line 23
Quoted 7 lines
boot/ti-k3-image-gen/Config.in new file +7
-0+ +config BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG + string "CONFIG type for image gen" + depends on BR2_TARGET_TI_K3_IMAGE_GEN + help + The board config option for image gen. + Usually "sk" or "evm".
Ditto
Quoted 18 lines
boot/ti-k3-image-gen/Config.in new file +1
-0+boot/ti-k3-image-gen/ti-k3-image-gen.hash new file +2
-0@@ -0,0 +1,2 @@ +# Locally calculated +sha256 e585dc868ada21ef3389159541d669b88bc406b453470e92da85d9222d271c96 k3-image-gen-08.04.00.005.tar.gzboot/ti-k3-image-gen/ti-k3-image-gen.mk new file +3
-0@@ -0,0 +1,33 @@ +################################################################################ +# +# ti-k3-image-gen
boot/ti-k3-image-gen/ti-k3-image-gen.mk line 13
Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +10
-0+# +################################################################################ + +TI_K3_IMAGE_GEN_VERSION = 08.04.00.005 +TI_K3_IMAGE_GEN_SITE = https://git.ti.com/cgit/k3-image-gen/k3-image-gen/snapshot +TI_K3_IMAGE_GEN_SOURCE = k3-image-gen-$(TI_K3_IMAGE_GEN_VERSION).tar.gz +TI_K3_IMAGE_GEN_LICENSE = BSD-3-Clause +TI_K3_IMAGE_GEN_LICENSE_FILES = system-firmware-image-gen-1.0-manifest.html +TI_K3_IMAGE_GEN_INSTALL_IMAGES = YES +TI_K3_IMAGE_GEN_DEPENDENCIES = host-arm-gnu-toolchain ti-k3-r5-loader
host-arm-gnu-toolchain is already a dependency of ti-k3-r5-loader so it should be already built a this point
boot/ti-k3-image-gen/ti-k3-image-gen.mk line 14
Quoted 1 line
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +1
-0+TI_K3_IMAGE_GEN_MAKE = $(BR2_MAKE)
Use $(BR2_MAKE) directly
Quoted 9 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +9
-0+TI_K3_IMAGE_GEN_SOC = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SOC)) +TI_K3_IMAGE_GEN_CONFIG = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG)) +TI_K3_IMAGE_GEN_MAKE_OPTS = \ + SOC=$(TI_K3_IMAGE_GEN_SOC) \ + CONFIG=$(TI_K3_IMAGE_GEN_CONFIG) \ + CROSS_COMPILE=$(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)/bin/arm-none-eabi- \ + SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \ + O=$(BINARIES_DIR) \ + BIN_DIR=$(BINARIES_DIR)
boot/ti-k3-image-gen/ti-k3-image-gen.mk line 33
Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +10
-0+ +define TI_K3_IMAGE_GEN_BUILD_CMDS + $(TI_K3_IMAGE_GEN_MAKE) -C $(@D) $(TI_K3_IMAGE_GEN_MAKE_OPTS) +endef + +define TI_K3_IMAGE_GEN_INSTALL_IMAGES_CMDS + cp $(@D)/tiboot3.bin $(BINARIES_DIR) +endef + +$(eval $(generic-package))
I didn't give a build to these patches so I'll give you more feedback but it would be very helpful if you already answer me to my various questions.
Thank you!
Best regards
Signature · 6 lines
Giulio Benetti Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 3/4] boot/ti-k3-image-gen: add new package
Hello,
Quoted 8 lines · On Sun, 31 Jul 2022 03:04:28 +0200 Giulio Benetti…
boot/ti-k3-image-gen/Config.in line 16
Quoted 6 lines
boot/ti-k3-image-gen/Config.in new file +6
-0+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC + string "SOC type for image gen" + depends on BR2_TARGET_TI_K3_IMAGE_GEN + help + The target SoC option for image gen. + For example, "am64x" for AM64X boards.As in previous patch I would add a "choice" instead of a "config"
As explained on a previous patch, it's fine to keep a free-form string here.
Quoted 8 lines
boot/ti-k3-image-gen/Config.in line 23
Quoted 6 lines
boot/ti-k3-image-gen/Config.in new file +6
-0+config BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG + string "CONFIG type for image gen" + depends on BR2_TARGET_TI_K3_IMAGE_GEN + help + The board config option for image gen. + Usually "sk" or "evm".Ditto
And here (and especially here actually, we clearly don't want to have an explicit list of all boards in Buildroot, it means that people creating their own boards wouldn't be able to use this package, as their board would not be listed here).
Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk line 13
Quoted 7 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +7
-0+TI_K3_IMAGE_GEN_VERSION = 08.04.00.005 +TI_K3_IMAGE_GEN_SITE = https://git.ti.com/cgit/k3-image-gen/k3-image-gen/snapshot +TI_K3_IMAGE_GEN_SOURCE = k3-image-gen-$(TI_K3_IMAGE_GEN_VERSION).tar.gz +TI_K3_IMAGE_GEN_LICENSE = BSD-3-Clause +TI_K3_IMAGE_GEN_LICENSE_FILES = system-firmware-image-gen-1.0-manifest.html +TI_K3_IMAGE_GEN_INSTALL_IMAGES = YES +TI_K3_IMAGE_GEN_DEPENDENCIES = host-arm-gnu-toolchain ti-k3-r5-loaderhost-arm-gnu-toolchain is already a dependency of ti-k3-r5-loader so it should be already built a this point
It seems that ti-k3-image-gen also uses this bare-metal toolchain directly, so it's fine and correct to have this dependency.
Best regards,
Thomas
Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
PATCH v2 4/4 board/ti: add new boards
In reply to Xuanhao Shi via buildrootAdds support for ti's am62x_sk board and am64x_sk board. Adds the configs for generating output sdcard image. Adds the defconfigs for am62x_sk and am64x_sk. Adds to DEVELOPERS.
--- DEVELOPERS | 16 ++++++++++++ board/ti/am62x_sk/genimage.cfg | 27 ++++++++++++++++++++ board/ti/am62x_sk/readme.txt | 46 ++++++++++++++++++++++++++++++++++ board/ti/am64x_sk/genimage.cfg | 27 ++++++++++++++++++++ board/ti/am64x_sk/readme.txt | 46 ++++++++++++++++++++++++++++++++++ configs/am62x_sk_defconfig | 45 +++++++++++++++++++++++++++++++++ configs/am64x_sk_defconfig | 45 +++++++++++++++++++++++++++++++++ 7 files changed, 252 insertions(+) create mode 100644 board/ti/am62x_sk/genimage.cfg create mode 100644 board/ti/am62x_sk/readme.txt create mode 100644 board/ti/am64x_sk/genimage.cfg create mode 100644 board/ti/am64x_sk/readme.txt create mode 100644 configs/am62x_sk_defconfig create mode 100644 configs/am64x_sk_defconfig
DEVELOPERS +16 -0
@@ -127,6 +127,14 @@ F: package/dcron/ F: package/libxmlrpc/ F: package/python-docopt/ +N: Anand Gadiyar <[email protected]> +F: board/ti/am62x_sk/ +F: board/ti/am64x_sk/ +F: boot/ti-k3-image-gen/ +F: boot/ti-k3-r5-loader/ +F: configs/am62x_sk_defconfig +F: configs/am64x_sk_defconfig + N: André Zwing <[email protected]> F: package/libkrb5/ F: package/openal/
@@ -3004,6 +3012,14 @@ F: package/python-pyusb/ N: Wojciech Niziński <[email protected]> F: package/fwup/ +N: Xuanhao Shi <[email protected]> +F: board/ti/am62x_sk/ +F: board/ti/am64x_sk/ +F: boot/ti-k3-image-gen/ +F: boot/ti-k3-r5-loader/ +F: configs/am62x_sk_defconfig +F: configs/am64x_sk_defconfig + N: Yair Ben Avraham <[email protected]> F: package/casync/ F: package/gloox/
board/ti/am62x_sk/genimage.cfg new file +27 -0
@@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "tiboot3.bin", + "tispl.bin", + "u-boot.img", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}
board/ti/am62x_sk/readme.txt new file +46 -0
46 lines not on this page · raw message
board/ti/am64x_sk/genimage.cfg new file +27 -0
@@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "tiboot3.bin", + "tispl.bin", + "u-boot.img", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}
board/ti/am64x_sk/readme.txt new file +46 -0
46 lines not on this page · raw message
configs/am62x_sk_defconfig new file +45 -0
45 lines not on this page · raw message
configs/am64x_sk_defconfig new file +45 -0
45 lines not on this page · raw message
Signature · 6 lines
2.17.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 4/4] board/ti: add new boards
Hi Xuanhao, Anand(sorry I didn't mention you before),
Quoted 1 line · Xuanhao Shi
Adds support for ti's
am62x_skboard andam64x_skboard.
Please split this patch into 2 patches, one for each board
Quoted 3 lines
Adds the configs for generating output sdcard image. Adds the defconfigs for
am62x_skandam64x_sk. Adds to DEVELOPERS.
Can you please add for the 2 upcoming board patches a description of the boards, which IOs they have, what they are meant for and an URL to the product? You can look at a git log of any other recent board commit.
Quoted 22 lines
Signed-off-by Xuanhao Shi <[email protected]>--- DEVELOPERS | 16 ++++++++++++ board/ti/am62x_sk/genimage.cfg | 27 ++++++++++++++++++++ board/ti/am62x_sk/readme.txt | 46 ++++++++++++++++++++++++++++++++++ board/ti/am64x_sk/genimage.cfg | 27 ++++++++++++++++++++ board/ti/am64x_sk/readme.txt | 46 ++++++++++++++++++++++++++++++++++ configs/am62x_sk_defconfig | 45 +++++++++++++++++++++++++++++++++ configs/am64x_sk_defconfig | 45 +++++++++++++++++++++++++++++++++ 7 files changed, 252 insertions(+)create mode 100644 board/ti/am62x_sk/genimage.cfg create mode 100644
board/ti/am62x_sk/readme.txtcreate mode 100644 board/ti/am64x_sk/genimage.cfg create mode 100644board/ti/am64x_sk/readme.txtcreate mode 100644 configs/am62x_sk_defconfig create mode 100644 configs/am64x_sk_defconfigDEVELOPERS +0
-0
DEVELOPERS F: package/dcron/ · line 134
Quoted 8 lines
DEVELOPERS +5
-0@@ -127,6 +127,14 @@ F: package/dcron/ F: package/libxmlrpc/ F: package/python-docopt/ +N: Anand Gadiyar <[email protected]> +F: board/ti/am62x_sk/ +F: board/ti/am64x_sk/ +F: boot/ti-k3-image-gen/ +F: boot/ti-k3-r5-loader/
The 2 lines above should be part of the previous patches for the 2 packages
Quoted 7 lines
DEVELOPERS +3
-0+F: configs/am62x_sk_defconfig +F: configs/am64x_sk_defconfig + N: André Zwing <[email protected]> F: package/libkrb5/ F: package/openal/
DEVELOPERS F: package/python-pyusb/ · line 3019
Quoted 8 lines
DEVELOPERS +5
-0@@ -3004,6 +3012,14 @@ F: package/python-pyusb/ N: Wojciech Niziński <[email protected]> F: package/fwup/ +N: Xuanhao Shi <[email protected]> +F: board/ti/am62x_sk/ +F: board/ti/am64x_sk/ +F: boot/ti-k3-image-gen/ +F: boot/ti-k3-r5-loader/
Ditto
Quoted 79 lines
DEVELOPERS +3
-0+F: configs/am62x_sk_defconfig +F: configs/am64x_sk_defconfig + N: Yair Ben Avraham <[email protected]> F: package/casync/ F: package/gloox/board/ti/am62x_sk/genimage.cfg new file +27
-0@@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "tiboot3.bin", + "tispl.bin", + "u-boot.img", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}board/ti/am62x_sk/readme.txt new file +34
-0@@ -0,0 +1,46 @@ +Texas Instuments AM62x Evaluation Modules + +Description +=========== + +These configurations will build a complete image and +device tree blobs for the the TI AM62x_sk board. + +How to build it +=============== + +Select the default configuration for the target: +$ make am62x_sk_defconfig + +Optional: modify the configuration: +$ make menuconfig + +Build: +$ make + +Result of the build: +=================== +output/images/ ++-- soc ++-- ti-connectivity ++-- bl31.bin ++-- boot.vfat ++-- Image ++-- k3-am625-sk.dtb ++-- r5-u-boot-spl.bin ++-- rootfs.ext2 ++-- rootfs.ext4 ++-- rootfs.tar ++-- sdcard.img
board/ti/am62x_sk/readme.txt line 44
Quoted 10 lines
board/ti/am62x_sk/readme.txt new file +10
-0++-- tee.bin ++-- tee-header_v2.bin ++-- tee-pageable_v2.bin ++-- tee-pager_v2.bin ++-- tiboot3.bin ++-- tispl.bin ++-- u-boot.img + +To copy the image file to the sdcard use dd: +$ dd if=output/images/sdcard.img of=/dev/XXX
s/XXX/sdX
board/ti/am62x_sk/readme.txt line 46
Quoted 2 lines
board/ti/am62x_sk/readme.txt new file +2
-0+ +
Do we need any special cable connection like USB or uart?
Quoted 75 lines
board/ti/am64x_sk/genimage.cfg new file +27
-0@@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "tiboot3.bin", + "tispl.bin", + "u-boot.img", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}board/ti/am64x_sk/readme.txt new file +36
-0@@ -0,0 +1,46 @@ +Texas Instuments AM64x Evaluation Modules + +Description +=========== + +These configurations will build a complete image and +device tree blobs for the the TI AM64x_sk board. + +How to build it +=============== + +Select the default configuration for the target: +$ make am64x_sk_defconfig + +Optional: modify the configuration: +$ make menuconfig + +Build: +$ make + +Result of the build: +=================== +output/images/ ++-- soc ++-- ti-connectivity ++-- bl31.bin ++-- boot.vfat ++-- Image ++-- k3-am642-sk.dtb ++-- r5-u-boot-spl.bin ++-- rootfs.ext2 ++-- rootfs.ext4 ++-- rootfs.tar ++-- sdcard.img ++-- tee.bin ++-- tee-header_v2.bin
board/ti/am64x_sk/readme.txt line 46
Quoted 10 lines
board/ti/am64x_sk/readme.txt new file +10
-0++-- tee-pageable_v2.bin ++-- tee-pager_v2.bin ++-- tiboot3.bin ++-- tispl.bin ++-- u-boot.img + +To copy the image file to the sdcard use dd: +$ dd if=output/images/sdcard.img of=/dev/XXX + +
Ditto
configs/am62x_sk_defconfig line 2
Quoted 8 lines
configs/am62x_sk_defconfig new file +2
-0@@ -0,0 +1,45 @@ +BR2_aarch64=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
Is this mandatory ^^^? Or can we let the user to choose the libc?
configs/am62x_sk_defconfig line 7
Quoted 5 lines
configs/am62x_sk_defconfig new file +5
-0+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am64x_sk/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc8"
We're very close to 5.19 release, so I ask you to send the final patches with 5.19
configs/am62x_sk_defconfig line 16
Quoted 9 lines
configs/am62x_sk_defconfig new file +9
-0+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 +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
Do we need such big rootfs? Usually 120M is the used default.
Quoted 18 lines
configs/am62x_sk_defconfig new file +18
-0+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="k3" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD="lite" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="SPD=opteed" +BR2_TARGET_OPTEE_OS=y +BR2_TARGET_OPTEE_OS_CUSTOM_GIT=y +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL="https://github.com/OP-TEE/optee_os.git" +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION="3.18.0" +BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y +BR2_TARGET_OPTEE_OS_PLATFORM="k3" +BR2_TARGET_TI_K3_IMAGE_GEN=y +BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am62x" +BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm" +BR2_TARGET_TI_K3_R5_LOADER_BOARD="am62x_evm" +BR2_TARGET_UBOOT=y
configs/am62x_sk_defconfig line 44
Quoted 10 lines
configs/am62x_sk_defconfig new file +10
-0+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10-rc1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am62x_evm_a53" +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="tispl.bin" +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="TEE=$(BINARIES_DIR)/tee-pager_v2.bin"
I don't know the boot-flow of this processor, so you need the SPL and then again another SPL and u-boot too?
Quoted 42 lines
configs/am62x_sk_defconfig new file +1
-0+BR2_PACKAGE_HOST_GENIMAGE=yconfigs/am64x_sk_defconfig new file +35
-0@@ -0,0 +1,45 @@ +BR2_aarch64=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am64x_sk/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc8" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am642-sk" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="256M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="k3" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD="lite" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="SPD=opteed" +BR2_TARGET_OPTEE_OS=y +BR2_TARGET_OPTEE_OS_CUSTOM_GIT=y +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL="https://github.com/OP-TEE/optee_os.git" +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION="3.18.0" +BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y +BR2_TARGET_OPTEE_OS_PLATFORM="k3" +BR2_TARGET_TI_K3_IMAGE_GEN=y +BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x" +BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm" +BR2_TARGET_TI_K3_R5_LOADER_BOARD="am64x_evm" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
configs/am64x_sk_defconfig line 45
Quoted 10 lines
configs/am64x_sk_defconfig new file +10
-0+BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10-rc1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am64x_evm_a53" +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="tispl.bin" +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="TEE=$(BINARIES_DIR)/tee-pager_v2.bin" +BR2_PACKAGE_HOST_GENIMAGE=y
For all this defconfig see above.
Thank you!
Best regards
Signature · 6 lines
Giulio Benetti Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 4/4] board/ti: add new boards
Hello Giulio
Quoted 2 lines · On Sun, 31 Jul 2022 03:15:17 +0200 Giulio Benetti…
I don't know the boot-flow of this processor, so you need the SPL and then again another SPL and u-boot too?
This was explained in previous iterations of the patch series, and to some extent in the commit log of PATCH 2/4 (though perhaps not very clearly).
This SoC is kind of special. It needs a U-Boot that runs on the Cortex-A cores, built ARM64. But it also needs a firmware running on a separate Cortex-R5 core, and it turns out that this firmware is also... U-Boot.
So indeed, we need to build two U-Boots: one for the ARM64 cores, one for the Cortex-R5 core. The U-Boot for the ARM64 cores is built using boot/uboot/, like for all platforms. The special U-Boot for Cortex-R5 is built using the boot/ti-k3-r5-loader package.
Best regards,
Thomas
Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 4/4] board/ti: add new boards
In reply to Xuanhao Shi via buildrootHi Xuanhao, Anand, Thomas, All,
Quoted 266 lines · Xuanhao Shi
Adds support for ti's
am62x_skboard andam64x_skboard. Adds the configs for generating output sdcard image. Adds the defconfigs foram62x_skandam64x_sk. Adds to DEVELOPERS.Signed-off-by Xuanhao Shi <[email protected]>--- DEVELOPERS | 16 ++++++++++++ board/ti/am62x_sk/genimage.cfg | 27 ++++++++++++++++++++ board/ti/am62x_sk/readme.txt | 46 ++++++++++++++++++++++++++++++++++ board/ti/am64x_sk/genimage.cfg | 27 ++++++++++++++++++++ board/ti/am64x_sk/readme.txt | 46 ++++++++++++++++++++++++++++++++++ configs/am62x_sk_defconfig | 45 +++++++++++++++++++++++++++++++++ configs/am64x_sk_defconfig | 45 +++++++++++++++++++++++++++++++++ 7 files changed, 252 insertions(+)create mode 100644 board/ti/am62x_sk/genimage.cfg create mode 100644
board/ti/am62x_sk/readme.txtcreate mode 100644 board/ti/am64x_sk/genimage.cfg create mode 100644board/ti/am64x_sk/readme.txtcreate mode 100644 configs/am62x_sk_defconfig create mode 100644 configs/am64x_sk_defconfigDEVELOPERS +16
-0@@ -127,6 +127,14 @@ F: package/dcron/ F: package/libxmlrpc/ F: package/python-docopt/ +N: Anand Gadiyar <[email protected]> +F: board/ti/am62x_sk/ +F: board/ti/am64x_sk/ +F: boot/ti-k3-image-gen/ +F: boot/ti-k3-r5-loader/ +F: configs/am62x_sk_defconfig +F: configs/am64x_sk_defconfig + N: André Zwing <[email protected]> F: package/libkrb5/ F: package/openal/@@ -3004,6 +3012,14 @@ F: package/python-pyusb/ N: Wojciech Niziński <[email protected]> F: package/fwup/ +N: Xuanhao Shi <[email protected]> +F: board/ti/am62x_sk/ +F: board/ti/am64x_sk/ +F: boot/ti-k3-image-gen/ +F: boot/ti-k3-r5-loader/ +F: configs/am62x_sk_defconfig +F: configs/am64x_sk_defconfig + N: Yair Ben Avraham <[email protected]> F: package/casync/ F: package/gloox/board/ti/am62x_sk/genimage.cfg new file +27
-0@@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "tiboot3.bin", + "tispl.bin", + "u-boot.img", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}board/ti/am62x_sk/readme.txt new file +46
-0@@ -0,0 +1,46 @@ +Texas Instuments AM62x Evaluation Modules + +Description +=========== + +These configurations will build a complete image and +device tree blobs for the the TI AM62x_sk board. + +How to build it +=============== + +Select the default configuration for the target: +$ make am62x_sk_defconfig + +Optional: modify the configuration: +$ make menuconfig + +Build: +$ make + +Result of the build: +=================== +output/images/ ++-- soc ++-- ti-connectivity ++-- bl31.bin ++-- boot.vfat ++-- Image ++-- k3-am625-sk.dtb ++-- r5-u-boot-spl.bin ++-- rootfs.ext2 ++-- rootfs.ext4 ++-- rootfs.tar ++-- sdcard.img ++-- tee.bin ++-- tee-header_v2.bin ++-- tee-pageable_v2.bin ++-- tee-pager_v2.bin ++-- tiboot3.bin ++-- tispl.bin ++-- u-boot.img + +To copy the image file to the sdcard use dd: +$ dd if=output/images/sdcard.img of=/dev/XXX + +board/ti/am64x_sk/genimage.cfg new file +27
-0@@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "tiboot3.bin", + "tispl.bin", + "u-boot.img", + } + } + + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}board/ti/am64x_sk/readme.txt new file +46
-0@@ -0,0 +1,46 @@ +Texas Instuments AM64x Evaluation Modules + +Description +=========== + +These configurations will build a complete image and +device tree blobs for the the TI AM64x_sk board. + +How to build it +=============== + +Select the default configuration for the target: +$ make am64x_sk_defconfig + +Optional: modify the configuration: +$ make menuconfig + +Build: +$ make + +Result of the build: +=================== +output/images/ ++-- soc ++-- ti-connectivity ++-- bl31.bin ++-- boot.vfat ++-- Image ++-- k3-am642-sk.dtb ++-- r5-u-boot-spl.bin ++-- rootfs.ext2 ++-- rootfs.ext4 ++-- rootfs.tar ++-- sdcard.img ++-- tee.bin ++-- tee-header_v2.bin ++-- tee-pageable_v2.bin ++-- tee-pager_v2.bin ++-- tiboot3.bin ++-- tispl.bin ++-- u-boot.img + +To copy the image file to the sdcard use dd: +$ dd if=output/images/sdcard.img of=/dev/XXX + +configs/am62x_sk_defconfig new file +34
-0@@ -0,0 +1,45 @@ +BR2_aarch64=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am64x_sk/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc8" +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 +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="256M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="k3" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD="lite" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="SPD=opteed" +BR2_TARGET_OPTEE_OS=y +BR2_TARGET_OPTEE_OS_CUSTOM_GIT=y +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL="https://github.com/OP-TEE/optee_os.git" +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION="3.18.0" +BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y +BR2_TARGET_OPTEE_OS_PLATFORM="k3" +BR2_TARGET_TI_K3_IMAGE_GEN=y +BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am62x" +BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm" +BR2_TARGET_TI_K3_R5_LOADER_BOARD="am62x_evm" +BR2_TARGET_UBOOT=y
configs/am62x_sk_defconfig line 44
Quoted 10 lines
configs/am62x_sk_defconfig new file +10
-0+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10-rc1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am62x_evm_a53" +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="tispl.bin" +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="TEE=$(BINARIES_DIR)/tee-pager_v2.bin"
Again using buildroot/utils/docker-run I've found you also need:
BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
The last one is not really needed if BR2_TARGET_TI_K3_IMAGE_GEN=y because it will install host-openssl, but if someone will disable it then host-openssl is required, so to be precise I would add it.
configs/am62x_sk_defconfig line 45
Quoted 1 line
configs/am62x_sk_defconfig new file +1
-0+BR2_PACKAGE_HOST_GENIMAGE=y
You also need:
BR2_PACKAGE_HOST_DOSFSTOOLS=y
for creating the vfat
and:
BR2_PACKAGE_HOST_MTOOLS=y
for mcopy
This way the image can be created correctly, indeed now I have the resulting images/sdcard.img
Quoted 40 lines
configs/am64x_sk_defconfig new file +34
-0@@ -0,0 +1,45 @@ +BR2_aarch64=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am64x_sk/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc8" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am642-sk" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="256M" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7.0" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="k3" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD="lite" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="SPD=opteed" +BR2_TARGET_OPTEE_OS=y +BR2_TARGET_OPTEE_OS_CUSTOM_GIT=y +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL="https://github.com/OP-TEE/optee_os.git" +BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION="3.18.0" +BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y +BR2_TARGET_OPTEE_OS_PLATFORM="k3" +BR2_TARGET_TI_K3_IMAGE_GEN=y +BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x" +BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm" +BR2_TARGET_TI_K3_R5_LOADER_BOARD="am64x_evm" +BR2_TARGET_UBOOT=y
configs/am64x_sk_defconfig line 44
Quoted 10 lines
configs/am64x_sk_defconfig new file +10
-0+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.10-rc1" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am64x_evm_a53" +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +# BR2_TARGET_UBOOT_FORMAT_BIN is not set +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="tispl.bin" +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="TEE=$(BINARIES_DIR)/tee-pager_v2.bin"
Same as previous defconfig, of course splitted into 2 patches 1 per board.
Also, please list the 2 options above in the order they are listed in uboot Config.in
configs/am64x_sk_defconfig line 45
Quoted 1 line
configs/am64x_sk_defconfig new file +1
-0+BR2_PACKAGE_HOST_GENIMAGE=y
Waiting for V2 with my previous comments and Thomas comments too of course
Thank you!
Best regards
Signature · 6 lines
Giulio Benetti Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Re: [Buildroot] [PATCH v2 4/4] board/ti: add new boards
Pardon
On 02/08/22 18:40, Giulio Benetti wrote:
[ SNIP ]
Quoted 3 lines
Waiting for V2 with my previous comments and Thomas comments too of course
s/V2/V3 for both patches.
Thank you
Best regards
Signature · 6 lines
Giulio Benetti CEO/CTO@Benetti Engineering sas _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot