stm32f205_timer: Add the stm32f205 Timer

This patch adds the stm32f205 timers: TIM2, TIM3, TIM4 and TIM5
to QEMU.

---CHANGELOG---
PUBLIC
V4:
 - Update timer units again
    - Thanks to Peter C
V3:
 - Update debug statements
 - Correct the units for timer_mod
 - Correctly set timer_offset from resets
V2:
 - Reorder the Makefile config
 - Fix up the debug printing
 - Correct the timer event trigger
Changes from RFC:
 - Small changes to functionality and style. Thanks to Peter C
 - Rename to make the timer more generic
 - Split the config settings to device level
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
stm32f205_USART: Add the stm32f205 USART Controller

This patch adds the stm32f205 USART controller
(UART also uses the same controller).

---CHANGELOG---
PUBLIC
V3:
 - Update debug printing
V2:
 - Drop charecters if the device is not enabled
    - Thanks to Peter C
Changes from RFC:
 - Small changes thanks to Peter C
 - USART now implements QEMU blocking functions
 - Split the config settings to device level
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
stm32f205_SYSCFG: Add the stm32f205 SYSCFG

This patch adds the stm32f205 System Configuration
Controller. This is used to configure what memory is mapped
at address 0 (although that is not supported) as well
as configure how the EXTI interrupts work (also not
supported at the moment).

This device is not required for basic examples, but more
complex systems will require it (as well as the EXTI device)

---CHANGELOG---
PUBLIC
V3:
 - Update debug printing
Changes from RFC:
 - Split the config settings to device level
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
target_arm: Remove memory region init from armv7m_init

This patch moves the memory region init code from the
armv7m_init function to the stellaris_init function

---CHANGELOG---
PUBLIC
V3:
 - Rename the flash_size argument to mem_size
 - Remove the sram_size and related code
    - Thanks to Peter C
V2:
 - Change the memory region names to match the machine
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
target_arm: Parameterise the irq lines for armv7m_init

This patch allows the board to specifiy the number of NVIC interrupt
lines when using armv7m_init.

---CHANGELOG---
PUBLIC
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
target_arm: Change the reset values based on the ELF entry

The Netduino 2 machine won't run unless the reset_pc is based
on the ELF entry point.

---CHANGELOG---
PUBLIC
V2:
 - Malloc straight away, thanks to Peter C
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
stm32f205: Add the stm32f205 SoC

This patch adds the stm32f205 SoC. This will be used by the
Netduino 2 to create a machine.

---CHANGELOG---
PUBLIC
Changes from RFC:
 - Small changes thanks to Peter C
 - Split the config settings to device level
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
netduino2: Add the Netduino 2 Machine

This patch adds the Netduino 2 Machine.

This is a Cortex-M3 based machine. Information can be found at:
http://www.netduino.com/netduino2/specs.htm

---CHANGELOG---
PUBLIC
Changes from RFC:
 - Remove CPU passthrough
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>
COVER: Netduino 2 Machine Model

---CHANGELOG---
PUBLIC
This patch series adds the Netduino 2 Machine to QEMU

Information on the board is avalible at:
http://www.netduino.com/netduino2/specs.htm

The git tree can be found at:
https://github.com/alistair23/qemu/tree/netduino2.4

This patch series makes some changes to the armv7m_init function
that allows the code to be reused with the Netduino 2 and the
Stellaris machines.

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

I have more devices in the works, I figured I would just start
with these three

V4:
 - Rebase
 - Correct timer units
V3:
 - Correct the timer interrupts
 - Update debug printing
 - Remove the sram_size argument from armv7m_init
V2:
 - Fix up the Timer device
 - Fix up the USART device
 - Change the memory region names to match the Stellaris board
Changes from RFC:
 - Code cleanup thanks to Peter C's comments
 - Split the Makefile configs to device level
 - Changes to armv7m_init with interupt and memory passing
    - See the individual patches for more details
---END---

Signed-off-by: Alistair Francis <alistair23@gmail.com>