Skip to contentSkip to conversation

add support for TI's AM64x and AM62x boards

PATCH Superseded Andreas Dannenberg via buildroot 5 participants 32 messages Jun 16, 2023 – Dec 13, 2023

v8 of 9 Superseded Latest is v9 →

lore
Share & tools
lore
#0 lore raw

v8 cover add support for TI's AM64x and AM62x boards

This series introduces support for TI's AM64x and AM62x SK boards.

The series was previously sent out by Xuanhao in August 2022 and was reviewed by Giulio Benetti up to v5 (Thanks!). It was then picked up by Anand who submitted v5 through v7 before work stalled late 2022.

I've since taken this over from Anand to drive this further due to some customer requests we had here at TI (which led to the creation of a temporary E2E FAQ document [1] to enable interested parties), and I would like to contribute those recent changes to upstream, because that is where the actual solution should reside.

This v8 series makes some major changes/additions on top of the existing v7 series to take into account the popularity of AM62 (so support is needed, including graphics) as well as "High Security" device variants, something Julien Olivain came across just a few days ago. It also is setup to be a current TI SDK v8.6 [2][3] production baseline-equivalent in terms of U-Boot/Kernel/OPTEE/ATF sources as well as all the different other device firmwares and tools (TIFS, DM, K3 Image Gen, GPU driver) that are part of the official TI SDK, this way establishing a known level of quality and feature-completeness. Since those different components also have dependencies on each other and cannot be randomly combined, the v8.6 baseline approach I've chosen also has some practical reasons. See change log below for the details.

Furthermore, the series addresses most review comments for v7. However since the scope has somewhat evolved and I reworked things quite a bit, please take the time to look at the already much-reviewed patches 'boot/ti-k3-image-gen: add new package' and 'board/ti/am64x_sk: add new board' a bit more closely again. I did carry over previous commit tags despite the changes I made, please accept my apologies if you think this was not appropriate because of the extra changes I introduced and let me know. I'm certainly motivated now that the development is active again to continue working this with all of you until things are in good shape.

As for future plans beyond this series, here's what I had in mind:

1) Migration to TI SDK v9.x baseline equivalent, once available. This will bring newer U-Boot 2023.04, Kernel v6.1, and matching GFX drivers. This should also eliminate the need for the boot/ti-k3-image-gen package as those tasks will then be taken care of by U-Boot/Binman moving forward. This migration will also improve the authenticated boot flow.

2) Migration to fully-upstream U-Boot, Kernel, and GFX driver sources once the open-source GFX driver is available (work in progress) which will eliminate the hard dependency on the Kernel version we have at the moment.

Changes in v8:
- extended to also include AM62 devices (somewhat similar device as AM64, but with graphics)
- added IMG Rogue graphics driver KM/UM packages supporting AM62 and other TI K3 platform devices
- uses U-Boot/Kernel/ATF/OPTEE and various device firmwares from TI's Processor SDK Linux v8.6 [2][3] to achieve a similar level of basic platform feature-completeness and quality as the official SDK
- supports SK-AM62B with AM62 HS-FS and SK-AM64B with AM64 HS-FS High Security device variants by default. The switch to HS-FS devices was made through follow-on commit to document in the Git history how this is done (also allowing somebody to unroll it for a quick test on a GP device). Note that this requires the TI_SECURE_DEV_PKG environmental variable to be defined at build time pointing to a valid core-secdev-k3 folder location, otherwise the build will fail.
- extended ti-k3-r5-loader package to allow for full build source customization
- extended the ti-k3-image-gen package to accommodate the different classes of device firmware types used on TI K3 SoC like AM62 (TIFS) vs. AM64 (TISCI). With this support any TI K3 device including AM65, AM68, AM69, J721E etc. should now be enabled by this package.
- extended the uboot package to allow building a Device Manager (DM) firmware into the U-Boot SPL image as required on certain TI K3 SoCs like AM62, AM62A, etc.
- incorporated Thomas Petazzoni's feedback into k3-image-gen. Also this package no longer downloads stuff during build (ugh!!), thanks to changes as proposed by François Perrad.
- incorporated some cleanup feedback on k3-image-gen from Julien Olivain such as missing hash on LICENSE file and a later image Generator Git tag is now used (that is matching the TISDK v8.6 baseline equivalent that is being implemented).
- improved wording/descriptions in the 'board/ti/am64x_sk: add new board' commit as suggested by Thomas Petazzoni. Did not make the change regarding explicitly specifying the Cortex-A53 core as it seems to be implied and is not emitted by 'make savedefconfig'. Also using a fixed version of OPTEE as per TI SDK v8.6 baseline addresses Thomas' the desire to build with a known-good version.

Changes in v7:
- changes per François Perrad's review comments

Changes in v6:
- rebased to latest next branch and retested
- updated u-boot and kernel to latest released versions as of today From Andrew's comments:
- added a new SOC_TYPE option for k3-image-gen, as requested by Andrew Davis in a review comment.
From Romain's comments:
- use "if" instead of "depends on" for sub-options
- move TI K3 R5 Loader defconfig selection to Kconfig
- use $(HOST_DIR) instead of $(HOST_ARM_GNU_TOOLCHAIN_INSTALL_DIR)
- Retain Xuanhao's gmail ID in the MAINTAINERs file, but drop his TI email from CC list as it will be inactive till he rejoins TI
- Add a plain-text license file into the k3-image-gen repository and use it instead of the HTML manifest file. Confirmed that this is still BSD-3-Clause license.
- Add comments in the ti-k3-image-gen.mk file for a couple of options

Changes in v5:
- None (resubmission of Xuanhao's series)

Changes in v4:
- rebased to latest master and retested
- dropped OPTEE CUSTOM* options as we don't need them.

Changes in v3:
- Fix boot/ti-k3-r5-loader package's build options and dependencies.
- Fix boot/ti-k3-image-gen package's config
- Add more details in board/ti/am64x_sk's readme
- Trim configs/am64x_sk's toolchain options and
fix uboot and genimage dependencies.
- Remove board/ti/am62x_sk and configs/am62x_sk for now due to some firmware dependency problems. Will be added back in the future.

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.

[1] https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1226815/faq-buildroot-support-for-sitara-am62x-am62ax-am64x-devices
[2] https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM64X/08.06.00.42
[3] https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM62X/08.06.00.42

Andreas Dannenberg (7):
boot/ti-k3-r5-loader: allow for full build source customization boot/uboot: add support for building the TI K3 DM into U-Boot board/ti/am62x_sk|am64x_sk: switch to TI SDK v8.6 sources board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants package/ti-rogue-km: new package
package/ti-rogue-um: new package configs/am62x_sk_defconfig: enable IMG Rogue graphics driver

Xuanhao Shi (3):
boot/ti-k3-image-gen: new package
board/ti/am64x_sk: add new board
board/ti/am62x_sk: add new board

 DEVELOPERS                                    |   10 +
 board/ti/am62x_sk/genimage.cfg                |   27 +
 board/ti/am62x_sk/readme.txt                  |   42 +
 .../ti/am62x_sk/ti_sdk_arm64_debug_defconfig  | 1991 +++++++++++++++++
 .../am62x_sk/ti_sdk_arm64_release_defconfig   | 1894 ++++++++++++++++
 board/ti/am64x_sk/genimage.cfg                |   27 +
 board/ti/am64x_sk/readme.txt                  |   42 +
 .../ti/am64x_sk/ti_sdk_arm64_debug_defconfig  | 1991 +++++++++++++++++
 .../am64x_sk/ti_sdk_arm64_release_defconfig   | 1894 ++++++++++++++++
 boot/Config.in                                |    1 +
 boot/ti-k3-image-gen/Config.in                |   55 +
 boot/ti-k3-image-gen/ti-k3-image-gen.hash     |   23 +
 boot/ti-k3-image-gen/ti-k3-image-gen.mk       |   71 +
 boot/ti-k3-r5-loader/Config.in                |   65 +-
 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk       |   28 +-
 boot/uboot/Config.in                          |   17 +
 boot/uboot/uboot.mk                           |   16 +
 configs/am62x_sk_defconfig                    |   56 +
 configs/am64x_sk_defconfig                    |   53 +
 package/Config.in                             |    2 +
 package/ti-rogue-km/Config.in                 |   28 +
 package/ti-rogue-km/ti-rogue-km.hash          |    3 +
 package/ti-rogue-km/ti-rogue-km.mk            |   37 +
 .../0001-all-drop-the-init-script.patch       |  832 +++++++
 package/ti-rogue-um/Config.in                 |   52 +
 package/ti-rogue-um/ti-rogue-um.hash          |    3 +
 package/ti-rogue-um/ti-rogue-um.mk            |   38 +
 27 files changed, 9294 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/am62x_sk/ti_sdk_arm64_debug_defconfig
 create mode 100644 board/ti/am62x_sk/ti_sdk_arm64_release_defconfig
 create mode 100644 board/ti/am64x_sk/genimage.cfg
 create mode 100644 board/ti/am64x_sk/readme.txt
 create mode 100644 board/ti/am64x_sk/ti_sdk_arm64_debug_defconfig
 create mode 100644 board/ti/am64x_sk/ti_sdk_arm64_release_defconfig
 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 configs/am62x_sk_defconfig
 create mode 100644 configs/am64x_sk_defconfig
 create mode 100644 package/ti-rogue-km/Config.in
 create mode 100644 package/ti-rogue-km/ti-rogue-km.hash
 create mode 100644 package/ti-rogue-km/ti-rogue-km.mk
 create mode 100644 package/ti-rogue-um/0001-all-drop-the-init-script.patch
 create mode 100644 package/ti-rogue-um/Config.in
 create mode 100644 package/ti-rogue-um/ti-rogue-um.hash
 create mode 100644 package/ti-rogue-um/ti-rogue-um.mk
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#1 lore raw

PATCH v8 1/10 boot/ti-k3-r5-loader: allow for full build source customization

The TI K3 R5 loader package essentially is a wrapper to build a special version of U-boot SPL used as part of a multi-stage boot flow on TI K3 devices, and as such needs full flexibility as to specifying the U-Boot sources used for the build. To accomodate this, add the same options as already available in the regular U-Boot package. For most use cases, the same source settings (repo URL, versions, etc.) should be used for both ti-k3-r5-loader and uboot packages.

---
 boot/ti-k3-r5-loader/Config.in          | 65 +++++++++++++++++++++++--
 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 28 ++++++++++-
 2 files changed, 89 insertions(+), 4 deletions(-)
boot/ti-k3-r5-loader/Config.in +62 -3
index 10602c8df3..2419babe70 100644
@@ -1,14 +1,73 @@
 config BR2_TARGET_TI_K3_R5_LOADER
-	bool "ti-k3-r5-loader"
+	bool "TI K3 R5 Loader"
 	depends on BR2_aarch64
 	help
-	  Separate U-Boot build for R5 cores on TI's k3 boards.
+	  Separate U-Boot SPL build for R5 core on TI's K3 processors.
 	  Usually used to build tiboot3.bin with k3-image-gen.
 
 if BR2_TARGET_TI_K3_R5_LOADER
 
 choice
-	prompt "Configuration"
+	prompt "U-Boot Version"
+	help
+	  Select the specific U-Boot version you want to use to build the
+	  initial SPL running on the R5 core. Note that for most use cases
+	  you'd want to use the exact same configuration here as it is used
+	  to build the main U-Boot package.
+
+config BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+	bool "2022.10"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+	bool "Custom version"
+	help
+	  This option allows to use a specific official versions
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+	bool "Custom tarball"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT
+	bool "Custom Git repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG
+	bool "Custom Mercurial repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+	bool "Custom Subversion repository"
+
+endchoice
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE
+	string "U-Boot version"
+	depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION
+	string "URL of custom U-Boot tarball"
+	depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+
+if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL
+	string "URL of custom repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION
+	string "Custom repository version"
+	help
+	  Revision to use in the typical format used by
+	  Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
+
+endif
+
+config BR2_TARGET_TI_K3_R5_LOADER_VERSION
+	string
+	default "2022.10"	if BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+	default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE \
+		if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+	default "custom"	if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+	default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION \
+		if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+choice
+	prompt "U-Boot Configuration"
 	default BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
 
 config BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +27 -1
index afa309aa98..fe403a5c44 100644
@@ -2,11 +2,37 @@
 #
 # ti-k3-r5-loader
 #
+# The ti-k3-r5 loader package should really be built from the same U-Boot
+# sources as the uboot package itself, so for most users so all LOADER_SITE /
+# LOADER_SOURCE type definitions should be set the same for both packages.
+# However it still makes sense to keep the ti-k3-r5-loader package somewhat
+# separated and independent from the uboot package to allow for special use
+# cases such as Falcon boot (which would skip the uboot package completely).
+#
 ################################################################################
 
-TI_K3_R5_LOADER_VERSION = 2022.10
+TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
+
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
+# Handle custom U-Boot tarballs as specified by the configuration
+TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
+TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
+TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = git
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = hg
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = svn
+else
+# Handle stable official U-Boot versions
 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
+endif
+
 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
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#2 lore raw

Re: [Buildroot] [PATCH v8 01/10] boot/ti-k3-r5-loader: allow for full build source customization

Quoted 114 lines · Andreas Dannenberg via buildroot

The TI K3 R5 loader package essentially is a wrapper to build a special version of U-boot SPL used as part of a multi-stage boot flow on TI K3 devices, and as such needs full flexibility as to specifying the U-Boot sources used for the build. To accomodate this, add the same options as already available in the regular U-Boot package. For most use cases, the same source settings (repo URL, versions, etc.) should be used for both ti-k3-r5-loader and uboot packages.

---
 boot/ti-k3-r5-loader/Config.in          | 65 +++++++++++++++++++++++--
 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 28 ++++++++++-
 2 files changed, 89 insertions(+), 4 deletions(-)
boot/ti-k3-r5-loader/Config.in +62 -3
index 10602c8df3..2419babe70 100644
@@ -1,14 +1,73 @@
 config BR2_TARGET_TI_K3_R5_LOADER
-       bool "ti-k3-r5-loader"
+       bool "TI K3 R5 Loader"
        depends on BR2_aarch64
        help
-         Separate U-Boot build for R5 cores on TI's k3 boards.
+         Separate U-Boot SPL build for R5 core on TI's K3 processors.
          Usually used to build tiboot3.bin with k3-image-gen.
 
 if BR2_TARGET_TI_K3_R5_LOADER
 
 choice
-       prompt "Configuration"
+       prompt "U-Boot Version"
+       help
+         Select the specific U-Boot version you want to use to build the
+         initial SPL running on the R5 core. Note that for most use cases
+         you'd want to use the exact same configuration here as it is used
+         to build the main U-Boot package.
+
+config BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       bool "2022.10"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       bool "Custom version"
+       help
+         This option allows to use a specific official versions
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       bool "Custom tarball"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT
+       bool "Custom Git repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG
+       bool "Custom Mercurial repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+       bool "Custom Subversion repository"
+
+endchoice
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE
+       string "U-Boot version"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION
+       string "URL of custom U-Boot tarball"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+
+if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL
+       string "URL of custom repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION
+       string "Custom repository version"
+       help
+         Revision to use in the typical format used by
+         Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
+
+endif
+
+config BR2_TARGET_TI_K3_R5_LOADER_VERSION
+       string
+       default "2022.10"       if BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       default "custom"        if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+choice
+       prompt "U-Boot Configuration"
        default BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
 
 config BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +7 -1
index afa309aa98..fe403a5c44 100644
@@ -2,11 +2,37 @@
 #
 # ti-k3-r5-loader
 #
+# The ti-k3-r5 loader package should really be built from the same U-Boot
+# sources as the uboot package itself, so for most users so all LOADER_SITE /
+# LOADER_SOURCE type definitions should be set the same for both packages.
+# However it still makes sense to keep the ti-k3-r5-loader package somewhat
+# separated and independent from the uboot package to allow for special use
+# cases such as Falcon boot (which would skip the uboot package completely).
+#
 ################################################################################
 
-TI_K3_R5_LOADER_VERSION = 2022.10

boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 23

Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -0
+TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
+
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
+# Handle custom U-Boot tarballs as specified by the configuration
+TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
+TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
+TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = git

I think this may also need:
BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
in the git case, otherwise buildroot will look for a hash for the archive generated from the git version.

I'm not a buildroot expert, so there may be a better way to do this.

Quoted 18 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -1
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = hg
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = svn
+else
+# Handle stable official U-Boot versions
 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
+endif
+
 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
--

2.34.1

Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#3 lore raw

Re: [Buildroot] [PATCH v8 01/10] boot/ti-k3-r5-loader: allow for full build source customization

Hi Patrick,

Quoted 132 lines · Patrick Oppenlander
Quoted 114 lines · Andreas Dannenberg via buildroot

The TI K3 R5 loader package essentially is a wrapper to build a special version of U-boot SPL used as part of a multi-stage boot flow on TI K3 devices, and as such needs full flexibility as to specifying the U-Boot sources used for the build. To accomodate this, add the same options as already available in the regular U-Boot package. For most use cases, the same source settings (repo URL, versions, etc.) should be used for both ti-k3-r5-loader and uboot packages.

---
 boot/ti-k3-r5-loader/Config.in          | 65 +++++++++++++++++++++++--
 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 28 ++++++++++-
 2 files changed, 89 insertions(+), 4 deletions(-)
boot/ti-k3-r5-loader/Config.in +62 -3
index 10602c8df3..2419babe70 100644
@@ -1,14 +1,73 @@
 config BR2_TARGET_TI_K3_R5_LOADER
-       bool "ti-k3-r5-loader"
+       bool "TI K3 R5 Loader"
        depends on BR2_aarch64
        help
-         Separate U-Boot build for R5 cores on TI's k3 boards.
+         Separate U-Boot SPL build for R5 core on TI's K3 processors.
          Usually used to build tiboot3.bin with k3-image-gen.
 
 if BR2_TARGET_TI_K3_R5_LOADER
 
 choice
-       prompt "Configuration"
+       prompt "U-Boot Version"
+       help
+         Select the specific U-Boot version you want to use to build the
+         initial SPL running on the R5 core. Note that for most use cases
+         you'd want to use the exact same configuration here as it is used
+         to build the main U-Boot package.
+
+config BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       bool "2022.10"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       bool "Custom version"
+       help
+         This option allows to use a specific official versions
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       bool "Custom tarball"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT
+       bool "Custom Git repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG
+       bool "Custom Mercurial repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+       bool "Custom Subversion repository"
+
+endchoice
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE
+       string "U-Boot version"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION
+       string "URL of custom U-Boot tarball"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+
+if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL
+       string "URL of custom repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION
+       string "Custom repository version"
+       help
+         Revision to use in the typical format used by
+         Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
+
+endif
+
+config BR2_TARGET_TI_K3_R5_LOADER_VERSION
+       string
+       default "2022.10"       if BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       default "custom"        if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+choice
+       prompt "U-Boot Configuration"
        default BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
 
 config BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +7 -1
index afa309aa98..fe403a5c44 100644
@@ -2,11 +2,37 @@
 #
 # ti-k3-r5-loader
 #
+# The ti-k3-r5 loader package should really be built from the same U-Boot
+# sources as the uboot package itself, so for most users so all LOADER_SITE /
+# LOADER_SOURCE type definitions should be set the same for both packages.
+# However it still makes sense to keep the ti-k3-r5-loader package somewhat
+# separated and independent from the uboot package to allow for special use
+# cases such as Falcon boot (which would skip the uboot package completely).
+#
 ################################################################################
 
-TI_K3_R5_LOADER_VERSION = 2022.10

boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 23

Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -0
+TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
+
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
+# Handle custom U-Boot tarballs as specified by the configuration
+TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
+TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
+TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = git

I think this may also need:
BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
in the git case, otherwise buildroot will look for a hash for the archive generated from the git version.

Quoted 1 line

I'm not a buildroot expert, so there may be a better way to do this.

Honestly I just "borrowed" this section from the boot/uboot package, as ti-k3-r5-loader is actually largely the same thing to 95%. But looking at it closer you are probably right, it looks like it'd need that in case of BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION, which is the ti-k3-r5-loader equivalent of BR2_TARGET_UBOOT_LATEST_VERSION, as per

https://git.busybox.net/buildroot/tree/boot/uboot/uboot.mk#n43

Regards, Andreas

Quoted 18 lines
Quoted 18 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -1
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = hg
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = svn
+else
+# Handle stable official U-Boot versions
 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
+endif
+
 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
--

2.34.1

Quoted 4 lines
Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#4 lore raw

Re: [Buildroot] [PATCH v8 01/10] boot/ti-k3-r5-loader: allow for full build source customization

Hi Patrick,

Quoted 137 lines · Andreas Dannenberg via buildroot

Hi Patrick,

Quoted 132 lines · Patrick Oppenlander
Quoted 114 lines · Andreas Dannenberg via buildroot

The TI K3 R5 loader package essentially is a wrapper to build a special version of U-boot SPL used as part of a multi-stage boot flow on TI K3 devices, and as such needs full flexibility as to specifying the U-Boot sources used for the build. To accomodate this, add the same options as already available in the regular U-Boot package. For most use cases, the same source settings (repo URL, versions, etc.) should be used for both ti-k3-r5-loader and uboot packages.

---
 boot/ti-k3-r5-loader/Config.in          | 65 +++++++++++++++++++++++--
 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 28 ++++++++++-
 2 files changed, 89 insertions(+), 4 deletions(-)
boot/ti-k3-r5-loader/Config.in +62 -3
index 10602c8df3..2419babe70 100644
@@ -1,14 +1,73 @@
 config BR2_TARGET_TI_K3_R5_LOADER
-       bool "ti-k3-r5-loader"
+       bool "TI K3 R5 Loader"
        depends on BR2_aarch64
        help
-         Separate U-Boot build for R5 cores on TI's k3 boards.
+         Separate U-Boot SPL build for R5 core on TI's K3 processors.
          Usually used to build tiboot3.bin with k3-image-gen.
 
 if BR2_TARGET_TI_K3_R5_LOADER
 
 choice
-       prompt "Configuration"
+       prompt "U-Boot Version"
+       help
+         Select the specific U-Boot version you want to use to build the
+         initial SPL running on the R5 core. Note that for most use cases
+         you'd want to use the exact same configuration here as it is used
+         to build the main U-Boot package.
+
+config BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       bool "2022.10"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       bool "Custom version"
+       help
+         This option allows to use a specific official versions
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       bool "Custom tarball"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT
+       bool "Custom Git repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG
+       bool "Custom Mercurial repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+       bool "Custom Subversion repository"
+
+endchoice
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE
+       string "U-Boot version"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION
+       string "URL of custom U-Boot tarball"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+
+if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL
+       string "URL of custom repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION
+       string "Custom repository version"
+       help
+         Revision to use in the typical format used by
+         Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
+
+endif
+
+config BR2_TARGET_TI_K3_R5_LOADER_VERSION
+       string
+       default "2022.10"       if BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       default "custom"        if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+choice
+       prompt "U-Boot Configuration"
        default BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
 
 config BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +7 -1
index afa309aa98..fe403a5c44 100644
@@ -2,11 +2,37 @@
 #
 # ti-k3-r5-loader
 #
+# The ti-k3-r5 loader package should really be built from the same U-Boot
+# sources as the uboot package itself, so for most users so all LOADER_SITE /
+# LOADER_SOURCE type definitions should be set the same for both packages.
+# However it still makes sense to keep the ti-k3-r5-loader package somewhat
+# separated and independent from the uboot package to allow for special use
+# cases such as Falcon boot (which would skip the uboot package completely).
+#
 ################################################################################
 
-TI_K3_R5_LOADER_VERSION = 2022.10

boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 23

Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -0
+TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
+
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
+# Handle custom U-Boot tarballs as specified by the configuration
+TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
+TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
+TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = git

I think this may also need:
BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
in the git case, otherwise buildroot will look for a hash for the archive generated from the git version.

Quoted 1 line

I'm not a buildroot expert, so there may be a better way to do this.

Quoted 7 lines

Honestly I just "borrowed" this section from the boot/uboot package, as ti-k3-r5-loader is actually largely the same thing to 95%. But looking at it closer you are probably right, it looks like it'd need that in case of BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION, which is the ti-k3-r5-loader equivalent of BR2_TARGET_UBOOT_LATEST_VERSION, as per

https://git.busybox.net/buildroot/tree/boot/uboot/uboot.mk#n43

I looked at this closer and debugged some more, and yes the change needed here is adding a construct similar to how it is in the current U-Boot (and Kernel, ATF, and other) packages already...

+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
+endif

...which is to disable hash checks only for the *_LATEST_VERSION (in addition to the other SCM-related source methods explicitly defined in package/pkg-generic.mk).

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 21 lines

Regards, Andreas

Quoted 18 lines
Quoted 18 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -1
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = hg
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = svn
+else
+# Handle stable official U-Boot versions
 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
+endif
+
 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
--

2.34.1

Quoted 8 lines
Quoted 4 lines
Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#5 lore raw

Re: [Buildroot] [PATCH v8 01/10] boot/ti-k3-r5-loader: allow for full build source customization

Quoted 157 lines · Andreas Dannenberg

Hi Patrick,

Quoted 137 lines · Andreas Dannenberg via buildroot

Hi Patrick,

Quoted 132 lines · Patrick Oppenlander
Quoted 114 lines · Andreas Dannenberg via buildroot

The TI K3 R5 loader package essentially is a wrapper to build a special version of U-boot SPL used as part of a multi-stage boot flow on TI K3 devices, and as such needs full flexibility as to specifying the U-Boot sources used for the build. To accomodate this, add the same options as already available in the regular U-Boot package. For most use cases, the same source settings (repo URL, versions, etc.) should be used for both ti-k3-r5-loader and uboot packages.

---
 boot/ti-k3-r5-loader/Config.in          | 65 +++++++++++++++++++++++--
 boot/ti-k3-r5-loader/ti-k3-r5-loader.mk | 28 ++++++++++-
 2 files changed, 89 insertions(+), 4 deletions(-)
boot/ti-k3-r5-loader/Config.in +62 -3
index 10602c8df3..2419babe70 100644
@@ -1,14 +1,73 @@
 config BR2_TARGET_TI_K3_R5_LOADER
-       bool "ti-k3-r5-loader"
+       bool "TI K3 R5 Loader"
        depends on BR2_aarch64
        help
-         Separate U-Boot build for R5 cores on TI's k3 boards.
+         Separate U-Boot SPL build for R5 core on TI's K3 processors.
          Usually used to build tiboot3.bin with k3-image-gen.
 
 if BR2_TARGET_TI_K3_R5_LOADER
 
 choice
-       prompt "Configuration"
+       prompt "U-Boot Version"
+       help
+         Select the specific U-Boot version you want to use to build the
+         initial SPL running on the R5 core. Note that for most use cases
+         you'd want to use the exact same configuration here as it is used
+         to build the main U-Boot package.
+
+config BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       bool "2022.10"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       bool "Custom version"
+       help
+         This option allows to use a specific official versions
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       bool "Custom tarball"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT
+       bool "Custom Git repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG
+       bool "Custom Mercurial repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+       bool "Custom Subversion repository"
+
+endchoice
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE
+       string "U-Boot version"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION
+       string "URL of custom U-Boot tarball"
+       depends on BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+
+if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL
+       string "URL of custom repository"
+
+config BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION
+       string "Custom repository version"
+       help
+         Revision to use in the typical format used by
+         Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
+
+endif
+
+config BR2_TARGET_TI_K3_R5_LOADER_VERSION
+       string
+       default "2022.10"       if BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION_VALUE \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_VERSION
+       default "custom"        if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL
+       default BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION \
+               if BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG || BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN
+choice
+       prompt "U-Boot Configuration"
        default BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
 
 config BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +7 -1
index afa309aa98..fe403a5c44 100644
@@ -2,11 +2,37 @@
 #
 # ti-k3-r5-loader
 #
+# The ti-k3-r5 loader package should really be built from the same U-Boot
+# sources as the uboot package itself, so for most users so all LOADER_SITE /
+# LOADER_SOURCE type definitions should be set the same for both packages.
+# However it still makes sense to keep the ti-k3-r5-loader package somewhat
+# separated and independent from the uboot package to allow for special use
+# cases such as Falcon boot (which would skip the uboot package completely).
+#
 ################################################################################
 
-TI_K3_R5_LOADER_VERSION = 2022.10

boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 23

Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -0
+TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
+
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
+# Handle custom U-Boot tarballs as specified by the configuration
+TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
+TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
+TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = git

I think this may also need:
BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
in the git case, otherwise buildroot will look for a hash for the archive generated from the git version.

Quoted 1 line

I'm not a buildroot expert, so there may be a better way to do this.

Quoted 7 lines

Honestly I just "borrowed" this section from the boot/uboot package, as ti-k3-r5-loader is actually largely the same thing to 95%. But looking at it closer you are probably right, it looks like it'd need that in case of BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION, which is the ti-k3-r5-loader equivalent of BR2_TARGET_UBOOT_LATEST_VERSION, as per

https://git.busybox.net/buildroot/tree/boot/uboot/uboot.mk#n43

I looked at this closer and debugged some more, and yes the change needed here is adding a construct similar to how it is in the current U-Boot (and Kernel, ATF, and other) packages already...

(quoted diff) +3 -0
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
+BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
+endif
Quoted 4 lines

...which is to disable hash checks only for the *_LATEST_VERSION (in addition to the other SCM-related source methods explicitly defined in package/pkg-generic.mk).

Thanks!

I can verify this when you post the v9 series.

Patrick

Quoted 36 lines

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 29 lines

Regards, Andreas

Quoted 18 lines
Quoted 18 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +10 -1
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = hg
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = svn
+else
+# Handle stable official U-Boot versions
 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
+endif
+
 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
--

2.34.1

Quoted 4 lines
Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#6 lore raw

Re: [Buildroot] [PATCH v8 01/10] boot/ti-k3-r5-loader: allow for full build source customization

In reply to Andreas Dannenberg via buildroot

Hello Andreas,

Quoted 9 lines · On Thu, 15 Jun 2023 19:23:50 -0500 Andreas Dannenberg via buildroot…

The TI K3 R5 loader package essentially is a wrapper to build a special version of U-boot SPL used as part of a multi-stage boot flow on TI K3 devices, and as such needs full flexibility as to specifying the U-Boot sources used for the build. To accomodate this, add the same options as already available in the regular U-Boot package. For most use cases, the same source settings (repo URL, versions, etc.) should be used for both ti-k3-r5-loader and uboot packages.

I have applied this patch to our next branch, with some changes. See below.

boot/ti-k3-r5-loader/Config.in line 2

Quoted 8 lines
boot/ti-k3-r5-loader/Config.in +1 -1
index 10602c8df3..2419babe70 100644
@@ -1,14 +1,73 @@
 config BR2_TARGET_TI_K3_R5_LOADER
-	bool "ti-k3-r5-loader"
+	bool "TI K3 R5 Loader"

Change reverted, as we want to keep it as it is.

Quoted 5 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +0 -0
index afa309aa98..fe403a5c44 100644

boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 10

Quoted 9 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +6 -0
@@ -2,11 +2,37 @@
 #
 # ti-k3-r5-loader
 #
+# The ti-k3-r5 loader package should really be built from the same U-Boot
+# sources as the uboot package itself, so for most users so all LOADER_SITE /
+# LOADER_SOURCE type definitions should be set the same for both packages.
+# However it still makes sense to keep the ti-k3-r5-loader package somewhat
+# separated and independent from the uboot package to allow for special use
+# cases such as Falcon boot (which would skip the uboot package completely).

Dropped all those changes, we don't want to have additional comments in the top header of the .mk file.

Quoted 15 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +12 -1
+#
 ################################################################################
 
-TI_K3_R5_LOADER_VERSION = 2022.10
+TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
+
+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
+# Handle custom U-Boot tarballs as specified by the configuration
+TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
+TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
+TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = git
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)

boot/ti-k3-r5-loader/ti-k3-r5-loader.mk line 34

Quoted 10 lines
boot/ti-k3-r5-loader/ti-k3-r5-loader.mk +8 -0
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = hg
+else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
+TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
+TI_K3_R5_LOADER_SITE_METHOD = svn
+else
+# Handle stable official U-Boot versions
 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
+endif

Here I've added some proper logic to ignore the hash when it cannot be verified:

+ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y) +BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
+endif

As was requested, I think an option "same version as U-Boot" would be useful.

Thanks!

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
#7 lore raw

PATCH v8 2/10 boot/ti-k3-image-gen: new package

In reply to Andreas Dannenberg via buildroot

From: Xuanhao Shi <[email protected]>

This is the image generator that builds the initial boot binary, tiboot3.bin, for the R5 core on TI's K3 family of 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

---
 DEVELOPERS                                |  2 +
 boot/Config.in                            |  1 +
 boot/ti-k3-image-gen/Config.in            | 55 ++++++++++++++++++
 boot/ti-k3-image-gen/ti-k3-image-gen.hash | 23 ++++++++
 boot/ti-k3-image-gen/ti-k3-image-gen.mk   | 71 +++++++++++++++++++++++
 5 files changed, 152 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
DEVELOPERS +2 -0
index 56316201af..4d3e3b156a 100644
@@ -129,6 +129,7 @@ F:	package/libxmlrpc/
 F:	package/python-docopt/
 
 N:	Anand Gadiyar <[email protected]>
+F:	boot/ti-k3-image-gen/
 F:	boot/ti-k3-r5-loader/
 
 N:	André Zwing <[email protected]>
@@ -3020,6 +3021,7 @@ N:	Wojciech Niziński <[email protected]>
 F:	package/fwup/
 
 N:	Xuanhao Shi <[email protected]>
+F:	boot/ti-k3-image-gen/
 F:	boot/ti-k3-r5-loader/
 
 N:	Yair Ben Avraham <[email protected]>
boot/Config.in +1 -0
index 58366e035e..3c2b05438d 100644
@@ -20,6 +20,7 @@ source "boot/opensbi/Config.in"
 source "boot/s500-bootloader/Config.in"
 source "boot/shim/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 +55 -0

55 lines not on this page · raw message

boot/ti-k3-image-gen/ti-k3-image-gen.hash new file +23 -0
new file mode 100644
index 0000000000..6fb8c4c1eb
@@ -0,0 +1,23 @@
+# Locally calculated
+sha256  f89ea4b1f5c992455b1a682fde48359221b53f3294135df4bf20feea6aea90e4  k3-image-gen-08.06.00.007.tar.gz
+sha256  f012e8d000d711d0539e5b4c812fc1d3a59c10fc1e3d6ea155556f5b78286845  LICENSE
+
+sha256  eca3d0dca65ceabdf17c7efa6b0eb651d365c6056730aa1c67700b7fea2e8bd2  ti-fs-firmware-am62x-gp.bin
+sha256  9ed6089ca7d59e9e5919b0da92effe788138edef41682e0bf7eaea25a896a4f1  ti-fs-firmware-am62x-hs-cert.bin
+sha256  655b5ded62b63f26c17b3ae2f23ac3565ae91fbd7fba1b7b0a4cb7807467523b  ti-fs-firmware-am62x-hs-enc.bin
+sha256  5efa229acd122685fa928170a3f2e39597cce0231fca10b03d9b4d519db2259f  ti-fs-firmware-am62x-hs-fs-cert.bin
+sha256  0f49da5e616a95dc8573531799d20fa7697a000f88084d09f3f6f5a665d85680  ti-fs-firmware-am62x-hs-fs-enc.bin
+
+sha256  c5c91d005b228a926fdc518f1e4365d2f693248a63f2432fccfbde10e5717499  ti-fs-firmware-am62ax-gp.bin
+sha256  6de6d6a249217b15dd78dfb2b0ca99bda95aa15b7e4867a2cbe0d5a169422522  ti-fs-firmware-am62ax-hs-cert.bin
+sha256  b1b3b25409013174fa5969b5bfaa572c0a79eee9e8b7445b3ac7867646eaf402  ti-fs-firmware-am62ax-hs-enc.bin
+sha256  652b1369bed586cc294a65ee690056763a12034e4c9f0d05ea3838dd60ec8aba  ti-fs-firmware-am62ax-hs-fs-cert.bin
+sha256  b37f82dad0998921672b36b6aeb1473197ab2720f612c2409292a81561ddc602  ti-fs-firmware-am62ax-hs-fs-enc.bin
+
+sha256  958fdb0613a1dc3a5cb90edf35b84981b94bd70de6255cdf5f220bce2a4b10ef  ti-sci-firmware-am64x-gp.bin
+sha256  cfee8679183577392b513b317a4d9a6af47cde9a59ecbad758704e4bec38196c  ti-sci-firmware-am64x-hs-cert.bin
+sha256  8760b70cc18cd5921d634ce226122aed5a28d64857d90f6ede40f2383dabd169  ti-sci-firmware-am64x-hs-enc.bin
+sha256  1e78b106a8c7acd1641863ef86946e0d7272ad9b2d0e7ce451936d36a14e70e7  ti-sci-firmware-am64x_sr2-hs-cert.bin
+sha256  c626bacd4abfbe4de1133b72568394a2e20dbe9a1623a3e77bae9f000e743bb4  ti-sci-firmware-am64x_sr2-hs-enc.bin
+sha256  1d48d758d9ed940fe4072bd5b024ec502c72782ce2ca1c085f043f104a62ca70  ti-sci-firmware-am64x_sr2-hs-fs-cert.bin
+sha256  1b22ba9ab5b94a9942e1f9c203b81733030c8bf4543a0aefffd200876a0c66eb  ti-sci-firmware-am64x_sr2-hs-fs-enc.bin
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +71 -0

71 lines not on this page · raw message

Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#8 lore raw

Re: [Buildroot] [PATCH v8 02/10] boot/ti-k3-image-gen: new package

Hello Andreas,

Quoted 8 lines · On Thu, 15 Jun 2023 19:23:51 -0500 Andreas Dannenberg via buildroot…

From: Xuanhao Shi <[email protected]>

This is the image generator that builds the initial boot binary, tiboot3.bin, for the R5 core on TI's K3 family of 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

Quoted 9 lines

I have applied this, but after doing a lot of changes.

The first major change is that I have created a boot/ti-k3-boot-firmware/ package that is responsible for downloading the ti-sysfw and ti-dm firmware files, and installing them in $(BINARIES_DIR). Indeed your solution of downloading them directly from ti-k3-image-gen (for ti-sysfw) and from uboot (for ti-dm) really wasn't very clean, and it didn't allow to associate those firmware files to their license, which is quite important considering they are closed-source binary blobs.

In boot/ti-k3-boot-firmware/, I hesitated a long time between downloading only the firmware files themselves directly, or downloading the whole repository. In the end, I opted for downloading the whole repository. Indeed, the firmware files themselves don't have a version number in their file name, so once they land in the download directory, we cannot have multiple versions of the firmware files sitting side by side. Yes, the hash would detect that a firmware file is no longer correct and needs to be re-downloaded. But if you alternate between Buildroot versions that use different firmware versions, it would constantly get an invalid and redownload, which I found not very nice. So, this package download the monster 200+ MB .tar.gz, only to extra a few hundreds of KBs of firmware files.

boot/ti-k3-image-gen/Config.in line 3

Quoted 9 lines
boot/ti-k3-image-gen/Config.in new file +3 -0
new file mode 100644
index 0000000000..97cb470119
@@ -0,0 +1,55 @@
+config BR2_TARGET_TI_K3_IMAGE_GEN
+	bool "ti-k3-image-gen"
+	depends on BR2_TARGET_TI_K3_R5_LOADER

Changed to:

+       depends on BR2_TARGET_TI_K3_R5_LOADER
+       select BR2_TARGET_TI_K3_BOOT_FIRMWARE
+       # We need FIT support in uboot-tools, which is why we select a
+       # host package
+       select BR2_PACKAGE_HOST_UBOOT_TOOLS
+       select BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT

boot/ti-k3-image-gen/Config.in line 8

Quoted 5 lines
boot/ti-k3-image-gen/Config.in new file +5 -0
+	help
+	  Use TI's k3-image-gen to build a separate bare metal
+	  boot binary from a separate SPL that is running on
+	  the R5 core. Currently supports version 08.06.00.007
+	  as default.

Remove the reference to the version. We don't want to update the Config.in help text when we update the package version.

Quoted 34 lines
boot/ti-k3-image-gen/Config.in new file +34 -0
+if BR2_TARGET_TI_K3_IMAGE_GEN
+choice
+	prompt "SoC firmware type for image gen"
+	default BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TIFS
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TIFS
+	bool "Firmware type TIFS"
+	help
+	  Use firmware type TIFS for SoCs like AM62x and
+	  AM62Ax.
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TISCI
+	bool "Firmware type TISCI"
+	help
+	  Use firmware type TISCI for SoCs like AM64x and
+	  AM65x.
+
+endchoice
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC
+	string "SoC"
+	help
+	  The target SoC option for image gen.
+	  For example, "am64x" for AM64x boards.
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE
+	string "security type"
+	help
+	  The target SoC security type option for image gen.
+	  Valid options are "gp" for General Purpose devices,
+	  "hs-fs" for High Security - Field Securable devices, or
+	  "hs" for High Security - Security Enforcing devices.
+	  Note for all High Security device variants the
+	  TI_SECURE_DEV_PKG environmental variable must be defined

boot/ti-k3-image-gen/Config.in line 55

Quoted 10 lines
boot/ti-k3-image-gen/Config.in new file +10 -0
+	  at build time pointing to a valid core-secdev-k3 folder
+	  location, otherwise the build will fail, see
+	  https://git.ti.com/cgit/security-development-tools/core-secdev-k3
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG
+	string "config type"
+	help
+	  The board config option for image gen.
+	  Usually "sk" or "evm".
+endif

I've changed this whole thing to use choices for the SoC and security type. For the "config type", it was always "evm" for now, and the firmware files only exist for "evm", so I dropped this option and simply hardcoded "evm" in the package. It can always be revisited later on. So it looks like this:

+if BR2_TARGET_TI_K3_IMAGE_GEN
+choice
+ prompt "SoC family"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+ bool "am62ax"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+ bool "am62x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+ bool "am64x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+ bool "am65x"
+
+endchoice
+
+choice
+ prompt "Security type"
+ help

+         The target SoC security type option for image gen.  Valid
+         options are "gp" for General Purpose devices, "hs-fs" for
+         High Security - Field Securable devices, or "hs" for High
+         Security - Security Enforcing devices.  Note for all High
+         Security device variants the TI_SECURE_DEV_PKG environmental
+         variable must be defined at build time pointing to a valid
+         core-secdev-k3 folder location, otherwise the build will
+         fail, see
+         https://git.ti.com/cgit/security-development-tools/core-secdev-k3

+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_GP
+ bool "gp"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS_FS
+ bool "hs-fs"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS
+ bool "hs"
+
+endchoice
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC

+       string
+       default "am62ax" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+       default "am62x"  if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+       default "am64x"  if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+       default "am65x"  if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE
+       string
+       default "ti-fs"  if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+       default "ti-fs"  if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+       default "ti-sci" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+       default "ti-sci" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE
+       string
+       default "gp"    if BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_GP
+       default "hs-fs" if BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS_FS
+       default "hs"    if BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE_HS
Quoted 19 lines
boot/ti-k3-image-gen/ti-k3-image-gen.hash new file +13 -0
new file mode 100644
index 0000000000..6fb8c4c1eb
@@ -0,0 +1,23 @@
+# Locally calculated
+sha256  f89ea4b1f5c992455b1a682fde48359221b53f3294135df4bf20feea6aea90e4  k3-image-gen-08.06.00.007.tar.gz
+sha256  f012e8d000d711d0539e5b4c812fc1d3a59c10fc1e3d6ea155556f5b78286845  LICENSE
+
+sha256  eca3d0dca65ceabdf17c7efa6b0eb651d365c6056730aa1c67700b7fea2e8bd2  ti-fs-firmware-am62x-gp.bin
+sha256  9ed6089ca7d59e9e5919b0da92effe788138edef41682e0bf7eaea25a896a4f1  ti-fs-firmware-am62x-hs-cert.bin
+sha256  655b5ded62b63f26c17b3ae2f23ac3565ae91fbd7fba1b7b0a4cb7807467523b  ti-fs-firmware-am62x-hs-enc.bin
+sha256  5efa229acd122685fa928170a3f2e39597cce0231fca10b03d9b4d519db2259f  ti-fs-firmware-am62x-hs-fs-cert.bin
+sha256  0f49da5e616a95dc8573531799d20fa7697a000f88084d09f3f6f5a665d85680  ti-fs-firmware-am62x-hs-fs-enc.bin
+
+sha256  c5c91d005b228a926fdc518f1e4365d2f693248a63f2432fccfbde10e5717499  ti-fs-firmware-am62ax-gp.bin
+sha256  6de6d6a249217b15dd78dfb2b0ca99bda95aa15b7e4867a2cbe0d5a169422522  ti-fs-firmware-am62ax-hs-cert.bin
+sha256  b1b3b25409013174fa5969b5bfaa572c0a79eee9e8b7445b3ac7867646eaf402  ti-fs-firmware-am62ax-hs-enc.bin

boot/ti-k3-image-gen/ti-k3-image-gen.hash line 23

Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.hash new file +10 -0
+sha256  652b1369bed586cc294a65ee690056763a12034e4c9f0d05ea3838dd60ec8aba  ti-fs-firmware-am62ax-hs-fs-cert.bin
+sha256  b37f82dad0998921672b36b6aeb1473197ab2720f612c2409292a81561ddc602  ti-fs-firmware-am62ax-hs-fs-enc.bin
+
+sha256  958fdb0613a1dc3a5cb90edf35b84981b94bd70de6255cdf5f220bce2a4b10ef  ti-sci-firmware-am64x-gp.bin
+sha256  cfee8679183577392b513b317a4d9a6af47cde9a59ecbad758704e4bec38196c  ti-sci-firmware-am64x-hs-cert.bin
+sha256  8760b70cc18cd5921d634ce226122aed5a28d64857d90f6ede40f2383dabd169  ti-sci-firmware-am64x-hs-enc.bin
+sha256  1e78b106a8c7acd1641863ef86946e0d7272ad9b2d0e7ce451936d36a14e70e7  ti-sci-firmware-am64x_sr2-hs-cert.bin
+sha256  c626bacd4abfbe4de1133b72568394a2e20dbe9a1623a3e77bae9f000e743bb4  ti-sci-firmware-am64x_sr2-hs-enc.bin
+sha256  1d48d758d9ed940fe4072bd5b024ec502c72782ce2ca1c085f043f104a62ca70  ti-sci-firmware-am64x_sr2-hs-fs-cert.bin
+sha256  1b22ba9ab5b94a9942e1f9c203b81733030c8bf4543a0aefffd200876a0c66eb  ti-sci-firmware-am64x_sr2-hs-fs-enc.bin

I dropped all of those hashes for .bin files, now that these firmware files are downloaded and installed by ti-k3-boot-firmware.

Quoted 12 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +6 -0
new file mode 100644
index 0000000000..cdeac13cfa
@@ -0,0 +1,71 @@
+################################################################################
+#
+# ti-k3-image-gen
+#
+################################################################################
+

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 16

Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +10 -0
+TI_K3_IMAGE_GEN_VERSION = 08.06.00.007
+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 = LICENSE
+TI_K3_IMAGE_GEN_INSTALL_IMAGES = YES
+
+# ti-k3-image-gen is used to build tiboot3.bin, using the r5-u-boot-spl.bin file
+# from the ti-k3-r5-loader package. Hence the dependency on ti-k3-r5-loader.
+TI_K3_IMAGE_GEN_DEPENDENCIES = host-arm-gnu-toolchain ti-k3-r5-loader

Changed to:

+# - ti-k3-image-gen is used to build tiboot3.bin, using the
+# r5-u-boot-spl.bin file from the ti-k3-r5-loader package. Hence the
+# dependency on ti-k3-r5-loader.
+# - the ti-k3-image-gen makefiles seem to need some feature from Make
+# v4.0, similar to u-boot.
+TI_K3_IMAGE_GEN_DEPENDENCIES = \

+       host-arm-gnu-toolchain \
+       host-python3 \
+       host-openssl \
+       host-uboot-tools \
+       ti-k3-r5-loader \
+       ti-k3-boot-firmware \
+       $(BR2_MAKE_HOST_DEPENDENCY)

We need host-python3 because ti-k3-image-gen contains Python scripts executed on the host. We need host-openssl because the Makefile of ti-k3-image-gen generates some SSL certificates using the openssl tool. We need host-uboot-tools because the Makefile of ti-k3-image-gen invokes mkimage. We need ti-k3-boot-firmware to have the ti-sysfw firmware files installed. And we need $(BR2_MAKE_HOST_DEPENDENCY) otherwise using $(BR2_MAKE) is not correct.

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 24

Quoted 7 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +7 -0
+ifeq ($(BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TIFS),y)
+TI_K3_IMAGE_GEN_FW_TYPE = $(call qstrip,"ti-fs")
+else ifeq ($(BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TISCI),y)
+TI_K3_IMAGE_GEN_FW_TYPE = $(call qstrip,"ti-sci")
+else
+$(error No TI K3 Image Gen firmware type set)
+endif

Dropped, this is now done in Config.in based on the selected SoC.

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 28

Quoted 3 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +3 -0
+TI_K3_IMAGE_GEN_SOC = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SOC))
+TI_K3_IMAGE_GEN_SOC_TYPE = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE))
+TI_K3_IMAGE_GEN_CONFIG = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG))

I now have:

+TI_K3_IMAGE_GEN_FW_TYPE = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE)) +TI_K3_IMAGE_GEN_SOC = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SOC)) +TI_K3_IMAGE_GEN_SECTYPE = $(call qstrip,$(BR2_TARGET_TI_K3_IMAGE_GEN_SECTYPE))
+
+TI_K3_IMAGE_GEN_SYSFW = $(TI_K3_IMAGE_GEN_FW_TYPE)-firmware-$(TI_K3_IMAGE_GEN_SOC)-$(TI_K3_IMAGE_GEN_SECTYPE).bin

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 42

Quoted 13 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +13 -0
+# This hash comes from the Makefile in ti-k3-image-gen and corresponds to
+# FW from Git tag 08.06.00.006
+TI_K3_SYSFW_VERSION = 340194800a581baf976360386dfc7b5acab8d948
+TI_K3_SYSFW_SITE = https://git.ti.com/processor-firmware/ti-linux-firmware/blobs/raw/$(TI_K3_SYSFW_VERSION)/ti-sysfw
+ifeq ($(TI_K3_IMAGE_GEN_SOC_TYPE),gp)
+TI_K3_SYSFW_SOURCE = \
+	$(TI_K3_IMAGE_GEN_FW_TYPE)-firmware-$(TI_K3_IMAGE_GEN_SOC)-$(TI_K3_IMAGE_GEN_SOC_TYPE).bin
+else
+TI_K3_SYSFW_SOURCE = \
+	$(TI_K3_IMAGE_GEN_FW_TYPE)-firmware-$(TI_K3_IMAGE_GEN_SOC)-$(TI_K3_IMAGE_GEN_SOC_TYPE)-cert.bin \
+	$(TI_K3_IMAGE_GEN_FW_TYPE)-firmware-$(TI_K3_IMAGE_GEN_SOC)-$(TI_K3_IMAGE_GEN_SOC_TYPE)-enc.bin
+endif
+TI_K3_IMAGE_GEN_EXTRA_DOWNLOADS = $(patsubst %,$(TI_K3_SYSFW_SITE)/%,$(TI_K3_SYSFW_SOURCE))

This has entirely been dropped, as it is done by the separate ti-k3-boot-firmware package.

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 48

Quoted 5 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +5 -0
+define TI_K3_SYSFW_COPY
+	$(foreach f,$(TI_K3_SYSFW_SOURCE), \
+		cp $(TI_K3_IMAGE_GEN_DL_DIR)/$(f) $(@D)$(sep))
+endef
+TI_K3_IMAGE_GEN_POST_EXTRACT_HOOKS += TI_K3_SYSFW_COPY

I've instead added a:

+define TI_K3_IMAGE_GEN_CONFIGURE_CMDS
+ cp $(BINARIES_DIR)/ti-sysfw/$(TI_K3_IMAGE_GEN_SYSFW) $(@D)
+endef

It needs to be a configure command and not a post-extract as the firmware files are now built/installed by ti-k3-boot-firmware, and build dependencies are only guaranteed to be ready before our configure step.

Quoted 7 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +7 -0
+
+# The ti-k3-image-gen makefiles seem to need some feature from Make v4.0,
+# similar to u-boot. Explicitly use $(BR2_MAKE) here, as the build
+# otherwise fails with some misleading error message.
+TI_K3_IMAGE_GEN_MAKE = $(BR2_MAKE)
+TI_K3_IMAGE_GEN_MAKE_OPTS = \
+	SOC=$(TI_K3_IMAGE_GEN_SOC) \

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 65

Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +10 -0
+	SOC_TYPE=$(TI_K3_IMAGE_GEN_SOC_TYPE) \
+	CONFIG=$(TI_K3_IMAGE_GEN_CONFIG) \
+	CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+	SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \
+	O=$(@D)/tmp \
+	BIN_DIR=$(@D)
+
+define TI_K3_IMAGE_GEN_BUILD_CMDS
+	$(TI_K3_IMAGE_GEN_MAKE) -C $(@D) $(TI_K3_IMAGE_GEN_MAKE_OPTS)
+endef

The intermediate variables were not really useful, so changed to:

+define TI_K3_IMAGE_GEN_BUILD_CMDS
+ $(TARGET_MAKE_ENV) \
+ $(BR2_MAKE) -C $(@D) \

+               SOC=$(TI_K3_IMAGE_GEN_SOC) \
+               SOC_TYPE=$(TI_K3_IMAGE_GEN_SECTYPE) \
+               CONFIG=evm \
+               CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+               SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \
+               O=$(@D)/tmp \
+               BIN_DIR=$(@D)

+endef

The $(TARGET_MAKE_ENV) was also important as it allowed the build logic to find our host tools in $(HOST_DIR)/bin, especially python3, mkimage and openssl.

See the final commits of:

- ti-k3-boot-firmware:
https://gitlab.com/buildroot.org/buildroot/-/commit/2389c76a95725b91ba538b56fb7da70877c7d3ad

- ti-k3-image-gen:
https://gitlab.com/buildroot.org/buildroot/-/commit/6134872d2878f46f8f2800c81baf917281bc79b0

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
#9 lore raw

Re: [Buildroot] [PATCH v8 02/10] boot/ti-k3-image-gen: new package

Hello,

Le 22/08/2023 à 12:29, Thomas Petazzoni via buildroot a écrit :

Quoted 23 lines

Hello Andreas,

Quoted 8 lines · On Thu, 15 Jun 2023 19:23:51 -0500 Andreas Dannenberg via buildroot…

From: Xuanhao Shi <[email protected]>

This is the image generator that builds the initial boot binary, tiboot3.bin, for the R5 core on TI's K3 family of 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

Quoted 9 lines
Quoted 1 line

I have applied this, but after doing a lot of changes.

Indeed, TI k3 is really complex to follow.
I have on remark below.

Quoted 109 lines

The first major change is that I have created a boot/ti-k3-boot-firmware/ package that is responsible for downloading the ti-sysfw and ti-dm firmware files, and installing them in $(BINARIES_DIR). Indeed your solution of downloading them directly from ti-k3-image-gen (for ti-sysfw) and from uboot (for ti-dm) really wasn't very clean, and it didn't allow to associate those firmware files to their license, which is quite important considering they are closed-source binary blobs.

In boot/ti-k3-boot-firmware/, I hesitated a long time between downloading only the firmware files themselves directly, or downloading the whole repository. In the end, I opted for downloading the whole repository. Indeed, the firmware files themselves don't have a version number in their file name, so once they land in the download directory, we cannot have multiple versions of the firmware files sitting side by side. Yes, the hash would detect that a firmware file is no longer correct and needs to be re-downloaded. But if you alternate between Buildroot versions that use different firmware versions, it would constantly get an invalid and redownload, which I found not very nice. So, this package download the monster 200+ MB .tar.gz, only to extra a few hundreds of KBs of firmware files.

boot/ti-k3-image-gen/Config.in line 3

Quoted 9 lines
boot/ti-k3-image-gen/Config.in new file +3 -0
new file mode 100644
index 0000000000..97cb470119
@@ -0,0 +1,55 @@
+config BR2_TARGET_TI_K3_IMAGE_GEN
+	bool "ti-k3-image-gen"
+	depends on BR2_TARGET_TI_K3_R5_LOADER

Changed to:

(quoted diff) +6 -0
+       depends on BR2_TARGET_TI_K3_R5_LOADER
+       select BR2_TARGET_TI_K3_BOOT_FIRMWARE
+       # We need FIT support in uboot-tools, which is why we select a
+       # host package
+       select BR2_PACKAGE_HOST_UBOOT_TOOLS
+       select BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT

boot/ti-k3-image-gen/Config.in line 8

Quoted 6 lines
boot/ti-k3-image-gen/Config.in new file +5 -0
+	help
+	  Use TI's k3-image-gen to build a separate bare metal
+	  boot binary from a separate SPL that is running on
+	  the R5 core. Currently supports version 08.06.00.007
+	  as default.

Remove the reference to the version. We don't want to update the Config.in help text when we update the package version.

Quoted 34 lines
boot/ti-k3-image-gen/Config.in new file +34 -0
+if BR2_TARGET_TI_K3_IMAGE_GEN
+choice
+	prompt "SoC firmware type for image gen"
+	default BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TIFS
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TIFS
+	bool "Firmware type TIFS"
+	help
+	  Use firmware type TIFS for SoCs like AM62x and
+	  AM62Ax.
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_FW_TYPE_TISCI
+	bool "Firmware type TISCI"
+	help
+	  Use firmware type TISCI for SoCs like AM64x and
+	  AM65x.
+
+endchoice
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC
+	string "SoC"
+	help
+	  The target SoC option for image gen.
+	  For example, "am64x" for AM64x boards.
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE
+	string "security type"
+	help
+	  The target SoC security type option for image gen.
+	  Valid options are "gp" for General Purpose devices,
+	  "hs-fs" for High Security - Field Securable devices, or
+	  "hs" for High Security - Security Enforcing devices.
+	  Note for all High Security device variants the
+	  TI_SECURE_DEV_PKG environmental variable must be defined

boot/ti-k3-image-gen/Config.in line 55

Quoted 10 lines
boot/ti-k3-image-gen/Config.in new file +10 -0
+	  at build time pointing to a valid core-secdev-k3 folder
+	  location, otherwise the build will fail, see
+	  https://git.ti.com/cgit/security-development-tools/core-secdev-k3
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG
+	string "config type"
+	help
+	  The board config option for image gen.
+	  Usually "sk" or "evm".
+endif

I've changed this whole thing to use choices for the SoC and security type. For the "config type", it was always "evm" for now, and the firmware files only exist for "evm", so I dropped this option and simply hardcoded "evm" in the package. It can always be revisited later on. So it looks like this:

(quoted diff) +5 -0
+if BR2_TARGET_TI_K3_IMAGE_GEN
+choice
+       prompt "SoC family"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX

Review

Quoted 10 lines
(quoted diff) +10 -0
+       bool "am62ax"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+       bool "am62x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+       bool "am64x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+       bool "am65x"

I don't think AM65x can build here due to a ti-k3-image-gen check [1]

Indeed AM65X SoC doesn't support "combined boot image" so it requires to not define SBL image.

I beleive we need an option to explicitely support "combined boot flow only SoC" or "combined boot flow not supported at all by the SoC" or "combined or non-combined boot flow supported by the SoC"

[1]
https://git.ti.com/cgit/k3-image-gen/k3-image-gen/tree/Makefile?h=09.00.00.001#n164

Quoted 3 lines
boot/ti-k3-image-gen/Config.in new file +3 -0
+
+endchoice
+

[...]

Quoted 21 lines
Quoted 8 lines
boot/ti-k3-image-gen/Config.in new file +7 -0
+
+# The ti-k3-image-gen makefiles seem to need some feature from Make v4.0,
+# similar to u-boot. Explicitly use $(BR2_MAKE) here, as the build
+# otherwise fails with some misleading error message.
+TI_K3_IMAGE_GEN_MAKE = $(BR2_MAKE)
+TI_K3_IMAGE_GEN_MAKE_OPTS = \
+	SOC=$(TI_K3_IMAGE_GEN_SOC) \

boot/ti-k3-image-gen/Config.in

Quoted 10 lines
boot/ti-k3-image-gen/Config.in new file +10 -0
+	SOC_TYPE=$(TI_K3_IMAGE_GEN_SOC_TYPE) \
+	CONFIG=$(TI_K3_IMAGE_GEN_CONFIG) \
+	CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+	SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \
+	O=$(@D)/tmp \
+	BIN_DIR=$(@D)
+
+define TI_K3_IMAGE_GEN_BUILD_CMDS
+	$(TI_K3_IMAGE_GEN_MAKE) -C $(@D) $(TI_K3_IMAGE_GEN_MAKE_OPTS)
+endef

The intermediate variables were not really useful, so changed to:

Review

Quoted 8 lines
(quoted diff) +8 -0
+define TI_K3_IMAGE_GEN_BUILD_CMDS
+       $(TARGET_MAKE_ENV) \
+       $(BR2_MAKE) -C $(@D) \
+               SOC=$(TI_K3_IMAGE_GEN_SOC) \
+               SOC_TYPE=$(TI_K3_IMAGE_GEN_SECTYPE) \
+               CONFIG=evm \
+               CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+               SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \SBL image is defined here, so it can't work for an AM65X SoC (like for j721e

SoC) because the SoC cannot build combined boot image (SBL must not be defined).

I have a SK-TDA4VM board (j721e SoC) and I'd like to rework theses ti-k3 packages for this SoC but it fail before reaching u-boot on A72 core.

I hope to have some spare time to take a look at the issue.

Best regards,
Romain

Quoted 11 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +3 -0
+               O=$(@D)/tmp \
+               BIN_DIR=$(@D)
+endef

The $(TARGET_MAKE_ENV) was also important as it allowed the build logic to find our host tools in $(HOST_DIR)/bin, especially python3, mkimage and openssl.

See the final commits of:

- ti-k3-boot-firmware:

Quoted 8 lines
   https://gitlab.com/buildroot.org/buildroot/-/commit/2389c76a95725b91ba538b56fb7da70877c7d3ad

- ti-k3-image-gen:

   https://gitlab.com/buildroot.org/buildroot/-/commit/6134872d2878f46f8f2800c81baf917281bc79b0

Best regards,

Thomas

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#10 lore raw

Re: [Buildroot] [PATCH v8 02/10] boot/ti-k3-image-gen: new package

On December 12, 2023 thus sayeth Romain Naour:

Quoted 31 lines

Hello,

Le 22/08/2023 à 12:29, Thomas Petazzoni via buildroot a écrit :

Quoted 23 lines

Hello Andreas,

Quoted 8 lines · On Thu, 15 Jun 2023 19:23:51 -0500 Andreas Dannenberg via buildroot…

From: Xuanhao Shi <[email protected]>

This is the image generator that builds the initial boot binary, tiboot3.bin, for the R5 core on TI's K3 family of 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

Quoted 9 lines
Quoted 1 line

I have applied this, but after doing a lot of changes.

Indeed, TI k3 is really complex to follow.
I have on remark below.

...

Quoted 28 lines
Quoted 12 lines

I've changed this whole thing to use choices for the SoC and security type. For the "config type", it was always "evm" for now, and the firmware files only exist for "evm", so I dropped this option and simply hardcoded "evm" in the package. It can always be revisited later on. So it looks like this:

(quoted diff) +5 -0
+if BR2_TARGET_TI_K3_IMAGE_GEN
+choice
+       prompt "SoC family"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX

Review

Quoted 10 lines
(quoted diff) +10 -0
+       bool "am62ax"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+       bool "am62x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM64X
+       bool "am64x"
+
+config BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM65X
+       bool "am65x"

I don't think AM65x can build here due to a ti-k3-image-gen check [1]

Indeed AM65X SoC doesn't support "combined boot image" so it requires to not define SBL image.

Quoted 7 lines

I beleive we need an option to explicitely support "combined boot flow only SoC" or "combined boot flow not supported at all by the SoC" or "combined or non-combined boot flow supported by the SoC"

[1]
https://git.ti.com/cgit/k3-image-gen/k3-image-gen/tree/Makefile?h=09.00.00.001#n164

One of the cooler things from U-Boot is the binman system[0] that a few Ti'ers have been porting most of this scripting over to utilize. More modern releases of U-Boot (i think 2023.04 iirc) shouldn't need k3-image-gen anymore.

But yeah the J721e (BeagleBone AI64) will have this issue as well.

Quoted 35 lines
Quoted 3 lines
boot/ti-k3-image-gen/Config.in new file +3 -0
+
+endchoice
+

[...]

Quoted 21 lines
Quoted 8 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +7 -0
+
+# The ti-k3-image-gen makefiles seem to need some feature from Make v4.0,
+# similar to u-boot. Explicitly use $(BR2_MAKE) here, as the build
+# otherwise fails with some misleading error message.
+TI_K3_IMAGE_GEN_MAKE = $(BR2_MAKE)
+TI_K3_IMAGE_GEN_MAKE_OPTS = \
+	SOC=$(TI_K3_IMAGE_GEN_SOC) \

boot/ti-k3-image-gen/ti-k3-image-gen.mk line 65

Quoted 10 lines
boot/ti-k3-image-gen/ti-k3-image-gen.mk new file +10 -0
+	SOC_TYPE=$(TI_K3_IMAGE_GEN_SOC_TYPE) \
+	CONFIG=$(TI_K3_IMAGE_GEN_CONFIG) \
+	CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+	SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \
+	O=$(@D)/tmp \
+	BIN_DIR=$(@D)
+
+define TI_K3_IMAGE_GEN_BUILD_CMDS
+	$(TI_K3_IMAGE_GEN_MAKE) -C $(@D) $(TI_K3_IMAGE_GEN_MAKE_OPTS)
+endef

The intermediate variables were not really useful, so changed to:

Review

Quoted 8 lines
(quoted diff) +8 -0
+define TI_K3_IMAGE_GEN_BUILD_CMDS
+       $(TARGET_MAKE_ENV) \
+       $(BR2_MAKE) -C $(@D) \
+               SOC=$(TI_K3_IMAGE_GEN_SOC) \
+               SOC_TYPE=$(TI_K3_IMAGE_GEN_SECTYPE) \
+               CONFIG=evm \
+               CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
+               SBL=$(BINARIES_DIR)/r5-u-boot-spl.bin \SBL image is defined here, so it can't work for an AM65X SoC (like for j721e
Quoted 4 lines

SoC) because the SoC cannot build combined boot image (SBL must not be defined).

I have a SK-TDA4VM board (j721e SoC) and I'd like to rework theses ti-k3 packages for this SoC but it fail before reaching u-boot on A72 core.

(What I get for responding while I read) Yeah we will crash when we can't load the firmware in the sysfw.itb binary. The am65x and j721e are the only 2 K3 generation SoCs to load firmware this way, making them kinda and edge case.

Quoted 3 lines

I hope to have some spare time to take a look at the issue.

Whenever I find some idle cycles I wanted to start reworking the U-Boot and the ti-k3-r5-loader to take advantage of binman.

I have a _very_ rough idea of how to do this as an BR2_EXTERNAL tree here[1] if you need something now but my hope is to get my garbage cleaned up and merged rather than ppl start using what I have ;)

[0]https://docs.u-boot.org/en/latest/develop/package/binman.html#using-binman [1]https://git.sr.ht/~bryanb/ti-buildroot

~Bryan
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#11 lore raw

PATCH v8 3/10 boot/uboot: add support for building the TI K3 DM into U-Boot

In reply to Andreas Dannenberg via buildroot

Certain TI K3 devices such as AM62x and AM62Ax require a Device Manager (DM) firmnware to be made available to the U-Boot build, which will get packaged into the "tispl.bin" image tree blob during A53 SPL build. Without that DM firmware U-Boot will not be functional. To support this, add a config option called BR2_TARGET_UBOOT_NEEDS_TI_K3_DM to enable this feature, and another option BR2_TARGET_UBOOT_TI_K3_DM_SOC to allow setting the name of the SOC which needs to match the corresponding folder name in the ti-linux-firmware Git repository.

---
 boot/uboot/Config.in | 17 +++++++++++++++++
 boot/uboot/uboot.mk  | 16 ++++++++++++++++
 2 files changed, 33 insertions(+)
boot/uboot/Config.in +17 -0
index 085397d03d..7e1dd44196 100644
@@ -240,6 +240,23 @@ config BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE
 	  U-Boot, and that the TEE variable pointing to OPTEE's
 	  tee.elf, is passed during the Buildroot build.
 
+config BR2_TARGET_UBOOT_NEEDS_TI_K3_DM
+	bool "U-Boot needs TI K3 Device Manager (DM)"
+	help
+	  Some TI K3 devices need the Device Manager (DM) firmware
+	  to be available for the U-Boot build. Currently supports FW
+	  from Git tag 08.06.00.006 by default.
+
+	  https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-dm?h=ti-linux-firmware
+
+config BR2_TARGET_UBOOT_TI_K3_DM_SOC
+	string "TI K3 Device Manager (DM) SOC Type"
+	depends on BR2_TARGET_UBOOT_NEEDS_TI_K3_DM
+	help
+	  Name of the TI K3 Device Manager (DM) SOC. This needs to
+	  match one of the SOC-specific folders in within the ti-dm
+	  folder of the ti-linux-firmware Git repository.
+
 config BR2_TARGET_UBOOT_NEEDS_OPENSBI
 	bool "U-Boot needs OpenSBI"
 	depends on BR2_TARGET_OPENSBI
boot/uboot/uboot.mk +16 -0
index 4eae8e95c3..48af69bd26 100644
@@ -184,6 +184,22 @@ UBOOT_DEPENDENCIES += optee-os
 UBOOT_MAKE_OPTS += TEE=$(BINARIES_DIR)/tee.elf
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_TI_K3_DM),y)
+# Currently supports the FW from Git tag 08.06.00.006 by default
+TI_K3_DM_VERSION = 340194800a581baf976360386dfc7b5acab8d948
+TI_K3_DM_SITE = https://git.ti.com/processor-firmware/ti-linux-firmware/blobs/raw/$(TI_K3_DM_VERSION)/ti-dm/$(BR2_TARGET_UBOOT_TI_K3_DM_SOC)
+TI_K3_DM_SOURCE = ipc_echo_testb_mcu1_0_release_strip.xer5f
+# This is not really nice but disable the hash check for the DM FW file. Main
+# reason is all those DM FW files for different SoCs have the same(!) name in
+# the Git repository they reside in, so it would be more difficult to distinguish
+# between them for hash checking purposes. To work around this let's just
+# rely and trust the official Git repo at ti.com is known-good which is also
+# accessed through a secure transport.
+BR_NO_CHECK_HASH_FOR += $(TI_K3_DM_SOURCE)
+UBOOT_EXTRA_DOWNLOADS = $(TI_K3_DM_SITE)/$(TI_K3_DM_SOURCE)
+UBOOT_MAKE_OPTS += DM=$(UBOOT_DL_DIR)/$(TI_K3_DM_SOURCE)
+endif
+
 ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSBI),y)
 UBOOT_DEPENDENCIES += opensbi
 UBOOT_MAKE_OPTS += OPENSBI=$(BINARIES_DIR)/fw_dynamic.bin
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#12 lore raw

Re: [Buildroot] [PATCH v8 03/10] boot/uboot: add support for building the TI K3 DM into U-Boot

Hello Andreas,

Quoted 10 lines · On Thu, 15 Jun 2023 19:23:52 -0500 Andreas Dannenberg via buildroot…

Certain TI K3 devices such as AM62x and AM62Ax require a Device Manager (DM) firmnware to be made available to the U-Boot build, which will get packaged into the "tispl.bin" image tree blob during A53 SPL build. Without that DM firmware U-Boot will not be functional. To support this, add a config option called BR2_TARGET_UBOOT_NEEDS_TI_K3_DM to enable this feature, and another option BR2_TARGET_UBOOT_TI_K3_DM_SOC to allow setting the name of the SOC which needs to match the corresponding folder name in the ti-linux-firmware Git repository.

I've also applied this patch to our next branch, with some changes. The main one being that the U-Boot package is no longer responsible for downloading the ti-dm firmware, it is now done by the separate ti-k3-boot-firmware package.

Quoted 14 lines
boot/uboot/Config.in +6 -0
index 085397d03d..7e1dd44196 100644
@@ -240,6 +240,23 @@ config BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE
 	  U-Boot, and that the TEE variable pointing to OPTEE's
 	  tee.elf, is passed during the Buildroot build.
 
+config BR2_TARGET_UBOOT_NEEDS_TI_K3_DM
+	bool "U-Boot needs TI K3 Device Manager (DM)"
+	help
+	  Some TI K3 devices need the Device Manager (DM) firmware
+	  to be available for the U-Boot build. Currently supports FW
+	  from Git tag 08.06.00.006 by default.

boot/uboot/Config.in config BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE · line 258

Quoted 10 lines
boot/uboot/Config.in +10 -0
+
+	  https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-dm?h=ti-linux-firmware
+
+config BR2_TARGET_UBOOT_TI_K3_DM_SOC
+	string "TI K3 Device Manager (DM) SOC Type"
+	depends on BR2_TARGET_UBOOT_NEEDS_TI_K3_DM
+	help
+	  Name of the TI K3 Device Manager (DM) SOC. This needs to
+	  match one of the SOC-specific folders in within the ti-dm
+	  folder of the ti-linux-firmware Git repository.

Changed to:

+config BR2_TARGET_UBOOT_NEEDS_TI_K3_DM

+       bool "U-Boot needs TI K3 Device Manager (DM)"
+       # We use the SoC selection defined for the ti-k3-image-gen
+       # package
+       depends on BR2_TARGET_TI_K3_IMAGE_GEN
+       depends on BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX || BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X
+       help

+ Some TI K3 devices need the Device Manager (DM) firmware to
+ be available for the U-Boot build.
+
+if BR2_TARGET_UBOOT_NEEDS_TI_K3_DM
+
+config BR2_TARGET_UBOOT_TI_K3_DM_SOCNAME

+       string
+       default "am62axx" if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62AX
+       default "am62xx"  if BR2_TARGET_TI_K3_IMAGE_GEN_SOC_AM62X

+
+endif

Basically my idea here is to avoid replicating the selection of SoC, which we have already defined in the ti-k3-image-gen configuration. So we piggy-back on the options of this package to determine the SoC we're working with.

Quoted 13 lines
boot/uboot/uboot.mk +5 -0
index 4eae8e95c3..48af69bd26 100644
@@ -184,6 +184,22 @@ UBOOT_DEPENDENCIES += optee-os
 UBOOT_MAKE_OPTS += TEE=$(BINARIES_DIR)/tee.elf
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_TI_K3_DM),y)
+# Currently supports the FW from Git tag 08.06.00.006 by default
+TI_K3_DM_VERSION = 340194800a581baf976360386dfc7b5acab8d948
+TI_K3_DM_SITE = https://git.ti.com/processor-firmware/ti-linux-firmware/blobs/raw/$(TI_K3_DM_VERSION)/ti-dm/$(BR2_TARGET_UBOOT_TI_K3_DM_SOC)
+TI_K3_DM_SOURCE = ipc_echo_testb_mcu1_0_release_strip.xer5f

boot/uboot/uboot.mk UBOOT_DEPENDENCIES += optee-os · line 201

Quoted 10 lines
boot/uboot/uboot.mk +10 -0
+# This is not really nice but disable the hash check for the DM FW file. Main
+# reason is all those DM FW files for different SoCs have the same(!) name in
+# the Git repository they reside in, so it would be more difficult to distinguish
+# between them for hash checking purposes. To work around this let's just
+# rely and trust the official Git repo at ti.com is known-good which is also
+# accessed through a secure transport.
+BR_NO_CHECK_HASH_FOR += $(TI_K3_DM_SOURCE)
+UBOOT_EXTRA_DOWNLOADS = $(TI_K3_DM_SITE)/$(TI_K3_DM_SOURCE)
+UBOOT_MAKE_OPTS += DM=$(UBOOT_DL_DIR)/$(TI_K3_DM_SOURCE)
+endif

Simplified to:

+ifeq ($(BR2_TARGET_UBOOT_NEEDS_TI_K3_DM),y)
+UBOOT_TI_K3_DM_SOCNAME = $(call qstrip,$(BR2_TARGET_UBOOT_TI_K3_DM_SOCNAME)) +UBOOT_DEPENDENCIES += ti-k3-boot-firmware
+UBOOT_MAKE_OPTS += DM=$(BINARIES_DIR)/ti-dm/$(UBOOT_TI_K3_DM_SOCNAME)/ipc_echo_testb_mcu1_0_release_strip.xer5f +endif

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
#13 lore raw

PATCH v8 4/10 board/ti/am64x_sk: add new board

In reply to Andreas Dannenberg via buildroot

From: Xuanhao Shi <[email protected]>

Adds support for TI's SK-AM64 board by introducing the am64x_sk_defconfig file and related support files.

More information about the board can be found at:
https://www.ti.com/tool/SK-AM64

---
 DEVELOPERS                     |  4 ++++
 board/ti/am64x_sk/genimage.cfg | 27 +++++++++++++++++++++
 board/ti/am64x_sk/readme.txt   | 26 ++++++++++++++++++++
 configs/am64x_sk_defconfig     | 44 ++++++++++++++++++++++++++++++++++
 4 files changed, 101 insertions(+)
 create mode 100644 board/ti/am64x_sk/genimage.cfg
 create mode 100644 board/ti/am64x_sk/readme.txt
 create mode 100644 configs/am64x_sk_defconfig
DEVELOPERS +4 -0
index 4d3e3b156a..6485061d4d 100644
@@ -129,8 +129,10 @@ F:	package/libxmlrpc/
 F:	package/python-docopt/
 
 N:	Anand Gadiyar <[email protected]>
+F:	board/ti/am64x_sk/
 F:	boot/ti-k3-image-gen/
 F:	boot/ti-k3-r5-loader/
+F:	configs/am64x_sk_defconfig
 
 N:	André Zwing <[email protected]>
 F:	package/libkrb5/
@@ -3021,8 +3023,10 @@ N:	Wojciech Niziński <[email protected]>
 F:	package/fwup/
 
 N:	Xuanhao Shi <[email protected]>
+F:	board/ti/am64x_sk/
 F:	boot/ti-k3-image-gen/
 F:	boot/ti-k3-r5-loader/
+F:	configs/am64x_sk_defconfig
 
 N:	Yair Ben Avraham <[email protected]>
 F:	package/casync/
board/ti/am64x_sk/genimage.cfg new file +27 -0
new file mode 100644
index 0000000000..26304fe98f
@@ -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 +26 -0
new file mode 100644
index 0000000000..fe83c675f5
@@ -0,0 +1,26 @@
+Texas Instuments SK-AM64 Test and Development Board
+
+Description
+===========
+This configuration will build a complete image for the TI SK-AM64 board.
+
+How to Build
+============
+Select the default configuration for the target:
+$ make am64x_sk_defconfig
+
+Optional: modify the configuration:
+$ make menuconfig
+
+Build:
+$ make
+
+To copy the resultimg output image file to an SD card use dd:
+$ dd if=output/images/sdcard.img of=/dev/sdX bs=1M
+
+How to Run
+==========
+Insert the SD card into the SK-AM62 board, and power it up through
+the USB Type-C connector. The system should come up. You can use
+a micro-USB cable to connect to the connector labeled DEBUG CONSOLE
+to communicate with the board.
configs/am64x_sk_defconfig new file +44 -0

44 lines not on this page · raw message

Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#14 lore raw

Re: [Buildroot] [PATCH v8 04/10] board/ti/am64x_sk: add new board

Quoted 8 lines · On Thu, 15 Jun 2023 19:23:53 -0500 Andreas Dannenberg via buildroot…

From: Xuanhao Shi <[email protected]>

Adds support for TI's SK-AM64 board by introducing the am64x_sk_defconfig file and related support files.

More information about the board can be found at:
https://www.ti.com/tool/SK-AM64

Quoted 9 lines

Thanks, I've applied to our next branch, with some minor changes:

- Defconfig renamed to ti_am64k_sk_defconfig

- Directory board/ti/am64k_sk renamed to board/ti/am64k-sk

- Defconfig updated to take into account the changes made in the previous patches in terms of config options

- Minor formatting improvement in the readme.txt

Thanks!

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
#15 lore raw

PATCH v8 5/10 board/ti/am62x_sk: add new board

In reply to Andreas Dannenberg via buildroot

From: Xuanhao Shi <[email protected]>

Adds support for TI's SK-AM62 board by introducing the am62x_sk_defconfig file and related support files.

More information about the board can be found at:
https://www.ti.com/tool/SK-AM62

---
 DEVELOPERS                     |  4 +++
 board/ti/am62x_sk/genimage.cfg | 27 ++++++++++++++++++++
 board/ti/am62x_sk/readme.txt   | 26 ++++++++++++++++++++
 configs/am62x_sk_defconfig     | 45 ++++++++++++++++++++++++++++++++++
 4 files changed, 102 insertions(+)
 create mode 100644 board/ti/am62x_sk/genimage.cfg
 create mode 100644 board/ti/am62x_sk/readme.txt
 create mode 100644 configs/am62x_sk_defconfig
DEVELOPERS +4 -0
index 6485061d4d..74bedf5603 100644
@@ -129,9 +129,11 @@ 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]>
@@ -3023,9 +3025,11 @@ 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]>
board/ti/am62x_sk/genimage.cfg new file +27 -0
new file mode 100644
index 0000000000..26304fe98f
@@ -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 +26 -0
new file mode 100644
index 0000000000..ccbb24896b
@@ -0,0 +1,26 @@
+Texas Instuments SK-AM62 Test and Development Board
+
+Description
+===========
+This configuration will build a complete image for the TI SK-AM62 board.
+
+How to Build
+============
+Select the default configuration for the target:
+$ make am62x_sk_defconfig
+
+Optional: modify the configuration:
+$ make menuconfig
+
+Build:
+$ make
+
+To copy the resultimg output image file to an SD card use dd:
+$ dd if=output/images/sdcard.img of=/dev/sdX bs=1M
+
+How to Run
+==========
+Insert the SD card into the SK-AM62 board, and power it up through
+the USB Type-C connector. The system should come up. You can use
+a micro-USB cable to connect to the connector labeled UART to
+communicate with the board.
configs/am62x_sk_defconfig new file +45 -0

45 lines not on this page · raw message

Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#16 lore raw

Re: [Buildroot] [PATCH v8 05/10] board/ti/am62x_sk: add new board

Quoted 10 lines · On Thu, 15 Jun 2023 19:23:54 -0500 Andreas Dannenberg via buildroot…

From: Xuanhao Shi <[email protected]>

Adds support for TI's SK-AM62 board by introducing the am62x_sk_defconfig file and related support files.

More information about the board can be found at:
https://www.ti.com/tool/SK-AM62

Quoted 9 lines
---
 DEVELOPERS                     |  4 +++
 board/ti/am62x_sk/genimage.cfg | 27 ++++++++++++++++++++
 board/ti/am62x_sk/readme.txt   | 26 ++++++++++++++++++++
 configs/am62x_sk_defconfig     | 45 ++++++++++++++++++++++++++++++++++
 4 files changed, 102 insertions(+)
 create mode 100644 board/ti/am62x_sk/genimage.cfg
 create mode 100644 board/ti/am62x_sk/readme.txt
 create mode 100644 configs/am62x_sk_defconfig

Thanks, I've applied to our next branch, with some minor changes:

- Defconfig renamed to ti_am62k_sk_defconfig

- Directory board/ti/am62k_sk renamed to board/ti/am62k-sk

- Defconfig updated to take into account the changes made in the previous patches in terms of config options

- Minor formatting improvement in the readme.txt

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
#17 lore raw

PATCH v8 6/10 board/ti/am62x_sk|am64x_sk: switch to TI SDK v8.6 sources

In reply to Andreas Dannenberg via buildroot

Switch the following projects to using the same Git source repos and commit IDs that are used to build the TI SDK v8.6 for AM62x and AM64x devices to establish a baseline for comparable functionality:

* TI Linux Kernel v5.10
* TI U-Boot v2021.01
* ARM Trusted Firmware
* OP-TEE

For the Linux Kernel this also includes switching the defconfig to a new one that is generated with the ti_config_fragments/defconfig_builder.sh tool that is part of the respective ti-linux-5.10.y repository.

---
 .../ti/am62x_sk/ti_sdk_arm64_debug_defconfig  | 1991 +++++++++++++++++
 .../am62x_sk/ti_sdk_arm64_release_defconfig   | 1894 ++++++++++++++++
 .../ti/am64x_sk/ti_sdk_arm64_debug_defconfig  | 1991 +++++++++++++++++
 .../am64x_sk/ti_sdk_arm64_release_defconfig   | 1894 ++++++++++++++++
 configs/am62x_sk_defconfig                    |   19 +-
 configs/am64x_sk_defconfig                    |   19 +-
 6 files changed, 7798 insertions(+), 10 deletions(-)
 create mode 100644 board/ti/am62x_sk/ti_sdk_arm64_debug_defconfig
 create mode 100644 board/ti/am62x_sk/ti_sdk_arm64_release_defconfig
 create mode 100644 board/ti/am64x_sk/ti_sdk_arm64_debug_defconfig
 create mode 100644 board/ti/am64x_sk/ti_sdk_arm64_release_defconfig
board/ti/am62x_sk/ti_sdk_arm64_debug_defconfig new file +1991 -0
new file mode 100644
index 0000000000..8d7304965f
@@ -0,0 +1,1991 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_ARCH_K3=y
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_FILE=y
+CONFIG_COMPAT=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_HIBERNATION=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_ENERGY_MODEL=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ACPI_CPPC_CPUFREQ=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=y
+CONFIG_ARM_IMX_CPUFREQ_DT=m
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM=y
+CONFIG_ARM_QCOM_CPUFREQ_HW=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
+CONFIG_ARM_TEGRA186_CPUFREQ=y
+CONFIG_QORIQ_CPUFREQ=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_INTEL_STRATIX10_SERVICE=y
+CONFIG_INTEL_STRATIX10_RSU=m
+CONFIG_EFI_CAPSULE_LOADER=y
+CONFIG_IMX_SCU=y
+CONFIG_IMX_SCU_PD=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_KSM=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IPV6=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_NET_DSA=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_ETF=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_ACT_GATE=m
+CONFIG_QRTR=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
+CONFIG_BPF_JIT=y
+CONFIG_CAN_RCAR=m
+CONFIG_CAN_RCAR_CANFD=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_BT=m
+CONFIG_BT_HIDP=m
+# CONFIG_BT_HS is not set
+# CONFIG_BT_LE is not set
+CONFIG_BT_LEDS=y
+# CONFIG_BT_DEBUGFS is not set
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_CFG80211=m
+CONFIG_MAC80211=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_RFKILL=m
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PASID=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_PCI_AARDVARK=y
+CONFIG_PCI_TEGRA=y
+CONFIG_PCIE_RCAR_HOST=y
+CONFIG_PCIE_RCAR_EP=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCIE_ALTERA=y
+CONFIG_PCIE_ALTERA_MSI=y
+CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCIE_ROCKCHIP_HOST=m
+CONFIG_PCIE_BRCMSTB=m
+CONFIG_PCI_LAYERSCAPE=y
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCIE_ARMADA_8K=y
+CONFIG_PCIE_HISI_STB=y
+CONFIG_PCIE_TEGRA194_HOST=m
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
+CONFIG_HISILICON_LPC=y
+CONFIG_SIMPLE_PM_BUS=y
+CONFIG_FSL_MC_BUS=y
+CONFIG_TEGRA_ACONNECT=m
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_DATAFLASH=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_NAND_DENALI_DT=y
+CONFIG_MTD_NAND_MARVELL=y
+CONFIG_MTD_NAND_FSL_IFC=y
+CONFIG_MTD_NAND_QCOM=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_VIRTIO_BLK=y
+CONFIG_SRAM=y
+CONFIG_EEPROM_AT25=m
+CONFIG_UACCE=m
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_HISI_SAS=y
+CONFIG_SCSI_HISI_SAS_PCI=y
+CONFIG_MEGARAID_SAS=y
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_UFS_QCOM=m
+CONFIG_SCSI_UFS_HISI=y
+CONFIG_AHCI_CEVA=y
+CONFIG_AHCI_MVEBU=y
+CONFIG_AHCI_XGENE=y
+CONFIG_AHCI_QORIQ=y
+CONFIG_SATA_SIL24=y
+CONFIG_SATA_RCAR=y
+CONFIG_PATA_PLATFORM=y
+CONFIG_PATA_OF_PLATFORM=y
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_NETDEVICES=y
+CONFIG_MACVTAP=m
+CONFIG_TUN=y
+CONFIG_VIRTIO_NET=y
+CONFIG_NET_DSA_MSCC_FELIX=m
+CONFIG_AMD_XGBE=y
+CONFIG_NET_XGENE=y
+CONFIG_ATL1C=m
+CONFIG_BNX2X=m
+CONFIG_MACB=y
+CONFIG_THUNDER_NIC_PF=y
+CONFIG_FEC=y
+CONFIG_FSL_FMAN=y
+CONFIG_FSL_DPAA_ETH=y
+CONFIG_FSL_DPAA2_ETH=y
+CONFIG_FSL_ENETC=y
+CONFIG_FSL_ENETC_VF=y
+CONFIG_FSL_ENETC_QOS=y
+CONFIG_HIX5HD2_GMAC=y
+CONFIG_HNS_DSAF=y
+CONFIG_HNS_ENET=y
+CONFIG_HNS3=y
+CONFIG_HNS3_HCLGE=y
+CONFIG_HNS3_ENET=y
+CONFIG_IGBVF=y
+CONFIG_MVNETA=y
+CONFIG_MVPP2=y
+CONFIG_SKY2=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
+CONFIG_QCOM_EMAC=m
+CONFIG_RMNET=m
+CONFIG_SH_ETH=y
+CONFIG_RAVB=y
+CONFIG_SMC91X=y
+CONFIG_SMSC911X=y
+CONFIG_SNI_AVE=y
+CONFIG_SNI_NETSEC=y
+CONFIG_STMMAC_ETH=m
+CONFIG_QCOM_IPA=m
+CONFIG_MDIO_BUS_MUX_MMIOREG=y
+CONFIG_AQUANTIA_PHY=y
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MESON_GXL_PHY=m
+CONFIG_MICROSEMI_PHY=y
+CONFIG_AT803X_PHY=y
+CONFIG_REALTEK_PHY=m
+CONFIG_ROCKCHIP_PHY=y
+CONFIG_VITESSE_PHY=y
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SNOC=m
+CONFIG_BRCMFMAC=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_ADC=m
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_SNVS_PWRKEY=m
+CONFIG_KEYBOARD_IMX_SC_KEY=m
+CONFIG_KEYBOARD_CROS_EC=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PM8941_PWRKEY=y
+CONFIG_INPUT_PM8XXX_VIBRATOR=m
+CONFIG_INPUT_HISI_POWERKEY=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SERIO_AMBAKMI=y
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_8250_OMAP=y
+CONFIG_SERIAL_8250_MT6577=y
+CONFIG_SERIAL_8250_UNIPHIER=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_TEGRA=y
+CONFIG_SERIAL_TEGRA_TCU=y
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_QCOM_GENI=y
+CONFIG_SERIAL_QCOM_GENI_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=y
+CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y
+CONFIG_SERIAL_MVEBU_UART=y
+CONFIG_SERIAL_OWL=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_TIS_I2C_INFINEON=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_IMX=y
+CONFIG_I2C_IMX_LPI2C=y
+CONFIG_I2C_MESON=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_I2C_OWL=y
+CONFIG_I2C_PXA=y
+CONFIG_I2C_QCOM_CCI=m
+CONFIG_I2C_QCOM_GENI=m
+CONFIG_I2C_QUP=y
+CONFIG_I2C_SH_MOBILE=y
+CONFIG_I2C_TEGRA=y
+CONFIG_I2C_UNIPHIER_F=y
+CONFIG_I2C_RCAR=y
+CONFIG_I2C_CROS_EC_TUNNEL=y
+CONFIG_SPI=y
+CONFIG_SPI_ARMADA_3700=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_FSL_LPSPI=y
+CONFIG_SPI_FSL_QUADSPI=y
+CONFIG_SPI_NXP_FLEXSPI=y
+CONFIG_SPI_IMX=m
+CONFIG_SPI_FSL_DSPI=y
+CONFIG_SPI_MESON_SPICC=m
+CONFIG_SPI_MESON_SPIFC=m
+CONFIG_SPI_ORION=y
+CONFIG_SPI_PL022=y
+CONFIG_SPI_RPCIF=m
+CONFIG_SPI_QCOM_QSPI=m
+CONFIG_SPI_QUP=y
+CONFIG_SPI_QCOM_GENI=m
+CONFIG_SPI_S3C64XX=y
+CONFIG_SPI_SH_MSIOF=m
+CONFIG_SPI_SUN6I=y
+CONFIG_SPMI=y
+CONFIG_PINCTRL_MAX77620=y
+CONFIG_PINCTRL_OWL=y
+CONFIG_PINCTRL_S700=y
+CONFIG_PINCTRL_S900=y
+CONFIG_PINCTRL_IMX8MM=y
+CONFIG_PINCTRL_IMX8MN=y
+CONFIG_PINCTRL_IMX8MP=y
+CONFIG_PINCTRL_IMX8MQ=y
+CONFIG_PINCTRL_IMX8QXP=y
+CONFIG_PINCTRL_IMX8DXL=y
+CONFIG_PINCTRL_IPQ8074=y
+CONFIG_PINCTRL_IPQ6018=y
+CONFIG_PINCTRL_MSM8916=y
+CONFIG_PINCTRL_MSM8994=y
+CONFIG_PINCTRL_MSM8996=y
+CONFIG_PINCTRL_MSM8998=y
+CONFIG_PINCTRL_QCS404=y
+CONFIG_PINCTRL_QDF2XXX=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+CONFIG_PINCTRL_SC7180=y
+CONFIG_PINCTRL_SDM845=y
+CONFIG_PINCTRL_SM8150=y
+CONFIG_PINCTRL_SM8250=y
+CONFIG_GPIO_ALTERA=m
+CONFIG_GPIO_DAVINCI=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_GPIO_MB86S7X=y
+CONFIG_GPIO_MPC8XXX=y
+CONFIG_GPIO_MXC=y
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RCAR=y
+CONFIG_GPIO_UNIPHIER=y
+CONFIG_GPIO_WCD934X=m
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_XGENE_SB=y
+CONFIG_GPIO_MAX732X=y
+CONFIG_GPIO_BD9571MWV=m
+CONFIG_GPIO_MAX77620=y
+CONFIG_GPIO_SL28CPLD=m
+CONFIG_POWER_AVS=y
+CONFIG_QCOM_CPR=y
+CONFIG_ROCKCHIP_IODOMAIN=y
+CONFIG_POWER_RESET_MSM=y
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_BQ27XXX=y
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_SL28CPLD=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_CPU_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_QORIQ_THERMAL=m
+CONFIG_SUN8I_THERMAL=y
+CONFIG_IMX_SC_THERMAL=m
+CONFIG_IMX8MM_THERMAL=m
+CONFIG_ROCKCHIP_THERMAL=m
+CONFIG_RCAR_THERMAL=y
+CONFIG_RCAR_GEN3_THERMAL=y
+CONFIG_ARMADA_THERMAL=y
+CONFIG_BCM2711_THERMAL=m
+CONFIG_BCM2835_THERMAL=m
+CONFIG_BRCMSTB_THERMAL=m
+CONFIG_EXYNOS_THERMAL=y
+CONFIG_TEGRA_BPMP_THERMAL=m
+CONFIG_QCOM_TSENS=y
+CONFIG_QCOM_SPMI_TEMP_ALARM=m
+CONFIG_UNIPHIER_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_SL28CPLD_WATCHDOG=m
+CONFIG_ARM_SP805_WATCHDOG=y
+CONFIG_ARM_SBSA_WATCHDOG=y
+CONFIG_ARM_SMC_WATCHDOG=y
+CONFIG_S3C2410_WATCHDOG=y
+CONFIG_DW_WATCHDOG=y
+CONFIG_SUNXI_WATCHDOG=m
+CONFIG_IMX2_WDT=y
+CONFIG_IMX_SC_WDT=m
+CONFIG_QCOM_WDT=m
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+CONFIG_RENESAS_WDT=y
+CONFIG_UNIPHIER_WATCHDOG=y
+CONFIG_BCM2835_WDT=y
+CONFIG_MFD_ALTERA_SYSMGR=y
+CONFIG_MFD_BD9571MWV=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_AXP20X_RSB=y
+CONFIG_MFD_EXYNOS_LPASS=m
+CONFIG_MFD_HI6421_PMIC=y
+CONFIG_MFD_HI655X_PMIC=y
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_SPMI_PMIC=y
+CONFIG_MFD_RK808=y
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_SL28CPLD=y
+CONFIG_MFD_ROHM_BD718XX=y
+CONFIG_MFD_WCD934X=m
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_BD718XX=y
+CONFIG_REGULATOR_BD9571MWV=y
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_HI6421V530=y
+CONFIG_REGULATOR_HI655X=y
+CONFIG_REGULATOR_MAX77620=y
+CONFIG_REGULATOR_MAX8973=y
+CONFIG_REGULATOR_PCA9450=y
+CONFIG_REGULATOR_PFUZE100=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_QCOM_RPMH=y
+CONFIG_REGULATOR_QCOM_SMD_RPM=y
+CONFIG_REGULATOR_QCOM_SPMI=y
+CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_S2MPS11=y
+CONFIG_REGULATOR_VCTRL=m
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_IR_MESON=m
+CONFIG_IR_SUNXI=m
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+# CONFIG_DVB_NET is not set
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_RCAR_CSI2=m
+CONFIG_VIDEO_RCAR_VIN=m
+CONFIG_VIDEO_SUN6I_CSI=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
+CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
+CONFIG_VIDEO_RENESAS_FDP1=m
+CONFIG_VIDEO_RENESAS_FCP=m
+CONFIG_VIDEO_RENESAS_VSP1=m
+CONFIG_SDR_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_RCAR_DRIF=m
+CONFIG_VIDEO_IMX219=m
+CONFIG_VIDEO_OV5645=m
+CONFIG_VIDEO_QCOM_CAMSS=m
+CONFIG_DRM_MALI_DISPLAY=m
+CONFIG_DRM_EXYNOS=m
+CONFIG_DRM_EXYNOS5433_DECON=y
+CONFIG_DRM_EXYNOS7_DECON=y
+CONFIG_DRM_EXYNOS_DSI=y
+# CONFIG_DRM_EXYNOS_DP is not set
+CONFIG_DRM_EXYNOS_HDMI=y
+CONFIG_DRM_EXYNOS_MIC=y
+CONFIG_DRM_ROCKCHIP=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+CONFIG_ROCKCHIP_INNO_HDMI=y
+CONFIG_DRM_RCAR_DU=m
+CONFIG_DRM_RCAR_DW_HDMI=m
+CONFIG_DRM_SUN4I=m
+CONFIG_DRM_SUN6I_DSI=m
+CONFIG_DRM_SUN8I_DW_HDMI=m
+CONFIG_DRM_SUN8I_MIXER=m
+CONFIG_DRM_MSM=m
+CONFIG_DRM_TEGRA=m
+CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
+CONFIG_DRM_PANEL_SITRONIX_ST7703=m
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
+CONFIG_DRM_NWL_MIPI_DSI=m
+CONFIG_DRM_LONTIUM_LT9611=m
+CONFIG_DRM_SIMPLE_BRIDGE=m
+CONFIG_DRM_THINE_THC63LVD1024=m
+CONFIG_DRM_TI_SN65DSI86=m
+CONFIG_DRM_I2C_ADV7511_AUDIO=y
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
+CONFIG_DRM_DW_HDMI_CEC=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_MESON=m
+CONFIG_FB=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_LP855X=m
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_HDA_TEGRA=m
+CONFIG_SND_HDA_CODEC_HDMI=m
+CONFIG_SND_SOC=y
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_MESON_AXG_SOUND_CARD=m
+CONFIG_SND_MESON_GX_SOUND_CARD=m
+CONFIG_SND_SOC_QCOM=m
+CONFIG_SND_SOC_APQ8016_SBC=m
+CONFIG_SND_SOC_MSM8996=m
+CONFIG_SND_SOC_SDM845=m
+CONFIG_SND_SOC_ROCKCHIP=m
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
+CONFIG_SND_SOC_ROCKCHIP_RT5645=m
+CONFIG_SND_SOC_RK3399_GRU_SOUND=m
+CONFIG_SND_SOC_SAMSUNG=y
+CONFIG_SND_SOC_RCAR=m
+CONFIG_SND_SUN4I_SPDIF=m
+CONFIG_SND_SOC_TEGRA=m
+CONFIG_SND_SOC_TEGRA210_AHUB=m
+CONFIG_SND_SOC_TEGRA210_DMIC=m
+CONFIG_SND_SOC_TEGRA210_I2S=m
+CONFIG_SND_SOC_TEGRA186_DSPK=m
+CONFIG_SND_SOC_TEGRA210_ADMAIF=m
+CONFIG_SND_SOC_WCD934X=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WSA881X=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_AUDIO_GRAPH_CARD=m
+CONFIG_I2C_HID=m
+CONFIG_USB_CONN_GPIO=m
+CONFIG_USB_OTG=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_TEGRA=y
+CONFIG_USB_EHCI_EXYNOS=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_EXYNOS=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_RENESAS_USBHS_HCD=m
+CONFIG_USB_RENESAS_USBHS=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_MUSB_SUNXI=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_ISP1760=y
+CONFIG_USB_HSIC_USB3503=y
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_RENESAS_USB3=m
+CONFIG_USB_TEGRA_XUDC=m
+CONFIG_TYPEC=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_HD3SS3220=m
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_SDHCI_ACPI=y
+CONFIG_MMC_SDHCI_OF_ARASAN=y
+CONFIG_MMC_SDHCI_OF_ESDHC=y
+CONFIG_MMC_SDHCI_CADENCE=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MMC_SDHCI_TEGRA=y
+CONFIG_MMC_SDHCI_F_SDH30=y
+CONFIG_MMC_MESON_GX=y
+CONFIG_MMC_SDHCI_MSM=y
+CONFIG_MMC_SPI=y
+CONFIG_MMC_SDHI=y
+CONFIG_MMC_UNIPHIER=y
+CONFIG_MMC_DW_EXYNOS=y
+CONFIG_MMC_DW_HI3798CV200=y
+CONFIG_MMC_DW_K3=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SUNXI=y
+CONFIG_MMC_BCM2835=y
+CONFIG_MMC_SDHCI_XENON=y
+CONFIG_MMC_OWL=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_EDAC=y
+CONFIG_EDAC_GHES=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_RK808=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_S5M=y
+CONFIG_RTC_DRV_DS3232=y
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_CROS_EC=y
+CONFIG_RTC_DRV_S3C=y
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_SUN6I=y
+CONFIG_RTC_DRV_ARMADA38X=y
+CONFIG_RTC_DRV_PM8XXX=m
+CONFIG_RTC_DRV_TEGRA=y
+CONFIG_RTC_DRV_SNVS=m
+CONFIG_RTC_DRV_IMX_SC=m
+CONFIG_RTC_DRV_XGENE=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_SUN6I=m
+CONFIG_FSL_EDMA=y
+CONFIG_IMX_SDMA=m
+CONFIG_K3_DMA=y
+CONFIG_MV_XOR=y
+CONFIG_MV_XOR_V2=y
+CONFIG_OWL_DMA=y
+CONFIG_PL330_DMA=y
+CONFIG_TEGRA20_APB_DMA=y
+CONFIG_TEGRA210_ADMA=m
+CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+CONFIG_RCAR_DMAC=y
+CONFIG_RENESAS_USB_DMAC=m
+CONFIG_TI_K3_UDMA=y
+CONFIG_TI_K3_UDMA_GLUE_LAYER=y
+CONFIG_VFIO=y
+CONFIG_VFIO_PCI=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_XEN_GNTDEV=y
+CONFIG_XEN_GRANT_DEV_ALLOC=y
+CONFIG_MFD_CROS_EC_DEV=y
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CROS_EC=y
+CONFIG_CROS_EC_I2C=y
+CONFIG_CROS_EC_SPI=y
+CONFIG_CROS_EC_CHARDEV=m
+CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_CS2000_CP=y
+CONFIG_COMMON_CLK_FSL_SAI=y
+CONFIG_COMMON_CLK_S2MPS11=y
+CONFIG_COMMON_CLK_PWM=y
+CONFIG_COMMON_CLK_VC5=y
+CONFIG_COMMON_CLK_BD718XX=m
+CONFIG_CLK_RASPBERRYPI=m
+CONFIG_CLK_IMX8MM=y
+CONFIG_CLK_IMX8MN=y
+CONFIG_CLK_IMX8MP=y
+CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_IMX8QXP=y
+CONFIG_TI_SCI_CLK=y
+CONFIG_COMMON_CLK_QCOM=y
+CONFIG_QCOM_A53PLL=y
+CONFIG_QCOM_CLK_APCS_MSM8916=y
+CONFIG_QCOM_CLK_SMD_RPM=y
+CONFIG_QCOM_CLK_RPMH=y
+CONFIG_IPQ_GCC_8074=y
+CONFIG_IPQ_GCC_6018=y
+CONFIG_MSM_GCC_8916=y
+CONFIG_MSM_GCC_8994=y
+CONFIG_MSM_MMCC_8996=y
+CONFIG_MSM_GCC_8998=y
+CONFIG_QCS_GCC_404=y
+CONFIG_SC_GCC_7180=y
+CONFIG_SDM_CAMCC_845=m
+CONFIG_SDM_GCC_845=y
+CONFIG_SDM_GPUCC_845=y
+CONFIG_SDM_VIDEOCC_845=y
+CONFIG_SDM_DISPCC_845=y
+CONFIG_SM_GCC_8150=y
+CONFIG_SM_GCC_8250=y
+CONFIG_SM_GPUCC_8150=y
+CONFIG_SM_GPUCC_8250=y
+CONFIG_QCOM_HFPLL=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HWSPINLOCK_QCOM=y
+CONFIG_IMX_MBOX=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_QCOM_APCS_IPC=y
+CONFIG_QCOM_IPCC=y
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_TEGRA_IOMMU_SMMU=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARM_SMMU_V3=y
+CONFIG_QCOM_IOMMU=y
+CONFIG_REMOTEPROC=y
+CONFIG_QCOM_Q6V5_MSS=m
+CONFIG_QCOM_Q6V5_PAS=m
+CONFIG_QCOM_SYSMON=m
+CONFIG_RPMSG_QCOM_GLINK_RPM=y
+CONFIG_RPMSG_QCOM_GLINK_SMEM=m
+CONFIG_RPMSG_QCOM_SMD=y
+CONFIG_SOUNDWIRE=m
+CONFIG_SOUNDWIRE_QCOM=m
+CONFIG_OWL_PM_DOMAINS=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_FSL_DPAA=y
+CONFIG_FSL_MC_DPIO=y
+CONFIG_QCOM_AOSS_QMP=y
+CONFIG_QCOM_GENI_SE=y
+CONFIG_QCOM_RMTFS_MEM=m
+CONFIG_QCOM_RPMH=y
+CONFIG_QCOM_RPMHPD=y
+CONFIG_QCOM_RPMPD=y
+CONFIG_QCOM_SMEM=y
+CONFIG_QCOM_SMD_RPM=y
+CONFIG_QCOM_SMP2P=y
+CONFIG_QCOM_SMSM=y
+CONFIG_QCOM_SOCINFO=m
+CONFIG_QCOM_APR=m
+CONFIG_ARCH_R8A774A1=y
+CONFIG_ARCH_R8A774B1=y
+CONFIG_ARCH_R8A774C0=y
+CONFIG_ARCH_R8A774E1=y
+CONFIG_ARCH_R8A77950=y
+CONFIG_ARCH_R8A77951=y
+CONFIG_ARCH_R8A77960=y
+CONFIG_ARCH_R8A77961=y
+CONFIG_ARCH_R8A77965=y
+CONFIG_ARCH_R8A77970=y
+CONFIG_ARCH_R8A77980=y
+CONFIG_ARCH_R8A77990=y
+CONFIG_ARCH_R8A77995=y
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+CONFIG_ARCH_TEGRA_194_SOC=y
+CONFIG_TI_SCI_PM_DOMAINS=y
+CONFIG_EXTCON_PTN5150=m
+CONFIG_EXTCON_USBC_CROS_EC=y
+CONFIG_RENESAS_RPCIF=m
+CONFIG_IIO=y
+CONFIG_EXYNOS_ADC=y
+CONFIG_MAX9611=m
+CONFIG_QCOM_SPMI_ADC5=m
+CONFIG_ROCKCHIP_SARADC=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+CONFIG_SENSORS_ISL29018=m
+CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_MPL3115=m
+CONFIG_PWM=y
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_MESON=m
+CONFIG_PWM_RCAR=m
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_PWM_SAMSUNG=y
+CONFIG_PWM_SL28CPLD=m
+CONFIG_PWM_SUN4I=m
+CONFIG_PWM_TEGRA=m
+CONFIG_SL28CPLD_INTC=y
+CONFIG_QCOM_PDC=y
+CONFIG_RESET_IMX7=y
+CONFIG_RESET_QCOM_AOSS=y
+CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_TI_SCI=y
+CONFIG_PHY_XGENE=y
+CONFIG_PHY_SUN4I_USB=y
+CONFIG_PHY_MIXEL_MIPI_DPHY=m
+CONFIG_PHY_HI6220_USB=y
+CONFIG_PHY_HISTB_COMBPHY=y
+CONFIG_PHY_HISI_INNO_USB2=y
+CONFIG_PHY_MVEBU_CP110_COMPHY=y
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
+CONFIG_PHY_QCOM_USB_HS=y
+CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y
+CONFIG_PHY_RCAR_GEN3_PCIE=y
+CONFIG_PHY_RCAR_GEN3_USB2=y
+CONFIG_PHY_RCAR_GEN3_USB3=m
+CONFIG_PHY_ROCKCHIP_EMMC=y
+CONFIG_PHY_ROCKCHIP_INNO_HDMI=m
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_PCIE=m
+CONFIG_PHY_ROCKCHIP_TYPEC=y
+CONFIG_PHY_UNIPHIER_USB2=y
+CONFIG_PHY_UNIPHIER_USB3=y
+CONFIG_PHY_TEGRA_XUSB=y
+CONFIG_ARM_SMMU_V3_PMU=m
+CONFIG_FSL_IMX8_DDR_PMU=m
+CONFIG_HISI_PMU=y
+CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
+CONFIG_NVMEM_IMX_OCOTP=y
+CONFIG_NVMEM_IMX_OCOTP_SCU=y
+CONFIG_QCOM_QFPROM=y
+CONFIG_ROCKCHIP_EFUSE=y
+CONFIG_NVMEM_SUNXI_SID=y
+CONFIG_UNIPHIER_EFUSE=y
+CONFIG_MESON_EFUSE=m
+CONFIG_FPGA=y
+CONFIG_FPGA_MGR_STRATIX10_SOC=m
+CONFIG_FPGA_BRIDGE=m
+CONFIG_ALTERA_FREEZE_BRIDGE=m
+CONFIG_FPGA_REGION=m
+CONFIG_OF_FPGA_REGION=m
+CONFIG_TEE=y
+CONFIG_OPTEE=y
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
+CONFIG_SLIM_QCOM_NGD_CTRL=m
+CONFIG_MUX_MMIO=y
+CONFIG_INTERCONNECT=y
+CONFIG_INTERCONNECT_QCOM=y
+CONFIG_INTERCONNECT_QCOM_MSM8916=m
+CONFIG_INTERCONNECT_QCOM_SDM845=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QUOTA=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_VFAT_FS=y
+CONFIG_HUGETLBFS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_EFIVAR_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_9P_FS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_SECURITY=y
+CONFIG_CRYPTO_ECHAINIV=y
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_FSL_CAAM=m
+CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
+CONFIG_CRYPTO_DEV_QCOM_RNG=m
+CONFIG_CRYPTO_DEV_CCREE=m
+CONFIG_CRYPTO_DEV_HISI_SEC2=m
+CONFIG_CRYPTO_DEV_HISI_ZIP=m
+CONFIG_CRYPTO_DEV_HISI_HPRE=m
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_INFO=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_FTRACE is not set
+CONFIG_MEMTEST=y
+CONFIG_ARCH_ACTIONS=n
+CONFIG_ARCH_SUNXI=n
+CONFIG_ARCH_AGILEX=n
+CONFIG_ARCH_ALPINE=n
+CONFIG_ARCH_BCM2835=n
+CONFIG_ARCH_BCM_IPROC=n
+CONFIG_ARCH_BERLIN=n
+CONFIG_ARCH_BRCMSTB=n
+CONFIG_ARCH_EXYNOS=n
+CONFIG_ARCH_LAYERSCAPE=n
+CONFIG_ARCH_LG1K=n
+CONFIG_ARCH_HISI=n
+CONFIG_ARCH_MEDIATEK=n
+CONFIG_ARCH_MESON=n
+CONFIG_ARCH_MVEBU=n
+CONFIG_ARCH_MXC=n
+CONFIG_ARCH_QCOM=n
+CONFIG_ARCH_ROCKCHIP=n
+CONFIG_ARCH_SEATTLE=n
+CONFIG_ARCH_RENESAS=n
+CONFIG_ARCH_R8A7795=n
+CONFIG_ARCH_R8A7796=n
+CONFIG_ARCH_S32=n
+CONFIG_ARCH_STRATIX10=n
+CONFIG_ARCH_SYNQUACER=n
+CONFIG_ARCH_TEGRA=n
+CONFIG_ARCH_SPRD=n
+CONFIG_ARCH_THUNDER=n
+CONFIG_ARCH_THUNDER2=n
+CONFIG_ARCH_UNIPHIER=n
+CONFIG_ARCH_VEXPRESS=n
+CONFIG_ARCH_VISCONTI=n
+CONFIG_ARCH_XGENE=n
+CONFIG_ARCH_ZX=n
+CONFIG_ARCH_ZYNQMP=n
+CONFIG_ARCH_TEGRA_132_SOC=n
+CONFIG_ARCH_TEGRA_210_SOC=n
+CONFIG_ARCH_TEGRA_186_SOC=n
+
+CONFIG_QCOM_FALKOR_ERRATUM_1003=n
+CONFIG_QCOM_FALKOR_ERRATUM_1009=n
+CONFIG_QCOM_QDF2400_ERRATUM_0065=n
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=n
+
+CONFIG_CAVIUM_ERRATUM_22375=n
+CONFIG_CAVIUM_ERRATUM_23144=n
+CONFIG_CAVIUM_ERRATUM_23154=n
+CONFIG_CAVIUM_ERRATUM_27456=n
+CONFIG_CAVIUM_ERRATUM_30115=n
+
+CONFIG_HISILICON_ERRATUM_161600802=n
+
+CONFIG_SERIAL_8250_FSL=n
+CONFIG_SERIAL_8250_DW=n
+CONFIG_SERIAL_AMBA_PL011=n
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=n
+CONFIG_SERIAL_XILINX_PS_UART=n
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=n
+
+CONFIG_ARM_SCPI_PROTOCOL=n
+CONFIG_ARM_SCPI_POWER_DOMAIN=n
+CONFIG_ARM_SCPI_CPUFREQ=n
+CONFIG_SENSORS_ARM_SCPI=n
+CONFIG_COMMON_CLK_SCPI=n
+
+CONFIG_ARM_MHU=n
+CONFIG_PLATFORM_MHU=n
+
+CONFIG_ACPI=n
+
+CONFIG_NUMA=n
+
+CONFIG_XEN=n
+CONFIG_KVM=n
+
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=n
+
+CONFIG_PCI_XGENE=n
+CONFIG_PCI_HISI=n
+CONFIG_PCIE_KIRIN=n
+
+# DRM
+CONFIG_DRM_NOUVEAU=n
+CONFIG_DRM_I2C_ADV7511=n
+CONFIG_DRM_ETNAVIV=n
+CONFIG_DRM_HISI_HIBMC=n
+CONFIG_DRM_HISI_KIRIN=n
+CONFIG_DRM_MXSFB=n
+CONFIG_DRM_PL111=n
+CONFIG_DRM_LIMA=n
+CONFIG_DRM_PANFROST=n
+
+# Video
+CONFIG_VGA_ARB=n
+CONFIG_FB_EFI=n
+
+# V4L2
+CONFIG_RC_CORE=n
+
+# Sound
+CONFIG_SND_SPI=n
+CONFIG_SND_SOC_FSL_SAI=n
+CONFIG_SND_SOC_AK4613=n
+CONFIG_SND_SOC_ES7134=n
+CONFIG_SND_SOC_ES7241=n
+CONFIG_SND_SOC_PCM3168A_I2C=n
+CONFIG_SND_SOC_TAS571X=n
+##################################################
+# TI Baseport Config Options
+##################################################
+
+# Serial
+CONFIG_SERIAL_8250_NR_UARTS=10
+CONFIG_SERIAL_8250_RUNTIME_UARTS=10
+
+# K3 Power config options
+CONFIG_PM=y
+
+# CPU Idle
+CONFIG_CPU_IDLE=y
+
+# ARM CPU Idle Drivers
+CONFIG_ARM_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE=n
+
+# CPU Frequency scaling
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+
+# Enable Reset Controllers
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_TI_SYSCON=y
+
+# Enable support for perf
+CONFIG_PERF_EVENTS=y
+
+# Add Bin2c
+CONFIG_BUILD_BIN2C=y
+
+# Add base Cgroups functions
+
+# Choose CONFIG_EMBEDDED
+CONFIG_EMBEDDED=y
+
+# Enable all kernel symbols please
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+
+# How do we want kernel Modules to work?
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+
+# Boot options
+CONFIG_CRASH_DUMP=n
+
+# Mem allocator
+
+# Pinctrl
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_SINGLE=y
+
+# GPIO
+CONFIG_GPIO_SYSFS=y
+
+# Crypto SA2UL
+CONFIG_CRYPTO_DEV_SA2UL=m
+
+# Enable options to facilitate testing
+CONFIG_CRYPTO_TEST=m
+
+# Thermal
+CONFIG_K3_THERMAL=y
+
+# Disable extra debug options
+CONFIG_PROFILING=n
+
+# Block Layer
+CONFIG_BLK_DEV_RAM=y
+
+# PMIC
+CONFIG_MFD_PALMAS=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_PALMAS=y
+
+# Watchdog support
+CONFIG_K3_RTI_WATCHDOG=m
+
+# RTC Drivers
+CONFIG_RTC_DRV_TI_K3=y
+
+# Counter device
+CONFIG_COUNTER=m
+
+# UIO and overlay support for Jailhouse
+CONFIG_UIO=y
+CONFIG_OF_OVERLAY=y
+
+# DMA-BUF Heaps
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_DMABUF_HEAPS_CARVEOUT=y
+CONFIG_SRAM_DMA_HEAP=y
+
+# DMA-BUF exporter
+CONFIG_DMA_BUF_PHYS=y
+
+# TI PAT
+CONFIG_TI_PAT=y
+
+# Enable Staging drivers for ARMV8
+CONFIG_STAGING=y
+
+# MCRC and its userspace support
+CONFIG_CRYPTO_DEV_TI_MCRC64=m
+CONFIG_CRYPTO_USER_API_HASH=m
+##################################################
+# TI RPMsg/IPC Config Options
+##################################################
+# HwSpinLock
+CONFIG_HWSPINLOCK_OMAP=y
+
+# Mailbox
+CONFIG_MAILBOX=y
+CONFIG_OMAP2PLUS_MBOX=y
+
+# SoC Drivers
+CONFIG_TI_PRUSS=m
+
+# IrqChip Drivers
+CONFIG_TI_PRUSS_INTC=m
+
+# Remoteproc
+CONFIG_TI_K3_R5_REMOTEPROC=m
+CONFIG_TI_K3_DSP_REMOTEPROC=m
+CONFIG_PRU_REMOTEPROC=m
+CONFIG_TI_K3_M4_REMOTEPROC=m
+
+# RPMsg
+CONFIG_RPMSG_CHAR=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_RPMSG_PRU=m
+
+# RPMsg Samples
+# CONFIG_SAMPLES=y
+# CONFIG_SAMPLE_RPMSG_CLIENT=m
+##################################################
+# TI Connectivity Configs
+##################################################
+
+# Disable unused I2C options
+CONFIG_I2C_MUX=n
+CONFIG_I2C_DESIGNWARE_PLATFORM=n
+CONFIG_I2C_GPIO=n
+CONFIG_I2C_RK3X=n
+CONFIG_I2C_XILINX=n
+
+# I2C controllers
+CONFIG_I2C=y
+CONFIG_I2C_OMAP=y
+
+# I2C GPIO expanders
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PCF857X=y
+CONFIG_GPIO_TPIC2810=m
+
+#I2C EEPROMS
+CONFIG_EEPROM_AT24=m
+
+#SPI EEPROMS
+CONFIG_EEPROM_93XX46=m
+
+# PTP
+CONFIG_PTP_1588_CLOCK=y
+
+#Networking drivers
+CONFIG_NET_VENDOR_TI=y
+CONFIG_KEYSTONE_NAVIGATOR_QMSS=y
+CONFIG_KEYSTONE_NAVIGATOR_DMA=y
+CONFIG_TI_KEYSTONE_NETCP=y
+CONFIG_TI_KEYSTONE_NETCP_ETHSS=y
+CONFIG_TI_DAVINCI_EMAC=y
+CONFIG_TI_DAVINCI_MDIO=y
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_GPIO=y
+CONFIG_TI_CPSW=y
+CONFIG_TI_CPSW_SWITCHDEV=y
+CONFIG_TI_CPTS=y
+CONFIG_TI_RDEV_ETH_SWITCH_VIRT_EMAC=m
+CONFIG_TI_PRUETH=m
+CONFIG_TI_ICSSG_PRUETH=m
+CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y
+# non-TI Net vendors
+CONFIG_NET_DSA_BCM_SF2=n
+CONFIG_B53=n
+CONFIG_SYSTEMPORT=n
+CONFIG_NET_VENDOR_3COM=n
+CONFIG_NET_VENDOR_ADAPTEC=n
+CONFIG_NET_VENDOR_AGERE=n
+CONFIG_NET_VENDOR_ALTEON=n
+CONFIG_NET_VENDOR_AMAZON=n
+CONFIG_NET_VENDOR_AMD=n
+CONFIG_NET_VENDOR_ARC=n
+CONFIG_NET_VENDOR_ATHEROS=n
+CONFIG_NET_VENDOR_BROCADE=n
+CONFIG_NET_VENDOR_CAVIUM=n
+CONFIG_NET_VENDOR_CHELSIO=n
+CONFIG_BCMGENET=n
+CONFIG_NET_VENDOR_CIRRUS=n
+CONFIG_NET_VENDOR_CISCO=n
+CONFIG_NET_VENDOR_DEC=n
+CONFIG_NET_VENDOR_DLINK=n
+CONFIG_NET_VENDOR_EMULEX=n
+CONFIG_NET_VENDOR_EZCHIP=n
+CONFIG_NET_VENDOR_FARADAY=n
+CONFIG_NET_VENDOR_HISILICON=n
+CONFIG_NET_VENDOR_HP=n
+CONFIG_IGB=n
+CONFIG_NET_VENDOR_I825XX=n
+CONFIG_NET_VENDOR_MELLANOX=n
+CONFIG_NET_VENDOR_MICROCHIP=n
+CONFIG_NET_VENDOR_MYRI=n
+CONFIG_NET_VENDOR_NATSEMI=n
+CONFIG_NET_VENDOR_NETRONOME=n
+CONFIG_NET_VENDOR_NVIDIA=n
+CONFIG_NET_VENDOR_OKI=n
+CONFIG_NET_VENDOR_8390=n
+CONFIG_NET_VENDOR_QLOGIC=n
+CONFIG_NET_VENDOR_REALTEK=n
+CONFIG_NET_VENDOR_RENESAS=n
+CONFIG_NET_VENDOR_RDC=n
+CONFIG_NET_VENDOR_ROCKER=n
+CONFIG_NET_VENDOR_SAMSUNG=n
+CONFIG_NET_VENDOR_SILAN=n
+CONFIG_NET_VENDOR_SIS=n
+CONFIG_NET_VENDOR_SEEQ=n
+CONFIG_NET_VENDOR_STMICRO=n
+CONFIG_NET_VENDOR_SUN=n
+CONFIG_NET_VENDOR_SYNOPSYS=n
+CONFIG_NET_VENDOR_TEHUTI=n
+CONFIG_NET_VENDOR_VIA=n
+CONFIG_NET_VENDOR_WIZNET=n
+#Wireless LAN
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WL18XX=m
+CONFIG_NL80211_TESTMODE=y
+CONFIG_MAC80211_MESH=y
+
+#MDIO phys
+CONFIG_MARVELL_PHY=y
+CONFIG_MICREL_PHY=y
+# unused PHY drivers
+CONFIG_BROADCOM_PHY=n
+CONFIG_ICPLUS_PHY=n
+#PRU MII PHYs for Industrial Boards
+CONFIG_DP83848_PHY=y
+# Enable phy for DRA72 evm
+CONFIG_DP83867_PHY=y
+# Enable phy for AM64 evm
+CONFIG_DP83869_PHY=y
+# Control onboard MDIO muxes
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
+
+#MTD
+CONFIG_MTD=y
+CONFIG_MEMORY=y
+CONFIG_TI_AEMIF=y
+CONFIG_OMAP_GPMC=y
+CONFIG_MTD_NAND_OMAP2=y
+CONFIG_MTD_NAND_OMAP_BCH=y
+CONFIG_MTD_NAND_OMAP_BCH_BUILD=y
+CONFIG_MTD_NAND_DAVINCI=y
+CONFIG_MTD_SPI_NAND=y
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_HYPERBUS=y
+CONFIG_HBMC_AM654=y
+
+#PCIE
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+CONFIG_PCI_EPF_TEST=y
+CONFIG_PCI_EPF_NTB=y
+CONFIG_PCI_ENDPOINT_TEST=m
+CONFIG_PCI_DRA7XX=y
+CONFIG_PCI_DRA7XX_HOST=y
+CONFIG_PCI_DRA7XX_EP=y
+CONFIG_PCI_KEYSTONE=y
+CONFIG_PCI_KEYSTONE_HOST=y
+CONFIG_PCI_KEYSTONE_EP=y
+CONFIG_PCI_J721E=y
+CONFIG_PCI_J721E_HOST=y
+CONFIG_PCI_J721E_EP=y
+CONFIG_PCIE_CADENCE=y
+CONFIG_PCIE_CADENCE_HOST=y
+CONFIG_PCIE_CADENCE_EP=y
+
+#NTB
+CONFIG_NTB=m
+CONFIG_NTB_EPF=m
+CONFIG_NTB_TRANSPORT=m
+CONFIG_NTB_NETDEV=m
+
+#NVME
+CONFIG_NVME_CORE=m
+CONFIG_BLK_DEV_NVME=m
+
+#These drivers have been used with DRA7x/AM57x PCIe RC with some success
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_TIGON3=m
+CONFIG_SKGE=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_B43=m
+#Generic Phys
+CONFIG_PHY_AM654_SERDES=y
+CONFIG_PHY_TI_KEYSTONE_SERDES=y
+CONFIG_PHY_CADENCE_SIERRA=y
+
+# Networking
+CONFIG_HSR=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_BRIDGE=m
+CONFIG_XFRM_USER=m
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_INET_AH=m
+CONFIG_INET6_AH=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_TAPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_SCH_FIFO=y
+CONFIG_IP_SCTP=m
+CONFIG_VLAN_8021Q=m
+CONFIG_IP_MULTICAST=y
+CONFIG_NET_SWITCHDEV=y
+
+# Ethernet drivers
+CONFIG_TI_K3_AM65_CPSW_NUSS=y
+CONFIG_TI_AM65_CPSW_TAS=y
+CONFIG_TI_K3_AM65_CPTS=y
+#MMC/SD support
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_OMAP_HS=y
+CONFIG_MMC_SDHCI_OMAP=y
+CONFIG_MMC_DW=n
+CONFIG_MMC_SDHCI_AM654=y
+
+#SPI
+CONFIG_SPI_CADENCE_QUADSPI=y
+CONFIG_SPI_TI_QSPI=y
+CONFIG_SPI_OMAP24XX=y
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SPIDEV=m
+#Disable unused SPI controllers
+CONFIG_SPI_BITBANG=n
+CONFIG_SPI_CADENCE=n
+CONFIG_SPI_ROCKCHIP=n
+CONFIG_SPI_XILINX=n
+
+#Disable SPI NOR 4K SECTORS
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=n
+
+#SPI GPIO expanders
+CONFIG_GPIO_PISOSR=m
+
+#SATA
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_AHCI=m
+CONFIG_ATA=m
+
+#USB PHY
+CONFIG_OMAP_USB2=m
+
+#USB gadgets
+CONFIG_USB_GADGET=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=32
+CONFIG_USB_ZERO=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+
+# USB DWC3
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_DUAL_ROLE=y
+CONFIG_USB_DWC3_OMAP=m
+CONFIG_USB_DWC3_KEYSTONE=m
+CONFIG_USB_DWC3_AM62=m
+CONFIG_USB_DWC3_PCI=n
+CONFIG_USB_DWC2=n
+CONFIG_USB_CHIPIDEA=n
+
+# USB CDNS3
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_TI=m
+
+#USB PHY
+CONFIG_NOP_USB_XCEIV=m
+
+#USB MUSB
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_DUAL_ROLE=y
+CONFIG_USB_MUSB_OMAP2PLUS=m
+CONFIG_USB_MUSB_AM35X=m
+CONFIG_USB_MUSB_DSPS=m
+CONFIG_USB_MUSB_AM335X_CHILD=m
+CONFIG_TI_CPPI41=y
+CONFIG_USB_TI_CPPI41_DMA=y
+CONFIG_AM335X_CONTROL_USB=y
+CONFIG_AM335X_PHY_USB=y
+
+#USB EHCI
+CONFIG_USB=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHCI_HCD_OMAP=m
+
+#USB Networking
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_NET_ZAURUS=m
+
+#USB testing
+CONFIG_USB_TEST=m
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#USB Serial
+CONFIG_USB_ACM=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OPTION=m
+
+# Extcon drivers
+CONFIG_EXTCON=m
+CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_USB_GPIO=m
+
+# USB PD controller drivers
+CONFIG_TYPEC_TPS6598X=m
+
+# PWM
+CONFIG_PWM_TIECAP=y
+CONFIG_PWM_TIEHRPWM=y
+CONFIG_PWM_TIPWMSS=y
+CONFIG_PWM_OMAP_DMTIMER=y
+
+# eCAP driver
+CONFIG_TI_ECAP_CAPTURE=m
+
+# 1-wire Bus Masters
+CONFIG_W1=m
+CONFIG_HDQ_MASTER_OMAP=m
+
+# Matrix keypad
+CONFIG_KEYBOARD_MATRIX=m
+
+#Touchscreen/ADC
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TI_AM335X_ADC=m
+
+#CAN
+CONFIG_CAN=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+CONFIG_CAN_M_CAN=m
+CONFIG_CAN_M_CAN_PLATFORM=m
+
+# CAN Transceiver
+CONFIG_PHY_CAN_TRANSCEIVER=m
+
+# Rotary Encoder
+CONFIG_INPUT_GPIO_DECODER=m
+
+# Filesystem extra options
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_UBIFS_FS=y
+
+# HD-Audio
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+
+#UFS
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_UFSHCD=y
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFSHCD_PLATFORM=y
+CONFIG_SCSI_UFS_CDNS_PLATFORM=y
+CONFIG_SCSI_UFS_TI_J721E=y
+
+#PRUSS-UART
+CONFIG_SERIAL_8250_PRUSS=m
+
+# MUX Drivers
+CONFIG_MUX_GPIO=y
+
+# PRU Soft UART driver
+CONFIG_SERIAL_PRU_SWUART=m
+
+# Enable Power line communication Common drivers
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_QCA7000=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+
+# AF_XDP
+CONFIG_BPF_SYSCALL=y
+CONFIG_XDP_SOCKETS=y
+##################################################
+# TI Audio/Display config options
+##################################################
+
+CONFIG_CMA=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=512
+
+# backlight
+
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_TLC591XX=y
+
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_BACKLIGHT_GPIO=y
+CONFIG_BACKLIGHT_LED=y
+
+# fbdev
+
+CONFIG_FB_SSD1307=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_DRM_MIPI_DBI=m
+CONFIG_TINYDRM_ILI9225=m
+
+# DRM
+CONFIG_DRM=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=y
+CONFIG_DRM_DISPLAY_CONNECTOR=y
+CONFIG_DRM_LVDS_CODEC=y
+CONFIG_DRM_SII902X=y
+CONFIG_DRM_TOSHIBA_TC358767=y
+CONFIG_DRM_TOSHIBA_TC358768=y
+CONFIG_DRM_TI_TFP410=y
+CONFIG_DRM_TI_TPD12S015=y
+
+# Firmware loading only works if built as module
+CONFIG_DRM_CDNS_MHDP8546=m
+CONFIG_DRM_CDNS_DSI=m
+
+CONFIG_PHY_J721E_WIZ=y
+CONFIG_PHY_CADENCE_TORRENT=y
+
+# SGX driver needs legacy support
+CONFIG_DRM_LEGACY=y
+
+CONFIG_DRM_I2C_NXP_TDA998X=y
+
+# tidss
+CONFIG_DRM_TIDSS=y
+
+# Touchscreen
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_HID_MULTITOUCH=m
+
+# V4L2
+CONFIG_VIDEO_CADENCE=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
+CONFIG_VIDEO_TI_CAL=m
+CONFIG_VIDEO_TI_J721E_CSI2RX=m
+CONFIG_VIDEO_IMX390=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV5640=m
+CONFIG_VIDEO_OV1063X=m
+CONFIG_VIDEO_OV2312=m
+CONFIG_VIDEO_DS90UB953=m
+CONFIG_VIDEO_DS90UB960=m
+CONFIG_PHY_CADENCE_DPHY=m
+
+# Sound
+CONFIG_SND_SOC_DAVINCI_MCASP=y
+CONFIG_SND_SOC_J721E_EVM=m
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
+CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+
+# display sharing
+CONFIG_RPMSG_KDRV_DISPLAY=y
+##################################################
+# TI Multimedia (Video Decode, Encode) Configs
+##################################################
+
+# IMG D5500 v4l2 Driver Config Options
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_VIDEO_IMG_VXD_DEC=m
+
+# IMG VXE384 v4l2 Driver Config Options
+CONFIG_VIDEO_IMG_VXE_ENC=m
+
+# Enable multimedia staging drivers for Wave VPU driver.
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_WAVE_VPU=m
+##############################################
+#
+# Kernel options needed for systemd enabled TI SDKs
+# See https://cgit.freedesktop.org/systemd/systemd/tree/README#n38 for details
+#
+##############################################
+CONFIG_TMPFS=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_PERF=y
+
+CONFIG_INOTIFY_USER=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EPOLL=y
+CONFIG_NET=y
+CONFIG_SYSFS=y
+CONFIG_PROC_FS=y
+CONFIG_FHANDLE=y
+
+# udev will fail to work with the legacy sysfs layout:
+CONFIG_SYSFS_DEPRECATED=n
+
+# Legacy hotplug slows down the system and confuses udev:
+CONFIG_UEVENT_HELPER_PATH=""
+
+# Userspace firmware loading is not supported and should
+# be disabled in the kernel:
+CONFIG_FW_LOADER_USER_HELPER=n
+
+# Some udev rules and virtualization detection relies on it:
+# Only for UEFI based systems
+# http://cateee.net/lkddb/web-lkddb/DMI.html
+CONFIG_DMIID=n
+
+# Support for some SCSI devices serial number retrieval, to
+# create additional symlinks in /dev/disk/ and /dev/tape:
+CONFIG_BLK_DEV_BSG=y
+
+# Required for PrivateNetwork and PrivateDevices in service units:
+# Note that systemd-localed.service and other systemd units use
+# PrivateNetwork and PrivateDevices so this is effectively required.
+CONFIG_NAMESPACES=y
+CONFIG_NET_NS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+
+# Optional but strongly recommended options: those are nice to have and
+# indeed recommended, but not necessarily systemd required. These to be
+# enabled in corresponding domain fragments since they are not specific
+# to supporting systemd.
+
+CONFIG_SECCOMP=y
+# for kcmp syscall
+CONFIG_CHECKPOINT_RESTORE=y
+
+# Required for CPUShares= in resource control unit settings
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+
+# Required for CPUQuota= in resource control unit settings
+CONFIG_CFS_BANDWIDTH=y
+
+# For systemd-bootchart, several proc debug interfaces are required:
+# Systemd-debug.cfg?
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_DEBUG=y
+
+# We recommend to turn off Real-Time group scheduling in the
+# kernel when using systemd. RT group scheduling effectively
+# makes RT scheduling unavailable for most userspace, since it
+# requires explicit assignment of RT budgets to each unit whose
+# processes making use of RT. As there's no sensible way to
+# assign these budgets automatically this cannot really be
+# fixed, and it's best to disable group scheduling hence.
+CONFIG_RT_GROUP_SCHED=n
+
+# Note that kernel auditing is broken when used with systemd's
+# container code. When using systemd in conjunction with
+# containers, please make sure to either turn off auditing at
+# runtime using the kernel command line option "audit=0", or
+# turn it off at kernel compile time using:
+CONFIG_AUDIT=n
+##############################################
+#
+# Kernel options needed for container enabled TI SDKs
+# See https://raw.githubusercontent.com/moby/moby/v20.10.12/contrib/check-config.sh
+# Also see lxc-checkconfig
+#
+##############################################
+
+# Just the basic container configuration necessary
+CONFIG_CGROUP_BPF=y
+CONFIG_VETH=m
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_RR=m
+CONFIG_VXLAN=m
+CONFIG_IPVLAN=m
+CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_AUFS_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_OVERLAY_FS=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+##################################################
+# Common Debug options considered generically
+# useful for kernel debug. This is not meant to
+# be an exhaustive list of options and will probably
+# have performance impact by using the same.
+#
+# IMPORTANT NOTE: Do not collect reference performance
+# data with this configuration.
+##################################################
+
+CONFIG_DYNAMIC_DEBUG=y
+
+CONFIG_DEBUG_PAGEALLOC=y
+CONFIG_WANT_PAGE_DEBUG_FLAGS=y
+CONFIG_PAGE_POISONING=y
+CONFIG_DEBUG_OBJECTS=y
+CONFIG_DEBUG_OBJECTS_SELFTEST=n
+CONFIG_DEBUG_OBJECTS_FREE=n
+CONFIG_DEBUG_OBJECTS_TIMERS=n
+CONFIG_DEBUG_OBJECTS_WORK=n
+CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=n
+CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
+CONFIG_DEBUG_SLAB=y
+CONFIG_DEBUG_SLAB_LEAK=y
+CONFIG_SLUB_DEBUG=y
+
+CONFIG_DEBUG_KMEMLEAK=y
+CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=8000
+CONFIG_DEBUG_KMEMLEAK_TEST=n
+CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=n
+
+CONFIG_DEBUG_SHIRQ=n
+CONFIG_DEBUG_PREEMPT=y
+
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=300
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_ON_OOPS_VALUE=1
+
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_PI_LIST=y
+CONFIG_RT_MUTEX_TESTER=n
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y
+CONFIG_DEBUG_LOCK_ALLOC=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_LOCKDEP=y
+CONFIG_LOCK_STAT=n
+CONFIG_DEBUG_LOCKDEP=y
+CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_DEBUG_LOCKING_API_SELFTESTS=n
+CONFIG_STACKTRACE=y
+CONFIG_DEBUG_KOBJECT=n
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_WRITECOUNT=n
+CONFIG_DEBUG_LIST=y
+CONFIG_DEBUG_SG=y
+CONFIG_DEBUG_NOTIFIERS=y
+CONFIG_DEBUG_CREDENTIALS=n
+
+CONFIG_SPARSE_RCU_POINTER=y
+CONFIG_RCU_TORTURE_TEST=n
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RCU_CPU_STALL_INFO=y
+CONFIG_RCU_TRACE=y
+CONFIG_PROVE_RCU=y
+CONFIG_PROVE_RCU_REPEATEDLY=y
+
+CONFIG_DMA_API_DEBUG=y
+
+CONFIG_ARM_PTDUMP=y
+CONFIG_ARM_UNWIND=y
+CONFIG_DEBUG_USER=y
+
+# Cgroups debug
+CONFIG_CGROUP_DEBUG=y
+CONFIG_DEBUG_BLK_CGROUP=y
+
+# IRQ Domain debug
+CONFIG_IRQ_DOMAIN_DEBUG=y
+
+# Debug HighMem
+CONFIG_DEBUG_HIGHMEM=y
+
+# Crypto self-tests
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=n
+
+# Enable Debug configuration for EFI if enabled
+CONFIG_DEBUG_EFI=y
+
+# Power management options
+CONFIG_PM_DEBUG=y
board/ti/am62x_sk/ti_sdk_arm64_release_defconfig new file +1894 -0

1,009 lines not on this page · raw message

board/ti/am64x_sk/ti_sdk_arm64_debug_defconfig new file +1991 -0

1,991 lines not on this page · raw message

board/ti/am64x_sk/ti_sdk_arm64_release_defconfig new file +1894 -0

1,894 lines not on this page · raw message

configs/am62x_sk_defconfig +14 -5
index 4babf26719..2d05ddd96b 100644

Lines of this file are not shown. View the raw message.

configs/am64x_sk_defconfig +14 -5
index 38b18331f7..a26e38a043 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 7 lines
2.34.1


_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

Part of the diff is not shown here. View the raw message.

#18 lore raw

PATCH v8 7/10 board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

In reply to Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended production device variants and boards TI will provide moving forward. Hence, switch the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
board/ti/am62x_sk/readme.txt +16 -0
index ccbb24896b..9c7c8818af 100644
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3
+
 Build:
 $ make
 
board/ti/am64x_sk/readme.txt +16 -0
index fe83c675f5..51d0312726 100644
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3
+
 Build:
 $ make
 
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -2
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#19 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Quoted 40 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended production device variants and boards TI will provide moving forward. Hence, switch the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
board/ti/am62x_sk/readme.txt +14 -0
index ccbb24896b..9c7c8818af 100644
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone
Quoted 3 lines

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

core-secdev-k3 could be a host package and an optional dependency of uboot or atf

################################################################################
#

# ti-core-secdev-k3
#
################################################################################

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007 TI_CORE_SECDEV_K3_SITE =
https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

$(eval $(host-generic-package))

François

Quoted 63 lines
board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
board/ti/am64x_sk/readme.txt +14 -0
index fe83c675f5..51d0312726 100644
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
 Build:
 $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -3
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

Quoted 5 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#20 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Hi François,

Quoted 41 lines · François Perrad
Quoted 38 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended production device variants and boards TI will provide moving forward. Hence, switch the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
board/ti/am62x_sk/readme.txt +12 -0
index ccbb24896b..9c7c8818af 100644
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
Quoted 8 lines
Quoted 5 lines
board/ti/am62x_sk/readme.txt +2 -0
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

core-secdev-k3 could be a host package and an optional dependency of uboot or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case (somebody getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 84 lines

################################################################################
#

# ti-core-secdev-k3
#
################################################################################

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007 TI_CORE_SECDEV_K3_SITE =
https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

$(eval $(host-generic-package))

François

Quoted 63 lines
board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
board/ti/am64x_sk/readme.txt +14 -0
index fe83c675f5..51d0312726 100644
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
 Build:
 $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -3
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

Quoted 5 lines
Quoted 5 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#21 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Le ven. 16 juin 2023 à 14:05, Andreas Dannenberg <[email protected]> a écrit :

Quoted 66 lines

Hi François,

Quoted 6 lines · François Perrad
Quoted 3 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended

production

Quoted 1 line
Quoted 1 line

device variants and boards TI will provide moving forward. Hence,

switch

Quoted 14 lines
Quoted 14 lines

the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/board/ti/am62x_sk/readme.txt

Quoted 18 lines
Quoted 18 lines

index ccbb24896b..9c7c8818af 100644

board/ti/am62x_sk/readme.txt +11 -0
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
Quoted 8 lines
Quoted 6 lines
board/ti/am62x_sk/readme.txt +3 -0
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

core-secdev-k3 could be a host package and an optional dependency of

uboot

Quoted 1 line

or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case (somebody getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Quoted 4 lines

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

yes (we are in a Makefile fragment):
export TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

when a package needed it, just add :
FOO_DEPENDENCIES += host-ti-core-secdev-k3

François

Quoted 94 lines

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 2 lines

################################################################################

Quoted 4 lines

#

# ti-core-secdev-k3
#

################################################################################

Quoted 4 lines

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot

Quoted 4 lines

TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 7 lines

$(eval $(host-generic-package))

François

Quoted 5 lines

Review

Quoted 5 lines
board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
(quoted diff) +0 -0

b/board/ti/am64x_sk/readme.txt

Quoted 58 lines
Quoted 58 lines

index fe83c675f5..51d0312726 100644

board/ti/am64x_sk/readme.txt +14 -0
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
 Build:
 $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -3
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

Quoted 6 lines
Quoted 5 lines
Quoted 5 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#22 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Hi François,

Quoted 73 lines · François Perrad

Le ven. 16 juin 2023 à 14:05, Andreas Dannenberg <[email protected]> a écrit :

Quoted 66 lines

Hi François,

Quoted 6 lines · François Perrad
Quoted 3 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended

production

Quoted 1 line
Quoted 1 line

device variants and boards TI will provide moving forward. Hence,

switch

Quoted 14 lines
Quoted 14 lines

the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/board/ti/am62x_sk/readme.txt

Quoted 18 lines
Quoted 18 lines

index ccbb24896b..9c7c8818af 100644

board/ti/am62x_sk/readme.txt +11 -0
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
Quoted 8 lines
Quoted 6 lines
board/ti/am62x_sk/readme.txt +3 -0
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

core-secdev-k3 could be a host package and an optional dependency of

uboot

Quoted 1 line

or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case (somebody getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Quoted 4 lines

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

Quoted 8 lines

yes (we are in a Makefile fragment):
export TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

when a package needed it, just add :
FOO_DEPENDENCIES += host-ti-core-secdev-k3

François

Good point, using the make construct for 'export' should work, and in fact it does. Just tried it out. Was able to largely carry over what you came up with (thanks again!!). One change I had to made was to add a 'host-' prefix to the line exporting the ti-core-secdev-k3 package location. Below is my Makefile fragment. Will make this part of PATCH v9 series I intent to send out next week (want to give it a few more days to allow folks to add feedback).

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +21 -0
@@ -0,0 +1,21 @@
+################################################################################
+#
+## ti-core-secdev-k3
+#
+#################################################################################
+
+TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
+TI_CORE_SECDEV_K3_SITE = https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
+TI_CORE_SECDEV_K3_LICENSE = TI TSPA License
+TI_CORE_SECDEV_K3_LICENSE_FILES = manifest/k3-secdev-0.2-manifest.html
+TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz
+
+# To allow the image signing process for various firmware artifacts to work the
+# build process for TI K3 platform HS-FS and HS-SE device variants is using the
+# 'core-secdev-k3' tool provided by TI. Its location must be made available to
+# the build process by exporting it through the use of an environmental
+# variable. From there on, other packages like ti-k3-r5-loader will pick up the
+# signing tools and keys that are provided in this package.
+export TI_SECURE_DEV_PKG = $(BUILD_DIR)/host-ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)
+
+$(eval $(host-generic-package))

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 95 lines
Quoted 95 lines

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 2 lines

################################################################################

Quoted 4 lines

#

# ti-core-secdev-k3
#

################################################################################

Quoted 4 lines

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot

Quoted 4 lines

TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 7 lines

$(eval $(host-generic-package))

François

Quoted 5 lines

Review

Quoted 5 lines
board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
(quoted diff) +0 -0

b/board/ti/am64x_sk/readme.txt

Quoted 58 lines
Quoted 58 lines

index fe83c675f5..51d0312726 100644

board/ti/am64x_sk/readme.txt +14 -0
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
 Build:
 $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -3
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

Quoted 6 lines
Quoted 6 lines
Quoted 5 lines
Quoted 5 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#23 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Le sam. 17 juin 2023 à 00:13, Andreas Dannenberg <[email protected]> a écrit :

Quoted 96 lines

Hi François,

Quoted 11 lines · François Perrad

Le ven. 16 juin 2023 à 14:05, Andreas Dannenberg <[email protected]> a écrit :

Quoted 8 lines

Hi François,

Quoted 5 lines · François Perrad
Quoted 2 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field

Securable

Quoted 5 lines
Quoted 5 lines
Quoted 1 line
Quoted 1 line

(HS-FS) device variants, and those are really the recommended

production

Quoted 1 line
Quoted 1 line

device variants and boards TI will provide moving forward. Hence,

switch

Quoted 1 line
Quoted 1 line

the defconfigs for those boards over to accommodate those

now-shipping

Quoted 15 lines
Quoted 15 lines
Quoted 13 lines
Quoted 13 lines

device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/board/ti/am62x_sk/readme.txt

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 15

Quoted 8 lines

index ccbb24896b..9c7c8818af 100644

board/ti/am62x_sk/readme.txt +1 -0
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC

variants:

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 17

Quoted 2 lines
board/ti/am62x_sk/readme.txt +2 -0
+
+To allow the image signing process for various firmware artifacts

to

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 18

Quoted 1 line
board/ti/am62x_sk/readme.txt +1 -0
+work the build process for HS-FS and HS-SE device variants is

using

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 20

Quoted 2 lines
board/ti/am62x_sk/readme.txt +2 -0
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3

.

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 21

Quoted 1 line
board/ti/am62x_sk/readme.txt +1 -0
+To prepare building for those device variants create a local copy

of

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 23

Quoted 2 lines
board/ti/am62x_sk/readme.txt +2 -0
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is

for

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 29

Quoted 6 lines
board/ti/am62x_sk/readme.txt +5 -0
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone
 

https://git.ti.com/git/security-development-tools/core-secdev-k3.git

Quoted 11 lines
Quoted 11 lines
Quoted 4 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 31

Quoted 2 lines
board/ti/am62x_sk/readme.txt +1 -0
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3
 

core-secdev-k3 could be a host package and an optional dependency of

uboot

Quoted 1 line

or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case

(somebody

Quoted 5 lines
Quoted 5 lines

getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Quoted 7 lines
Quoted 4 lines

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

yes (we are in a Makefile fragment):
export

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 5 lines

when a package needed it, just add :
FOO_DEPENDENCIES += host-ti-core-secdev-k3

François

Quoted 10 lines

Good point, using the make construct for 'export' should work, and in fact it does. Just tried it out. Was able to largely carry over what you came up with (thanks again!!). One change I had to made was to add a 'host-' prefix to the line exporting the ti-core-secdev-k3 package location. Below is my Makefile fragment. Will make this part of PATCH v9 series I intent to send out next week (want to give it a few more days to allow folks to add feedback).

in order to support the creation of a relocatable SDK, it will be better to install the stuff somewhere in $(HOST_DIR), like that:

export TI_SECURE_DEV_PKG=$(HOST_DIR)/opt/core-secdev-k3

define HOST_TI_CORE_SECDEV_K3_INSTALL_CMDS

     mkdir -p $(TI_SECURE_DEV_PKG)/keys
     cp -dpfr $(@D)/keys/* $(TI_SECURE_DEV_PKG)/keys
     mkdir -p $(TI_SECURE_DEV_PKG)/scripts
     cp -dpfr $(@D)/scripts/* $(TI_SECURE_DEV_PKG)/scripts

endef

François

Quoted 120 lines
package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +8 -0
@@ -0,0 +1,21 @@
 
+################################################################################
+#
+## ti-core-secdev-k3
+#
 
+#################################################################################
+
+TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
+TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
+TI_CORE_SECDEV_K3_LICENSE
<https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot+TI_CORE_SECDEV_K3_LICENSE>
= TI TSPA License

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+TI_CORE_SECDEV_K3_LICENSE_FILES = manifest/k3-secdev-0.2-manifest.html
+TI_CORE_SECDEV_K3_SOURCE =

core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+
+# To allow the image signing process for various firmware artifacts to

work the
+# build process for TI K3 platform HS-FS and HS-SE device variants is using the
+# 'core-secdev-k3' tool provided by TI. Its location must be made available to

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+# the build process by exporting it through the use of an environmental
+# variable. From there on, other packages like ti-k3-r5-loader will pick

up the

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+# signing tools and keys that are provided in this package.
+export TI_SECURE_DEV_PKG =

$(BUILD_DIR)/host-ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION) +
+$(eval $(host-generic-package))

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 9 lines
Quoted 9 lines

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 2 lines

################################################################################

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

#

# ti-core-secdev-k3
#

################################################################################

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 13 lines
Quoted 13 lines
Quoted 7 lines

$(eval $(host-generic-package))

François

Quoted 5 lines

Review

Quoted 5 lines
board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
(quoted diff) +0 -0

b/board/ti/am64x_sk/readme.txt

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 15

Quoted 8 lines

index fe83c675f5..51d0312726 100644

board/ti/am64x_sk/readme.txt +1 -0
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC

variants:

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 17

Quoted 2 lines
board/ti/am64x_sk/readme.txt +2 -0
+
+To allow the image signing process for various firmware artifacts

to

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 18

Quoted 1 line
board/ti/am64x_sk/readme.txt +1 -0
+work the build process for HS-FS and HS-SE device variants is

using

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 20

Quoted 2 lines
board/ti/am64x_sk/readme.txt +2 -0
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3

.

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 21

Quoted 1 line
board/ti/am64x_sk/readme.txt +1 -0
+To prepare building for those device variants create a local copy

of

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 23

Quoted 2 lines
board/ti/am64x_sk/readme.txt +2 -0
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is

for

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 29

Quoted 6 lines
board/ti/am64x_sk/readme.txt +5 -0
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone
 

https://git.ti.com/git/security-development-tools/core-secdev-k3.git

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Review

Quoted 6 lines
board/ti/am64x_sk/readme.txt +2 -0
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3
+
 Build:
 $ make
(quoted diff) +0 -0

b/configs/am62x_sk_defconfig

Quoted 38 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

index 2d05ddd96b..033101b735 100644

configs/am62x_sk_defconfig +0 -0
@@ -28,7 +28,7 @@ BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y
 BR2_TARGET_OPTEE_OS_PLATFORM="k3"
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

Review

Quoted 8 lines
configs/am62x_sk_defconfig +1 -1
 BR2_TARGET_TI_K3_IMAGE_GEN=y
 BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am62x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
(quoted diff) +0 -0

b/configs/am64x_sk_defconfig

Quoted 23 lines
Quoted 23 lines
Quoted 22 lines
Quoted 22 lines

index a26e38a043..096dd77f6a 100644

configs/am64x_sk_defconfig +2 -3
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#24 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Hi François,

Quoted 112 lines · François Perrad

Le sam. 17 juin 2023 à 00:13, Andreas Dannenberg <[email protected]> a écrit :

Quoted 96 lines

Hi François,

Quoted 11 lines · François Perrad

Le ven. 16 juin 2023 à 14:05, Andreas Dannenberg <[email protected]> a écrit :

Quoted 8 lines

Hi François,

Quoted 5 lines · François Perrad
Quoted 2 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field

Securable

Quoted 5 lines
Quoted 5 lines
Quoted 1 line
Quoted 1 line

(HS-FS) device variants, and those are really the recommended

production

Quoted 1 line
Quoted 1 line

device variants and boards TI will provide moving forward. Hence,

switch

Quoted 1 line
Quoted 1 line

the defconfigs for those boards over to accommodate those

now-shipping

Quoted 15 lines
Quoted 15 lines
Quoted 13 lines
Quoted 13 lines

device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/board/ti/am62x_sk/readme.txt

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 15

Quoted 8 lines

index ccbb24896b..9c7c8818af 100644

board/ti/am62x_sk/readme.txt +1 -0
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC

variants:

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 17

Quoted 2 lines
board/ti/am62x_sk/readme.txt +2 -0
+
+To allow the image signing process for various firmware artifacts

to

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 18

Quoted 1 line
board/ti/am62x_sk/readme.txt +1 -0
+work the build process for HS-FS and HS-SE device variants is

using

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 20

Quoted 2 lines
board/ti/am62x_sk/readme.txt +2 -0
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3

.

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 21

Quoted 1 line
board/ti/am62x_sk/readme.txt +1 -0
+To prepare building for those device variants create a local copy

of

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 23

Quoted 2 lines
board/ti/am62x_sk/readme.txt +2 -0
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is

for

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 29

Quoted 6 lines
board/ti/am62x_sk/readme.txt +5 -0
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone
 

https://git.ti.com/git/security-development-tools/core-secdev-k3.git

Quoted 11 lines
Quoted 11 lines
Quoted 4 lines

board/ti/am62x_sk/readme.txt $ make am62x_sk_defconfig · line 31

Quoted 2 lines
board/ti/am62x_sk/readme.txt +1 -0
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3
 

core-secdev-k3 could be a host package and an optional dependency of

uboot

Quoted 1 line

or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case

(somebody

Quoted 5 lines
Quoted 5 lines

getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Quoted 7 lines
Quoted 4 lines

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

yes (we are in a Makefile fragment):
export

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 5 lines

when a package needed it, just add :
FOO_DEPENDENCIES += host-ti-core-secdev-k3

François

Quoted 10 lines

Good point, using the make construct for 'export' should work, and in fact it does. Just tried it out. Was able to largely carry over what you came up with (thanks again!!). One change I had to made was to add a 'host-' prefix to the line exporting the ti-core-secdev-k3 package location. Below is my Makefile fragment. Will make this part of PATCH v9 series I intent to send out next week (want to give it a few more days to allow folks to add feedback).

in order to support the creation of a relocatable SDK, it will be better to install the stuff somewhere in $(HOST_DIR), like that:

Quoted 8 lines

export TI_SECURE_DEV_PKG=$(HOST_DIR)/opt/core-secdev-k3

define HOST_TI_CORE_SECDEV_K3_INSTALL_CMDS

     mkdir -p $(TI_SECURE_DEV_PKG)/keys
     cp -dpfr $(@D)/keys/* $(TI_SECURE_DEV_PKG)/keys
     mkdir -p $(TI_SECURE_DEV_PKG)/scripts
     cp -dpfr $(@D)/scripts/* $(TI_SECURE_DEV_PKG)/scripts

endef

Makes sense, will update it accordingly! Thanks for the suggestion.

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 162 lines

François

Quoted 158 lines
package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +8 -0
@@ -0,0 +1,21 @@
 
+################################################################################
+#
+## ti-core-secdev-k3
+#
 
+#################################################################################
+
+TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
+TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
+TI_CORE_SECDEV_K3_LICENSE
<https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot+TI_CORE_SECDEV_K3_LICENSE>
= TI TSPA License

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+TI_CORE_SECDEV_K3_LICENSE_FILES = manifest/k3-secdev-0.2-manifest.html
+TI_CORE_SECDEV_K3_SOURCE =

core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+
+# To allow the image signing process for various firmware artifacts to

work the
+# build process for TI K3 platform HS-FS and HS-SE device variants is using the
+# 'core-secdev-k3' tool provided by TI. Its location must be made available to

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+# the build process by exporting it through the use of an environmental
+# variable. From there on, other packages like ti-k3-r5-loader will pick

up the

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -0
+# signing tools and keys that are provided in this package.
+export TI_SECURE_DEV_PKG =

$(BUILD_DIR)/host-ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION) +
+$(eval $(host-generic-package))

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 9 lines
Quoted 9 lines

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 2 lines

################################################################################

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

#

# ti-core-secdev-k3
#

################################################################################

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines

TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 13 lines
Quoted 13 lines
Quoted 7 lines

$(eval $(host-generic-package))

François

Quoted 5 lines

Review

Quoted 5 lines
board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
(quoted diff) +0 -0

b/board/ti/am64x_sk/readme.txt

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 15

Quoted 8 lines

index fe83c675f5..51d0312726 100644

board/ti/am64x_sk/readme.txt +1 -0
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC

variants:

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 17

Quoted 2 lines
board/ti/am64x_sk/readme.txt +2 -0
+
+To allow the image signing process for various firmware artifacts

to

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 18

Quoted 1 line
board/ti/am64x_sk/readme.txt +1 -0
+work the build process for HS-FS and HS-SE device variants is

using

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 20

Quoted 2 lines
board/ti/am64x_sk/readme.txt +2 -0
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3

.

Quoted 1 line
Quoted 1 line
Quoted 1 line

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 21

Quoted 1 line
board/ti/am64x_sk/readme.txt +1 -0
+To prepare building for those device variants create a local copy

of

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 23

Quoted 2 lines
board/ti/am64x_sk/readme.txt +2 -0
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is

for

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

board/ti/am64x_sk/readme.txt $ make am64x_sk_defconfig · line 29

Quoted 6 lines
board/ti/am64x_sk/readme.txt +5 -0
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone
 

https://git.ti.com/git/security-development-tools/core-secdev-k3.git

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Review

Quoted 6 lines
board/ti/am64x_sk/readme.txt +2 -0
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3
+
 Build:
 $ make
(quoted diff) +0 -0

b/configs/am62x_sk_defconfig

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

index 2d05ddd96b..033101b735 100644

configs/am62x_sk_defconfig +0 -0
@@ -28,7 +28,7 @@ BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y
 BR2_TARGET_OPTEE_OS_PLATFORM="k3"
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

Review

Quoted 8 lines
configs/am62x_sk_defconfig +1 -1
 BR2_TARGET_TI_K3_IMAGE_GEN=y
 BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am62x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
(quoted diff) +0 -0

b/configs/am64x_sk_defconfig

Quoted 23 lines
Quoted 23 lines
Quoted 22 lines
Quoted 22 lines

index a26e38a043..096dd77f6a 100644

configs/am64x_sk_defconfig +2 -3
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#25 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

In reply to Andreas Dannenberg via buildroot
Quoted 9 lines · Andreas Dannenberg via buildroot

Hi François,

Quoted 6 lines · François Perrad

Le ven. 16 juin 2023 à 14:05, Andreas Dannenberg <[email protected]> a écrit :

Quoted 3 lines

Hi François,

On Fri, Jun 16, 2023 at 01:15:04PM +0200, François Perrad wrote:

[snip]

Quoted 48 lines
Quoted 18 lines
Quoted 14 lines
Quoted 2 lines

core-secdev-k3 could be a host package and an optional dependency of

uboot

Quoted 1 line

or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case (somebody getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Quoted 4 lines

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

Quoted 8 lines

yes (we are in a Makefile fragment):
export TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

when a package needed it, just add :
FOO_DEPENDENCIES += host-ti-core-secdev-k3

François

Good point, using the make construct for 'export' should work, and in fact it does. Just tried it out. Was able to largely carry over what you came up with (thanks again!!). One change I had to made was to add a 'host-' prefix to the line exporting the ti-core-secdev-k3 package location. Below is my Makefile fragment. Will make this part of PATCH v9 series I intent to send out next week (want to give it a few more days to allow folks to add feedback).

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +9 -0
@@ -0,0 +1,21 @@
+################################################################################
+#
+## ti-core-secdev-k3
+#
+#################################################################################
+
+TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
+TI_CORE_SECDEV_K3_SITE = https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
+TI_CORE_SECDEV_K3_LICENSE = TI TSPA License

package/ti-core-secdev-k3/ti-core-secdev-k3.mk line 19

Quoted 10 lines
package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +10 -0
+TI_CORE_SECDEV_K3_LICENSE_FILES = manifest/k3-secdev-0.2-manifest.html
+TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz
+
+# To allow the image signing process for various firmware artifacts to work the
+# build process for TI K3 platform HS-FS and HS-SE device variants is using the
+# 'core-secdev-k3' tool provided by TI. Its location must be made available to
+# the build process by exporting it through the use of an environmental
+# variable. From there on, other packages like ti-k3-r5-loader will pick up the
+# signing tools and keys that are provided in this package.
+export TI_SECURE_DEV_PKG = $(BUILD_DIR)/host-ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

I didn't follow the entire discussion; however, be aware that this export
applies globally, i.e. _all_ packages will have TI_SECURE_DEV_PKG in their environment. IIUC, this is exactly what you want because you want the environment variable to be available to e.g. ti-k3-r5-loader. But it's also going to be in the environment of busybox, libcurl, and all completely unrelated packages. Worse, it's going to be in the environment even if you're not using ti-core-secdev-k3 at all!

Therefore, I'm not in favour of this export. I think it's better to just set
the variable here, without exporting, and then in every package that actually needs it, include it explicitly in the build commands. E.g.

define TI_K3_R5_LOADER_BUILD_CMDS

        $(TARGET_CONFIGURE_OPTS) TI_SECURE_DEV_PKG=$(TI_SECURE_DEV_PKG) \
		$(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS)

endef

Note that you'll already need the explicit dependency in the packages using
ti-core-secdev-k3, so I don't think it's a problem to add the environment variable explicitly as well.

Regards,
Arnout

Quoted 111 lines
package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -1
+
+$(eval $(host-generic-package))
 
 
--

Andreas Dannenberg
Texas Instruments Inc

Quoted 95 lines
Quoted 95 lines

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 2 lines

################################################################################

Quoted 4 lines

#

# ti-core-secdev-k3
#

################################################################################

Quoted 4 lines

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot

Quoted 4 lines

TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 7 lines

$(eval $(host-generic-package))

François

Quoted 5 lines

Review

Quoted 5 lines
(quoted diff) +1 -0
+
  Build:
  $ make
(quoted diff) +0 -0

b/board/ti/am64x_sk/readme.txt

Quoted 58 lines
Quoted 58 lines

index fe83c675f5..51d0312726 100644

board/ti/am64x_sk/readme.txt +14 -0
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
  Optional: modify the configuration:
  $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
  Build:
  $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
  BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
  BR2_TARGET_TI_K3_R5_LOADER=y
  BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -3
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
  BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
  BR2_TARGET_TI_K3_R5_LOADER=y
  BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

Quoted 6 lines
Quoted 6 lines
Quoted 5 lines
Quoted 5 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

Quoted 4 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#26 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Hi Arnout,

Quoted 80 lines · Arnout Vandecappelle
Quoted 9 lines · Andreas Dannenberg via buildroot

Hi François,

Quoted 6 lines · François Perrad

Le ven. 16 juin 2023 à 14:05, Andreas Dannenberg <[email protected]> a écrit :

Quoted 3 lines

Hi François,

On Fri, Jun 16, 2023 at 01:15:04PM +0200, François Perrad wrote:

[snip]

Quoted 48 lines
Quoted 18 lines
Quoted 14 lines
Quoted 2 lines

core-secdev-k3 could be a host package and an optional dependency of

uboot

Quoted 1 line

or atf

Good suggestion, I thought about same but wasn't quite sure how to set this up, but I'll look into this based on your below starting point. It would cover HS-FS device variants ("High Security - Field Securable"), which is 90% of the use case, and 100% of the initial use case (somebody getting a board, evaluating), all when the custom keys were not yet programmed into the SOC (which is what turns the device into a HS-SE device, at which time custom signing keys will need to be provided as part of core-secdev-k3).

Quoted 4 lines

Can a host package easily export/share and ENV variable (TI_SECURE_DEV_PKG)?

Quoted 8 lines

yes (we are in a Makefile fragment):
export TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

when a package needed it, just add :
FOO_DEPENDENCIES += host-ti-core-secdev-k3

François

Good point, using the make construct for 'export' should work, and in fact it does. Just tried it out. Was able to largely carry over what you came up with (thanks again!!). One change I had to made was to add a 'host-' prefix to the line exporting the ti-core-secdev-k3 package location. Below is my Makefile fragment. Will make this part of PATCH v9 series I intent to send out next week (want to give it a few more days to allow folks to add feedback).

package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +9 -0
@@ -0,0 +1,21 @@
+################################################################################
+#
+## ti-core-secdev-k3
+#
+#################################################################################
+
+TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
+TI_CORE_SECDEV_K3_SITE = https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot
+TI_CORE_SECDEV_K3_LICENSE = TI TSPA License

package/ti-core-secdev-k3/ti-core-secdev-k3.mk line 19

Quoted 10 lines
package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +10 -0
+TI_CORE_SECDEV_K3_LICENSE_FILES = manifest/k3-secdev-0.2-manifest.html
+TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz
+
+# To allow the image signing process for various firmware artifacts to work the
+# build process for TI K3 platform HS-FS and HS-SE device variants is using the
+# 'core-secdev-k3' tool provided by TI. Its location must be made available to
+# the build process by exporting it through the use of an environmental
+# variable. From there on, other packages like ti-k3-r5-loader will pick up the
+# signing tools and keys that are provided in this package.
+export TI_SECURE_DEV_PKG = $(BUILD_DIR)/host-ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

I didn't follow the entire discussion; however, be aware that this export
applies globally, i.e. _all_ packages will have TI_SECURE_DEV_PKG in their environment. IIUC, this is exactly what you want because you want the environment variable to be available to e.g. ti-k3-r5-loader. But it's also going to be in the environment of busybox, libcurl, and all completely unrelated packages. Worse, it's going to be in the environment even if you're not using ti-core-secdev-k3 at all!

Quoted 8 lines

Therefore, I'm not in favour of this export. I think it's better to just
set the variable here, without exporting, and then in every package that actually needs it, include it explicitly in the build commands. E.g.

define TI_K3_R5_LOADER_BUILD_CMDS

        $(TARGET_CONFIGURE_OPTS) TI_SECURE_DEV_PKG=$(TI_SECURE_DEV_PKG) \
		$(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS)

endef

Ok, makes sense to minimize polluting the global environment. Will update this accordingly. It'll also better allow to find 'users' of this in the Buildroot source tree by grepping for that variable, which is always a nice thing to be able to do to understand how things work together.

Quoted 3 lines

Note that you'll already need the explicit dependency in the packages using
ti-core-secdev-k3, so I don't think it's a problem to add the environment variable explicitly as well.

Actually there is no unconditional hard dependency of anything on ti-core-secdev-k3, as the use of this package is optional in some cases, such as when building for General Purpose ("GP") device variants which always have secure boot disabled. Or in case of High Security - Security Enforcing ("HS-SE") devices the user must provide their _own_ package containing _their_ private keys for signing purposes, probably not something to be done by storing them in a package. I'll see that I can set it up such that the ti-core-secdev-k3 Buildroot package is used if enabled, but the user can override this by providing their own TI_SECURE_DEV_PKG env variable through their shell environment, in which case their "private" tool is used from their build system (instead of what the Buildroot package contributes).

I'll see I can model this appropriately and explain in more detail as part of PATCH v9. I'll probably also make the SoC type selection (BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE, see "[PATCH v8 02/10] boot/ti-k3-image-gen: new package") via multiple-choice Kconfig options (as it was suggested earlier actually).

Thanks!

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 119 lines

Regards,
Arnout

Quoted 115 lines
package/ti-core-secdev-k3/ti-core-secdev-k3.mk new file +2 -1
+
+$(eval $(host-generic-package))
 
 
--

Andreas Dannenberg
Texas Instruments Inc

Quoted 95 lines
Quoted 95 lines

This will be needed not only by ti-k3-image-gen but also by uboot and potentially other packages in the future.

Regards, Andreas

Quoted 2 lines

################################################################################

Quoted 4 lines

#

# ti-core-secdev-k3
#

################################################################################

Quoted 4 lines

TI_CORE_SECDEV_K3_VERSION = 08.06.00.007
TI_CORE_SECDEV_K3_SITE =

https://git.ti.com/cgit/security-development-tools/core-secdev-k3/snapshot

Quoted 4 lines

TI_CORE_SECDEV_K3_SOURCE = core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION).tar.gz

TI_SECURE_DEV_PKG=$(BUILD_DIR)/ti-core-secdev-k3-$(TI_CORE_SECDEV_K3_VERSION)

Quoted 7 lines

$(eval $(host-generic-package))

François

Quoted 5 lines

Review

Quoted 5 lines
(quoted diff) +1 -0
+
  Build:
  $ make
(quoted diff) +0 -0

b/board/ti/am64x_sk/readme.txt

Quoted 58 lines
Quoted 58 lines

index fe83c675f5..51d0312726 100644

board/ti/am64x_sk/readme.txt +14 -0
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
  Optional: modify the configuration:
  $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
  Build:
  $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
  BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
  BR2_TARGET_TI_K3_R5_LOADER=y
  BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +2 -3
index a26e38a043..096dd77f6a 100644
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
  BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
  BR2_TARGET_TI_K3_R5_LOADER=y
  BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
--

2.34.1

Quoted 6 lines
Quoted 6 lines
Quoted 5 lines
Quoted 5 lines

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

Tested-by on v8 7/10
#27 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

In reply to Andreas Dannenberg via buildroot

Hi Andreas,

Thanks for the update!

I successfully booted this am64x_sk_defconfig on SK-AM64B board, with this patch series on top of branch master at commit b91524f.

Quoted 10 lines · Andreas Dannenberg via buildroot

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended production device variants and boards TI will provide moving forward. Hence, switch the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

Quoted 82 lines
---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
board/ti/am62x_sk/readme.txt +14 -0
index ccbb24896b..9c7c8818af 100644
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone 

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
board/ti/am64x_sk/readme.txt +14 -0
index fe83c675f5..51d0312726 100644
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone 

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
 Build:
 $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +0 -0
index a26e38a043..096dd77f6a 100644

configs/am64x_sk_defconfig BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y · line 35

Quoted 10 lines
configs/am64x_sk_defconfig +2 -2
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y

Please note that this patch series introduce 18 check-package warnings. I understand from the current review comments that a v9 series will be needed. Please run a "utils/docker-run make check-package" and include the appropriate changes.

See:
https://nightly.buildroot.org/manual.html#_preparing_a_patch_series

Best regards,

Julien.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#28 lore raw

Re: [Buildroot] [PATCH v8 07/10] board/ti/am62x_sk|am64x_sk: switch to HS-FS device variants

Hi Julien,

Quoted 6 lines · Julien Olivain

Hi Andreas,

Thanks for the update!

I successfully booted this am64x_sk_defconfig on SK-AM64B board, with this patch series on top of branch master at commit b91524f.

Thanks for spending the time doing this. Added your Tested-by: tag to my PATCH v9 currently work-in-progress. Will re-post soon with a few additional improvements discussed here in this series. Especially the integration of the secure signing/key package will make things really "Buildroot-easy".

--
Andreas Dannenberg
Texas Instruments Inc

Quoted 114 lines · Andreas Dannenberg via buildroot
Quoted 10 lines

Current starter kits for AM62x (called SK-AM62B, see [1]) and AM64x (called SK-AM64B, see [2]) both contain High Security - Field Securable (HS-FS) device variants, and those are really the recommended production device variants and boards TI will provide moving forward. Hence, switch the defconfigs for those boards over to accommodate those now-shipping device variants and boards.

[1] https://www.ti.com/tool/SK-AM62B
[2] https://www.ti.com/tool/SK-AM64B

Quoted 82 lines
---
 board/ti/am62x_sk/readme.txt | 16 ++++++++++++++++
 board/ti/am64x_sk/readme.txt | 16 ++++++++++++++++
 configs/am62x_sk_defconfig   |  2 +-
 configs/am64x_sk_defconfig   |  4 ++--
 4 files changed, 35 insertions(+), 3 deletions(-)
board/ti/am62x_sk/readme.txt +14 -0
index ccbb24896b..9c7c8818af 100644
@@ -12,6 +12,22 @@ $ make am62x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am62x_sk/readme.txt +1 -0
+
 Build:
 $ make
board/ti/am64x_sk/readme.txt +14 -0
index fe83c675f5..51d0312726 100644
@@ -12,6 +12,22 @@ $ make am64x_sk_defconfig
 Optional: modify the configuration:
 $ make menuconfig
 
+Required setup step for High Security HS-FS and HS-SE SoC variants:
+
+To allow the image signing process for various firmware artifacts to
+work the build process for HS-FS and HS-SE device variants is using
+an external 'core-secdev-k3' package which can be obtained from
+https://git.ti.com/cgit/security-development-tools/core-secdev-k3.
+To prepare building for those device variants create a local copy of
+the 'core-secdev-k3' and export its location through the
+TI_SECURE_DEV_PKG environmental variable. Use the package as-is for
+HS-FS device variants such as populated on the SK-AM64B board, or
+customize this package with your private signing keys when using a
+HS-SE device variant.
+
+$ git clone

https://git.ti.com/git/security-development-tools/core-secdev-k3.git
+$ export TI_SECURE_DEV_PKG=$PWD/core-secdev-k3

board/ti/am64x_sk/readme.txt +1 -0
+
 Build:
 $ make
configs/am62x_sk_defconfig +1 -1
index 2d05ddd96b..033101b735 100644
@@ -28,7 +28,7 @@ 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_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y
configs/am64x_sk_defconfig +0 -0
index a26e38a043..096dd77f6a 100644

configs/am64x_sk_defconfig BR2_TARGET_OPTEE_OS_NEEDS_PYTHON_CRYPTOGRAPHY=y · line 35

Quoted 10 lines
configs/am64x_sk_defconfig +2 -2
@@ -28,8 +28,8 @@ 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_FW_TYPE_TISCI=y
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x"
-BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="gp"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC="am64x_sr2"
+BR2_TARGET_TI_K3_IMAGE_GEN_SOC_TYPE="hs-fs"
 BR2_TARGET_TI_K3_IMAGE_GEN_CONFIG="evm"
 BR2_TARGET_TI_K3_R5_LOADER=y
 BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL=y

Please note that this patch series introduce 18 check-package warnings. I understand from the current review comments that a v9 series will be needed. Please run a "utils/docker-run make check-package" and include the appropriate changes.

Quoted 6 lines

See:
https://nightly.buildroot.org/manual.html#_preparing_a_patch_series

Best regards,

Julien.

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#29 lore raw

PATCH v8 8/10 package/ti-rogue-km: new package

In reply to Andreas Dannenberg via buildroot

This package adds the kernel module for the Rogue graphics accelerator of the following Texas Instuments SoCs: AM62, J721E, J721S2, and J784S4.

---
 package/Config.in                    |  1 +
 package/ti-rogue-km/Config.in        | 28 +++++++++++++++++++++
 package/ti-rogue-km/ti-rogue-km.hash |  3 +++
 package/ti-rogue-km/ti-rogue-km.mk   | 37 ++++++++++++++++++++++++++++
 4 files changed, 69 insertions(+)
 create mode 100644 package/ti-rogue-km/Config.in
 create mode 100644 package/ti-rogue-km/ti-rogue-km.hash
 create mode 100644 package/ti-rogue-km/ti-rogue-km.mk
package/Config.in +1 -0
index bff090a661..96ef0d72de 100644
@@ -613,6 +613,7 @@ endmenu
 	source "package/sysstat/Config.in"
 	source "package/targetcli-fb/Config.in"
 	source "package/ti-gfx/Config.in"
+	source "package/ti-rogue-km/Config.in"
 	source "package/ti-sgx-demos/Config.in"
 	source "package/ti-sgx-km/Config.in"
 	source "package/ti-sgx-um/Config.in"
package/ti-rogue-km/Config.in new file +28 -0
new file mode 100644
index 0000000000..b1565929d5
@@ -0,0 +1,28 @@
+comment "ti-rogue-km needs a Linux kernel to be built"
+	depends on BR2_aarch64
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_TI_ROGUE_KM
+	bool "ti-rogue-km"
+	depends on BR2_LINUX_KERNEL && BR2_aarch64
+	select BR2_LINUX_NEEDS_MODULES
+	help
+	  Kernel modules for TI SoCs with Rogue GPU.
+	  This package supports AM62, J721E, J721S2, and J784S4
+	  SoCs only.
+
+	  Note: it needs a TI specific kernel to build properly.
+
+	  https://git.ti.com/cgit/graphics/ti-img-rogue-driver
+
+if BR2_PACKAGE_TI_ROGUE_KM
+
+config BR2_TARGET_TI_ROGUE_KM_TARGET_PRODUCT
+	string "KM driver target product"
+	default "am62_linux"
+	help
+	  Select target product to be used for KM driver. This needs to
+	  match one of the SoC-specific folders within the build/linux
+	  folder of the ti-img-rogue-driver Git repository.
+
+endif
package/ti-rogue-km/ti-rogue-km.hash new file +3 -0
new file mode 100644
index 0000000000..4a08efbb98
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  ef50124b3e79fb1d28d3a2b4135032505abbb5c6b337b24a9bed7223d521dcc1  ti-rogue-km-1dd6291a5cad4f2b909fc2a14bd717a3bc5f0bb2-br1.tar.gz
+sha256  c878f4e43e468329d3dcf4db09054e94472bfeee9f8ab2d69a122b978e9f773e  README
package/ti-rogue-km/ti-rogue-km.mk new file +37 -0
new file mode 100644
index 0000000000..7b0a595c71
@@ -0,0 +1,37 @@
+################################################################################
+#
+# ti-rogue-km
+#
+################################################################################
+
+# This corresponds to SDK 08.06.00
+TI_ROGUE_KM_VERSION = 1dd6291a5cad4f2b909fc2a14bd717a3bc5f0bb2
+TI_ROGUE_KM_SITE = https://git.ti.com/git/graphics/ti-img-rogue-driver.git
+TI_ROGUE_KM_SITE_METHOD = git
+TI_ROGUE_KM_LICENSE = MIT or GPL-2.0
+TI_ROGUE_KM_LICENSE_FILES = README
+
+TI_ROGUE_KM_DEPENDENCIES = linux
+
+PVR_BUILD = "release"
+PVR_WS = "wayland"
+
+TI_ROGUE_KM_MAKE_OPTS = \
+	$(LINUX_MAKE_FLAGS) \
+	KERNELDIR=$(LINUX_DIR) \
+	BUILD=$(PVR_BUILD) \
+	PVR_BUILD_DIR=$(BR2_TARGET_TI_ROGUE_KM_TARGET_PRODUCT) \
+	WINDOW_SYSTEM=$(PVR_WS)
+
+define TI_ROGUE_KM_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TI_ROGUE_KM_MAKE_OPTS)
+endef
+
+define TI_ROGUE_KM_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) \
+		M=$(@D)/binary_$(BR2_TARGET_TI_ROGUE_KM_TARGET_PRODUCT)_$(PVR_WS)_$(PVR_BUILD)/target_aarch64/kbuild \
+		INSTALL_MOD_PATH=$(TARGET_DIR) \
+		modules_install
+endef
+
+$(eval $(generic-package))
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#30 lore raw

PATCH v8 9/10 package/ti-rogue-um: new package

In reply to Andreas Dannenberg via buildroot

This package adds the userspace libraries for the Rogue graphics accelerator of the following Texas Instruments SoCs: AM62, J721E, J721S2, and J784S4.

---
 package/Config.in                             |   1 +
 .../0001-all-drop-the-init-script.patch       | 832 ++++++++++++++++++
 package/ti-rogue-um/Config.in                 |  52 ++
 package/ti-rogue-um/ti-rogue-um.hash          |   3 +
 package/ti-rogue-um/ti-rogue-um.mk            |  38 +
 5 files changed, 926 insertions(+)
 create mode 100644 package/ti-rogue-um/0001-all-drop-the-init-script.patch
 create mode 100644 package/ti-rogue-um/Config.in
 create mode 100644 package/ti-rogue-um/ti-rogue-um.hash
 create mode 100644 package/ti-rogue-um/ti-rogue-um.mk
package/Config.in +1 -0
index 96ef0d72de..0bff1135aa 100644
@@ -614,6 +614,7 @@ endmenu
 	source "package/targetcli-fb/Config.in"
 	source "package/ti-gfx/Config.in"
 	source "package/ti-rogue-km/Config.in"
+	source "package/ti-rogue-um/Config.in"
 	source "package/ti-sgx-demos/Config.in"
 	source "package/ti-sgx-km/Config.in"
 	source "package/ti-sgx-um/Config.in"
package/ti-rogue-um/0001-all-drop-the-init-script.patch new file +832 -0

832 lines not on this page · raw message

package/ti-rogue-um/Config.in new file +52 -0

52 lines not on this page · raw message

package/ti-rogue-um/ti-rogue-um.hash new file +3 -0
new file mode 100644
index 0000000000..a41bf33145
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  2e1bd1a5ab0ad2db1b9164d028a94f8f9d20743131f337a817fd1c8f9ddd4cbe  ti-rogue-um-5977e82b96028f783d39c7219f016c1faf8dc5f5-br1.tar.gz
+sha256  37507b462edf97b59717d2d144daaac85fbca6080c3602b5128e446e97f9ad47  LICENSE
package/ti-rogue-um/ti-rogue-um.mk new file +38 -0
new file mode 100644
index 0000000000..fa29638fa7
@@ -0,0 +1,38 @@
+################################################################################
+#
+# ti-rogue-um
+#
+################################################################################
+
+# This corresponds to SDK 08.06.00
+TI_ROGUE_UM_VERSION = 5977e82b96028f783d39c7219f016c1faf8dc5f5
+TI_ROGUE_UM_SITE = https://git.ti.com/git/graphics/ti-img-rogue-umlibs.git
+TI_ROGUE_UM_SITE_METHOD = git
+TI_ROGUE_UM_LICENSE = TI TSPA License
+TI_ROGUE_UM_LICENSE_FILES = LICENSE
+TI_ROGUE_UM_INSTALL_STAGING = YES
+TI_ROGUE_UM_PROVIDES = libegl libgbm libgles powervr
+
+# ti-rogue-um is a egl/gles provider only if libdrm is installed
+TI_ROGUE_UM_DEPENDENCIES = libdrm wayland
+
+PVR_BUILD = "release"
+PVR_WS = "wayland"
+
+define TI_ROGUE_UM_INSTALL_STAGING_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+		DESTDIR=$(STAGING_DIR) \
+		TARGET_PRODUCT=$(BR2_TARGET_TI_ROGUE_UM_TARGET_PRODUCT) \
+		BUILD=$(PVR_BUILD) WINDOW_SYSTEM=$(PVR_WS) \
+		install
+endef
+
+define TI_ROGUE_UM_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+		DESTDIR=$(TARGET_DIR) \
+		TARGET_PRODUCT=$(BR2_TARGET_TI_ROGUE_UM_TARGET_PRODUCT) \
+		BUILD=$(PVR_BUILD) WINDOW_SYSTEM=$(PVR_WS) \
+		install
+endef
+
+$(eval $(generic-package))
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#31 lore raw

PATCH v8 10/10 configs/am62x_sk_defconfig: enable IMG Rogue graphics driver

In reply to Andreas Dannenberg via buildroot

Enable the IMG Rogue graphics driver for use on SK-AM62 by enabling the ti-rogue-um package containing the usermode libraries, which in turn will enable the ti-rogue-km package with the Kernel driver. Furthermore BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is enabled for automatic Kernel module loading to allow loading the graphics driver (and others) during startup.

With this configuration a simple graphics test can be performed on the target platform by running 'rgx_triangle_test -pxfmt argb8888' from the commandline, showing rotating triangles on an HDMI-connected monitor.

Based on this basic graphics enablement, the Buildroot-included Weston and Chocolate Doom packages can now be enabled and run successfully. However since extending/adding features is heavily use-case dependent this task is left to follow-on commits or user-derived custom configs for now.

---
 configs/am62x_sk_defconfig | 2 ++
 1 file changed, 2 insertions(+)
configs/am62x_sk_defconfig +2 -0
index 033101b735..588b934300 100644
@@ -1,5 +1,6 @@
 BR2_aarch64=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am62x_sk/genimage.cfg"
 BR2_LINUX_KERNEL=y
@@ -12,6 +13,7 @@ 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_PACKAGE_TI_ROGUE_UM=y
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
Signature · 6 lines
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot