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