These patches implement softmmu support on unicore32 architecture. Based on master branch of qemu, the patches can be fetched from: git://github.com/gxt/QEMU.git unicore32
UniCore32 CPU is embedded in PKUnity-3 SoC, so we add necessary puv3 devices simulation codes together. Only minimal system control modules are simulated, to make linux kernel boot and busybox run in initramfs. Thanks Andreas Farber, Blue Swirl and Chen Weiren for their priceless advice, which is v4 based on. Any advice is greatly appreciated. Thanks, Guan Xuetao --- Andreas Färber (1): target-unicore32: Drop UC32_CPUID macros Guan Xuetao (13): unicore32-softmmu: Add unicore32-softmmu build support unicore32-softmmu: Add coprocessor 0(sysctrl) and 1(ocd) instruction support unicore32-softmmu: Make UniCore32 cpuid & exceptions correct and runable unicore32-softmmu: Implement softmmu specific functions unicore32-softmmu: Make sure that kernel can access user space unicore32-softmmu: Add puv3 soc/board support unicore32-softmmu: Add puv3 interrupt support unicore32-softmmu: Add puv3 ostimer support unicore32-softmmu: Add puv3 gpio support unicore32-softmmu: Add puv3 pm support unicore32-softmmu: Add puv3 dma support unicore32-softmmu: Add ps2 support unicore32-softmmu: Add maintainer information for UniCore32 machine MAINTAINERS | 8 + arch_init.c | 2 + arch_init.h | 1 + configure | 1 + cpu-exec.c | 1 + default-configs/unicore32-softmmu.mak | 4 + hw/Makefile.objs | 7 + hw/puv3.c | 130 ++++++++++++++++ hw/puv3.h | 49 ++++++ hw/puv3_dma.c | 109 +++++++++++++ hw/puv3_gpio.c | 141 +++++++++++++++++ hw/puv3_intc.c | 135 +++++++++++++++++ hw/puv3_ost.c | 151 +++++++++++++++++++ hw/puv3_pm.c | 149 ++++++++++++++++++ hw/unicore32/Makefile.objs | 6 + linux-user/main.c | 3 +- target-unicore32/Makefile.objs | 2 +- target-unicore32/cpu.c | 19 ++- target-unicore32/cpu.h | 18 +-- target-unicore32/helper.c | 180 ++++++++++++++++++---- target-unicore32/helper.h | 17 +-- target-unicore32/machine.c | 23 +++ target-unicore32/op_helper.c | 44 ++++++- target-unicore32/softmmu.c | 267 +++++++++++++++++++++++++++++++++ target-unicore32/translate.c | 116 +++++++++++++-- 25 files changed, 1509 insertions(+), 74 deletions(-) create mode 100644 default-configs/unicore32-softmmu.mak create mode 100644 hw/puv3.c create mode 100644 hw/puv3.h create mode 100644 hw/puv3_dma.c create mode 100644 hw/puv3_gpio.c create mode 100644 hw/puv3_intc.c create mode 100644 hw/puv3_ost.c create mode 100644 hw/puv3_pm.c create mode 100644 hw/unicore32/Makefile.objs create mode 100644 target-unicore32/machine.c create mode 100644 target-unicore32/softmmu.c