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.

Linux/TMDXIDK5718: Use of device trees in U-boot

Part Number: TMDXIDK5718

Tool/software: Linux

Hi I'm using Linux SDK4.2 on Sitara IDK571

I would like to know if the U-Boot device trees found in u-boot-2017.01+gitAUTOINC+340fb36f04-g340fb36f04/arch/arm/dts are actually used in U-Boot? If yes how? Are drivers instantiated? Can U-Boot use the same drivers referenced in the device tree as Linux?

The device trees files seems to be similar but not identical to the ones found in the Kernel (Linux.../arch/arm/boot/dts)? Why is that?

I found that am57xx-evm-cmem.dtsi is included in the Linux device tree am571x-idk.dts but it's not present in u-boot-2017.01+gitAUTOINC+340fb36f04-g340fb36f04/arch/arm/dts. So does U-Boot build process  include linux device trees? Why is there no strict separation?

Regards, Chris

  • Hello Christian,

    If you change something in your board's device tree, you will see that the U-Boot device trees found in u-boot-2017.01+gitAUTOINC+340fb36f04-g340fb36f04/arch/arm/dts are actually in used by U-Boot. The drivers in U-Boot are similar but not the exact ones as you see in Linux.

    The drivers are similar but not identical because there is a limited support in U-boot, if the U-Boot has all the drivers which Linux provides, there were no need of Linux, think about it.

    Best regards,
    Kemal
  • Hi Kemal,

    thanks for the answer.

    Can you explain how the SPL (if CONFIG_SPL_OF_CONTROL is set) finds out the board name?

    Does it call do_board_detect() and then read later the board name from TI_EEPROM_DATA?

    Or how and in which file does the SPL get the board name and load the U-boot device tree?

    Best regards, Chris

  • Please, see this, this and this thread.