On 29 November 2013 08:06, Li Guang <lig.f...@cn.fujitsu.com> wrote: > what I design is: > we have a sunxi series as a machine, then > for sunx4i, we specify -M sunxi -cpu cortex-a8 -device x1 ... > for sunx5i, we specify -M sunxi -cpu cortex-a8 -device x2 ... > for sunx7i, we specify -M sunxi -cpu cortex-a7 -devcie x3 ... > for cubieboard, we specify -M sunxi -cpu -cortex-a8 -device x1 -device p1
No, QEMU doesn't work this way. "-M whatever" specifies a board model, so in this example it should be "-M cubieboard" and so on. That then gives you a particular CPU and set of devices. Obviously where we have several board models that share a single SoC they share implementation (by instantiating the same SoC object). If we have several SoCs that share common subcomponents like a UART, then they share implementation by having all those SoCs instantiate the same UART object. -cpu is really only intended where you have a situation like the PC where just the CPU can be plugged and unplugged into a board; it doesn't fit for SoC-based systems. Similarly, -device is really (currently) for pluggable devices like ISA or PCI cards -- where the device is a non-removable part of the SoC it doesn't work. As Andreas says, we need to model real actual hardware, not some abstraction that kind of matches the kernel's abstractions. Is "sunxi" what the hardware is actually called, or only what the kernel port has been called? More information about where this name comes from might make it easier to tell if it is the correct one for the QEMU SoC models. thanks -- PMM