1/*
2 * Copyright (c) 2013, 2018-2019 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

--- 108 unchanged lines hidden (view full) ---

117 case 1: return mask(39, 30);
118 case 2: return mask(39, 21);
119 case 3: return mask(39, 12);
120 default: panic("bad level %d", level);
121 }
122}
123
124unsigned
125V7LPageTableOps::firstLevel() const
125V7LPageTableOps::firstLevel(uint8_t tsz) const
126{
127 return 1;
128}
129
130unsigned
131V7LPageTableOps::lastLevel() const
132{
133 return 3;

--- 77 unchanged lines hidden (view full) ---

211 case 1: return mask(47, 30);
212 case 2: return mask(47, 21);
213 case 3: return mask(47, 12);
214 default: panic("bad level %d", level);
215 }
216}
217
218unsigned
219V8PageTableOps4k::firstLevel() const
219V8PageTableOps4k::firstLevel(uint8_t tsz) const
220{
221 return 0;
221 if (tsz >= 16 && tsz <= 24) return 0;
222 if (tsz >= 25 && tsz <= 33) return 1;
223 if (tsz >= 34 && tsz <= 39) return 2;
224
225 panic("Unsupported TnSZ: %d\n", tsz);
226}
227
228unsigned
229V8PageTableOps4k::lastLevel() const
230{
231 return 3;
232}
233

--- 77 unchanged lines hidden (view full) ---

311 case 1: return ~mask(36);
312 case 2: return ~mask(25);
313 case 3: return ~mask(14);
314 default: panic("bad level %d", level);
315 }
316}
317
318unsigned
315V8PageTableOps16k::firstLevel() const
319V8PageTableOps16k::firstLevel(uint8_t tsz) const
320{
317 return 0;
321 if (tsz == 16) return 0;
322 if (tsz >= 17 && tsz <= 27) return 1;
323 if (tsz >= 28 && tsz <= 38) return 2;
324 if (tsz == 39) return 3;
325
326 panic("Unsupported TnSZ: %d\n", tsz);
327}
328
329unsigned
330V8PageTableOps16k::lastLevel() const
331{
332 return 3;
333}
334

--- 69 unchanged lines hidden (view full) ---

404 case 1: return mask(47, 42);
405 case 2: return mask(47, 29);
406 case 3: return mask(47, 16);
407 default: panic("bad level %d", level);
408 }
409}
410
411unsigned
403V8PageTableOps64k::firstLevel() const
412V8PageTableOps64k::firstLevel(uint8_t tsz) const
413{
405 return 1;
414 if (tsz >= 12 && tsz <= 21) return 1;
415 if (tsz >= 22 && tsz <= 34) return 2;
416 if (tsz >= 35 && tsz <= 39) return 3;
417
418 panic("Unsupported TnSZ: %d\n", tsz);
419}
420
421unsigned
422V8PageTableOps64k::lastLevel() const
423{
424 return 3;
425}