-----Original Message----- From: ron minnich [mailto:rminnich@gmail.com] Sent: Tuesday, November 11, 2008 12:45 PM To: Myles Watson Cc: Coreboot Subject: Re: [coreboot] Resource allocation
On Tue, Nov 11, 2008 at 11:20 AM, Myles Watson mylesgw@gmail.com wrote:
Opteron -> 8111 -> 8111lpc -> Winbond SuperIO
The SuperIO has resources like this: PNP 2e.0: size 8 align 3 gran 3 limit 7ff flags 100 index 60 - IO resource that has to be allocated below 7ff PNP 2e.5: size 1 align 0 gran 0 limit ffffffff flags 60000100
index
60 - IO resource that has to be allocated below ffffffff
Then does the 8111lpc need to have an IO subtractive resource? the 8111?
the
domain?
Well what appears to happen on more modern k8 hardware (and I am pretty sure this did not happen in the early days, but who knows -- we did the resource map on older boards so this would all work).
The legacy chain will "just work" such that this device can be accessed. In other words, some set of hardware will work correctly so that, e.g., FLASH can be read. Since this part IIRC is also on the chain (?) it is accessible too.
Yes. The flash just works. I'm having trouble with PNP devices.
Are either of them supposed to be positively decoded by the bridge, or should we let them both live under 7ff? What code takes care of this?
What
code makes sure that these resources don't conflict?
From memory, on the old boards, the very early resource map setup in v2 auto.c did this. Things were set up just enough that the basic legacy devices worked.
So the parallel port, floppy, etc should be enabled in stage1? Otherwise their addresses will be set later.
Note that config space doesn't change later -- just some basic routing. So if the subtractive path doesn't get messed up, and no other resource positively decodes this, we're ok.
This seems to work fine. The resources that need to be set up to be below 7ff don't work.
Let's not bring the IOINDEX_SUBTRACTIVE resources into this discussion -- I did that already and it got me into trouble. The SUBTRACTIVE name in the resource code is misleading IMHO.
I'm sorry. I realize that I'm trying to go too many directions at once and I can't keep it all on the top of the stack. It's too much complexity.
Does anyone have an idea why resource allocation isn't working? My talking around the idea hasn't helped me yet.
Thanks, Myles