Hi,
As I am thinking about conformance testing for SystemReady and Trusted Substrate, I'd like to get your feedback on the following.
There are 7 values in the reg entry of interrupt-controller@210000 from the below DT. This corresponds to 3 valid {address,size} plus a single {address}.
The spec does not state anything on incomplete {address,size} pairs... I understand that #size-cell can be zero, indicating that the reg will contain only {address} "tuples" and not {address,size} tuples. But that should be for all reg tuples, not just one.
In this case, I assume the driver will get what it wants, but from a certification perspective:
- I would reject this DT. - I would document proper tuple forming in the spec (no incomplete pairs)
Last, I would also add some "notes" in the spec about where to get the "#*-cells" for the reg property of a device. If you think "hardware" it is obvious that the information must be retrieved from the immediate parent and "inheritance" does not make sense. But as I Googled the topic, I have seen a number of discussions and wrong patches around that. So I would add a non normative text (properly identified as such) to describe that in the spec.
Thank you for your help
Cheers
FF config-space@f0000000 { #address-cells = <0x01>; #size-cells = <0x01>; compatible = "simple-bus"; ranges = <0x00 0x00 0xf0000000 0x1000000>;
interrupt-controller@210000 { compatible = "arm,gic-400"; #interrupt-cells = <0x03>; #address-cells = <0x01>; #size-cells = <0x01>; ranges; interrupt-controller; interrupts = <0x01 0x09 0xf04>; reg = <0x210000 0x10000 0x220000 0x20000 0x240000 0 0x20000>; phandle = <0x01>;
v2m@280000 { compatible = "arm,gic-v2m-frame"; msi-controller; reg = <0x280000 0x1000>; arm,msi-base-spi = <0xa0>; arm,msi-num-spis = <0x20>; phandle = <0x03>; };