Changeset 3a0a4d8 in mainline for kernel/arch/mips32
- Timestamp:
- 2013-09-12T07:54:05Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 95027b5
- Parents:
- 47f5a77 (diff), 64f3d3b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- kernel/arch/mips32
- Files:
-
- 3 edited
-
include/arch/mm/page.h (modified) (3 diffs)
-
src/mach/malta/malta.c (modified) (1 diff)
-
src/mm/tlb.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/include/arch/mm/page.h
r47f5a77 r3a0a4d8 27 27 */ 28 28 29 /** @addtogroup mips32mm 29 /** @addtogroup mips32mm 30 30 * @{ 31 31 */ … … 70 70 * - PTL3 has 4096 entries (12 bits) 71 71 */ 72 72 73 73 /* Macros describing number of entries in each level. */ 74 #define PTL0_ENTRIES_ARCH 6475 #define PTL1_ENTRIES_ARCH 076 #define PTL2_ENTRIES_ARCH 077 #define PTL3_ENTRIES_ARCH 409674 #define PTL0_ENTRIES_ARCH 64 75 #define PTL1_ENTRIES_ARCH 0 76 #define PTL2_ENTRIES_ARCH 0 77 #define PTL3_ENTRIES_ARCH 4096 78 78 79 79 /* Macros describing size of page tables in each level. */ 80 #define PTL0_ SIZE_ARCH ONE_FRAME81 #define PTL1_ SIZE_ARCH 082 #define PTL2_ SIZE_ARCH 083 #define PTL3_ SIZE_ARCH ONE_FRAME80 #define PTL0_FRAMES_ARCH 1 81 #define PTL1_FRAMES_ARCH 1 82 #define PTL2_FRAMES_ARCH 1 83 #define PTL3_FRAMES_ARCH 1 84 84 85 85 /* Macros calculating entry indices for each level. */ 86 #define PTL0_INDEX_ARCH(vaddr) ((vaddr) >> 26)87 #define PTL1_INDEX_ARCH(vaddr) 088 #define PTL2_INDEX_ARCH(vaddr) 089 #define PTL3_INDEX_ARCH(vaddr) (((vaddr) >> 14) & 0xfff)86 #define PTL0_INDEX_ARCH(vaddr) ((vaddr) >> 26) 87 #define PTL1_INDEX_ARCH(vaddr) 0 88 #define PTL2_INDEX_ARCH(vaddr) 0 89 #define PTL3_INDEX_ARCH(vaddr) (((vaddr) >> 14) & 0xfff) 90 90 91 91 /* Set accessor for PTL0 address. */ 92 92 #define SET_PTL0_ADDRESS_ARCH(ptl0) 93 93 94 /* Get PTE address accessors for each level. */ 94 /* Get PTE address accessors for each level. */ 95 95 #define GET_PTL1_ADDRESS_ARCH(ptl0, i) \ 96 96 (((pte_t *) (ptl0))[(i)].pfn << 12) … … 196 196 p->p = 1; 197 197 } 198 199 198 200 199 extern void page_arch_init(void); -
kernel/arch/mips32/src/mach/malta/malta.c
r47f5a77 r3a0a4d8 103 103 void malta_input_init(void) 104 104 { 105 (void) stdin_wire(); 105 106 } 106 107 -
kernel/arch/mips32/src/mm/tlb.c
r47f5a77 r3a0a4d8 48 48 #include <symtab.h> 49 49 50 #define PFN_SHIFT 12 51 #define VPN_SHIFT 12 52 #define ADDR2VPN(a) ((a) >> VPN_SHIFT) 53 #define ADDR2VPN2(a) (ADDR2VPN((a)) >> 1) 54 #define VPN2ADDR(vpn) ((vpn) << VPN_SHIFT) 55 #define VPN22ADDR(vpn2) (VPN2ADDR(vpn2) << 1) 56 #define PFN2ADDR(pfn) ((pfn) << PFN_SHIFT) 57 58 #define BANK_SELECT_BIT(a) (((a) >> PAGE_WIDTH) & 1) 59 50 #define PFN_SHIFT 12 51 #define VPN_SHIFT 12 52 53 #define ADDR2HI_VPN(a) ((a) >> VPN_SHIFT) 54 #define ADDR2HI_VPN2(a) (ADDR2HI_VPN((a)) >> 1) 55 56 #define HI_VPN2ADDR(vpn) ((vpn) << VPN_SHIFT) 57 #define HI_VPN22ADDR(vpn2) (HI_VPN2ADDR(vpn2) << 1) 58 59 #define LO_PFN2ADDR(pfn) ((pfn) << PFN_SHIFT) 60 61 #define BANK_SELECT_BIT(a) (((a) >> PAGE_WIDTH) & 1) 60 62 61 63 /** Initialize TLB. … … 266 268 { 267 269 hi->value = 0; 268 hi->vpn2 = ADDR2 VPN2(ALIGN_DOWN(addr, PAGE_SIZE));270 hi->vpn2 = ADDR2HI_VPN2(ALIGN_DOWN(addr, PAGE_SIZE)); 269 271 hi->asid = asid; 270 272 } … … 295 297 296 298 printf("%-4u %-6u %0#10x %-#6x %1u%1u%1u%1u %0#10x\n", 297 i, hi.asid, VPN22ADDR(hi.vpn2), mask.mask,298 lo0.g, lo0.v, lo0.d, lo0.c, PFN2ADDR(lo0.pfn));299 i, hi.asid, HI_VPN22ADDR(hi.vpn2), mask.mask, 300 lo0.g, lo0.v, lo0.d, lo0.c, LO_PFN2ADDR(lo0.pfn)); 299 301 printf(" %1u%1u%1u%1u %0#10x\n", 300 lo1.g, lo1.v, lo1.d, lo1.c, PFN2ADDR(lo1.pfn));302 lo1.g, lo1.v, lo1.d, lo1.c, LO_PFN2ADDR(lo1.pfn)); 301 303 } 302 304
Note:
See TracChangeset
for help on using the changeset viewer.
