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.

AM6411: processor sdk 10.00.07.04 and u-boot build error

Part Number: AM6411

Tool/software:

Hi,

I'm upgrading from processor sdk 09.02.01.10 to 10.00.07.04 and facing a problem on u-boot with am64x_evm_r5_defconfig.

During build, I got

In file included from /home/hugh/SmartAM641x-tisdk-10.00.07.04/ti-u-boot-2024.04+git/include/common.h:16:
include/config.h:3:10: fatal error: configs/.h: No such file or directory
    3 | #include <configs/.h>
      |          ^~~~~~~~~~~~
compilation terminated.

I found that the following part is missing from board/ti/am64x/Kconfig when I compared it with processor sdk 09.02.01.10:

choice
    prompt "K3 AM64 based boards"
    optional

config TARGET_AM642_A53_EVM
    bool "TI K3 based AM642 EVM running on A53"
    select ARM64
    select BINMAN
    imply BOARD
    imply SPL_BOARD
    imply TI_I2C_BOARD_DETECT

config TARGET_AM642_R5_EVM
    bool "TI K3 based AM642 EVM running on R5"
    select CPU_V7R
    select SYS_THUMB_BUILD
    select K3_LOAD_SYSFW
    select RAM
    select SPL_RAM
    select K3_DDRSS
    select BINMAN
    imply SYS_K3_SPL_ATF
    imply TI_I2C_BOARD_DETECT

endchoice

So I added it and built a binary. But during boot, it fails.

static int initr_caches(void)
{
    /* Enable caches */
printf("initr_caches: before\n"); // I see this message on console
    enable_caches();
printf("initr_caches: after\n"); // I can't see this message and it does not boot
    return 0;
}

I guess that the problem is related to the cache.

Can you help me please?

Best regards,

Hugh Chang

  • Hi,

    Let me describe my problem in more detail.

    I found that "config" part is moved to arch/arm/mach-k3/am64x/Kconfig from board/ti/am64x/Kconfig after this posting.

    So I my modified Kconfig as follows for my board:

    I added the followings in arch/arm/mach-k3/am64x/Kconfig:

    config TARGET_AM642_A53_SmartAM641x
        bool "TI K3 based AM642 SmartAM641x running on A53"
        select ARM64
        select BINMAN
        imply BOARD
        imply SPL_BOARD
        #imply TI_I2C_BOARD_DETECT
        imply TI_COMMON_CMD_OPTIONS

    config TARGET_AM642_R5_SmartAM641x
        bool "TI K3 based AM642 SmartAM641x running on R5"
        select CPU_V7R
        select SYS_THUMB_BUILD
        select K3_LOAD_SYSFW
        select RAM
        select SPL_RAM
        select K3_DDRSS
        select BINMAN
        imply SYS_K3_SPL_ATF
        #imply TI_I2C_BOARD_DETECT

    And I added the followings in board/ti/am64x/Kconfig:

    if TARGET_AM642_A53_SmartAM641x

    config SYS_BOARD
           default "am64x"

    config SYS_VENDOR
           default "ti"

    config SYS_CONFIG_NAME
           default "am64x_SmartAM641x"

    source "board/ti/common/Kconfig"

    endif

    if TARGET_AM642_R5_SmartAM641x

    config SYS_BOARD
           default "am64x"

    config SYS_VENDOR
           default "ti"

    config SYS_CONFIG_NAME
           default "am64x_SmartAM641x"

    source "board/ti/common/Kconfig"

    endif

    I can make a binary but it does not boot and stops at enable_caches().

    Help me please.

    Hugh Chang