[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.


More information about the coreboot mailing list