[U-Boot] FDT howto

Jagan Teki jagannadh.teki at gmail.com
Sun Feb 24 18:45:09 CET 2013


Hi Simon,

On Sun, Feb 24, 2013 at 11:08 PM, Simon Glass <sjg at chromium.org> wrote:
> Hi Jagan,
>
> On Sun, Feb 24, 2013 at 8:19 AM, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>> Hi Simon,
>>
>> Thanks for your response, please find my below comments.
>>
>> On Sun, Feb 24, 2013 at 9:24 PM, Simon Glass <sjg at chromium.org> wrote:
>>> Hi Jagan,
>>>
>>> On Thu, Feb 21, 2013 at 9:03 AM, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>>>> Hi All,
>>>>
>>>> I am planning to use devicetree on u-boot.
>>>> I have an experience to work with devicetree on Linux.
>>>>
>>>> For u-boot, I have read doc from doc/README.fdt-control.
>>>> I see some dts usages on tegra boards.
>>>>
>>>> I have lot of confusions with the concept itself.
>>>>
>>>> Is Linux and u-boot devicetree concept and build system are same?
>>>
>>> I don't really understand this question sorry. U-Boot and Linux use
>>> the device tree mainly for run-time configuration of drivers, so that
>>> the same driver code can operate on different boards.
>>
>> I am some how confusing the fdt usage in u-boot.
>> Because when compared to Linux, u-boot fdt setup mandatory to require
>> the CONFIG_DEFAULT_DEVICE_TREE
>> on the config file [from your previous comments].
>>
>> is this the only difference when compared to Linux i guess..is it?
>> Linux defconfig file does need to hot-code
>> the dts.
>
> Yes - that is a difference. Linux provides a way to build .dts files
> but it is not mandatory. At present it is mandatory with U-Boot, and
> only one file is built. It can easily be ignored though.

Ok.

>
>>
>>>
>>>>
>>>> Suppose I have 4 boards J1, J2, J3 & J4 on my soc "emb".of vendor "vast"
>>>>    For this requirement I have
>>>>    board/vast/dts/J1.dts
>>>>    board/vast/dts/J2.dts
>>>>    board/vast/dts/J3.dts
>>>>    board/vast/dts/J4.dts
>>>>
>>>>    include/configs/emb_common.h ==> single configuration of all SOC
>>>> needed definitions
>>>>    like defconfig in Linux.
>>>>
>>>>    do I need any more files?
>>>
>>> That's enough for the basics I think.
>>
>> Is dtsi file require to add it on arch folder along with above.
>
> If your architecture is not one of those already supported (like arm
> tegra/exynos and x86) then yes you need to add this file in
> arch/<arch>/dts. What architecture are you using?

My architecture is armv7, may be for me dtsi not required as arm is
existing architecture
to support fdt on u-boot.. is it?

>
>>
>>>
>>>>
>>>>    In emb_common.h i am defining
>>>>    CONFIG_OF_SEPARATE is it sufficient?
>>>
>>> And CONFIG_OF_CONTROL
>>>
>>>>
>>>>    My plan is to build u-boot and then build the dtb with specific
>>>> board and then combine.
>>>
>>> That's fine, and is how we do things on Chromium also. U-Boot tries to
>>> build an FDT even with CONFIG_OF_SEPARATE, so you need to put a
>>> default device tree file in your emb_common.h file that it can find.
>>> But you can ignore it, and for flashing your boards just use
>>> u-boot.bin plus whatever .dtb you want to select.
>>
>> So I will add the fdt support and then build the u-boot.
>> Is there any separate u-boot build command to build dts file.
>> My plan is to combine both u-boot and dtb.
>
> You can run dtc yourself if you like - see Makefile/dts for how it is
> done there. Once you have the .dtb binary, the easiest thing is to add
> it to the end of u-boot.bin, as described in README.fdt-control.

Thanks, I tried with above setup for adding dts.
I have added simple dts file on my board.

I got the below build error
/proj/mypc/u-boot/include/asm/gpio.h:1:27: fatal error:
asm/arch/gpio.h: No such file or directory
compilation terminated.
make[1]: *** No rule to make target `.depend.fdtdec', needed by
`.depend'.  Stop.

is gpio.h is mandatory for fdt build?

Thanks,
Jagan.

>
>>
>> Thanks,
>> Jagan.
>>
>>>
>>>>
>>>> I saw that all tegra boards config files are defining
>>>> CONFIG_DEFAULT_DEVICE_TREE if ie. the case dts is a compile time
>>>> option right.
>>>> am i correct?
>>>
>>> Yes - see above. This is convenient for testing and development.
>>>
>>>>
>>>> Please let me know your inputs.
>>>
>>> Regards,
>>> Simon
>>>
>>>>
>>>> --
>>>> Thanks,
>>>> Jagan.


More information about the U-Boot mailing list