source: mainline/arch/ia32/_link.ld@ ac5d02b

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since ac5d02b was ac5d02b, checked in by Jakub Jermar <jakub@…>, 20 years ago

IA-32 fixes.
Use kernel addresses instead of physical addresses in map_page_to_frame().
Physical addresses are supposed to only be exported to mm hardware.
Because of this fix, userspace is functional again.

Remap EGA videoram to (0x80000000 + videoram) and change the ega driver to work with the new address.

Minor cosmetics through out the code.
Changes in linker scripts.

  • Property mode set to 100644
File size: 961 bytes
Line 
1/** IA-32 linker script
2 *
3 * umapped section:
4 * kernel text
5 * kernel data
6 * mapped section:
7 * kernel text
8 * kernel data
9 */
10
11OUTPUT_FORMAT(binary)
12ENTRY(kernel_image_start)
13
14SECTIONS {
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 = .;
28
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
42}
Note: See TracBrowser for help on using the repository browser.