x86: Use the m5 op range in the system.

Don't hard code a range into the TLB.

Jira Issue: https://gem5.atlassian.net/browse/GEM5-187

Change-Id: I0ead4353672ccf6e3e51ddbb4676be3a09f1136a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23182
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Pouya Fotouhi <pfotouhi@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
Gabe Black
2019-11-25 16:38:22 -08:00
parent 95c6a839a5
commit e758cd09d8
3 changed files with 4 additions and 3 deletions

View File

@@ -55,5 +55,6 @@ class X86TLB(BaseTLB):
cxx_class = 'X86ISA::TLB'
cxx_header = 'arch/x86/tlb.hh'
size = Param.Unsigned(64, "TLB size")
system = Param.System(Parent.any, "system object")
walker = Param.X86PagetableWalker(\
X86PagetableWalker(), "page table walker")

View File

@@ -61,7 +61,7 @@ namespace X86ISA {
TLB::TLB(const Params *p)
: BaseTLB(p), configAddress(0), size(p->size),
tlb(size), lruSeq(0)
tlb(size), lruSeq(0), m5opRange(p->system->m5opRange())
{
if (!size)
fatal("TLBs must have a non-zero size.\n");
@@ -229,8 +229,6 @@ TLB::finalizePhysical(const RequestPtr &req,
{
Addr paddr = req->getPaddr();
AddrRange m5opRange(0xFFFF0000, 0x100000000);
if (m5opRange.contains(paddr)) {
req->setFlags(Request::MMAPPED_IPR | Request::GENERIC_IPR |
Request::STRICT_ORDER);

View File

@@ -100,6 +100,8 @@ namespace X86ISA
TlbEntryTrie trie;
uint64_t lruSeq;
AddrRange m5opRange;
// Statistics
Stats::Scalar rdAccesses;
Stats::Scalar wrAccesses;