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