Re: [dtc PATCH V2] Warn on node name unit-address presence/absence mismatch

From: Kumar Gala
Date: Thu Sep 26 2013 - 14:21:39 EST



On Sep 19, 2013, at 12:54 PM, Stephen Warren wrote:

> From: Stephen Warren <swarren@xxxxxxxxxx>
>
> ePAPR 1.1 section 2.2.1.1 "Node Name Requirements" specifies that any
> node that has a reg property must include a unit address in its name
> with value matching the first entry in its reg property. Conversely, if
> a node does not have a reg property, the node name must not include a
> unit address.
>
> Implement a check for this. The code doesn't validate the format of the
> unit address; ePAPR implies this may vary from (containing bus) binding
> to binding, so doing so would be much more complex.
>
> Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx>
> ---
> v2: Implement the new checks separately, rather than as part of existing
> checkes. downgrade from errors to warnings. Add tests.
>
> Question: Do I need to make a special exception for the /memory node? I
> assume we do want to fix that too, so the answer is no. That will require
> removing the /memory node from skeleton.dtsi in the kernel though.
> ---
> checks.c | 22 ++++++++++++++++++++--
> tests/reg-without-unit-addr.dts | 10 ++++++++++
> tests/run_tests.sh | 2 ++
> tests/unit-addr-without-reg.dts | 9 +++++++++
> 4 files changed, 41 insertions(+), 2 deletions(-)
> create mode 100644 tests/reg-without-unit-addr.dts
> create mode 100644 tests/unit-addr-without-reg.dts

What about the case of no reg but a ranges?

This pattern shows up on a lot (if not all) the PPC dts:

arch/powerpc/boot/dts/mpc8544ds.dts:

board_soc: soc: soc8544@e0000000 {
ranges = <0x0 0x0 0xe0000000 0x100000>;
};

- k

--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/