AM6546: How to Customize the Device Tree in Yocto?

Part Number: AM6546

Tool/software:

Based on the official documentation, I downloaded the AM65X_09_03_05_02 SDK and Yocto.

I attempted to generate a patch file for k3-am654-base-board.dtb using git diff, and then created a custom layer and recipes to apply this patch.

However, when I recompile using MACHINE=am65xx-evm ARAGO_RT_ENABLE=1 bitbake tisdk-base-image,

my patch is consistently not applied correctly to generate the corresponding device tree. This issue persists even after using clean commands to clear the old cache.

```

meta-custom-layer

    └── recipes-kernel

               └── linux

                           │ └── linux-ti-staging-rt

                           │                      └── 0001_modify_linux_device_tree.patch

                           └── linux-ti-staging-rt_%.bbappend

```

FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

SRC_URI:append = " \

            file://0001_modify_linux_device_tree.patch \

"

  • Hi Tsai,

    Are you able to verify that the patch is being applied in the work directory of your project?

    Best Regards,

    Suren

  • Hi Suren Porwar , 

    I'm writing to provide an update on the device tree issue we discussed previously. I've successfully resolved it. The problem likely stemmed from applying a patch generated for kernel version 5.2 directly to version 6.1, which introduced some incompatibilities.

    Separately, I have a question regarding U-Boot's behavior:

    Does U-Boot access the on-board EEPROM by default during startup? I'm specifically referring to the log message: Reading on-board EEPROM at 0x50 failed -19. If it does, what is the primary purpose or use case for this access?

    Any insights you could provide would be greatly appreciated.

    Thank you,

  • Hi Tsai,

    Glad, you were able to figure out the yocto problem. Apologies for the delay.

    I am routing your query to our u-boot expert. Please expect response soon.

    Best Regards,

    Suren

  • Hi Tsai,

    I have routed your query to our u-boot expert for further support.

    Best Regards,

    Suren

  • The EEPROM access is designed for TI hardware development kits to store the MAC address. For a custom board you can disable CONFIG_TI_I2C_BOARD_DETECT in the defconfig for U-Boot. To see how they are using it for the dev kit see the U-Boot source at board/ti/am65x/evm.c for the function do_board_detect() which calls functions in board/ti/common/board_detect.c.

    There are a couple of alternate ways to set MAC address without an on-baord EEPROM.