[Qemu-devel] [PATCH 00/11] ARMv7M: QOMify

Peter Maydell posted 11 patches 7 years, 1 month ago
Failed in applying to current master (apply log)
hw/intc/Makefile.objs             |   2 +-
hw/timer/Makefile.objs            |   1 +
include/hw/arm/arm.h              |  12 ++
include/hw/arm/armv7m.h           |  63 +++++++
include/hw/arm/armv7m_nvic.h      |  62 +++++++
include/hw/arm/stm32f205_soc.h    |   4 +-
include/hw/timer/armv7m_systick.h |  34 ++++
hw/arm/armv7m.c                   | 380 +++++++++++++++++++++++++-------------
hw/arm/netduino2.c                |   7 +-
hw/arm/stm32f205_soc.c            |  28 ++-
hw/intc/armv7m_nvic.c             | 214 ++++-----------------
hw/timer/armv7m_systick.c         | 239 ++++++++++++++++++++++++
default-configs/arm-softmmu.mak   |   2 +
hw/timer/trace-events             |   6 +
14 files changed, 733 insertions(+), 321 deletions(-)
create mode 100644 include/hw/arm/armv7m.h
create mode 100644 include/hw/arm/armv7m_nvic.h
create mode 100644 include/hw/timer/armv7m_systick.h
create mode 100644 hw/timer/armv7m_systick.c
[Qemu-devel] [PATCH 00/11] ARMv7M: QOMify
Posted by Peter Maydell 7 years, 1 month ago
This patch series attempts to bring the v7M code
up to something resembling modern practice for
QEMU devices:
 * proper QOM object for the armv7m "container"
   which holds the CPU, NVIC, etc cpu-internal devices"
 * split the systick out into its own device
 * use memory region links rather than having the
   NVIC and bitband map themselves directly into the
   system memory space
 * have stm32f205 create the armv7m container via the
   QOM APIs rather than armv7m_init(), since that fits better
   with the rest of that SoC's code

These patches sit on top of the NVIC rewrite patchset;
you can find a git branch with the whole lot at:

  https://git.linaro.org/people/peter.maydell/qemu-arm.git v7m-qomify

thanks
-- PMM

Peter Maydell (11):
  armv7m: Abstract out the "load kernel" code
  armv7m: Move NVICState struct definition into header
  armv7m: QOMify the armv7m container
  armv7m: Use QOMified armv7m object in armv7m_init()
  armv7m: Make ARMv7M object take memory region link
  armv7m: Make NVIC expose a memory region rather than mapping itself
  armv7m: Make bitband device take the address space to access
  armv7m: Don't put core v7M devices under CONFIG_STELLARIS
  armv7m: Split systick out from NVIC
  stm32f205: Create armv7m object without using armv7m_init()
  stm32f205: Rename 'nvic' local to 'armv7m'

 hw/intc/Makefile.objs             |   2 +-
 hw/timer/Makefile.objs            |   1 +
 include/hw/arm/arm.h              |  12 ++
 include/hw/arm/armv7m.h           |  63 +++++++
 include/hw/arm/armv7m_nvic.h      |  62 +++++++
 include/hw/arm/stm32f205_soc.h    |   4 +-
 include/hw/timer/armv7m_systick.h |  34 ++++
 hw/arm/armv7m.c                   | 380 +++++++++++++++++++++++++-------------
 hw/arm/netduino2.c                |   7 +-
 hw/arm/stm32f205_soc.c            |  28 ++-
 hw/intc/armv7m_nvic.c             | 214 ++++-----------------
 hw/timer/armv7m_systick.c         | 239 ++++++++++++++++++++++++
 default-configs/arm-softmmu.mak   |   2 +
 hw/timer/trace-events             |   6 +
 14 files changed, 733 insertions(+), 321 deletions(-)
 create mode 100644 include/hw/arm/armv7m.h
 create mode 100644 include/hw/arm/armv7m_nvic.h
 create mode 100644 include/hw/timer/armv7m_systick.h
 create mode 100644 hw/timer/armv7m_systick.c

-- 
2.7.4