- Timestamp:
- 2005-06-03T13:17:05Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 70527f1
- Parents:
- dcbc8be
- Location:
- arch/ia32
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/_link.ld
rdcbc8be rac5d02b 13 13 14 14 SECTIONS { 15 .unmapped 0x8000: AT (0x8000) { 16 unmapped_ktext_start = .; 17 *(K_TEXT_START); 18 unmapped_ktext_end = .; 19 unmapped_kdata_start = .; 20 *(K_DATA_START); 21 unmapped_kdata_end = .; 22 } 23 24 .mapped (0x80000000+SIZEOF(.unmapped)+0x8000) : AT (0x8000+SIZEOF(.unmapped)) { 25 ktext_start = .; 26 *(.text); 27 ktext_end = .; 15 .unmapped 0x8000: AT (0x8000) { 16 unmapped_ktext_start = .; 17 *(K_TEXT_START); 18 unmapped_ktext_end = .; 19 unmapped_kdata_start = .; 20 *(K_DATA_START); 21 unmapped_kdata_end = .; 22 } 28 23 29 kdata_start = .; 30 *(.data); /* initialized data */ 31 *(.rodata*); /* string literals */ 32 *(COMMON); /* global variables */ 33 *(.bss); /* uninitialized static variables */ 34 *(K_DATA_END); 35 kdata_end = .; 36 } 24 .mapped (0x80000000+SIZEOF(.unmapped)+0x8000) : AT (0x8000+SIZEOF(.unmapped)) { 25 ktext_start = .; 26 *(.text); 27 ktext_end = .; 37 28 38 _hardcoded_ktext_size = ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start); 39 _hardcoded_kdata_size = kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start); 40 _hardcoded_load_address = 0x80008000; 29 kdata_start = .; 30 *(.data); /* initialized data */ 31 *(.rodata*); /* string literals */ 32 *(COMMON); /* global variables */ 33 *(.bss); /* uninitialized static variables */ 34 *(K_DATA_END); 35 kdata_end = .; 36 } 37 38 _hardcoded_ktext_size = ktext_end - ktext_start + (unmapped_ktext_end - unmapped_ktext_start); 39 _hardcoded_kdata_size = kdata_end - kdata_start + (unmapped_kdata_end - unmapped_kdata_start); 40 _hardcoded_load_address = 0x80008000; 41 41 42 42 } -
arch/ia32/include/mm/vm.h
rdcbc8be rac5d02b 38 38 39 39 #define UTEXT_ADDRESS_ARCH 0x00001000 40 #define USTACK_ADDRESS_ARCH (0x7fffffff UL-(PAGE_SIZE-1))40 #define USTACK_ADDRESS_ARCH (0x7fffffff-(PAGE_SIZE-1)) 41 41 #define UDATA_ADDRESS_ARCH 0x21000000 42 42 -
arch/ia32/src/asm.s
rdcbc8be rac5d02b 445 445 446 446 447 .section K_DATA_START447 #.section K_DATA_START 448 448 .global interrupt_handler_size 449 449 -
arch/ia32/src/drivers/ega.c
rdcbc8be rac5d02b 48 48 __u8 hi, lo; 49 49 50 map_page_to_frame( VIDEORAM, VIDEORAM, PAGE_NOT_CACHEABLE, 0);50 map_page_to_frame(PA2KA(VIDEORAM), VIDEORAM, PAGE_NOT_CACHEABLE, 0); 51 51 outb(0x3d4,0xe); 52 52 hi = inb(0x3d5); … … 59 59 void ega_display_char(char ch) 60 60 { 61 __u8 *vram = (__u8 *) VIDEORAM;61 __u8 *vram = (__u8 *) PA2KA(VIDEORAM); 62 62 63 63 vram[ega_cursor*2] = ch; … … 72 72 return; 73 73 74 memcopy( VIDEORAM + ROW*2, VIDEORAM, (SCREEN - ROW)*2);75 memsetw( VIDEORAM+ (SCREEN - ROW)*2, ROW, 0x0720);74 memcopy(PA2KA(VIDEORAM) + ROW*2, PA2KA(VIDEORAM), (SCREEN - ROW)*2); 75 memsetw(PA2KA(VIDEORAM) + (SCREEN - ROW)*2, ROW, 0x0720); 76 76 ega_cursor = ega_cursor - ROW; 77 77 } -
arch/ia32/src/mm/page.c
rdcbc8be rac5d02b 36 36 #include <arch/asm.h> 37 37 #include <synch/spinlock.h> 38 #include <debug.h> 38 39 39 40 /* … … 54 55 55 56 if (config.cpu_active == 1) { 56 dba = KA2PA(frame_alloc(FRAME_KA | FRAME_PANIC));57 dba = frame_alloc(FRAME_KA | FRAME_PANIC); 57 58 memsetb(dba, PAGE_SIZE, 0); 58 59 … … 69 70 70 71 trap_register(14, page_fault); 71 cpu_write_dba( dba);72 cpu_write_dba(KA2PA(dba)); 72 73 } 73 74 else { … … 82 83 dba = frame_alloc(FRAME_KA | FRAME_PANIC); 83 84 memcopy(bootstrap_dba, dba, PAGE_SIZE); 84 cpu_write_dba( dba);85 cpu_write_dba(KA2PA(dba)); 85 86 } 86 87 … … 122 123 * frame for the page table and clean it. 123 124 */ 124 newpt = KA2PA(frame_alloc(FRAME_KA));125 pd[pde].frame_address = newpt>> 12;125 newpt = frame_alloc(FRAME_KA); 126 pd[pde].frame_address = KA2PA(newpt) >> 12; 126 127 memsetb(newpt, PAGE_SIZE, 0); 127 128 pd[pde].present = 1; … … 129 130 } 130 131 if (copy) { 131 newpt = KA2PA(frame_alloc(FRAME_KA));132 newpt = frame_alloc(FRAME_KA); 132 133 memcopy(pd[pde].frame_address << 12, newpt, PAGE_SIZE); 133 pd[pde].frame_address = newpt>> 12;134 pd[pde].frame_address = KA2PA(newpt) >> 12; 134 135 } 135 136 -
arch/ia32/src/userspace.c
rdcbc8be rac5d02b 53 53 "pushl %4\n" 54 54 "iret" 55 : : "i" (selector(UDATA_DES) | PL_USER), "i" (USTACK_ADDRESS+ THREAD_STACK_SIZE-1000), "r" (pri), "i" (selector(UTEXT_DES) | PL_USER), "i" (UTEXT_ADDRESS));55 : : "i" (selector(UDATA_DES) | PL_USER), "i" (USTACK_ADDRESS+(THREAD_STACK_SIZE-1)), "r" (pri), "i" (selector(UTEXT_DES) | PL_USER), "i" (UTEXT_ADDRESS)); 56 56 57 57 /* Unreachable */
Note:
See TracChangeset
for help on using the changeset viewer.