On Thu, Feb 14, 2008 at 6:35 PM, Tom Sylla tsylla@gmail.com wrote:
ron minnich wrote:
On Thu, Feb 14, 2008 at 2:32 PM, Carl-Daniel Hailfinger
Indeed. That would solve the problem very nicely without putting hacks into the dts.
OK, so we put nodes under the 5536, and specify 'disabled', and the 5536 code knows to actually call VSA when it sees that they are disabled. This is nice. It would use the device tree in a sensible way.
Hm, hold on. I think there is a little bit of confusion with the word "disabled" here. For a Geode VPCI device, "disabling" it means completely hiding the header from config space. If you "disable" it with VPCI, and try to do config cycles to that device, VSA will respond as if it does not exist. (returning all 1's) That behavior continues forever, unless you "enable" the device again using VSA. (you wouldn't ever do that, in general)
What does "disabled" mean for a real hardware device in the dts? I am pretty sure it does not mean "hide the header" (that is not possible in general, it is a VSA-ism).
What if I want the VPCI device to exist, but want it "disabled" in the normal dts sense of "disable"? Overloading "disabled" in the dts makes that not possible (and is also *really* confusing)
Maybe a better idea would be to just change:
/* Disable unwanted virtualized PCI devices */
to
/* Hide headers for unwanted virtualized PCI devices */
since the original words seem to have lead to this confusion.
Keeping in mind that I'm no expert or really even informed with the v3/dts internals or Geode, but similar behavior is seen on the intel ICH-series and via vt8237r, would it work to add another option, call it "hidden", to the device status, and then another stage to v3? We'd do whatever stage scans the pci bridge to find all the devices, then whatever devices are marked hidden have whatever mechanism that hides them run, and v3 "forgets" the devices ever existed. i82801xx (ICH) in v2 already works to hide these devices, but I can't really remember how it works. This is just a general idea, I figure you guys have a much better idea then I do if it'd work/be possible or not.
-Corey