Hi Liyichao! Thanks, I'll check it out.
On Tue, Jan 26, 2021 at 7:44 PM Liyichao <[email protected]> wrote: > > 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:[email protected]] > 发送时间: 2021年1月26日 19:09 > 收件人: gem5 users mailing list <[email protected]> > 抄送: Tracy Mac <[email protected]> > 主题: [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 -- [email protected] To unsubscribe send an email > to [email protected] > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s _______________________________________________ gem5-users mailing list -- [email protected] To unsubscribe send an email to [email protected] %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
