1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * setup.ld 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Linker script for the i386 setup code 5*4882a593Smuzhiyun */ 6*4882a593SmuzhiyunOUTPUT_FORMAT("elf32-i386") 7*4882a593SmuzhiyunOUTPUT_ARCH(i386) 8*4882a593SmuzhiyunENTRY(_start) 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunSECTIONS 11*4882a593Smuzhiyun{ 12*4882a593Smuzhiyun . = 0; 13*4882a593Smuzhiyun .bstext : { *(.bstext) } 14*4882a593Smuzhiyun .bsdata : { *(.bsdata) } 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun . = 495; 17*4882a593Smuzhiyun .header : { *(.header) } 18*4882a593Smuzhiyun .entrytext : { *(.entrytext) } 19*4882a593Smuzhiyun .inittext : { *(.inittext) } 20*4882a593Smuzhiyun .initdata : { *(.initdata) } 21*4882a593Smuzhiyun __end_init = .; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun .text : { *(.text .text.*) } 24*4882a593Smuzhiyun .text32 : { *(.text32) } 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun . = ALIGN(16); 27*4882a593Smuzhiyun .rodata : { *(.rodata*) } 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun .videocards : { 30*4882a593Smuzhiyun video_cards = .; 31*4882a593Smuzhiyun *(.videocards) 32*4882a593Smuzhiyun video_cards_end = .; 33*4882a593Smuzhiyun } 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun . = ALIGN(16); 36*4882a593Smuzhiyun .data : { *(.data*) } 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun .signature : { 39*4882a593Smuzhiyun setup_sig = .; 40*4882a593Smuzhiyun LONG(0x5a5aaa55) 41*4882a593Smuzhiyun } 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun . = ALIGN(16); 45*4882a593Smuzhiyun .bss : 46*4882a593Smuzhiyun { 47*4882a593Smuzhiyun __bss_start = .; 48*4882a593Smuzhiyun *(.bss) 49*4882a593Smuzhiyun __bss_end = .; 50*4882a593Smuzhiyun } 51*4882a593Smuzhiyun . = ALIGN(16); 52*4882a593Smuzhiyun _end = .; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun /DISCARD/ : { 55*4882a593Smuzhiyun *(.note*) 56*4882a593Smuzhiyun } 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun /* 59*4882a593Smuzhiyun * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility: 60*4882a593Smuzhiyun */ 61*4882a593Smuzhiyun . = ASSERT(_end <= 0x8000, "Setup too big!"); 62*4882a593Smuzhiyun . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!"); 63*4882a593Smuzhiyun /* Necessary for the very-old-loader check to work... */ 64*4882a593Smuzhiyun . = ASSERT(__end_init <= 5*512, "init sections too big!"); 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun} 67