[U-Boot] [PATCH 11/13] arm: zynq: dts: Add U-Boot device tree additions

Simon Glass
2015-08-31T23:13:20Z

Hi Michal,

On 31 August 2015 at 08:16, Michal Simek <monstr@monstr.eu> wrote:
> On 08/31/2015 03:54 PM, Simon Glass wrote:
>> Hi Michal,
>>
>> On 31 August 2015 at 05:30, Michal Simek <monstr@monstr.eu> wrote:
>>> On 08/29/2015 05:10 PM, Simon Glass wrote:
>>>> We need to mark some device tree nodes so that they are available before
>>>> relocation. This enables driver model to find these automatically. In the
>>>> case of SPL it ensures that these nodes will be retained in SPL.
>>>>
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>> ---
>>>>
>>>> arch/arm/dts/zynq-7000.dtsi | 1 +
>>>> arch/arm/dts/zynq-microzed.dts | 5 +++++
>>>> arch/arm/dts/zynq-picozed.dts | 5 +++++
>>>> arch/arm/dts/zynq-zc702.dts | 1 +
>>>> arch/arm/dts/zynq-zc706.dts | 1 +
>>>> arch/arm/dts/zynq-zc770-xm010.dts | 1 +
>>>> arch/arm/dts/zynq-zc770-xm011.dts | 1 +
>>>> arch/arm/dts/zynq-zc770-xm012.dts | 1 +
>>>> arch/arm/dts/zynq-zc770-xm013.dts | 1 +
>>>> arch/arm/dts/zynq-zed.dts | 1 +
>>>> arch/arm/dts/zynq-zybo.dts | 1 +
>>>> 11 files changed, 19 insertions(+)
>>>>
>>>> diff --git a/arch/arm/dts/zynq-7000.dtsi b/arch/arm/dts/zynq-7000.dtsi
>>>> index 0b62cb0..12614f2 100644
>>>> --- a/arch/arm/dts/zynq-7000.dtsi
>>>> +++ b/arch/arm/dts/zynq-7000.dtsi
>>>> @@ -54,6 +54,7 @@
>>>> };
>>>>
>>>> amba: amba {
>>>> + u-boot,dm-pre-reloc;
>>>> compatible = "simple-bus";
>>>> #address-cells = <1>;
>>>> #size-cells = <1>;
>>>> diff --git a/arch/arm/dts/zynq-microzed.dts b/arch/arm/dts/zynq-microzed.dts
>>>> index c373a2c..5dff18e6 100644
>>>> --- a/arch/arm/dts/zynq-microzed.dts
>>>> +++ b/arch/arm/dts/zynq-microzed.dts
>>>> @@ -21,3 +21,8 @@
>>>> reg = <0 0x40000000>;
>>>> };
>>>> };
>>>> +
>>>> +&uart1 {
>>>> + u-boot,dm-pre-reloc;
>>>
>>> Was this reviewed on DT mailing list?
>>
>> There is a thread going at present for Raspberry Pi but it had not
>> yielded much light last time I looked.
>>
>>>
>>> TBH adding this to every node seems to me a lot of work.
>>
>> This i how it works at present. Typically we only have a UART and that
>> is not necessary since U-Boot can force-bind this. But when the UART
>> is not in the root node we have to add something.
>
> It is partially problem with DT mess that we have platforms with and
> without bus. :-)
>
>>
>>> Why not just add one more uboot property to chosen with list of IPs
>>> which needs to be relocated?
>>
>> You mean a list of devices needed before relocation?
>
> I mean something like this:
>
> chosen {
> u-boot,dm-pre-reloc = <&uart1 ...>;
> }
>
> And then just go through this list. I expect that you are looking for
> that property anyway.

In this case wouldn't it need to list the simple-bus also?

We also use this with fdtgrep to remove nodes not needed for SPL. So
we would have to come up with a tool to make that work. At present
'fdtgrep -p u-boot,dm-pre-reloc' picks out all the nodes we want (it
finds nodes with that property).

I'm actually not sure that this approach is any easier/better. What
are the advantages?

>
>
>> If you like you could look at working up a patch for this. I'm
>> certainly interested in other ideas. It does need to be efficient.
>
> I will test this series and will look at it in more details soon.

Thanks.

BTW are there zynqmp dev boards available at reasonable cost? I did
this Zynq series because I discovered some old patches that were not
applied and decided to update then. It's a really interesting platform
- FPGA, etc.

Regards,
Simon