[RFC/PATCH] ARM: PRIMA2: initial support for SiRFmarco dual-core SoC

Arnd Bergmann arnd at arndb.de
Tue Sep 4 15:46:46 EDT 2012


On Tuesday 04 September 2012, Barry Song wrote:

> >
> >> +              rstc-iobg {
> >> +                     compatible = "simple-bus";
> >> +                     #address-cells = <1>;
> >> +                     #size-cells = <1>;
> >> +                     ranges = <0xc2000000 0xc2000000 0x10000>;
> >> +
> >> +                     reset-controller at c2000000 {
> >> +                             compatible = "sirf,marco-rstc";
> >> +                             reg = <0xc2000000 0x10000>;
> >> +                     };
> >> +             };
> >> +
> >> +             sys-iobg {
> >> +                     compatible = "simple-bus";
> >> +                     #address-cells = <1>;
> >> +                     #size-cells = <1>;
> >> +                     ranges = <0xc3000000 0xc3000000 0x30000>;
> >
> > It looks to me that the sub-buses all have a size of 0x1000000, so I would
> > recommend listing that one in the ranges, rather than only enough to
> > provide the devices that you actually use.
> 
> these ranges come from the hw spec. it seems you mean something like:
>                   ranges = <0xcc050000 0xcc050000 0x1000
>                             0xcc060000 0xcc060000 0x1000
>                             0xcc190000 0xcc190000 0x1000
>                             ....>;
> then the list will be very long. i can't really understand the
> benefit.  of course, if a driver makes misoperations to map an address
> not in this list, io mapping will fail for it.
> here <0xc3000000 0xc3000000 0x30000> is the filter range that will go
> through sys-iobg in marco SoC. if an address located in this range
> doesn't locate in a real hardware which exists, the driver should fail
> due to hw error.

I actually meant 

	ranges = <0xc2000000 0xc2000000 0x1000000>;

Since each iobg range seems to be 16MB apart from the previous one,
I would assume that the actual ranges that get translated are also
16 MB, not 64 KB or 192 KB as in the examples above. The rule however
is that you should model what the hardware does, and if that bus
has a 192KB window, then you should list that in the DT source.


	Arnd



More information about the linux-arm-kernel mailing list