[coreboot] [PATCH] Proposal for dealing with superio *.c includes

Alex G. mr.nuke.me at gmail.com
Thu Mar 3 16:08:55 CET 2011


On 03/03/2011 04:49 PM, Keith Hui wrote:
> I like this solution too. Just that it requires hacking sconfig, and
> I'm not even close to qualified to actually do it. :)
> 
> And this requires sconfig to produce some other output for romstage as
> well. The hardware tree it produces is currently only used during
> ramstage.
> 
> While we're on sconfig, devicetree, superio and romstage, can we add a
> facility where I can declare some known, fixed initialization
> sequences that needs to be programmed into certain devices?
> 
And have the same sequence in every devicetree.cb that uses that device?
That's code duplication, which is exactly what we are trying to avoid.
Imagine if we find a problem with a superio used in 30 boards. Instead
of changing one file, we have 30 devicetree.cb .

> Suppose my new board requires 0x00 to be written into pnp device 2e.5,
> registers 0xf0-0xf5. Can we make it so that it will accept this
> declaration, and do it during romstage?
> 
On second thought, it might be a good idea if and only if your board
requires a _different_ sequence, and anything in devicetree.cb would
override the default one.

> If I need to do it now, I'll need to hijack either of io and drq for
> it and can only do it when pnp is initialized in ramstage.
> 
>             chip superio/foo/bar                # Super I/O
>               device pnp 2e.5 on                # PME
>                 reg 0xf0 = 0x00
>                 reg 0xf1 = 0x00
>                 reg 0xf2 = 0x00
>                 reg 0xf3 = 0x00
>                 reg 0xf4 = 0x00
>                 reg 0xf5 = 0x00
>               end
> 
I'm not seeing any generic "reg" infrastructure. It doesn't look that
hard to extend though.

However, devicetree.cb _seems_ to deal exclusively with ramstage. Not
too sure how we can extend that to romstage.

Alex




More information about the coreboot mailing list