target/hexagon: add build config for softmmu

Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Philippe Mathieu-Daudé <philmd@mailo.com>
Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
This commit is contained in:
Brian Cain
2026-06-22 15:29:01 -07:00
parent 9c72d85633
commit 6beec3bcda
7 changed files with 30 additions and 5 deletions

View File

@@ -256,6 +256,7 @@ F: linux-user/hexagon/
F: tests/tcg/hexagon/
F: disas/hexagon.c
F: configs/targets/hexagon-linux-user.mak
F: configs/targets/hexagon-softmmu.mak
F: tests/docker/dockerfiles/debian-hexagon-cross.docker
F: gdbstub/gdb-xml/hexagon*.xml
F: docs/system/target-hexagon.rst

View File

@@ -0,0 +1,6 @@
# Default configuration for hexagon-softmmu
# Uncomment the following lines to disable these optional devices:
# Boards are selected by default, uncomment to keep out of the build.
# CONFIG_HEX_DSP=y

View File

@@ -0,0 +1,7 @@
# Default configuration for hexagon-softmmu
TARGET_ARCH=hexagon
TARGET_XML_FILES=hexagon-core.xml hexagon-hvx.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y

View File

@@ -16,6 +16,7 @@ source sh4/Kconfig
source sparc/Kconfig
source tricore/Kconfig
source xtensa/Kconfig
source hexagon/Kconfig
config TARGET_BIG_ENDIAN
bool

2
target/hexagon/Kconfig Normal file
View File

@@ -0,0 +1,2 @@
config HEXAGON
bool

View File

@@ -38,10 +38,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegState;
#include "hw/core/registerfields.h"
#include "qemu/bitmap.h"
#ifndef CONFIG_USER_ONLY
#error "Hexagon does not support system emulation"
#endif
#include "target/hexagon/reg_fields.h"
#define NUM_PREGS 4
#define TOTAL_PER_THREAD_REGS 64

View File

@@ -235,6 +235,7 @@ decodetree_trans_funcs_generated = custom_target(
command: [python, files('gen_trans_funcs.py'), semantics_generated, '@OUTPUT@'],
)
hexagon_ss.add(decodetree_trans_funcs_generated)
hexagon_softmmu_ss = ss.source_set()
hexagon_ss.add(files(
'cpu.c',
@@ -253,6 +254,14 @@ hexagon_ss.add(files(
'mmvec/system_ext_mmvec.c',
))
hexagon_softmmu_ss.add(files(
'cpu_helper.c',
'hex_mmu.c',
'hex_interrupts.c',
'hexswi.c',
'machine.c',
))
#
# Step 4.5
# We use flex/bison based idef-parser to generate TCG code for a lot
@@ -262,7 +271,8 @@ hexagon_ss.add(files(
# idef-generated-enabled-instructions
#
idef_parser_enabled = get_option('hexagon_idef_parser')
if idef_parser_enabled and 'hexagon-linux-user' in target_dirs
if idef_parser_enabled and ('hexagon-linux-user' in target_dirs or
'hexagon-softmmu' in target_dirs)
idef_parser_input_generated = custom_target(
'idef_parser_input.h.inc',
output: 'idef_parser_input.h.inc',
@@ -390,3 +400,4 @@ analyze_funcs_generated = custom_target(
hexagon_ss.add(analyze_funcs_generated)
target_arch += {'hexagon': hexagon_ss}
target_system_arch += {'hexagon': hexagon_softmmu_ss}