Changeset b0c2075 in mainline for kernel/arch
- Timestamp:
- 2013-09-10T17:48:57Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 85147f3
- Parents:
- 86733f3
- Location:
- kernel/arch
- Files:
-
- 12 edited
-
abs32le/include/arch/mm/page.h (modified) (1 diff)
-
amd64/include/arch/mm/page.h (modified) (1 diff)
-
arm32/include/arch/mm/page.h (modified) (1 diff)
-
arm32/src/mm/page.c (modified) (1 diff)
-
arm32/src/ras.c (modified) (1 diff)
-
ia32/include/arch/mm/page.h (modified) (1 diff)
-
ia64/src/mm/vhpt.c (modified) (2 diffs)
-
mips32/include/arch/mm/page.h (modified) (1 diff)
-
mips32/src/mm/tlb.c (modified) (3 diffs)
-
ppc32/include/arch/mm/page.h (modified) (1 diff)
-
sparc64/src/mm/sun4u/as.c (modified) (1 diff)
-
sparc64/src/mm/sun4v/as.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/abs32le/include/arch/mm/page.h
r86733f3 rb0c2075 57 57 58 58 /* Page table sizes for each level. */ 59 #define PTL0_ SIZE_ARCH ONE_FRAME60 #define PTL1_ SIZE_ARCH 061 #define PTL2_ SIZE_ARCH 062 #define PTL3_ SIZE_ARCH ONE_FRAME59 #define PTL0_FRAMES_ARCH 1 60 #define PTL1_FRAMES_ARCH 1 61 #define PTL2_FRAMES_ARCH 1 62 #define PTL3_FRAMES_ARCH 1 63 63 64 64 /* Macros calculating indices for each level. */ -
kernel/arch/amd64/include/arch/mm/page.h
r86733f3 rb0c2075 61 61 62 62 /* Page table sizes for each level. */ 63 #define PTL0_ SIZE_ARCH ONE_FRAME64 #define PTL1_ SIZE_ARCH ONE_FRAME65 #define PTL2_ SIZE_ARCH ONE_FRAME66 #define PTL3_ SIZE_ARCH ONE_FRAME63 #define PTL0_FRAMES_ARCH 1 64 #define PTL1_FRAMES_ARCH 1 65 #define PTL2_FRAMES_ARCH 1 66 #define PTL3_FRAMES_ARCH 1 67 67 68 68 /* Macros calculating indices into page tables in each level. */ -
kernel/arch/arm32/include/arch/mm/page.h
r86733f3 rb0c2075 73 73 74 74 /* Page table sizes for each level. */ 75 #define PTL0_ SIZE_ARCH FOUR_FRAMES76 #define PTL1_ SIZE_ARCH 077 #define PTL2_ SIZE_ARCH 078 #define PTL3_ SIZE_ARCH ONE_FRAME75 #define PTL0_FRAMES_ARCH 4 76 #define PTL1_FRAMES_ARCH 1 77 #define PTL2_FRAMES_ARCH 1 78 #define PTL3_FRAMES_ARCH 1 79 79 80 80 /* Macros calculating indices into page tables for each level. */ -
kernel/arch/arm32/src/mm/page.c
r86733f3 rb0c2075 69 69 #ifdef HIGH_EXCEPTION_VECTORS 70 70 /* Create mapping for exception table at high offset */ 71 uintptr_t ev_frame = frame_alloc( ONE_FRAME, FRAME_NONE, 0);71 uintptr_t ev_frame = frame_alloc(1, FRAME_NONE, 0); 72 72 page_mapping_insert(AS_KERNEL, EXC_BASE_ADDRESS, ev_frame, flags); 73 73 #else -
kernel/arch/arm32/src/ras.c
r86733f3 rb0c2075 51 51 void ras_init(void) 52 52 { 53 uintptr_t frame = frame_alloc(ONE_FRAME,54 FRAME_ATOMIC | FRAME_HIGHMEM, 0);53 uintptr_t frame = 54 frame_alloc(1, FRAME_ATOMIC | FRAME_HIGHMEM, 0); 55 55 if (!frame) 56 frame = frame_alloc( ONE_FRAME, FRAME_LOWMEM, 0);56 frame = frame_alloc(1, FRAME_LOWMEM, 0); 57 57 58 58 ras_page = (uintptr_t *) km_map(frame, -
kernel/arch/ia32/include/arch/mm/page.h
r86733f3 rb0c2075 66 66 67 67 /* Page table sizes for each level. */ 68 #define PTL0_ SIZE_ARCH ONE_FRAME69 #define PTL1_ SIZE_ARCH 070 #define PTL2_ SIZE_ARCH 071 #define PTL3_ SIZE_ARCH ONE_FRAME68 #define PTL0_FRAMES_ARCH 1 69 #define PTL1_FRAMES_ARCH 1 70 #define PTL2_FRAMES_ARCH 1 71 #define PTL3_FRAMES_ARCH 1 72 72 73 73 /* Macros calculating indices for each level. */ -
kernel/arch/ia64/src/mm/vhpt.c
r86733f3 rb0c2075 42 42 uintptr_t vhpt_set_up(void) 43 43 { 44 vhpt_base = (vhpt_entry_t *) PA2KA(frame_alloc(VHPT_WIDTH - FRAME_WIDTH,45 FRAME_ATOMIC, 0));44 vhpt_base = (vhpt_entry_t *) 45 PA2KA(frame_alloc(SIZE2FRAMES(VHPT_SIZE), FRAME_ATOMIC, 0)); 46 46 if (!vhpt_base) 47 47 panic("Kernel configured with VHPT but no memory for table."); … … 83 83 void vhpt_invalidate_all() 84 84 { 85 memsetb(vhpt_base, 1 << VHPT_WIDTH, 0);85 memsetb(vhpt_base, VHPT_SIZE, 0); 86 86 } 87 87 -
kernel/arch/mips32/include/arch/mm/page.h
r86733f3 rb0c2075 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. */ -
kernel/arch/mips32/src/mm/tlb.c
r86733f3 rb0c2075 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 -
kernel/arch/ppc32/include/arch/mm/page.h
r86733f3 rb0c2075 70 70 71 71 /* Page table sizes for each level. */ 72 #define PTL0_ SIZE_ARCH ONE_FRAME73 #define PTL1_ SIZE_ARCH 074 #define PTL2_ SIZE_ARCH 075 #define PTL3_ SIZE_ARCH ONE_FRAME72 #define PTL0_FRAMES_ARCH 1 73 #define PTL1_FRAMES_ARCH 1 74 #define PTL2_FRAMES_ARCH 1 75 #define PTL3_FRAMES_ARCH 1 76 76 77 77 /* Macros calculating indices into page tables on each level. */ -
kernel/arch/sparc64/src/mm/sun4u/as.c
r86733f3 rb0c2075 63 63 { 64 64 #ifdef CONFIG_TSB 65 /* 66 * The order must be calculated with respect to the emulated 67 * 16K page size. 68 * 69 */ 70 uint8_t order = fnzb32(((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * 71 sizeof(tsb_entry_t)) >> FRAME_WIDTH); 72 73 uintptr_t tsb = PA2KA(frame_alloc(order, flags, 0)); 65 size_t frames = SIZE2FRAMES((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * 66 sizeof(tsb_entry_t)); 67 68 uintptr_t tsb = PA2KA(frame_alloc(frames, flags, 0)); 74 69 if (!tsb) 75 70 return -1; 76 71 77 72 as->arch.itsb = (tsb_entry_t *) tsb; 78 as->arch.dtsb = (tsb_entry_t *) (tsb + ITSB_ENTRY_COUNT *79 sizeof(tsb_entry_t));73 as->arch.dtsb = (tsb_entry_t *) (tsb + 74 ITSB_ENTRY_COUNT * sizeof(tsb_entry_t)); 80 75 81 76 memsetb(as->arch.itsb, -
kernel/arch/sparc64/src/mm/sun4v/as.c
r86733f3 rb0c2075 66 66 { 67 67 #ifdef CONFIG_TSB 68 uint8_t order = fnzb32(69 (TSB_ENTRY_COUNT * sizeof(tsb_entry_t)) >> FRAME_WIDTH);68 size_t frames = 69 SIZE2FRAMES(TSB_ENTRY_COUNT * sizeof(tsb_entry_t)); 70 70 71 uintptr_t tsb = frame_alloc( order, flags, 0);71 uintptr_t tsb = frame_alloc(frames, flags, 0); 72 72 if (!tsb) 73 73 return -1;
Note:
See TracChangeset
for help on using the changeset viewer.
