Hello, Based on qom-cpu v4 and object_class_get_list() v2, this series converts the UniCore32 CPU to QOM. Code-wise, target-unicore32 is pretty close to target-arm and faces a similar issue of CPU-dependent init code, so let's tackle it next.
Patch 1 adds a UniCore32 CPU guest core (TCG) section to MAINTAINERS, so that the target-unicore32 author gets notified of patches against his code. Patch 2, based on feedback from Guan Xuetao, changes the license of most target-unicore32 files from GPLv2 to GPLv2+. Anthony had contributed a qemu_malloc() -> g_malloc() substitution that he can't relicense at this time, so leave that as GPLv2 and declare my following patches explicitly as GPLv2+. Patch 2 embeds CPUUniCore32State into UniCore32CPU. My new cpu-qom.h header can be GPLv2+, but into cpu.c we're moving helper.c code so make it GPLv2 for now. Patches 4-7 move code out of the uc32_cpu_init() function and into classes. Regards, Andreas Cc: Guan Xue-tao <g...@mprc.pku.edu.cn> Cc: Anthony Liguori <anth...@codemonkey.ws> Changes from former repo.or.cz qom-cpu[-wip] branch: * Drop duplicate .instance_init. Andreas Färber (7): MAINTAINERS: Add entry for UniCore32 target-unicore32: Relicense to GPLv2+ target-unicore32: QOM'ify CPU target-unicore32: Store cp0 c0_cachetype in UniCore32CPUClass target-unicore32: Store cp0 c1_sys in UniCore32CPUClass target-unicore32: Store feature flags in UniCore32CPUClass target-unicore32: Store ucf64 fpscr in UniCore32CPUClass MAINTAINERS | 5 ++ Makefile.target | 1 + target-unicore32/cpu-qom.h | 81 ++++++++++++++++++++++++++++++ target-unicore32/cpu.c | 112 ++++++++++++++++++++++++++++++++++++++++++ target-unicore32/cpu.h | 10 +--- target-unicore32/helper.c | 62 ++--------------------- target-unicore32/helper.h | 5 +- target-unicore32/op_helper.c | 5 +- target-unicore32/translate.c | 5 +- 9 files changed, 213 insertions(+), 73 deletions(-) create mode 100644 target-unicore32/cpu-qom.h create mode 100644 target-unicore32/cpu.c -- 1.7.7