Message ID | 20161117230830.31047-10-gregory.clement@free-electrons.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hello, On Fri, 18 Nov 2016 00:08:26 +0100, Gregory CLEMENT wrote: > - soc { > + /* The following unit address is composed of the target > + * value (bit [40-47]), attributes value (bits [32-39], > + * and the address value in the window memory: [0-31]. > + */ > + soc@f00100000000 { Where is this value coming from? Why does the soc node needs to have a unit address? It doesn't have a 'reg' property if I remember correctly. Thomas
Hi Thomas, On ven., nov. 18 2016, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Fri, 18 Nov 2016 00:08:26 +0100, Gregory CLEMENT wrote: > >> - soc { >> + /* The following unit address is composed of the target >> + * value (bit [40-47]), attributes value (bits [32-39], >> + * and the address value in the window memory: [0-31]. >> + */ >> + soc@f00100000000 { > > Where is this value coming from? Why does the soc node needs to have a It cames from the dts files. > unit address? It doesn't have a 'reg' property if I remember > correctly. But it has a range property. Gregory > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com
Hello, On Fri, 18 Nov 2016 10:01:32 +0100, Gregory CLEMENT wrote: > >> + soc@f00100000000 { > > > > Where is this value coming from? Why does the soc node needs to have a > > It cames from the dts files. Where? > > unit address? It doesn't have a 'reg' property if I remember > > correctly. > > But it has a range property. And? There are multiple ranges, and you randomly took the first one for the unit address of the soc node? You realize that the ranges property is a list of ranges, and they could be in any order? Why would you pick the base address of one of the ranges rather than any of the others? I believe there is simply no unit address for the soc {} node. There is definitely one for the internal-regs {} node, but not for the soc {} node. Best regards, Thomas
diff --git a/arch/arm/boot/dts/armada-375-db.dts b/arch/arm/boot/dts/armada-375-db.dts index b33a674088ed..5ed226236398 100644 --- a/arch/arm/boot/dts/armada-375-db.dts +++ b/arch/arm/boot/dts/armada-375-db.dts @@ -63,7 +63,11 @@ reg = <0x00000000 0x40000000>; /* 1 GB */ }; - soc { + /* The following unit address is composed of the target + * value (bit [40-47]), attributes value (bits [32-39], + * and the address value in the window memory: [0-31]. + */ + soc@f00100000000 { ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 MBUS_ID(0x09, 0x09) 0 0xf1100000 0x10000 diff --git a/arch/arm/boot/dts/armada-375.dtsi b/arch/arm/boot/dts/armada-375.dtsi index f213b6786e10..120dd7ac40cb 100644 --- a/arch/arm/boot/dts/armada-375.dtsi +++ b/arch/arm/boot/dts/armada-375.dtsi @@ -101,7 +101,11 @@ interrupts-extended = <&mpic 3>; }; - soc { + /* The following unit address is composed of the target + * value (bit [40-47]), attributes value (bits [32-39], + * and the address value in the window memory: [0-31]. + */ + soc@f00100000000 { compatible = "marvell,armada375-mbus", "simple-bus"; #address-cells = <2>; #size-cells = <1>;
soc has a ranges property so the unit name should contain an address. Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> --- arch/arm/boot/dts/armada-375-db.dts | 6 +++++- arch/arm/boot/dts/armada-375.dtsi | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-)