How to enable ARM semihosting in gem5?

前端 未结 1 634
野性不改
野性不改 2021-01-25 15:38

I tried to run a semihosting exit instruction that worked on QEMU:

mov r0, #0x18
ldr r1, =#0x20026
svc 0x00123456

but gem5 seemed to not proces

相关标签:
1条回答
  • 2021-01-25 16:21

    The following patch adds it to baremetal.py but not fs.py (March 2020): https://gem5-review.googlesource.com/c/public/gem5/+/26993/4

    As of 7bfb7f3a43f382eb49853f47b140bfd6caad0fb8 (Sep 2018) for fs.py you could apply the patch:

    diff --git a/configs/example/fs.py b/configs/example/fs.py
    index 3997ed76c..43bebcd66 100644
    --- a/configs/example/fs.py
    +++ b/configs/example/fs.py
    @@ -376,5 +376,7 @@ if buildEnv['TARGET_ISA'] == "arm" and options.generate_dtb:
                 sys = getattr(root, sysname)
                 sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' % sysname)
    
    +from m5.objects import ArmSemihosting
    +test_sys.semihosting = ArmSemihosting()
     Simulation.setWorkCountOptions(test_sys, options)
     Simulation.run(options, root, test_sys, FutureClass)
    

    Should be analogous for any other script, you just have to connect this new SimObject.

    0 讨论(0)
提交回复
热议问题