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

Reply via email to