114c114,118
< if (N == 0 || mbits(vaddr, 31, 32-N)) {
---
> DPRINTF(TLB, "Begining table walk for address %#x, TTBCR: %#x, bits:%#x\n",
> vaddr, N, mbits(vaddr, 31, 32-N));
>
> if (N == 0 || !mbits(vaddr, 31, 32-N)) {
> DPRINTF(TLB, " - Selecting TTBR0\n");
117c121,122
< ttbr = tc->readMiscReg(MISCREG_TTBR0);
---
> DPRINTF(TLB, " - Selecting TTBR1\n");
> ttbr = tc->readMiscReg(MISCREG_TTBR1);
122,123c127
< DPRINTF(TLB, "Begining table walk for address %#x at descriptor %#x\n",
< vaddr, l1desc_addr);
---
> DPRINTF(TLB, " - Descriptor at address %#x\n", l1desc_addr);
128c132
< isFetch, 0, true);
---
> isFetch, isWrite, 0, true);
213c217,221
< fault = new DataAbort(vaddr, NULL, isWrite, ArmFault::Translation0);
---
> DPRINTF(TLB, "L1 Descriptor Reserved/Ignore, causing fault\n");
> if (isFetch)
> fault = new PrefetchAbort(vaddr, ArmFault::Translation0);
> else
> fault = new DataAbort(vaddr, NULL, isWrite, ArmFault::Translation0);
255c263
< isFetch, l1Desc.domain(), false);
---
> isFetch, isWrite, l1Desc.domain(), false);
290c298,301
< fault = new DataAbort(vaddr, l1Desc.domain(), isWrite, ArmFault::Translation1);
---
> if (isFetch)
> fault = new PrefetchAbort(vaddr, ArmFault::Translation1);
> else
> fault = new DataAbort(vaddr, l1Desc.domain(), isWrite, ArmFault::Translation1);