From 6039da55d87fb27b149ac3da0ebce41bb55a3bee Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Thu, 8 Feb 2018 20:13:13 +0000 Subject: arch-arm: Add aarch64 semihosting support Add basic support for Arm Semihosting 2.0 simulation calls [1]. These calls let the guest system call a simulator or debugger to request OS-like support when running bare metal code. With the exception of SYS_SYSTEM, this implementation supports all of the Semihosting 2.0 specification in aarch64. [1] https://developer.arm.com/docs/100863/latest/preface Change-Id: I08c153c18a4a4fb9f95d318e2a029724935192a7 Signed-off-by: Andreas Sandberg Reviewed-by: Jack Travaglini Reviewed-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/8147 Reviewed-by: Giacomo Travaglini --- src/arch/arm/ArmSystem.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/arch/arm/ArmSystem.py') diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py index 568747725..ec44331dd 100644 --- a/src/arch/arm/ArmSystem.py +++ b/src/arch/arm/ArmSystem.py @@ -41,6 +41,7 @@ from m5.SimObject import * from m5.util.fdthelper import * from System import System +from ArmSemihosting import ArmSemihosting class ArmMachineType(Enum): map = { @@ -79,6 +80,9 @@ class ArmSystem(System): have_large_asid_64 = Param.Bool(False, "True if ASID is 16 bits in AArch64 (ARMv8)") + semihosting = Param.ArmSemihosting(NULL, + "Enable support for the Arm semihosting by settings this parameter") + m5ops_base = Param.Addr(0, "Base of the 64KiB PA range used for memory-mapped m5ops. Set to 0 " "to disable.") -- cgit v1.2.3