Skip to content

Netduino Plus 2 Machine Model

Alistair Francis qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest5 patches 16 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5Netduino_USART: Add the Netduino Plus 2 USART Controllerdefault-configs/arm-softmmu.mak hw/char/Makefile.objs hw/char/netduino_usart.c+254 -04 replies
2/5Netduino_GPIO: Add the Netduino Plus 2 GPIO controllerhw/gpio/Makefile.objs hw/gpio/netduino_gpio.c+286 -02 replies
3/5Netduino_SYSCFG: Add the Netduino Plus 2 SYSCFGhw/misc/Makefile.objs hw/misc/netduino_syscfg.c+202 -02 replies
4/5Netduino_Timer: Add the Netduino Plus 2 Timer2 to 5hw/timer/Makefile.objs hw/timer/netduino_timer.c+385 -01 reply
5/5Netduino: Add the Netduino Plus 2 Machine Modelhw/arm/Makefile.objs hw/arm/netduinoplus2.c+203 -15 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH v1 0/5] Netduino Plus 2 Machine Model

This patch series adds the Netduio Plus 2 Machine to QEMU.

Information on the board is avaliable here:
http://netduino.com/netduinoplus2/specs.htm

The git tree is avalible at:
https://github.com/alistair23/qemu/tree/csse4080.1

Some notes about this implementation:
The Netduino Plus 2 has a Cortex-M4 in it, while this model uses a Cortex-M3 as that is supported by QEMU. This means that the code that runs on the Netduino Plus 2 is recompiled for a Cortex-M3 with out Floating Point or DSP optimisations.

For my use of this it doesn't matter if the code has to be recompiled, so I have no desire to add support for the Cortex-M4.

Code compiled for the Cortex-M3 (and QEMU) can still be run nativly on the Netduino Plus 2 (this has been tested).

Some example code that runs on QEMU and the actual board is avaliable
at: https://github.com/alistair23/CSSE3010-QEMU-Examples

All of the peripherals that have been added work, although they will probalbly need to be extended apon as more complex examples are tested. They are enough to boot and run bare metal code from the examples above.

I have plans to add more devices and ideally be able to boot FreeRTOS on QEMU.

The board is similar to the Stellaris boards, but it doesn't use the same init functions armv7m_init() as that doesn't allow the configuration that is required for this board.

There is a bit of a reset address hack due to the memory offsets, I couldn't find a better way around that

Alistair Francis (5):
Netduino_USART: Add the Netduino Plus 2 USART Controller
Netduino_GPIO: Add the Netduino Plus 2 GPIO controller
Netduino_SYSCFG: Add the Netduino Plus 2 SYSCFG
Netduino_Timer: Add the Netduino Plus 2 Timer2 to 5
Netduino: Add the Netduino Plus 2 Machine Model

 default-configs/arm-softmmu.mak |   1 +
 hw/arm/Makefile.objs            |   2 +-
 hw/arm/netduinoplus2.c          | 202 +++++++++++++++++++++
 hw/char/Makefile.objs           |   1 +
 hw/char/netduino_usart.c        | 252 ++++++++++++++++++++++++++
 hw/gpio/Makefile.objs           |   1 +
 hw/gpio/netduino_gpio.c         | 285 +++++++++++++++++++++++++++++
 hw/misc/Makefile.objs           |   1 +
 hw/misc/netduino_syscfg.c       | 201 +++++++++++++++++++++
 hw/timer/Makefile.objs          |   1 +
 hw/timer/netduino_timer.c       | 384 ++++++++++++++++++++++++++++++++++++++++
 11 files changed, 1330 insertions(+), 1 deletion(-)
 create mode 100644 hw/arm/netduinoplus2.c
 create mode 100644 hw/char/netduino_usart.c
 create mode 100644 hw/gpio/netduino_gpio.c
 create mode 100644 hw/misc/netduino_syscfg.c
 create mode 100644 hw/timer/netduino_timer.c
Signature · 1 line
1.9.1