tlb.cc (11395:032bc62120eb) tlb.cc (11495:1f04f97c014d)
1/*
1/*
2 * Copyright (c) 2010-2013 ARM Limited
2 * Copyright (c) 2010-2013, 2016 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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

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

715 panic("Unknown permissions %#x\n", ap);
716 }
717 }
718
719 bool hapAbt = is_write ? !(hap & 2) : !(hap & 1);
720 bool xn = te->xn || (isWritable && sctlr.wxn) ||
721 (ap == 3 && sctlr.uwxn && is_priv);
722 if (is_fetch && (abt || xn ||
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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

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

715 panic("Unknown permissions %#x\n", ap);
716 }
717 }
718
719 bool hapAbt = is_write ? !(hap & 2) : !(hap & 1);
720 bool xn = te->xn || (isWritable && sctlr.wxn) ||
721 (ap == 3 && sctlr.uwxn && is_priv);
722 if (is_fetch && (abt || xn ||
723 (te->longDescFormat && te->pxn && !is_priv) ||
723 (te->longDescFormat && te->pxn && is_priv) ||
724 (isSecure && te->ns && scr.sif))) {
725 permsFaults++;
726 DPRINTF(TLB, "TLB Fault: Prefetch abort on permission check. AP:%d "
727 "priv:%d write:%d ns:%d sif:%d sctlr.afe: %d \n",
728 ap, is_priv, is_write, te->ns, scr.sif,sctlr.afe);
729 return std::make_shared<PrefetchAbort>(
730 vaddr,
731 ArmFault::PermissionLL + te->lookupLevel,

--- 716 unchanged lines hidden ---
724 (isSecure && te->ns && scr.sif))) {
725 permsFaults++;
726 DPRINTF(TLB, "TLB Fault: Prefetch abort on permission check. AP:%d "
727 "priv:%d write:%d ns:%d sif:%d sctlr.afe: %d \n",
728 ap, is_priv, is_write, te->ns, scr.sif,sctlr.afe);
729 return std::make_shared<PrefetchAbort>(
730 vaddr,
731 ArmFault::PermissionLL + te->lookupLevel,

--- 716 unchanged lines hidden ---