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.

PROCESSOR-SDK-AM335X: ID EEPROM issue

Part Number: PROCESSOR-SDK-AM335X
Other Parts Discussed in Thread: AM3352

Hi Ti expert,

According to the EVM SK motherboard, we use AM3352 to design a platform without EEPROM, but the boot is easy to get stuck in the starting Kernel, but if you port the EVM SK motherboard EEPROM to AM3352, you

can easily boot to the kernel. Attached is the bin file read on the EVM SK motherboard.

Want to ask what is the relationship between this?

We read Am335x Starter Kit EEPROM  the data is shown below:

BR

Egbert Liu

  • Hi Egbert,

    The EEPROM usually contains a magic number, which is used to distinguish between different AM335x board (BBB, Starter Kit, EVM and so on).

    You can either fix this in u-boot or remove the check of this magic number, see board/ti/am335x/board.c and search for board_is_*. Based on this the pinmux configuration is performed.

    Best Regards,
    Yordan
  • Hi Yorden,

    I discover to modifying the path caused by  I do n`t want read Board ID in my  am335 platform.

    So , I  modified in the path: ~/ ti-processor-sdk-linux-am335x-evm-pure / board-support / u-boot-2017.01 + gitAUTOINC + c68ed086bd-

    gc68ed086bd / board / ti / am335x $ /     at   the  Board .c and Board.h   2 files.

    My way is to specify directly return A335X_SK but why I booted through the putty read message to see is the A335_ICE module

    Please see the below picture :

    I Provide the Board.c and Board.h  2 file in the attachment  

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/BOARD.7z

    Could you give some suggestions for me?    Thank you.

    BR

    Egbert Liu

  • Hi Egbert,

    In u-boot/include/configs/am335x_evm.h modify the following code:
    "fdtfile=undefined\0" \ to "fdtfile=am335x-evmsk.dtb\0" \

    and comment the following fragment:
    "findfdt="\
    "if test $board_name = A335BONE; then " \
    "setenv fdtfile am335x-bone.dtb; fi; " \
    "if test $board_name = A335BNLT; then " \
    "setenv fdtfile am335x-boneblack.dtb; fi; " \
    "if test $board_name = BBG1; then " \
    "setenv fdtfile am335x-bonegreen.dtb; fi; " \
    "if test $board_name = A33515BB; then " \
    "setenv fdtfile am335x-evm.dtb; fi; " \
    "if test $board_name = A335X_SK; then " \
    "setenv fdtfile am335x-evmsk.dtb; fi; " \
    "if test $board_name = A335_ICE; then " \
    "setenv fdtfile am335x-icev2.dtb; fi; " \
    "if test $fdtfile = undefined; then " \
    "echo WARNING: Could not determine device tree to use; fi; \0" \
    This will force u-boot to use the am335x-evmsk device tree file.

    Best Regards,
    Yordan
  • Hi  Yordan,

    I tried to modify the am335x_evm.h file in your way, but after compiling, I produced the result of the screenshot below.

    Is this the program that is not correctly declared?

    BR

    Egbert Liu

  • Don't comment "fdtfile=undefined\0" \. Replace it with "fdtfile=am335x-evmsk.dtb\0" \ . And remove the bit I mentioned above, regarding the "findfdt=".
  • Hi  Yordan,

    I follow the before the rule and your remind,  But retry the boot on the system will hang up and putty show "Starting Kernel ....." (Please the screenshot below)  

    I modified the following  4 files : 

    1. u-boot /board/ti/am335x/board.c   ========>  remark   void do_board_detect(void)

    2.  u-boot/include/configs/am335x_evm.h   ==============>  modify "fdtfile=am335x-evmsk.dtb\0" \ 

    ========================remove==========================================

    "findfdt="\ 
    "if test $board_name = A335BONE; then " \
    "setenv fdtfile am335x-bone.dtb; fi; " \
    "if test $board_name = A335BNLT; then " \
    "setenv fdtfile am335x-boneblack.dtb; fi; " \
    "if test $board_name = BBG1; then " \
    "setenv fdtfile am335x-bonegreen.dtb; fi; " \
    "if test $board_name = A33515BB; then " \
    "setenv fdtfile am335x-evm.dtb; fi; " \
    "if test $board_name = A335X_SK; then " \
    "setenv fdtfile am335x-evmsk.dtb; fi; " \
    "if test $board_name = A335_ICE; then " \
    "setenv fdtfile am335x-icev2.dtb; fi; " \
    "if test $fdtfile = undefined; then " \
    "echo WARNING: Could not determine device tree to use; fi; \0" \

    ========================remove==============================

    3. u-boot/arch/arm/mach-omap2/am33xx/board.c   

    ============remark===================== 

    //#ifdef CONFIG_TI_I2C_BOARD_DETECT
    //do_board_detect();
    //#endif

    ======================================

    4. u-boot/arch/arm/mach-omap2/am33xx/Kconfig

    ============remark===================== 

    //select TI_I2C_BOARD_DETECT 

    ======================================

    In addition, I would like to ask if this path u-boot /board/ti/am335x/     

    The board.h file needs to be remark with TI other modules, leaving only am335x-SK return 1 to set it ?

    static inline int board_is_bone(void)
    {
    //eturn board_ti_is("A335BONE");
    //return 0;
    }

    static inline int board_is_bone_lt(void)
    {
    //return board_ti_is("A335BNLT");
    //eturn 0;
    }

    static inline int board_is_bbg1(void)
    {
    //return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
    //eturn 0;
    }

    static inline int board_is_beaglebonex(void)
    {
    //return board_is_bone() || board_is_bone_lt() || board_is_bbg1();
    //return 0;
    }

    static inline int board_is_evm_sk(void)
    {
    return board_ti_is("A335X_SK");
    return 1;
    }

    static inline int board_is_idk(void)
    {
    //return !strncmp(board_ti_get_config(), "SKU#02", 6);
    //return 0;
    }

    static inline int board_is_gp_evm(void)
    {
    //return board_ti_is("A33515BB");
    //return 0;
    }

    static inline int board_is_evm_15_or_later(void)
    {
    //return (board_is_gp_evm() &&
    //strncmp("1.5", board_ti_get_rev(), 3) <= 0);
    //return 0;
    }

    static inline int board_is_icev2(void)
    {
    //return board_ti_is("A335_ICE") && !strncmp("2", board_ti_get_rev(), 1);
    //return 0;
    }

    BR

    EGBERT LIU

  • Hi Ti expert,

    Can you have good suggestions for the previous questions?

    BR
    Egbert Liu
  • Hi,

    The board.h file needs to be remark with TI other modules, leaving only am335x-SK return 1 to set it ?


    If you've removed the board detect from u-boot, these functions should not be needed.

    As for your board hanging up at "Starting kernel..." this indicates that your dts file is wrong (does not describe your custom hardware).

    Best Regards,
    Yordan