Message ID | 20191014115757.51866-21-ysato@users.sourceforge.jp (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add RX archtecture support | expand |
On 10/14/19 1:57 PM, Yoshinori Sato wrote: > Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > Message-Id: <20190607091116.49044-17-ysato@users.sourceforge.jp> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > pick ed65c02993 target/rx: Add RX to SysEmuTarget > pick 01372568ae tests: Add rx to machine-none-test.c > [PMD: Squashed patches from Richard Henderson modifying > qapi/common.json and tests/machine-none-test.c] > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > configure | 8 ++++++++ > default-configs/rx-softmmu.mak | 3 +++ > qapi/machine.json | 3 ++- > include/exec/poison.h | 1 + > include/sysemu/arch_init.h | 1 + > arch_init.c | 2 ++ > tests/machine-none-test.c | 1 + > hw/Kconfig | 1 + > 8 files changed, 19 insertions(+), 1 deletion(-) > create mode 100644 default-configs/rx-softmmu.mak > > diff --git a/configure b/configure > index 08ca4bcb46..fa5d4274b6 100755 > --- a/configure > +++ b/configure > @@ -7521,6 +7521,11 @@ case "$target_name" in > mttcg=yes > gdb_xml_files="riscv-64bit-cpu.xml riscv-64bit-fpu.xml riscv-64bit-csr.xml" > ;; > + rx) > + TARGET_ARCH=rx > + bflt="yes" > + target_compiler=$cross_cc_rx > + ;; > sh4|sh4eb) > TARGET_ARCH=sh4 > bflt="yes" > @@ -7702,6 +7707,9 @@ for i in $ARCH $TARGET_BASE_ARCH ; do > riscv*) > disas_config "RISCV" > ;; > + rx) > + disas_config "RX" > + ;; > s390*) > disas_config "S390" > ;; > diff --git a/default-configs/rx-softmmu.mak b/default-configs/rx-softmmu.mak > new file mode 100644 > index 0000000000..a3eecefb11 > --- /dev/null > +++ b/default-configs/rx-softmmu.mak > @@ -0,0 +1,3 @@ > +# Default configuration for rx-softmmu > + > +CONFIG_RX_VIRT=y > diff --git a/qapi/machine.json b/qapi/machine.json > index ca26779f1a..4409c113c2 100644 > --- a/qapi/machine.json > +++ b/qapi/machine.json > @@ -21,6 +21,7 @@ > # is true even for "qemu-system-x86_64". > # > # ppcemb: dropped in 3.1 > +# rx: added in 4.2 Richard, if you take this series, do you mind changing 4.2 -> 5.0? > # > # Since: 3.0 > ## > @@ -28,7 +29,7 @@ > 'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32', > 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64', > 'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc', > - 'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4', > + 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', > 'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32', > 'x86_64', 'xtensa', 'xtensaeb' ] } > > diff --git a/include/exec/poison.h b/include/exec/poison.h > index 955eb863ab..7b9ac361dc 100644 > --- a/include/exec/poison.h > +++ b/include/exec/poison.h > @@ -26,6 +26,7 @@ > #pragma GCC poison TARGET_PPC > #pragma GCC poison TARGET_PPC64 > #pragma GCC poison TARGET_ABI32 > +#pragma GCC poison TARGET_RX > #pragma GCC poison TARGET_S390X > #pragma GCC poison TARGET_SH4 > #pragma GCC poison TARGET_SPARC > diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h > index 62c6fe4cf1..6c011acc52 100644 > --- a/include/sysemu/arch_init.h > +++ b/include/sysemu/arch_init.h > @@ -24,6 +24,7 @@ enum { > QEMU_ARCH_NIOS2 = (1 << 17), > QEMU_ARCH_HPPA = (1 << 18), > QEMU_ARCH_RISCV = (1 << 19), > + QEMU_ARCH_RX = (1 << 20), > }; > > extern const uint32_t arch_type; > diff --git a/arch_init.c b/arch_init.c > index 0a1531124c..7a37fb2c34 100644 > --- a/arch_init.c > +++ b/arch_init.c > @@ -73,6 +73,8 @@ int graphic_depth = 32; > #define QEMU_ARCH QEMU_ARCH_PPC > #elif defined(TARGET_RISCV) > #define QEMU_ARCH QEMU_ARCH_RISCV > +#elif defined(TARGET_RX) > +#define QEMU_ARCH QEMU_ARCH_RX > #elif defined(TARGET_S390X) > #define QEMU_ARCH QEMU_ARCH_S390X > #elif defined(TARGET_SH4) > diff --git a/tests/machine-none-test.c b/tests/machine-none-test.c > index 5953d31755..8bb54a6360 100644 > --- a/tests/machine-none-test.c > +++ b/tests/machine-none-test.c > @@ -56,6 +56,7 @@ static struct arch2cpu cpus_map[] = { > { "hppa", "hppa" }, > { "riscv64", "rv64gcsu-v1.10.0" }, > { "riscv32", "rv32gcsu-v1.9.1" }, > + { "rx", "rx62n" }, > }; > > static const char *get_cpu_model_by_arch(const char *arch) > diff --git a/hw/Kconfig b/hw/Kconfig > index b45db3c813..77bbc59cc7 100644 > --- a/hw/Kconfig > +++ b/hw/Kconfig > @@ -54,6 +54,7 @@ source nios2/Kconfig > source openrisc/Kconfig > source ppc/Kconfig > source riscv/Kconfig > +source rx/Kconfig > source s390x/Kconfig > source sh4/Kconfig > source sparc/Kconfig >
diff --git a/configure b/configure index 08ca4bcb46..fa5d4274b6 100755 --- a/configure +++ b/configure @@ -7521,6 +7521,11 @@ case "$target_name" in mttcg=yes gdb_xml_files="riscv-64bit-cpu.xml riscv-64bit-fpu.xml riscv-64bit-csr.xml" ;; + rx) + TARGET_ARCH=rx + bflt="yes" + target_compiler=$cross_cc_rx + ;; sh4|sh4eb) TARGET_ARCH=sh4 bflt="yes" @@ -7702,6 +7707,9 @@ for i in $ARCH $TARGET_BASE_ARCH ; do riscv*) disas_config "RISCV" ;; + rx) + disas_config "RX" + ;; s390*) disas_config "S390" ;; diff --git a/default-configs/rx-softmmu.mak b/default-configs/rx-softmmu.mak new file mode 100644 index 0000000000..a3eecefb11 --- /dev/null +++ b/default-configs/rx-softmmu.mak @@ -0,0 +1,3 @@ +# Default configuration for rx-softmmu + +CONFIG_RX_VIRT=y diff --git a/qapi/machine.json b/qapi/machine.json index ca26779f1a..4409c113c2 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -21,6 +21,7 @@ # is true even for "qemu-system-x86_64". # # ppcemb: dropped in 3.1 +# rx: added in 4.2 # # Since: 3.0 ## @@ -28,7 +29,7 @@ 'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32', 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64', 'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc', - 'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4', + 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32', 'x86_64', 'xtensa', 'xtensaeb' ] } diff --git a/include/exec/poison.h b/include/exec/poison.h index 955eb863ab..7b9ac361dc 100644 --- a/include/exec/poison.h +++ b/include/exec/poison.h @@ -26,6 +26,7 @@ #pragma GCC poison TARGET_PPC #pragma GCC poison TARGET_PPC64 #pragma GCC poison TARGET_ABI32 +#pragma GCC poison TARGET_RX #pragma GCC poison TARGET_S390X #pragma GCC poison TARGET_SH4 #pragma GCC poison TARGET_SPARC diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h index 62c6fe4cf1..6c011acc52 100644 --- a/include/sysemu/arch_init.h +++ b/include/sysemu/arch_init.h @@ -24,6 +24,7 @@ enum { QEMU_ARCH_NIOS2 = (1 << 17), QEMU_ARCH_HPPA = (1 << 18), QEMU_ARCH_RISCV = (1 << 19), + QEMU_ARCH_RX = (1 << 20), }; extern const uint32_t arch_type; diff --git a/arch_init.c b/arch_init.c index 0a1531124c..7a37fb2c34 100644 --- a/arch_init.c +++ b/arch_init.c @@ -73,6 +73,8 @@ int graphic_depth = 32; #define QEMU_ARCH QEMU_ARCH_PPC #elif defined(TARGET_RISCV) #define QEMU_ARCH QEMU_ARCH_RISCV +#elif defined(TARGET_RX) +#define QEMU_ARCH QEMU_ARCH_RX #elif defined(TARGET_S390X) #define QEMU_ARCH QEMU_ARCH_S390X #elif defined(TARGET_SH4) diff --git a/tests/machine-none-test.c b/tests/machine-none-test.c index 5953d31755..8bb54a6360 100644 --- a/tests/machine-none-test.c +++ b/tests/machine-none-test.c @@ -56,6 +56,7 @@ static struct arch2cpu cpus_map[] = { { "hppa", "hppa" }, { "riscv64", "rv64gcsu-v1.10.0" }, { "riscv32", "rv32gcsu-v1.9.1" }, + { "rx", "rx62n" }, }; static const char *get_cpu_model_by_arch(const char *arch) diff --git a/hw/Kconfig b/hw/Kconfig index b45db3c813..77bbc59cc7 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -54,6 +54,7 @@ source nios2/Kconfig source openrisc/Kconfig source ppc/Kconfig source riscv/Kconfig +source rx/Kconfig source s390x/Kconfig source sh4/Kconfig source sparc/Kconfig