X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=pcboot.ld;h=6a2390fa3b1a3659ff76f8bbb4d904e156358da0;hp=f6291245002a03e2c67380a968e9f4f43a9abac7;hb=f9194c22d8073b69b3e64fc26b9e245b6b54d009;hpb=e5b5905eb3134a409638a5a20462000ef159e1e6 diff --git a/pcboot.ld b/pcboot.ld index f629124..6a2390f 100644 --- a/pcboot.ld +++ b/pcboot.ld @@ -1,10 +1,28 @@ OUTPUT_ARCH(i386) SECTIONS { - /* BIOS will load us at 0x7c000h */ - . = 0x7c000; + /* BIOS loads the boot code at 0000:7c00 */ + . = 0x7c00; .boot : { * (.boot); } + + /* second stage boot loader */ + .boot2 : { + * (.boot2); + * (.lowtext); + /* .bootend must stay last */ + * (.bootend); + /* pad the boot loader to the next sector boundary */ + . = ALIGN(512); + } + _boot2_size = SIZEOF(.boot2); + + /* main program will be loaded at 1MB by the second stage + * boot loader + */ + . = 1M; + _main_start = .; + .startup : { * (.startup); } .text : { * (.text); } .rodata : { * (.rodata); } @@ -18,5 +36,6 @@ SECTIONS { } _bss_size = SIZEOF(.bss); + _main_size = . - _main_start; _mem_start = .; }