This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: 08.06.00.42 Release: ti-k3-secdev: Invalid revision

Part Number: AM625

The 08.06.00.42 release (https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM62X/08.06.00.42) does not build, failing with the following error:

ERROR: ti-k3-secdev-native-git-r0 do_fetch: Fetcher failure: Unable to find revision d14fbab5ccb21ffeb010ce57792c56a1308ed314 in branch master even from upstream

This is fixed by the following patch: https://git.ti.com/cgit/arago-project/meta-ti/commit/recipes-ti/secdev/ti-k3-secdev_git.bb?h=dunfell&id=39e7dad1227ebd546bcf3bb2730710a8f99758b0

Steps to reproduce:

$ git clone git.ti.com/.../oe-layersetup.git tisdk

$ cd tisdk

$ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-08.06.00-config.txt

$ cd build; . conf/setenv

$ export TOOLCHAIN_PATH_ARMV7=$HOME/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf

$ export TOOLCHAIN_PATH_ARMV8=$HOME/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu

$ MACHINE=am62xx-evm bitbake var-default-image

When will the next official release be available?

What level of testing is done for each release, is the AM62 EVM fully regression tested?

Thanks,

Nate

  • $ MACHINE=am62xx-evm bitbake var-default-image

    Correction: $ MACHINE=am62xx-evm bitbake tisdk-default-image

  • Hi Nate,

    actually I ran into the same concern a few days ago, and found the very same patch/solution that you found, and discussed this with our internal software R&D team thinking this is an oversight. Basically the conclusion is that while the commit we found fixes the build issue that is seen, the build issue actually happens in the first place by not using/building the Yocto images correctly. As of SDK 8.6 for AM62x the default build is for HS-FS devices (rather than GP devices), and making the core-secdev-k3 package available to the Yocto build is now required for all builds.

    Please see the build steps in the current SDK documentation at https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_06_00_42/exports/docs/linux/Overview_Building_the_SDK.html#introduction, specifically related to TI_SECURE_DEV_PKG:

    $ git clone https://git.ti.com/git/arago-project/oe-layersetup.git tisdk
    $ cd tisdk
    $ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-08.06.00-config.txt
    $ cd build
    $ . conf/setenv
    $ export TOOLCHAIN_PATH_ARMV7=$HOME/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf
    $ export TOOLCHAIN_PATH_ARMV8=$HOME/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu
    $ git clone https://git.ti.com/git/security-development-tools/core-secdev-k3.git -b master
    $ export TI_SECURE_DEV_PKG=./core-secdev-k3
    $ MACHINE=<machine> bitbake -k tisdk-default-image

    Please also see https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_06_00_42/exports/docs/devices/AM62X/linux/Release_Specific_Release_Notes.html

    I was told a documentation improvement will be made to make this fact more clear the core-secdev-k3 package is now required and is no longer optional.

    When will the next official release be available?

    The v8.6 release was the last planned release for the v8.x series of Yocto Dunfell-based SDKs. This year's v9.x series will be based on Yocto Kirkstone, with the first public release planned for around e/o July 2023.

    What level of testing is done for each release, is the AM62 EVM fully regression tested?

    The release was fully regression tested including the Yocto-based build process. As noted earlier it is required to configure the TI_SECURE_DEV_PKG ENV variable accordingly pointing to the core-secdev-k3 package. With this, no changes/patches are needed to the SDK v8.6 as it was released to enable a successful Yocto build. Regression testing results can be found on our TI Linux CI/CD page for AM62 which is here: https://software-dl.ti.com/cicd-report/linux/index.html?section=platform&platform=am62xx 

    Regards, Andreas

  • Thank you for the fast reply, and the detailed response to my questions.

    I did a fresh build following your steps, but I still get the same error. I tried using both export TI_SECURE_DEV_PKG=./core-secdev-k3 (from your steps) and export TI_SECURE_DEV_PKG=`pwd`/core-secdev-k3 (from https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_06_00_42/exports/docs/linux/Overview_Building_the_SDK.html#introduction)

    $ MACHINE=am62xx-evm bitbake -k tisdk-default-image
    ...
    ERROR: mc:k3r5-gp:ti-k3-secdev-native-git-r0 do_fetch: Fetcher failure: Unable to find revision d14fbab5ccb21ffeb010ce57792c56a1308ed314 in branch master even from upstream
    ERROR: mc:k3r5-hs-fs:ti-k3-secdev-native-git-r0 do_fetch: Fetcher failure: Unable to find revision d14fbab5ccb21ffeb010ce57792c56a1308ed314 in branch master even from upstream
    ERROR: mc:k3r5-hs-se:ti-k3-secdev-native-git-r0 do_fetch: Fetcher failure: Unable to find revision d14fbab5ccb21ffeb010ce57792c56a1308ed314 in branch master even from upstream
    ...
    $ ls
    arago-tmp-external-arm-glibc  bitbake-cookerdaemon.log  buildhistory  cache  conf  core-secdev-k3  sstate-cache
    
    $ printenv TI_SECURE_DEV_PKG
    ./core-secdev-k3
    
    # I also retried with:
    
    $ printenv TI_SECURE_DEV_PKG
    /home/nate/nvme_4tb/bsps/am62x/08.06.00.42.ti/tisdk/build/core-secdev-k3

    Can you test this on your side?

    Thanks,

    Nate

  • As of SDK 8.6 for AM62x the default build is for HS-FS devices (rather than GP devices)

    Will images built for the HS-FS SoC boot on the GP SoC?

    If not, what changes to the BSP (U-Boot, Linux, and meta layers) are required to build an image for GP devices?

    Thanks, Nate

  • Hi Nate,

    Will images built for the HS-FS SoC boot on the GP SoC?

    You will need a specific tiboot3.bin initial binary for GP devices, that you will need to swap out, see https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components_Migration_Guide.html   The rest of the boot chain will work no matter GP or HS-FS device variant. Note that there may be some warnings during boot when booting the new v8.6-based images on GP devices regarding secure headers getting discarded but those can be ignored.

    If not, what changes to the BSP (U-Boot, Linux, and meta layers) are required to build an image for GP devices?

    As far as I know we don't have those steps documented yet. I did try to derive some steps a while ago but it is not as trivial as it may seem and I ran out of time back then. Should you experiment with it one word of caution here. I was told that it is possible to badly confuse the shared state cache doing certain changes around how the multi-config mc:k3r5:ti-sci-fw artifacts are built, so it will be good in case of issues to completely clean/wipe out any build related folders and caches.

    Regards, Andreas

  • Will images built for the HS-FS SoC boot on the GP SoC?

    You will need a specific tiboot3.bin initial binary for GP devices, that you will need to swap out, see https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components_Migration_Guide.html   The rest of the boot chain will work no matter GP or HS-FS device variant. Note that there may be some warnings during boot when booting the new v8.6-based images on GP devices regarding secure headers getting discarded but those can be ignored.

    If not, what changes to the BSP (U-Boot, Linux, and meta layers) are required to build an image for GP devices?

    As far as I know we don't have those steps documented yet. I did try to derive some steps a while ago but it is not as trivial as it may seem and I ran out of time back then. Should you experiment with it one word of caution here. I was told that it is possible to badly confuse the shared state cache doing certain changes around how the multi-config mc:k3r5:ti-sci-fw artifacts are built, so it will be good in case of issues to completely clean/wipe out any build related folders and caches.

    Thanks for clarifying and for the word of caution.

    In case you missed my previous message, can you please try to build the 08.06.00.42 SDK? It still fails for me following your steps, even after a fresh build. I assume if the CI is passing, I must be doing something wrong. Can you check on your side?

    Thanks, Nate

  • Hi ,

    The export command should be,

    export TI_SECURE_DEV_PKG_K3=`pwd`/core-secdev-k3


    Note: It's TI_SECURE_DEV_PKG_K3 and not TI_SECURE_DEV_PKG.

  •  

    Are both TI_SECURE_DEV_PKG and TI_SECURE_DEV_PKG_K3 required, or only TI_SECURE_DEV_PKG_K3?

    Is the documentation here wrong, or am I looking at the wrong documentation? https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_06_00_42/exports/docs/linux/Overview_Building_the_SDK.html?highlight=bitbake

    Thanks!

  • Nate,

    I kicked off a build and saw the same issue. Looks like the documentation is wrong. We should only define TI_SECURE_DEV_PKG_K3, and probably using an absolute path, NOT a relative one. On the other hand TI_SECURE_DEV_PKG  is used internally (and hence shown in the error messages, which is misleading/confusing unfortunately), but if you tear the recipes apart (and look at BB_ENV_EXTRAWHITE, which really determines what can be passed into the build environment) you'll see how it works.

    Sorry for having trouble with this, this should be very straightforward. Will get our docs updated asap.

    Regards, Andreas

  • No problem, thanks for the fast support!

    I'm starting a fresh build to test on my side to confirm.

    In general, what is the reason for manually cloning core-secdev-k3.git and exporting TI_SECURE_DEV_PKG_K3, instead of using a recipe to do this?

  • Hi Nate,

    In general, what is the reason for manually cloning core-secdev-k3.git and exporting TI_SECURE_DEV_PKG_K3, instead of using a recipe to do this?

    Some background on this. We at Sitara are transitioning to HS-FS devices as being our "default" devices, moving away from GP devices over time. Then, expectation is for customers using HS-FS devices to eventually transition to HS-SE devices (by way of programming the secure keys), and at that time TI_SECURE_DEV_PKG_K3 will be used to point to the associated custom set of private keys. So always requiring setting TI_SECURE_DEV_PKG_K3 kind of forces a consistent build flow/process across HS-FS and HS-SE while one transitions to their final production devices/environment.

    Regards, Andreas

  • Hi Nate,

    I'm starting a fresh build to test on my side to confirm.

    I kicked off a completely "clean" build earlier based on processor-sdk-08.06.00-config.txt for AM62x and the secdev ENV variable defined as follows (absolute path):

     $ export TI_SECURE_DEV_PKG_K3=$(realpath core-secdev-k3)

    and the build just completed without any issues.

    $ MACHINE=am62xx-evm bitbake -k tisdk-default-image
    
    <...snip...>
    
    $ ll arago-tmp-external-arm-glibc/deploy/images/am62xx-evm/*.wic.xz
    -rw-r--r-- 2 a0797059 a0797059 359406144 Mar 10 13:21 arago-tmp-external-arm-glibc/deploy/images/am62xx-evm/tisdk-default-image-am62xx-evm-20230310172220.rootfs.wic.xz
    lrwxrwxrwx 2 a0797059 a0797059        59 Mar 10 13:21 arago-tmp-external-arm-glibc/deploy/images/am62xx-evm/tisdk-default-image-am62xx-evm.wic.xz -> tisdk-default-image-am62xx-evm-20230310172220.rootfs.wic.xz

    Regards, Andreas

  • Hi Andreas, my build just finished successfully also. Thanks for your support!

  • For future reference, the build steps in the official documentation have since gotten updated/corrected, see https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/08_06_00_42/exports/docs/linux/Overview_Building_the_SDK.html#build-steps

    Regards, Andreas