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 <andreas.sandberg@arm.com> Reviewed-by: Jack Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/8147 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
This commit is contained in:
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user