cpu: Apply the ARM TLB rework to the O3 checker CPU.
authorGabe Black <gabeblack@google.com>
Mon, 21 Oct 2019 18:43:53 +0000 (11:43 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 23 Oct 2019 22:36:20 +0000 (22:36 +0000)
The TLBs now create the stage 2 MMUs as children, and since those are
specialized for instruction and data, the CPU needs to use ArmITB or
ArmDTB instead of ArmTLB which is the base class without an MMU. This
was changed for the BaseCPU and SimpleCPU checker already, but the TLBs
are added in the O3 checker CPU as well.

Change-Id: I498f247f376c8721fb70ce26c0f1b0815b12fe2d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22039
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/cpu/o3/O3CPU.py

index 4a994f07f7d5ef0c03462b0e10b05c109c33e997..89744e98a80fd691cb954529ef16b2680556cf65 100644 (file)
@@ -181,14 +181,14 @@ class DerivO3CPU(BaseCPU):
 
     def addCheckerCpu(self):
         if buildEnv['TARGET_ISA'] in ['arm']:
-            from m5.objects.ArmTLB import ArmTLB
+            from m5.objects.ArmTLB import ArmDTB, ArmITB
 
             self.checker = O3Checker(workload=self.workload,
                                      exitOnError=False,
                                      updateOnError=True,
                                      warnOnlyOnLoadError=True)
-            self.checker.itb = ArmTLB(size = self.itb.size)
-            self.checker.dtb = ArmTLB(size = self.dtb.size)
+            self.checker.itb = ArmITB(size = self.itb.size)
+            self.checker.dtb = ArmDTB(size = self.dtb.size)
             self.checker.cpu_id = self.cpu_id
 
         else: