source: svn/newcon3bcm2_21bu/rockford/bsp/bcm97552/no-os/src/sde/tlb.s

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 4.6 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2012-2011, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: tlb.s $
11 * $brcm_Revision: Hydra_Software_Devel/1 $
12 * $brcm_Date: 4/28/11 1:41p $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log: /rockford/bsp/bcm97358/no-os/src/sde/tlb.s $
19 * 
20 * Hydra_Software_Devel/1   4/28/11 1:41p jkim
21 * SWCFE-507: Initial file
22 * 
23 * Hydra_Software_Devel/1   11/9/10 4:56p jkim
24 * SWCFE-399: initial files
25 * 
26 * Bsp_Software_Devel/7   8/31/10 1:24p rpereira
27 * SWCFE-380: Update tlb.s to expand entries used for 3255 from d000_0000
28 * -> d800_0000 to d000_0000 -> e000_0000
29 * 
30 * Bsp_Software_Devel/6   8/26/10 5:46p rpereira
31 * SWCFE-377: Updated pagemask entry as it was incorrect
32 * 
33 * Bsp_Software_Devel/5   8/26/10 5:32p rpereira
34 * SWCFE-377: Updated, was writing ENTRYLO0 twice.
35 * 
36 * Bsp_Software_Devel/4   8/26/10 5:04p rpereira
37 * SWCFE-377: Updated TLB routines to fix conflict in tlb entries
38 * 
39 * Bsp_Software_Devel/3   5/21/10 11:15a kaushikb
40 * SWCFE-311: Fixed #of tlb entries
41 * 
42 * Bsp_Software_Devel/2   9/25/09 1:54p kaushikb
43 * SWCFE-239: Updating for 7420 CFE release v2.11
44 * 
45 * Bsp_Software_Devel/1   3/13/09 10:07a kaushikb
46 * PR49990: Adding to src cntrl
47 * 
48 * Hydra_Software_Devel/Bsp_Software_Devel/2   3/11/08 4:38p jkim
49 * PR37963: fix compilation warning and error
50 * 
51 * Hydra_Software_Devel/Bsp_Software_Devel/1   10/22/07 4:28p farshidf
52 * PR36360: New BSP code
53 *
54
55***************************************************************************/
56#ifndef __ASSEMBLER__
57#define __ASSEMBLER__
58#endif
59
60#include "bmips.h"
61#include "bmips_5xxx.h"
62#include "mips_config.h"
63#include "chipcfg.h"
64#include "boardcfg.h"
65
66#define PM_64MB               0x07ffe000
67#define OFFS_64MB             0x04000000
68#define OFFS_128MB            0x08000000
69
70#define ENTRYLO_UNCACHED(x)   ((((x) >> 6) & 0x3fffffc0) | 0x17)
71#define ENTRYLO_CACHED(x)     ((((x) >> 6) & 0x3fffffc0) | 0x1f)
72
73.text
74
75#define BARRIER               ssnop; ssnop; ssnop
76
77LEAF(init_tlb)
78
79.set noreorder
80
81   /*********************************************************************
82    * Initialize all TLB entries
83    *********************************************************************/
84        /* Set page size to 4KB */     
85        mtc0    zero, CP0_PAGE_MASK     
86
87        /* set all entries to valid=0 with unique kseg0 VAs */
88        li              t0, 0x80000000
89        li              v0, 0
90        li              v1, NUM_TLB_ENTRIES
91        li              t4, 0
92
93zero_tlb_loop:
94        mtc0    t0, CP0_ENTRY_HI
95        mtc0    zero, CP0_ENTRY_LO_0
96        mtc0    zero, CP0_ENTRY_LO_1
97        mtc0    t4, CP0_INDEX
98        BARRIER
99        tlbwi
100        BARRIER
101        addi    t0,t0,0x2000
102        addi    t4,t4,1
103        addi    v0,v0,1
104        bne             v0,v1,zero_tlb_loop
105        nop
106
107
108        /* set up 2x 64MB uncached mappings: VA d000_0000 -> PA d000_0000 (PCI2.3 MEM) */
109
110        li      t0, PM_64MB
111        mtc0    t0, CP0_PAGE_MASK
112        li      t0, PCI_MEM_WIN_BASE
113        mtc0    t0, CP0_ENTRY_HI
114        li      t0, ENTRYLO_UNCACHED(CPU2PCI_CPU_PHYS_MEM_WIN_BASE)
115        mtc0    t0, CP0_ENTRY_LO_0
116        li      t0, ENTRYLO_UNCACHED(CPU2PCI_CPU_PHYS_MEM_WIN_BASE + OFFS_64MB)
117        mtc0    t0, CP0_ENTRY_LO_1
118        li      t0, 1
119        mtc0    t0, CP0_INDEX
120        BARRIER
121        tlbwi
122        BARRIER
123
124        /* set up 2x 64MB uncached mappings: VA d800_0000 -> PA d800_0000 (PCI2.3 MEM) */
125
126        li      t0, PM_64MB
127        mtc0    t0, CP0_PAGE_MASK
128        li      t0, (PCI_MEM_WIN_BASE + OFFS_128MB)
129        mtc0    t0, CP0_ENTRY_HI
130        li      t0, ENTRYLO_UNCACHED(CPU2PCI_CPU_PHYS_MEM_WIN_BASE  + OFFS_128MB)
131        mtc0    t0, CP0_ENTRY_LO_0
132        li      t0, ENTRYLO_UNCACHED(CPU2PCI_CPU_PHYS_MEM_WIN_BASE + OFFS_128MB + OFFS_64MB)
133        mtc0    t0, CP0_ENTRY_LO_1
134        li      t0, 2
135        mtc0    t0, CP0_INDEX
136        BARRIER
137        tlbwi
138        BARRIER
139
140        /* set up 64MB uncached mapping: VA f000_0000 -> PA f000_0000 (PCI2.3 IO) */
141
142        li      t0, PCI_IO_WIN_BASE
143        mtc0    t0, CP0_ENTRY_HI
144        li      t0, ENTRYLO_UNCACHED(PCI_IO_WIN_BASE)
145        mtc0    t0, CP0_ENTRY_LO_0
146        mtc0    zero, CP0_ENTRY_LO_1
147        li      t0, 3
148        mtc0    t0, CP0_INDEX
149        BARRIER
150        tlbwi
151        BARRIER
152
153        li      t0, 4
154        mtc0    t0, CP0_WIRED
155
156.set reorder
157        jr      ra
158        nop
159   
160END(init_tlb)       
161
162LEAF(map_dram1_to_mips)
163
164        /* set up 2x 64MB cached mappings: VA e000_0000 -> PA 9000_0000 (MEMC1) */
165
166        li      t0, PM_64MB
167        mtc0    t0, CP0_PAGE_MASK
168        li      t0, DRAM_VIRT_ADDR_START
169        mtc0    t0, CP0_ENTRY_HI
170        li      t0, ENTRYLO_CACHED(DRAM_PHYS_ADDR_START)
171        mtc0    t0, CP0_ENTRY_LO_0
172        li      t0, ENTRYLO_CACHED(DRAM_PHYS_ADDR_START + OFFS_64MB)
173        mtc0    t0, CP0_ENTRY_LO_1
174
175        mfc0    t0, CP0_WIRED
176        mtc0    t0, CP0_INDEX
177        addiu   t0, 1
178        mtc0    t0, CP0_WIRED
179        BARRIER
180        tlbwi
181        BARRIER
182
183        jr              ra
184        nop
185       
186END(map_dram1_to_mips)
187
188
Note: See TracBrowser for help on using the repository browser.