pagetable.hh (10037:5cac77888310) | pagetable.hh (10558:426665ec11a9) |
---|---|
1/* 2 * Copyright (c) 2010, 2012-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 133 unchanged lines hidden (view full) --- 142 bool shareable; 143 bool outerShareable; 144 145 // Access permissions 146 bool xn; // Execute Never 147 bool pxn; // Privileged Execute Never (LPAE only) 148 149 //Construct an entry that maps to physical address addr for SE mode | 1/* 2 * Copyright (c) 2010, 2012-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 133 unchanged lines hidden (view full) --- 142 bool shareable; 143 bool outerShareable; 144 145 // Access permissions 146 bool xn; // Execute Never 147 bool pxn; // Privileged Execute Never (LPAE only) 148 149 //Construct an entry that maps to physical address addr for SE mode |
150 TlbEntry(Addr _asn, Addr _vaddr, Addr _paddr) : | 150 TlbEntry(Addr _asn, Addr _vaddr, Addr _paddr, 151 bool uncacheable, bool read_only) : |
151 pfn(_paddr >> PageShift), size(PageBytes - 1), vpn(_vaddr >> PageShift), 152 attributes(0), lookupLevel(L1), asid(_asn), vmid(0), N(0), | 152 pfn(_paddr >> PageShift), size(PageBytes - 1), vpn(_vaddr >> PageShift), 153 attributes(0), lookupLevel(L1), asid(_asn), vmid(0), N(0), |
153 innerAttrs(0), outerAttrs(0), ap(0), hap(0x3), | 154 innerAttrs(0), outerAttrs(0), ap(read_only ? 0x3 : 0), hap(0x3), |
154 domain(DomainType::Client), mtype(MemoryType::StronglyOrdered), 155 longDescFormat(false), isHyp(false), global(false), valid(true), | 155 domain(DomainType::Client), mtype(MemoryType::StronglyOrdered), 156 longDescFormat(false), isHyp(false), global(false), valid(true), |
156 ns(true), nstid(true), el(0), nonCacheable(false), shareable(false), 157 outerShareable(false), xn(0), pxn(0) | 157 ns(true), nstid(true), el(0), nonCacheable(uncacheable), 158 shareable(false), outerShareable(false), xn(0), pxn(0) |
158 { 159 // no restrictions by default, hap = 0x3 160 161 // @todo Check the memory type | 159 { 160 // no restrictions by default, hap = 0x3 161 162 // @todo Check the memory type |
163 if (read_only) 164 warn("ARM TlbEntry does not support read-only mappings\n"); |
|
162 } 163 164 TlbEntry() : 165 pfn(0), size(0), vpn(0), attributes(0), lookupLevel(L1), asid(0), 166 vmid(0), N(0), innerAttrs(0), outerAttrs(0), ap(0), hap(0x3), 167 domain(DomainType::Client), mtype(MemoryType::StronglyOrdered), 168 longDescFormat(false), isHyp(false), global(false), valid(true), 169 ns(true), nstid(true), el(0), nonCacheable(false), --- 182 unchanged lines hidden --- | 165 } 166 167 TlbEntry() : 168 pfn(0), size(0), vpn(0), attributes(0), lookupLevel(L1), asid(0), 169 vmid(0), N(0), innerAttrs(0), outerAttrs(0), ap(0), hap(0x3), 170 domain(DomainType::Client), mtype(MemoryType::StronglyOrdered), 171 longDescFormat(false), isHyp(false), global(false), valid(true), 172 ns(true), nstid(true), el(0), nonCacheable(false), --- 182 unchanged lines hidden --- |