These patches implement softmmu support on unicore32 architecture. UniCore32 CPU is embedded in PKUnity-3 SoC, so we add hw/pkunity dir to contain all puv3 devices simulation codes together. Only minimal system control modules are simulated, to make linux kernel boot and busybox run in initramfs.
Any advice is greatly appreciated. Thanks, Guan Xuetao --- Guan Xuetao (9): unicore32-softmmu: make exceptions generated in unicore32 architecture unicore32-softmmu: implement some softmmu specific functions unicore32-softmmu: add coprocessor 0 and ocd instruction support unicore32-softmmu: make sure that kernel can access user space unicore32-softmmu: initialize ucv2 cpu unicore32-softmmu: add generic cpu state save/load functions unicore32-softmmu: add puv3 soc support unicore32-softmmu: add config and makefile support unicore32-softmmu: add maintainer information MAINTAINERS | 7 + Makefile.target | 5 + arch_init.c | 2 + arch_init.h | 1 + configure | 4 + cpu-exec.c | 1 + default-configs/unicore32-softmmu.mak | 4 + hw/pkunity/puv3.c | 130 ++++++++++++++++ hw/pkunity/puv3.h | 49 ++++++ hw/pkunity/puv3_dma.c | 109 +++++++++++++ hw/pkunity/puv3_gpio.c | 141 +++++++++++++++++ hw/pkunity/puv3_intc.c | 135 +++++++++++++++++ hw/pkunity/puv3_ost.c | 151 +++++++++++++++++++ hw/pkunity/puv3_pm.c | 148 ++++++++++++++++++ linux-user/main.c | 3 +- target-unicore32/cpu.c | 17 ++- target-unicore32/cpu.h | 8 +- target-unicore32/helper.c | 48 +----- target-unicore32/helper.h | 15 +- target-unicore32/machine.c | 99 ++++++++++++ target-unicore32/op_helper.c | 187 +++++++++++++++++++++++- target-unicore32/translate.c | 106 ++++++++++++- target-unicore32/uc32_softmmu.c | 267 +++++++++++++++++++++++++++++++++ 23 files changed, 1568 insertions(+), 69 deletions(-) create mode 100644 default-configs/unicore32-softmmu.mak create mode 100644 hw/pkunity/puv3.c create mode 100644 hw/pkunity/puv3.h create mode 100644 hw/pkunity/puv3_dma.c create mode 100644 hw/pkunity/puv3_gpio.c create mode 100644 hw/pkunity/puv3_intc.c create mode 100644 hw/pkunity/puv3_ost.c create mode 100644 hw/pkunity/puv3_pm.c create mode 100644 target-unicore32/machine.c create mode 100644 target-unicore32/uc32_softmmu.c