OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [sparc64/] [kernel/] [dtlb_prot.S] - Rev 1765

Compare with Previous | Blame | View Log

/* $Id: dtlb_prot.S,v 1.1.1.1 2004-04-15 01:34:43 phoenix Exp $
 * dtlb_prot.S: DTLB protection trap strategy.
 *              This is included directly into the trap table.
 *
 * Copyright (C) 1996,1998 David S. Miller (davem@redhat.com)
 * Copyright (C) 1997,1998 Jakub Jelinek   (jj@ultra.linux.cz)
 */

/* Ways we can get here:
 *
 * [TL == 0] 1) User stores to readonly pages.
 * [TL == 0] 2) Nucleus stores to user readonly pages.
 * [TL >  0] 3) Nucleus stores to user readonly stack frame.
 */

/* PROT ** ICACHE line 1: User DTLB protection trap     */
        stxa            %g0, [%g1] ASI_DMMU             ! Clear SFSR FaultValid bit
        membar          #Sync                           ! Synchronize ASI stores
        rdpr            %pstate, %g5                    ! Move into alternate globals
        wrpr            %g5, PSTATE_AG|PSTATE_MG, %pstate
        rdpr            %tl, %g1                        ! Need to do a winfixup?
        cmp             %g1, 1                          ! Trap level >1?
        mov             TLB_TAG_ACCESS, %g4             ! Prepare reload of vaddr
        nop

/* PROT ** ICACHE line 2: More real fault processing */
        bgu,pn          %xcc, winfix_trampoline         ! Yes, perform winfixup
         ldxa           [%g4] ASI_DMMU, %g5             ! Put tagaccess in %g5
        ba,pt           %xcc, sparc64_realfault_common  ! Nope, normal fault
         mov            FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4
        nop
        nop
        nop
        nop

/* PROT ** ICACHE line 3: Unused...     */
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop

/* PROT ** ICACHE line 4: Unused...     */
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.