You have to modify TIMER and GIC.

diff --git a/src/dev/arm/GenericTimer.py b/src/dev/arm/GenericTimer.py
index ed81b2471..aee15b738 100644
--- a/src/dev/arm/GenericTimer.py
+++ b/src/dev/arm/GenericTimer.py
@@ -98,6 +98,7 @@ Reference:
     # value, so this initial value will be discarded
     cntfrq = Param.UInt64(0x1800000, "Value for the CNTFRQ timer register")
 
+    '''
     def generateDeviceTree(self, state):
         node = FdtNode("timer")
 
@@ -115,7 +116,8 @@ Reference:
             node.append(self.counter.unproxy(self).generateDtb())
 
         yield node
-
+    '''
+    
 class GenericTimerFrame(PioDevice):
     """
 Memory-mapped timer frame implementation. Controlled from GenericTimerMem,
diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py
index 9ab04725d..3fd0e9168 100644
--- a/src/dev/arm/RealView.py
+++ b/src/dev/arm/RealView.py
@@ -67,8 +67,10 @@ from m5.objects.SMMUv3 import SMMUv3
 # emulation. Use a GIC model that automatically switches between
 # gem5's GIC model and KVM's GIC model if KVM is available.
 try:
-    from m5.objects.KvmGic import MuxingKvmGic
-    kvm_gicv2_class = MuxingKvmGic
+    # from m5.objects.KvmGic import MuxingKvmGic
+    # kvm_gicv2_class = MuxingKvmGic
+    from m5.objects.KvmGic import Gic400
+    kvm_gicv2_class = Gic400
 except ImportError:
     # KVM support wasn't compiled into gem5. Fallback to a
     # software-only GIC.
diff --git a/src/dev/arm/generic_timer.cc b/src/dev/arm/generic_timer.cc
index 458a2eb7a..509153cab 100644
--- a/src/dev/arm/generic_timer.cc
+++ b/src/dev/arm/generic_timer.cc
@@ -289,8 +289,12 @@ ArchTimer::updateCounter()
             _interrupt->clear();
         }
 
-        _control.istatus = 0;
-
+        // _control.istatus = 0;
+        if (_control.istatus) {
+            DPRINTF(Timer, "Clearing interrupt\n");
+            _interrupt->clear();
+            _control.istatus = 0;
+        }
         if (scheduleEvents()) {
             _parent.schedule(_counterLimitReachedEvent,
                              whenValue(_counterLimit));
diff --git a/util/m5/src/abi/aarch64/SConsopts 
b/util/m5/src/abi/aarch64/SConsopts
index 47ada0209..683c4f2eb 100644
--- a/util/m5/src/abi/aarch64/SConsopts
+++ b/util/m5/src/abi/aarch64/SConsopts
@@ -27,6 +27,7 @@ Import('*')
 
 env['ABI'] = 'aarch64'
 get_abi_opt('CROSS_COMPILE', 'aarch64-linux-gnu-')
+env.Append(CFLAGS='-DM5OP_ADDR=0x10010000')
 
 env['CALL_TYPE']['inst'].impl('m5op.S', 'verify_inst.cc', default=True)
 env['CALL_TYPE']['addr'].impl('m5op_addr.S')



-----邮件原件-----
发件人: Tracy Mac via gem5-users [mailto:gem5-users@gem5.org] 
发送时间: 2021年1月26日 19:09
收件人: gem5 users mailing list <gem5-users@gem5.org>
抄送: Tracy Mac <fgzs...@gmail.com>
主题: [gem5-users] KVM Doesn't Work

Hi All
I run the fs.py script in gem5(20.1.0.0), but there is no information in the 
m5term console. I don't know what went wrong.
In gem5(20.0.0.3 develop),kvm can work very well,I have no idea how to change 
the new version.

INFO:
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 20.1.0.2
gem5 compiled Jan 26 2021 17:54:32
gem5 started Jan 26 2021 18:36:35
gem5 executing on ubuntu, pid 28630
command line: ./build/ARM/gem5.opt configs/example/fs.py --cpu-type=ArmV8KvmCPU 
--disk-image=/home/tracy/Desktop/image/aarch-system-20170616/disks/linaro-minimal-aarch64.img
--kernel=/home/tracy/Desktop/vmlinux.euler

warn: iobus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: bridge.master is deprecated. `master` is now called `mem_side_port`
warn: membus.master is deprecated. `master` is now called `mem_side_ports`
warn: bridge.slave is deprecated. `slave` is now called `cpu_side_port`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: iobus.master is deprecated. `master` is now called `mem_side_ports`
warn: iobridge.slave is deprecated. `slave` is now called `cpu_side_port`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: iobridge.master is deprecated. `master` is now called `mem_side_port`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
warn: membus.master is deprecated. `master` is now called `mem_side_ports` 
Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file and 
pdf.
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (512 Mbytes)
info: kernel located at: /home/tracy/Desktop/vmlinux.euler
warn: Highest ARM exception-level set to AArch32 but the workload is for 
AArch64. Assuming you wanted these to match.
system.vncserver: Listening for connections on port 5900
system.terminal: Listening for connections on port 3456
system.realview.uart1.device: Listening for connections on port 3457
system.realview.uart2.device: Listening for connections on port 3458
system.realview.uart3.device: Listening for connections on port 3459
0: system.remote_gdb: listening for remote gdb on port 7000
warn: CoherentXBar system.membus has no snooping ports attached!
info: Using bootloader at address 0x10
info: Using kernel entry physical address at 0x80080000
info: Loading DTB file: m5out/system.dtb at address 0x88000000
**** REAL SIMULATION ****
info: KVM: Coalesced MMIO disabled by config.
warn: Existing EnergyCtrl, but no enabled DVFSHandler found.
info: Entering event queue @ 0.  Starting simulation...
warn: Returning zero for read from miscreg pmintenset_el1
warn: Returning zero for read from miscreg pmintenclr_el1
warn: Returning zero for read from miscreg pmcr_el0
warn: Returning zero for read from miscreg pmcntenset_el0
warn: Returning zero for read from miscreg pmcntenclr_el0
warn: Returning zero for read from miscreg pmovsclr_el0
warn: Returning zero for read from miscreg pmswinc_el0
warn: Returning zero for read from miscreg pmselr_el0
warn: Returning zero for read from miscreg pmccntr_el0
warn: Returning zero for read from miscreg pmuserenr_el0
warn: Returning zero for read from miscreg pmovsset_el0
warn: Returning zero for read from miscreg pmevcntr0_el0
warn: Returning zero for read from miscreg pmevcntr1_el0
warn: Returning zero for read from miscreg pmevcntr2_el0
warn: Returning zero for read from miscreg pmevcntr3_el0
warn: Returning zero for read from miscreg pmevcntr4_el0
warn: Returning zero for read from miscreg pmevcntr5_el0
warn: Returning zero for read from miscreg pmevtyper0_el0
warn: Returning zero for read from miscreg pmevtyper1_el0
warn: Returning zero for read from miscreg pmevtyper2_el0
warn: Returning zero for read from miscreg pmevtyper3_el0
warn: Returning zero for read from miscreg pmevtyper4_el0
warn: Returning zero for read from miscreg pmevtyper5_el0
warn: Returning zero for read from miscreg pmccfiltr_el0
warn: SCReg: Access to unknown device dcc0:site0:pos0:fn7:dev0
1152383696405000: system.terminal: attach terminal 0


command line: ./build/ARM/gem5.opt configs/example.fs.py
--cpu-type=ArmV8KvmCPU--kernel=/home/tracy/gem5/fs_image_arm/binaries/vmlinux.vexpress_gem5_v1_64.20170616
--disk=/home/tracy/gem5/fs_image_arm/disks/linaro-minimal-aarch64.img


Host CPU Architecture: ARMV8

Host OS: ubuntu 18.04.4
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to 
gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to