On 5 May 2015 at 13:52, aurelio remonda <aurelioremo...@gmail.com> wrote: > Hi, i would like to to add support for cortex-m4 on qemu. Most features of > the Cortex-M3 and M4 are the same with the significant difference that > Cortex-M4 has DSP extensions and optional FPU. Even so, i really need some > pointers for this (im a newbie on qemu devel). I found out that qemu can > manage dsp instructions such as ADD16, ASX, SAX, etc. and all their > combinations with suffixes (u, s, sh, etc.), so half (if not all) of the > work is done.
To quote something from the mail I wrote last time somebody asked about Cortex-M4: The instructions themselves are generally supported for the A profile cores, so getting that part right would mostly involve enabling those feature bits for the new M4 CPU class. The difficult bits are going to involve: * correct trapping when fp is disabled * getting the exception handling right, including lazy exception frame population * bits where M profile FP differs from A profile (eg fp status and ID registers being memory mapped) > How should I go about this? What's the standard procedure for adding a new > CPU, even if it's so similar to the existing ones? That is, which are the > relevant functions/files that I should modify, and so on. For a new ARM CPU, the files you want are all in target-arm/. -- PMM