On 2 May 2011 13:46, Alessandro <hyperboreus2...@yahoo.it> wrote: > ARM core-related code appears to be located (mainly)under ARM directory; > peripherals-related files should be located under "machine" dir.
I'm not sure what source tree you're looking at. Code for ARM core as a target is in target-arm/. Device models are in hw/. (tcg/arm is support for emulating other CPUs on an ARM host, so not relevant for you.) > I still have some questions about QEMU ARM926 support: > > 1- What standard extensions are supported? e.g Jazelle. We don't support Jazelle. We don't implement the TCMs (in the same way we don't implement caches). We probably don't get all the device-specific cp15 registers right. (None of that is likely to be of any practical importance.) I can't see anything else missing from a quick scan. The rough rule of thumb for support is "if Linux uses it it's almost certainly supported; otherwise it might be missing or broken" :-) > 2- Sometimes, SoC includes "inusual"(and _poorly_ documented) hardware: ISP, > video Coproc, and so on. > This increase significantly the final complexity of project. What are the > "guidelines" to follow? What must be implemented, and what could be safely > ignored? Well, if you're just doing things for your own amusement you can implement or leave out what you like. For things to be included in QEMU my personal opinion (I don't have a veto or anything) would be that the question is whether there's any benefit to the new SoC model that the existing ones don't provide -- is it some common piece of hardware that a lot of people own and might want to use a model of, for example? If you pass that hurdle then there is presumably an OS and set of applications that run on the real hardware, and the minimum level of peripheral support would be "enough to run that". What SoC are you planning to model? I assume you have one in mind since you were specific about wanting the ARM926 rather than a more recent ARM core... -- PMM