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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [sparc64/] [kernel/] [dtlb_prot.S] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* $Id: dtlb_prot.S,v 1.1.1.1 2004-04-15 01:34:43 phoenix Exp $
2
 * dtlb_prot.S: DTLB protection trap strategy.
3
 *              This is included directly into the trap table.
4
 *
5
 * Copyright (C) 1996,1998 David S. Miller (davem@redhat.com)
6
 * Copyright (C) 1997,1998 Jakub Jelinek   (jj@ultra.linux.cz)
7
 */
8
 
9
/* Ways we can get here:
10
 *
11
 * [TL == 0] 1) User stores to readonly pages.
12
 * [TL == 0] 2) Nucleus stores to user readonly pages.
13
 * [TL >  0] 3) Nucleus stores to user readonly stack frame.
14
 */
15
 
16
/* PROT ** ICACHE line 1: User DTLB protection trap     */
17
        stxa            %g0, [%g1] ASI_DMMU             ! Clear SFSR FaultValid bit
18
        membar          #Sync                           ! Synchronize ASI stores
19
        rdpr            %pstate, %g5                    ! Move into alternate globals
20
        wrpr            %g5, PSTATE_AG|PSTATE_MG, %pstate
21
        rdpr            %tl, %g1                        ! Need to do a winfixup?
22
        cmp             %g1, 1                          ! Trap level >1?
23
        mov             TLB_TAG_ACCESS, %g4             ! Prepare reload of vaddr
24
        nop
25
 
26
/* PROT ** ICACHE line 2: More real fault processing */
27
        bgu,pn          %xcc, winfix_trampoline         ! Yes, perform winfixup
28
         ldxa           [%g4] ASI_DMMU, %g5             ! Put tagaccess in %g5
29
        ba,pt           %xcc, sparc64_realfault_common  ! Nope, normal fault
30
         mov            FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4
31
        nop
32
        nop
33
        nop
34
        nop
35
 
36
/* PROT ** ICACHE line 3: Unused...     */
37
        nop
38
        nop
39
        nop
40
        nop
41
        nop
42
        nop
43
        nop
44
        nop
45
 
46
/* PROT ** ICACHE line 4: Unused...     */
47
        nop
48
        nop
49
        nop
50
        nop
51
        nop
52
        nop
53
        nop
54
        nop

powered by: WebSVN 2.1.0

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