This patch allows to emulate the B-L475E-IOT01A ARM Cortex-M4 board.
This is RFC since the implementation isn't complete yet, there are no
implemented
peripherals, and it's a first contribution to QEMU.
The changes from v1 follow the reviews from Philippe Mathieu-Daudé.
We additionally changed the parent of the stm32l4x5 SoC from Device to
SysBusDevice.
Details of v2 to v3 changes :
- moved the initialization of armv7m from the SoC initfn method to the
SoC realize method
- embedded the flash sizes of different SoC types in the class_init
methods (removing macros)
Details of v1 to v2 changes :
- replaced 'stm32l475vg' by 'stm32l4x5'
In the *_soc.c file :
- added support for the stm32l4x5xe and stm32l4x5xc
- used ERRP_GUARD() instead of propagating err to errp
- renamed memory regions
- hard-coded the cpu type in the realize method
- used DEFINE_TYPES() is preferred over type_init()
- added a SPDX tag
In the *_soc.h file :
- included "hw/qdev-core.h" and "exec/memory.h"
- removed <private/public> lines
- exported the different flash sizes
- moved the SRAM and flash addresses, SRAM sizes to the *_soc.c
- added a SPDX tag
In the board file :
- enforced the CPU type (using 'valid_cpu_types' instead of
'default_cpu_type')
- added a SPDX tag
Inès Varhol (2):
hw/arm: Add minimal support for the STM32L4x5 SoC
hw/arm: Add minimal support for the B-L475E-IOT01A board
configs/devices/arm-softmmu/default.mak | 1 +
hw/arm/Kconfig | 11 +
hw/arm/b-l475e-iot01a.c | 77 +++++++
hw/arm/meson.build | 2 +
hw/arm/stm32l4x5_soc.c | 275 ++++++++++++++++++++++++
include/hw/arm/stm32l4x5_soc.h | 63 ++++++
6 files changed, 429 insertions(+)
create mode 100644 hw/arm/b-l475e-iot01a.c
create mode 100644 hw/arm/stm32l4x5_soc.c
create mode 100644 include/hw/arm/stm32l4x5_soc.h
--
2.38.5