Jordan Crouse wrote:
Also, remember that the whole process was made easier by the fact that OFW+OLPC is a very specialized platform - it just isn't intended to change - so much so that we can hard code PCI BAR assignments and sizes. Its a bit more difficult to implement this sort of process when you have to worry about half a dozen different platforms that might implement slightly different models and scenarios.
Jordan speaks true. The OLPC is much more of an embedded system than a normal PC. Taking advantage of that has allowed us to do some of the things that you just can't do on a general purpose mainboard.
Very little of the OFW early init is dynamic. Its essentially a big table that we just blast into the MSR's. We can do that because we own the hardware platform and can guarantee what hardware will be present.