Hello Paul, Monday, October 23, 2006, 11:29:52 PM, you wrote:
> On Monday 23 October 2006 21:01, Rob Landley wrote: >> On Sunday 22 October 2006 2:27 pm, Paul Brook wrote: >> > I've been considering a machine config file for a while, but haven't come >> > up with a coherent way of representing everything yet. I'm glad this discussion was brought up on the list. And I'd like to also bring back another related issue - what about providing "plugin" system for device (chip) implementation, in addition to flexible-format machine config allowing to construct "virtual boards" out of them? >> >> Do you at least have a list of everything that needs to be represented? (I >> have a list but am fairly certain it's not complete.) > Not really. I guess a generic key/value pair is sufficient for most things > (base address, model number, etc). > The trickier cases are where devices refer to each other: PCI, usb, IRQ lines, > DMA channels, etc. ie. anything where the existing _init function returns a > value. > I guess you could use the same key/value mechanism, and allow the value to be > an "object". Yes, machine config apparently would be a hierarchical structure, with cross-references. And well, there's an industrial standard to represent that - XML. > The really OTT method is to embed a python interpreter or something and do the > machine init that way. I'm not seriously suggesting that though. Well, I guess, machine configuration really a declarative information, and XML should be enough. But it would be really nice to have Python bindings to implement device plugin, especially for "boring" hardware like, say, battery controllers. What about config like: <qemu> <devices> <deviceDef type="builtin" name="pxa25x" impl="PXA25X" /> <deviceDef type="builtin" name="ram" impl="RAM" /> <deviceDef type="plugin" name="w1ctrlr" impl="w1controller.so" /> <deviceDef type="python" name="ds2762" impl="ds2762.py" /> </devices> <boards> <board name="pda"> <device name="pxa25x"> <param name="cpuid" value="0xaaaaaaaa" /> </device> <device name="ram" addr="0xa0000000" size="32M" /> <device id="w1" name="w1ctrlr" addr="0x10000000" size="16" irq="67" /> <device name="ds2762" parent="w1"> <param name="w1addr" value="2" /> </device> </board> </boards> </qemu> > Paul -- Best regards, Paul mailto:[EMAIL PROTECTED] _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel