Re: [PATCH v5 1/3] ARM: dts: tegra: Remove skeleton.dtsi and fix DTC warnings for /memory

From: Stefan Agner
Date: Wed May 23 2018 - 04:04:08 EST


On 23.05.2018 10:34, Krzysztof Kozlowski wrote:
> On Wed, May 23, 2018 at 10:22 AM, Stefan Agner <stefan@xxxxxxxx> wrote:
>> On 23.05.2018 09:05, Krzysztof Kozlowski wrote:
>>> On Thu, May 17, 2018 at 1:39 PM, Stefan Agner <stefan@xxxxxxxx> wrote:
>>>> On 17.05.2018 09:45, Krzysztof Kozlowski wrote:
>>>> Could we not add
>>>>
>>>> memory { device_type = "memory"; };
>>>>
>>>> in the SoC level device trees?
>>>>
>>>> This would save device_type in all other instances.
>>>>
>>>> That is also how it is done in other places, e.g.
>>>> arch/arm/boot/dts/imx6qdl.dtsi
>>>
>>> Not really because the unit address will not match between different
>>> boards. The imx6qdl, as I see, has the same issue:
>>> - imx6qdl.dtsi defines "memory" node
>>> - imx6dl-apf6dev.dts includes the previous and defines "memory@10000000"
>>>
>>> This is wrong - two memory nodes.
>>>
>>
>> Hm I see. We could add
>>
>> memory@0 { device_type = "memory"; };
>>
>> Since the reg property is specified in the board level device tree it
>> would be still fine?
>>
>> Or probably better to provide a complete spec with length zero:
>>
>> memory@0 {
>> device_type = "memory";
>> reg = <0x0 0x0>;
>> };
>>
>> Even some boards do that and assume that boot loader will fill it
>> correctly, so that should be fine.
>
> That could be the solution although tegra30-apalis.dtsi is a problem
> here. For Tegra 114, 124 and 20 it would work fine - all boards from
> given SoC have the same address of memory (0x0 or 0x80000000). However
> for Tegra30 the Apalis did not have any memory reg before so I am not
> sure what should be used. I added 0x0. The other Tegra30 boards have
> memory@80000000.

The start address of memory is not something a board can decide on: That
is hard wired in the SoC...

In the Tegra 3 case the start address of main memory is 0x80000000.

So

memory@80000000 {
reg = <0x80000000 0x0>;
};


Should be fine.

Or you can use 0x40000000 (1GiB) since that is the smallest
configuration Toradex sells currently.


memory@80000000 {
reg = <0x80000000 0x40000000>;
};

Sorry for the hassle and thanks for fixing this!

--
Stefan