Skip to content

Commit

Permalink
semihosting: Move ARM semihosting code to shared directories
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
keith-packard authored and stsquad committed Jan 18, 2021
1 parent 797920b commit 56b5170
Show file tree
Hide file tree
Showing 12 changed files with 13 additions and 5 deletions.
1 change: 1 addition & 0 deletions default-configs/devices/arm-softmmu.mak
Expand Up @@ -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 change: 1 addition & 0 deletions default-configs/targets/aarch64-linux-user.mak
Expand Up @@ -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 change: 1 addition & 0 deletions default-configs/targets/aarch64_be-linux-user.mak
Expand Up @@ -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 change: 1 addition & 0 deletions default-configs/targets/arm-linux-user.mak
Expand Up @@ -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 change: 1 addition & 0 deletions default-configs/targets/armeb-linux-user.mak
Expand Up @@ -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 changes: 4 additions & 0 deletions hw/semihosting/Kconfig
@@ -1,3 +1,7 @@

config SEMIHOSTING
bool

config ARM_COMPATIBLE_SEMIHOSTING
bool
select SEMIHOSTING
File renamed without changes.
3 changes: 3 additions & 0 deletions hw/semihosting/meson.build
Expand Up @@ -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 changes: 0 additions & 3 deletions 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 += {
Expand Down
1 change: 1 addition & 0 deletions linux-user/meson.build
Expand Up @@ -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 = {}
Expand Down
File renamed without changes.
2 changes: 0 additions & 2 deletions target/arm/meson.build
Expand Up @@ -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(
Expand Down

0 comments on commit 56b5170

Please sign in to comment.