Browse Source

semihosting: Move ARM semihosting code to shared directories

This commit renames two files which provide ARM semihosting support so
that they can be shared by other architectures:

 1. target/arm/arm-semi.c     -> hw/semihosting/common-semi.c
 2. linux-user/arm/semihost.c -> linux-user/semihost.c

The build system was modified use a new config variable,
CONFIG_ARM_COMPATIBLE_SEMIHOSTING, which has been added to the ARM
softmmu and linux-user default configs. The contents of the source
files has not been changed in this patch.

Signed-off-by: Keith Packard <keithp@keithp.com>
[AJB: rename arm-compat-semi, select SEMIHOSTING]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210107170717.2098982-2-keithp@keithp.com>
Message-Id: <20210108224256.2321-13-alex.bennee@linaro.org>
pull/109/head
Keith Packard 5 years ago
committed by Alex Bennée
parent
commit
56b5170c87
  1. 1
      default-configs/devices/arm-softmmu.mak
  2. 1
      default-configs/targets/aarch64-linux-user.mak
  3. 1
      default-configs/targets/aarch64_be-linux-user.mak
  4. 1
      default-configs/targets/arm-linux-user.mak
  5. 1
      default-configs/targets/armeb-linux-user.mak
  6. 4
      hw/semihosting/Kconfig
  7. 0
      hw/semihosting/arm-compat-semi.c
  8. 3
      hw/semihosting/meson.build
  9. 3
      linux-user/arm/meson.build
  10. 1
      linux-user/meson.build
  11. 0
      linux-user/semihost.c
  12. 2
      target/arm/meson.build

1
default-configs/devices/arm-softmmu.mak

@ -42,4 +42,5 @@ CONFIG_FSL_IMX25=y
CONFIG_FSL_IMX7=y
CONFIG_FSL_IMX6UL=y
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
CONFIG_ALLWINNER_H3=y

1
default-configs/targets/aarch64-linux-user.mak

@ -2,3 +2,4 @@ TARGET_ARCH=aarch64
TARGET_BASE_ARCH=arm
TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml
TARGET_HAS_BFLT=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y

1
default-configs/targets/aarch64_be-linux-user.mak

@ -3,3 +3,4 @@ TARGET_BASE_ARCH=arm
TARGET_WORDS_BIGENDIAN=y
TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml
TARGET_HAS_BFLT=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y

1
default-configs/targets/arm-linux-user.mak

@ -3,3 +3,4 @@ TARGET_SYSTBL_ABI=common,oabi
TARGET_SYSTBL=syscall.tbl
TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml
TARGET_HAS_BFLT=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y

1
default-configs/targets/armeb-linux-user.mak

@ -4,3 +4,4 @@ TARGET_SYSTBL=syscall.tbl
TARGET_WORDS_BIGENDIAN=y
TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml
TARGET_HAS_BFLT=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y

4
hw/semihosting/Kconfig

@ -1,3 +1,7 @@
config SEMIHOSTING
bool
config ARM_COMPATIBLE_SEMIHOSTING
bool
select SEMIHOSTING

0
target/arm/arm-semi.c → hw/semihosting/arm-compat-semi.c

3
hw/semihosting/meson.build

@ -2,3 +2,6 @@ specific_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files(
'config.c',
'console.c',
))
specific_ss.add(when: ['CONFIG_ARM_COMPATIBLE_SEMIHOSTING'],
if_true: files('arm-compat-semi.c'))

3
linux-user/arm/meson.build

@ -1,6 +1,3 @@
linux_user_ss.add(when: 'TARGET_AARCH64', if_true: files('semihost.c'))
linux_user_ss.add(when: 'TARGET_ARM', if_true: files('semihost.c'))
subdir('nwfpe')
syscall_nr_generators += {

1
linux-user/meson.build

@ -16,6 +16,7 @@ linux_user_ss.add(rt)
linux_user_ss.add(when: 'TARGET_HAS_BFLT', if_true: files('flatload.c'))
linux_user_ss.add(when: 'TARGET_I386', if_true: files('vm86.c'))
linux_user_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', if_true: files('semihost.c'))
syscall_nr_generators = {}

0
linux-user/arm/semihost.c → linux-user/semihost.c

2
target/arm/meson.build

@ -32,8 +32,6 @@ arm_ss.add(files(
))
arm_ss.add(zlib)
arm_ss.add(when: 'CONFIG_TCG', if_true: files('arm-semi.c'))
arm_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c', 'kvm64.c'), if_false: files('kvm-stub.c'))
arm_ss.add(when: 'TARGET_AARCH64', if_true: files(

Loading…
Cancel
Save