|
gem5 [DEVELOP-FOR-25.0]
|
#include <table_walker.hh>
Classes | |
| struct | LongDescData |
| Helper variables used to implement hierarchical access permissions when the long-desc. More... | |
Public Member Functions | |
| void | doL1Descriptor () |
| void | doL2Descriptor () |
| void | doLongDescriptor () |
| WalkerState () | |
| std::string | name () const |
Public Attributes | ||
| ThreadContext * | tc | |
| Thread context that we're doing the walk for. | ||
| bool | aarch64 | |
| If the access is performed in AArch64 state. | ||
| ExceptionLevel | el | |
| Current exception level. | ||
| TranslationRegime | regime | |
| Current translation regime. | ||
| int | physAddrRange | |
| Current physical address range in bits. | ||
| RequestPtr | req | |
| Request that is currently being serviced. | ||
| TlbEntry | walkEntry | |
| Initial walk entry allowing to skip lookup levels. | ||
| uint16_t | asid | |
| ASID that we're servicing the request under. | ||
| vmid_t | vmid | |
| BaseMMU::Translation * | transState | |
| Translation state for delayed requests. | ||
| Fault | fault | |
| The fault that we are going to return. | ||
| Addr | vaddr | |
| The virtual address that is being translated with tagging removed. | ||
| Addr | vaddr_tainted | |
| The virtual address that is being translated. | ||
| SCTLR | sctlr | |
| Cached copy of the sctlr as it existed when translation began. | ||
| SCR | scr | |
| Cached copy of the scr as it existed when translation began. | ||
| CPSR | cpsr | |
| Cached copy of the cpsr as it existed when translation began. | ||
| union { | ||
| TTBCR ttbcr | ||
| TCR tcr | ||
| }; | ||
| Cached copy of ttbcr/tcr as it existed when translation began. | ||
| HTCR | htcr | |
| Cached copy of the htcr as it existed when translation began. | ||
| HCR | hcr | |
| Cached copy of the htcr as it existed when translation began. | ||
| VTCR_t | vtcr | |
| Cached copy of the vtcr as it existed when translation began. | ||
| bool | isWrite | |
| If the access is a write. | ||
| bool | isFetch | |
| If the access is a fetch (for execution, and no-exec) must be checked? | ||
| SecurityState | ss | |
| Security State of the access. | ||
| bool | secureLookup = false | |
| Whether lookups should be treated as using the secure state. | ||
| PASpace | ipaSpace | |
| IPA space (Secure vs NonSecure); stage2 only. | ||
| bool | isUncacheable | |
| True if table walks are uncacheable (for table descriptors) | ||
| std::optional< LongDescData > | longDescData | |
| bool | hpd | |
| Hierarchical access permission disable. | ||
| uint8_t | sh | |
| uint8_t | irgn | |
| uint8_t | orgn | |
| bool | stage2Req | |
| Flag indicating if a second stage of lookup is required. | ||
| BaseMMU::Translation * | stage2Tran | |
| A pointer to the stage 2 translation that's in progress. | ||
| bool | timing | |
| If the mode is timing or atomic. | ||
| bool | functional | |
| If the atomic mode should be functional. | ||
| BaseMMU::Mode | mode | |
| Save mode for use in delayed response. | ||
| MMU::ArmTranslationType | tranType | |
| The translation type that has been requested. | ||
| L1Descriptor | l1Desc | |
| Short-format descriptors. | ||
| L2Descriptor | l2Desc | |
| LongDescriptor | longDesc | |
| Long-format descriptor (LPAE and AArch64) | ||
| bool | delayed | |
| Whether the response is delayed in timing mode due to additional lookups. | ||
| TableWalker * | tableWalker | |
| Tick | startTime | |
| Timestamp for calculating elapsed time in service (for stats) | ||
| unsigned | levels | |
| Page entries walked during service (for stats) | ||
Definition at line 847 of file table_walker.hh.
| gem5::TableWalker::WalkerState::WalkerState | ( | ) |
Definition at line 127 of file table_walker.cc.
References aarch64, asid, cpsr, delayed, gem5::ArmISA::EL10, functional, hcr, hpd, htcr, irgn, isFetch, isUncacheable, isWrite, l1Desc, l2Desc, longDescData, mode, gem5::ArmISA::NonSecure, orgn, physAddrRange, regime, req, scr, sctlr, sh, ss, stage2Req, stage2Tran, tableWalker, tc, tcr, timing, transState, tranType, vaddr, vaddr_tainted, vmid, and vtcr.
| void gem5::ArmISA::TableWalker::WalkerState::doL1Descriptor | ( | ) |
| void gem5::ArmISA::TableWalker::WalkerState::doL2Descriptor | ( | ) |
| void gem5::ArmISA::TableWalker::WalkerState::doLongDescriptor | ( | ) |
|
inline |
Definition at line 995 of file table_walker.hh.
References tableWalker.
| union { ... } gem5::ArmISA::TableWalker::WalkerState |
Cached copy of ttbcr/tcr as it existed when translation began.
| bool gem5::ArmISA::TableWalker::WalkerState::aarch64 |
If the access is performed in AArch64 state.
Definition at line 854 of file table_walker.hh.
Referenced by WalkerState().
| uint16_t gem5::ArmISA::TableWalker::WalkerState::asid |
ASID that we're servicing the request under.
Definition at line 872 of file table_walker.hh.
Referenced by WalkerState().
| CPSR gem5::ArmISA::TableWalker::WalkerState::cpsr |
Cached copy of the cpsr as it existed when translation began.
Definition at line 894 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::delayed |
Whether the response is delayed in timing mode due to additional lookups.
Definition at line 978 of file table_walker.hh.
Referenced by WalkerState().
| ExceptionLevel gem5::ArmISA::TableWalker::WalkerState::el |
Current exception level.
Definition at line 857 of file table_walker.hh.
| Fault gem5::ArmISA::TableWalker::WalkerState::fault |
The fault that we are going to return.
Definition at line 879 of file table_walker.hh.
| bool gem5::ArmISA::TableWalker::WalkerState::functional |
If the atomic mode should be functional.
Definition at line 961 of file table_walker.hh.
Referenced by WalkerState().
| HCR gem5::ArmISA::TableWalker::WalkerState::hcr |
Cached copy of the htcr as it existed when translation began.
Definition at line 907 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::hpd |
Hierarchical access permission disable.
Definition at line 945 of file table_walker.hh.
Referenced by WalkerState().
| HTCR gem5::ArmISA::TableWalker::WalkerState::htcr |
Cached copy of the htcr as it existed when translation began.
Definition at line 904 of file table_walker.hh.
Referenced by WalkerState().
| PASpace gem5::ArmISA::TableWalker::WalkerState::ipaSpace |
IPA space (Secure vs NonSecure); stage2 only.
This depends on whether the stage1 translation targeted a secure or non-secure IPA space
Definition at line 928 of file table_walker.hh.
| uint8_t gem5::ArmISA::TableWalker::WalkerState::irgn |
Definition at line 948 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::isFetch |
If the access is a fetch (for execution, and no-exec) must be checked?
Definition at line 916 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::isUncacheable |
True if table walks are uncacheable (for table descriptors)
Definition at line 931 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::isWrite |
If the access is a write.
Definition at line 913 of file table_walker.hh.
Referenced by WalkerState().
| L1Descriptor gem5::ArmISA::TableWalker::WalkerState::l1Desc |
Short-format descriptors.
Definition at line 970 of file table_walker.hh.
Referenced by WalkerState().
| L2Descriptor gem5::ArmISA::TableWalker::WalkerState::l2Desc |
Definition at line 971 of file table_walker.hh.
Referenced by WalkerState().
| unsigned gem5::ArmISA::TableWalker::WalkerState::levels |
Page entries walked during service (for stats)
Definition at line 986 of file table_walker.hh.
| LongDescriptor gem5::ArmISA::TableWalker::WalkerState::longDesc |
Long-format descriptor (LPAE and AArch64)
Definition at line 974 of file table_walker.hh.
| std::optional<LongDescData> gem5::ArmISA::TableWalker::WalkerState::longDescData |
Definition at line 942 of file table_walker.hh.
Referenced by WalkerState().
| BaseMMU::Mode gem5::ArmISA::TableWalker::WalkerState::mode |
Save mode for use in delayed response.
Definition at line 964 of file table_walker.hh.
Referenced by WalkerState().
| uint8_t gem5::ArmISA::TableWalker::WalkerState::orgn |
Definition at line 949 of file table_walker.hh.
Referenced by WalkerState().
| int gem5::ArmISA::TableWalker::WalkerState::physAddrRange |
Current physical address range in bits.
Definition at line 863 of file table_walker.hh.
Referenced by WalkerState().
| TranslationRegime gem5::ArmISA::TableWalker::WalkerState::regime |
Current translation regime.
Definition at line 860 of file table_walker.hh.
Referenced by WalkerState().
| RequestPtr gem5::ArmISA::TableWalker::WalkerState::req |
Request that is currently being serviced.
Definition at line 866 of file table_walker.hh.
Referenced by WalkerState().
| SCR gem5::ArmISA::TableWalker::WalkerState::scr |
Cached copy of the scr as it existed when translation began.
Definition at line 891 of file table_walker.hh.
Referenced by WalkerState().
| SCTLR gem5::ArmISA::TableWalker::WalkerState::sctlr |
Cached copy of the sctlr as it existed when translation began.
Definition at line 888 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::secureLookup = false |
Whether lookups should be treated as using the secure state.
This is usually the same as isSecure, but can be set to false by the long descriptor table attributes.
Definition at line 923 of file table_walker.hh.
| uint8_t gem5::ArmISA::TableWalker::WalkerState::sh |
Definition at line 947 of file table_walker.hh.
Referenced by WalkerState().
| SecurityState gem5::ArmISA::TableWalker::WalkerState::ss |
Security State of the access.
Definition at line 919 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::stage2Req |
Flag indicating if a second stage of lookup is required.
Definition at line 952 of file table_walker.hh.
Referenced by WalkerState().
| BaseMMU::Translation* gem5::ArmISA::TableWalker::WalkerState::stage2Tran |
A pointer to the stage 2 translation that's in progress.
Definition at line 955 of file table_walker.hh.
Referenced by WalkerState().
| Tick gem5::ArmISA::TableWalker::WalkerState::startTime |
Timestamp for calculating elapsed time in service (for stats)
Definition at line 983 of file table_walker.hh.
| TableWalker* gem5::ArmISA::TableWalker::WalkerState::tableWalker |
Definition at line 980 of file table_walker.hh.
Referenced by name(), and WalkerState().
| ThreadContext* gem5::ArmISA::TableWalker::WalkerState::tc |
Thread context that we're doing the walk for.
Definition at line 851 of file table_walker.hh.
Referenced by WalkerState().
| TCR gem5::ArmISA::TableWalker::WalkerState::tcr |
Definition at line 900 of file table_walker.hh.
Referenced by WalkerState().
| bool gem5::ArmISA::TableWalker::WalkerState::timing |
If the mode is timing or atomic.
Definition at line 958 of file table_walker.hh.
Referenced by WalkerState().
| BaseMMU::Translation* gem5::ArmISA::TableWalker::WalkerState::transState |
Translation state for delayed requests.
Definition at line 876 of file table_walker.hh.
Referenced by WalkerState().
| MMU::ArmTranslationType gem5::ArmISA::TableWalker::WalkerState::tranType |
The translation type that has been requested.
Definition at line 967 of file table_walker.hh.
Referenced by WalkerState().
| TTBCR gem5::ArmISA::TableWalker::WalkerState::ttbcr |
Definition at line 899 of file table_walker.hh.
| Addr gem5::ArmISA::TableWalker::WalkerState::vaddr |
The virtual address that is being translated with tagging removed.
Definition at line 882 of file table_walker.hh.
Referenced by WalkerState().
| Addr gem5::ArmISA::TableWalker::WalkerState::vaddr_tainted |
The virtual address that is being translated.
Definition at line 885 of file table_walker.hh.
Referenced by WalkerState().
| vmid_t gem5::ArmISA::TableWalker::WalkerState::vmid |
Definition at line 873 of file table_walker.hh.
Referenced by WalkerState().
| VTCR_t gem5::ArmISA::TableWalker::WalkerState::vtcr |
Cached copy of the vtcr as it existed when translation began.
Definition at line 910 of file table_walker.hh.
Referenced by WalkerState().
| TlbEntry gem5::ArmISA::TableWalker::WalkerState::walkEntry |
Initial walk entry allowing to skip lookup levels.
Definition at line 869 of file table_walker.hh.