Changeset 3fe58d3c in mainline for kernel/arch
- Timestamp:
- 2012-01-20T22:35:26Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e86b8f0
- Parents:
- 321052f7 (diff), 7943c43 (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
- Files:
-
- 3 edited
-
arm32/include/mm/km.h (modified) (1 diff)
-
arm32/src/mm/page.c (modified) (1 diff)
-
ia32/src/mm/frame.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/include/mm/km.h
r321052f7 r3fe58d3c 39 39 40 40 #define KM_ARM32_IDENTITY_START UINT32_C(0x80000000) 41 #define KM_ARM32_IDENTITY_SIZE UINT32_C(0x 40000000)41 #define KM_ARM32_IDENTITY_SIZE UINT32_C(0x70000000) 42 42 43 #define KM_ARM32_NON_IDENTITY_START UINT32_C(0xc0000000) 44 #define KM_ARM32_NON_IDENTITY_SIZE UINT32_C(0x40000000) 43 #define KM_ARM32_NON_IDENTITY_START UINT32_C(0xf0000000) 44 /* 45 * The last virtual megabyte contains the high exception vectors (0xFFFF0000). 46 * Do not include this range into kernel non-identity. 47 */ 48 #define KM_ARM32_NON_IDENTITY_SIZE UINT32_C(0x0ff00000) 45 49 46 50 extern void km_identity_arch_init(void); -
kernel/arch/arm32/src/mm/page.c
r321052f7 r3fe58d3c 65 65 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); 66 66 67 #ifdef HIGH_EXCEPTION_VECTORS 67 68 /* Create mapping for exception table at high offset */ 68 #ifdef HIGH_EXCEPTION_VECTORS 69 // XXX: fixme to use proper non-identity page 70 void *virtaddr = frame_alloc(ONE_FRAME, FRAME_KA); 71 page_mapping_insert(AS_KERNEL, EXC_BASE_ADDRESS, KA2PA(virtaddr), 72 flags); 69 uintptr_t ev_frame = (uintptr_t) frame_alloc(ONE_FRAME, FRAME_NONE); 70 page_mapping_insert(AS_KERNEL, EXC_BASE_ADDRESS, ev_frame, flags); 73 71 #else 74 72 #error "Only high exception vector supported now" 75 73 #endif 76 cur = ALIGN_DOWN(0x50008010, FRAME_SIZE);77 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);78 74 79 75 page_table_unlock(AS_KERNEL, true); -
kernel/arch/ia32/src/mm/frame.c
r321052f7 r3fe58d3c 54 54 55 55 for (i = 0; i < e820counter; i++) { 56 uintptr_t base = (uintptr_t) e820table[i].base_address; 57 size_t size = (size_t) e820table[i].size; 56 uint64_t base64 = e820table[i].base_address; 57 uint64_t size64 = e820table[i].size; 58 59 #ifdef KARCH_ia32 60 /* 61 * Restrict the e820 table entries to 32-bits. 62 */ 63 if (base64 >= 0x100000000ULL) 64 continue; 65 if (base64 + size64 > 0x100000000ULL) 66 size64 -= base64 + size64 - 0x100000000ULL; 67 #endif 68 69 uintptr_t base = (uintptr_t) base64; 70 size_t size = (size_t) size64; 58 71 59 72 if (!frame_adjust_zone_bounds(low, &base, &size))
Note:
See TracChangeset
for help on using the changeset viewer.
