29#ifndef __ARCH_SPARC_TLB_HH__
30#define __ARCH_SPARC_TLB_HH__
37#include "params/SparcTLB.hh"
122 bool update_used =
true);
129 void insert(
Addr vpn,
int partition_id,
int context_id,
bool real,
168 panic(
"demapPage(Addr) is not implemented.\n");
199 uint64_t
c0_config, uint64_t cX_tsb, uint64_t cX_config);
Cycles is a wrapper class for representing cycle counts, i.e.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t TagRead(int entry)
Given an entry id, read that tlb entries' tag.
void demapPage(Addr va, int partition_id, bool real, int context_id)
Remve all entries that match a certain partition id, (contextid), and va).
void GetTsbPtr(ThreadContext *tc, Addr addr, int ctx, Addr *ptrs)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Cycles doMmuRegWrite(ThreadContext *tc, Packet *pkt)
uint64_t MakeTsbPtr(TsbPageSize ps, uint64_t tag_access, uint64_t c0_tsb, uint64_t c0_config, uint64_t cX_tsb, uint64_t cX_config)
void writeSfsr(bool write, ContextType ct, bool se, FaultTypes ft, int asi)
void demapPage(Addr vaddr, uint64_t asn) override
std::list< TlbEntry * > freeList
void flushAll() override
Remove all entries from the TLB.
void demapContext(int partition_id, int context_id)
Remove all entries that match a given context/partition id.
void translateTiming(const RequestPtr &req, ThreadContext *tc, BaseMMU::Translation *translation, BaseMMU::Mode mode) override
uint64_t TteRead(int entry)
Give an entry id, read that tlb entries' tte.
Fault finalizePhysical(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) const override
Do post-translation physical address finalization.
Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) override
TlbEntry * lookup(Addr va, int partition_id, bool real, int context_id=0, bool update_used=true)
lookup an entry in the TLB based on the partition id, and real bit if real is true or the partition i...
Fault translateInst(const RequestPtr &req, ThreadContext *tc)
Fault translateData(const RequestPtr &req, ThreadContext *tc, bool write)
void insert(Addr vpn, int partition_id, int context_id, bool real, const PageTableEntry &PTE, int entry=-1)
Insert a PTE into the TLB.
bool validVirtualAddress(Addr va, bool am)
Checks if the virtual address provided is a valid one.
void demapAll(int partition_id)
Remove all non-locked entries from the tlb that match partition id.
void serialize(CheckpointOut &cp) const override
Serialize an object.
Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) override
void takeOverFrom(BaseTLB *otlb) override
Take over from an old tlb context.
void writeTagAccess(Addr va, int context)
Cycles doMmuRegRead(ThreadContext *tc, Packet *pkt)
RangeMap::iterator iterator
ThreadContext is the external interface to all thread state for anything outside of the CPU.
#define panic(...)
This implements a cprintf based panic() function.
const Addr StartVAddrHole
ProbePointArg< PacketInfo > Packet
Packet probe point.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< FaultBase > Fault
std::shared_ptr< Request > RequestPtr
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Declaration of a request, the overall memory request consisting of the parts of the request that are ...