• James Hogan's avatar
    MIPS: traps: Convert ebase to KSEG0 · c195e079
    James Hogan authored
    When allocating boot memory for the exception vector when vectored
    interrupts (vint) or vectored external interrupt controllers (veic) are
    enabled, try to ensure that the virtual address resides in KSeg0 (and
    WARN should that not be possible).
    
    This will be helpful on MIPS64 cores supporting the CP0_EBase Write Gate
    (WG) bit once we start using the WG bit to write the full ebase into
    CP0_EBase, as we ideally need to avoid hitting the architecturally
    poorly defined exception base for Cache Errors when CP0_EBase is in
    XKPhys.
    
    An exception is made for Enhanced Virtual Addressing (EVA) kernels which
    allow segments to be rearranged and to become uncached during cache
    error handling, making it valid for ebase to be elsewhere.
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Matt Redfearn <matt.redfearn@imgtec.com>
    Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14149/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    c195e079
traps.c 59.2 KB