v3: * Rename ARMv7MState to ARMMProfileState so a single class can cater for ARMv6-M, ARMv7-M, and ARMv8-M [Peter] * Make bitbanding optional via a qdev property [Peter] * Add hex file loader patches to reduce dependencies in upcoming patch series * Implement rollback if hex file loader fails partway through [Peter] * Update hex file loader test case to use an ARMv7-M board since hex file loading is only done for ARM M Profile boards
This series contains the prerequistes for the "microbit" machine type that Joel Stanley has written. I have combined the Cortex M0 CPU model and hex loader work into one series to reduce the dependencies in upcoming patch series from Joel, Julia, and Steffen. This patch series: * Renames ARMv7MState to ARMMProfileState since it's already used for ARMv8-M and soon ARMv6-M. * Adds a "cortex-m0" cpu type which can be used with ARMMProfileState. This works thanks to Julia's Cortex M0 emulation patches, which are now all merged. * Adds Su Hang's Intel HEX file format loader so that micro:bit and other microcontroller firmware images can be run using -kernel. The micro:bit development tools typically only emit .hex files and not ELFs. Stefan Hajnoczi (5): hw/arm: rename armv7m_load_kernel() hw/arm: rename TYPE_ARMV7M to TYPE_ARM_M_PROFILE hw/arm: make bitbanded IO optional on ARM M Profile target/arm: add "cortex-m0" CPU model loader: add rom transaction API Su Hang (2): loader: Implement .hex file loader Add QTest testcase for the Intel Hexadecimal MAINTAINERS | 6 + configure | 4 + hw/arm/Makefile.objs | 2 +- tests/Makefile.include | 2 + include/hw/arm/{armv7m.h => arm-m-profile.h} | 39 ++- include/hw/arm/arm.h | 11 +- include/hw/arm/iotkit.h | 4 +- include/hw/arm/msf2-soc.h | 4 +- include/hw/arm/stm32f205_soc.h | 4 +- include/hw/loader.h | 31 ++ hw/arm/{armv7m.c => arm-m-profile.c} | 99 ++++--- hw/arm/iotkit.c | 2 +- hw/arm/mps2-tz.c | 4 +- hw/arm/mps2.c | 11 +- hw/arm/msf2-soc.c | 3 +- hw/arm/msf2-som.c | 4 +- hw/arm/netduino2.c | 4 +- hw/arm/stellaris.c | 8 +- hw/arm/stm32f205_soc.c | 3 +- hw/core/loader.c | 280 +++++++++++++++++++ target/arm/cpu.c | 11 + tests/hexloader-test.c | 56 ++++ default-configs/arm-softmmu.mak | 1 + tests/hex-loader-check-data/test.hex | 12 + 24 files changed, 522 insertions(+), 83 deletions(-) rename include/hw/arm/{armv7m.h => arm-m-profile.h} (64%) rename hw/arm/{armv7m.c => arm-m-profile.c} (76%) create mode 100644 tests/hexloader-test.c create mode 100644 tests/hex-loader-check-data/test.hex -- 2.17.1