I think before we go much further you should all review: statictree.c from serengeti static.c from serengeti
how the links[] array works.
How the config space addressing is setup in in stage1 and how it is used in stage2.
the interaction of the 18.1 routing tables and the allocation of mem, prefmem, and IO spaces by the resource code.
Why there are three 18.1 devices and that interaction with resource allocators.
From my reading there are a few little bits there you have to get
right. I may be wrong but I am not sure all those issues are being taken into consideration.
A writeup of all this by a person who'd never looked at it before would be really useful. Why? because they won't take things for granted -- they'll look at it with a fresh perspective.
Stefan and I are going to walk this stuff as well.
ron