On Friday 14 November 2008 13:29:12 Anthony Liguori wrote: > Blue Swirl wrote: > > On 11/14/08, Paul Brook <[EMAIL PROTECTED]> wrote: > > > >> It's come up in other contexts recently, so I think it's worth mentioning that > >> I am currently working on adding a machine config file support to qemu. > >> > >> I am focusing on the board setup side of things, rather than the user-level > >> config side. My goal is to come up with a system that will allow e.g. the > >> entirety of realview.c and gumstix.c to be eliminated. Currently this is > >> based this round Flattened Device Trees (as used by ppc-linux). > >> > >> I have looked at the bits that Fabrice did a while ago. While that contains > >> some good ideas (which I will probably steal!) it is approaching the problem > >> from a somewhat different direction. FTDs are a much better fit for some of > >> my requirements (e.g. being able to pass the config through to the guest OS). > >> > > > > libfdt looks like an excellent choice for both Sparc32 and Sparc64, I > > think the whole OF tree can be represented with it. > > > > The config could be passed using the firmware configuration device. > > > > I was looking through libfdt too. I think it could also be used for > x86. Hollis, I was looking through the Bamboo code, any reason you > don't describe the bus/device layouts in the DTS and then use that to > determine what bus/nic to add?
We do; PLB, OPB, and EBC are all on-chip busses found on IBM PowerPC SoCs. For example, you can see devices representing the UARTs and PCI controller in our bamboo.dts file. Qemu only modifies the device tree at runtime with information not known until then (memory size, clock frequency, etc). You may mean why don't we enumerate *PCI* devices in the device tree. Since libfdt is used for embedded systems, this is a tradeoff that allows us to keep the device tree smaller -- why put lots of PCI nodes in the device tree, when the OS can easily discover them itself? That said, PCI devices are indeed found in the device tree in IBM Power servers; Linux just doesn't require them. The Bamboo board in particular doesn't have any on-board PCI devices, but it does have several PCI slots. Therefore, a Bamboo device tree in qemu wouldn't contain any PCI devices anyways, but if the user says "I have an e1000", qemu could add a device node to represent the e1000 (though again, this is not a Linux requirement). (Actually, I don't think the above addresses your specific question, but I went to the trouble of typing it so I figured I'd leave it in this mail for additional background. :) Getting back to your original question, we could include an e1000 PCI device node in the DTS file, and have qemu walk the tree, find the node, and initialize the e1000 emulation driver. We didn't do this mostly to maintain compatibility with existing qemu practice, where users are required to specify all configuration on the command line. -- Hollis Blanchard IBM Linux Technology Center _______________________________________________ devicetree-discuss mailing list [email protected] https://ozlabs.org/mailman/listinfo/devicetree-discuss
