[U-Boot] Struct SoC access (was:Make preparatory patches that initially have no effect?)
Reinhard Meyer
u-boot at emk-elektronik.de
Sat Aug 14 21:30:18 CEST 2010
Dear Wolfgang Denk,
> Have the first add that file, and the second assume it comes later in
> the sequence.
You don't mean by "sequence" PATCH 1/n, 2/n, etc? The drivers are so
independent that that would not really make sense...
> The wiki page does not talk about drivers... It's a general rule and
> applies to all sorts of code. Only add what is really used (this also
> refers, for example, to struct definitions for register blocks etc. -
> don't try to provide a complete description of your SoC; add only
> stuff that is actually used by the code).
That's a thin line. Although I need only one register of the DBU (for
example) I think its wise to define all registers in it, and not to
_reserve[] the unused ones....
Anyway, is the method of (for example!)
#define DBU_ADDR 0xsomething (in a SoC header file)
dbu_t *dbu = (dbu_t *)DBU_ADDR; (in a function)
OK?
Or do we need to further encapsulate that in a function like
dbut_t *get_dbu_addr(void) {return (dbu_t *)DBU_ADDR;}
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.
Then in a driver one could write
dbu_t *dbu = (dbu_t *)soc.dbu;
or something along that line
Best Regards
Reinhard
More information about the U-Boot
mailing list