Myles,
Should the domain functions run before the device functions?
Yes.
It looks like the device functions run before the domain but I would expect it to be the other way.
Me too.
This is a problem for Geode LX. It has the VSA and graphics memory init in the domain phase2_fixup but it is running after the 5536 devices run phase2_fixup and is a problem.
Sorry it broke. Since I don't have the hardware I can't test very well. I had a patch that moved those functions, but I broke something else and re-simplified. I'll send you a patch, and maybe together we can do it right.
statictree: http://pastebin.ca/1301081 .next = &dev_domain_0 - is the link from the last pci device in the domain to the domain device.
Yeah. That seems like the "root" of the problem. Because of the way the statictree is made, anything done in device order ends up being depth-first. You have to specify to make things breadth first, which seems like the correct way.
serial output: http://pastebin.ca/1301072
Thanks, Myles