[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Cortex-M development progress

From: Peter Maydell
Subject: Re: [Qemu-devel] Cortex-M development progress
Date: Tue, 25 Nov 2014 20:37:29 +0000

On 25 November 2014 at 19:58, Liviu Ionescu <address@hidden> wrote:
> As mentioned in a previous message, I started work on a more detailed 
> implementation for the M profile.
> At first I defined in target-arm/cpu.c the cpu-s for all variants 
> (M0/M0+/M1/M3/M4/M7).
>     /* Cortex-M cores. Currently only M3 is tested and fully functional.  */
>     { .name = "cortex-m0",   .initfn = cortex_m0_initfn,
>                              .class_init = arm_v6m_class_init },
>     { .name = "cortex-m0p",  .initfn = cortex_m0p_initfn,
>                              .class_init = arm_v6m_class_init },
>     { .name = "cortex-m1",   .initfn = cortex_m1_initfn,
>                              .class_init = arm_v6m_class_init },
>     { .name = "cortex-m3",   .initfn = cortex_m3_initfn,
>                              .class_init = arm_v7m_class_init },
>     { .name = "cortex-m4",   .initfn = cortex_m4_initfn,
>                              .class_init = arm_v7m_class_init },
>     { .name = "cortex-m7",   .initfn = cortex_m7_initfn,
>                              .class_init = arm_v7m_class_init },
> The proper flags might still need adjustments, but at least we have a 
> starting point.

I would recommend concentrating on one of these and getting
it right, rather than defining five new cores and dozens
of MCUs none of which are actually implemented to their

> According to my tests, the core initialisations are enough
> to run a simple SysTick timer application.

This just means that code that doesn't really care what
CPU it runs on will run on a CPU that claims to be an
M0/M4/M7 but is actually more or less an M3. If your
code really doesn't care then just run it on our
existing Cortex-M3 CPU.

Patches which can be integrated into mainline will need
to make a reasonable attempt at implementing the actual
correct functionality of whichever CPU you pick (either
adding the extra features in an M4 or cutting out
the features which don't exist in v6M).

I'd also strongly prefer not to implement three dozen
boards unless we really need them all. Again, start
with one and implement a decent subset of the devices
it has on it.

-- PMM

reply via email to

[Prev in Thread] Current Thread [Next in Thread]