From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLLRO-0005ho-3X for qemu-devel@nongnu.org; Sat, 23 Aug 2014 20:13:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XLLRJ-0007oF-4Y for qemu-devel@nongnu.org; Sat, 23 Aug 2014 20:13:50 -0400 Received: from mail-pd0-x22f.google.com ([2607:f8b0:400e:c02::22f]:38743) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLLRI-0007oB-Tf for qemu-devel@nongnu.org; Sat, 23 Aug 2014 20:13:45 -0400 Received: by mail-pd0-f175.google.com with SMTP id r10so18029000pdi.34 for ; Sat, 23 Aug 2014 17:13:43 -0700 (PDT) From: Alistair Francis Date: Sun, 24 Aug 2014 10:13:37 +1000 Message-Id: Subject: [Qemu-devel] [PATCH v1 0/5] Netduino Plus 2 Machine Model List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, peter.crosthwaite@xilinx.com, konstanty@ieee.org 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 -- 1.9.1