[U-Boot] Struct SoC access
Wolfgang Denk
wd at denx.de
Sat Aug 14 23:47:38 CEST 2010
Dear Reinhard Meyer,
In message <4C66F54D.2060701 at emk-elektronik.de> you wrote:
>
> >> I was even thinking of something like
> >>
> >> struct soc {
> >> u32 xyz[0x80]; /* XYZ unit */
> >> u32 dbu[0x80]; /* Debug Unit */
> >> u32 rstc[0x80]; /* Reset Controller */
> >> and so on.
> >
> > This is what PPC used to do; I like that - but ARM people always
> > explained to me that it makes no sense because address space on ARM
> > SoC is only sparely populated.
>
> Even if, that's no reason, on can write "u32 spi0[0x1000]", on AT91
> the spacing of peripherals is 0x4000 bytes, in fact it repeats
> times in its window. The system stuff is like one peripheral with
> its components spaced by 0x200 bytes (hence the 0x80 above).
I think we have a misunderstaning ehre - I thought the entries like
"xyz" were indeed "u32" types - buut now I get the impression that
what you have in mind is that they are actually structs describing
hardware blocks.
Then it should be written like that.
For example, see file "arch/powerpc/include/asm/8xx_immap.h":
struct immap is what corresponds to your struct soc above.
> Would the toolchain "gulp" when one defines the whole 4 GB that way?
Why not?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It [being a Vulcan] means to adopt a philosophy, a way of life which
is logical and beneficial. We cannot disregard that philosophy merely
for personal gain, no matter how important that gain might be.
-- Spock, "Journey to Babel", stardate 3842.4
More information about the U-Boot
mailing list