Obsoleted by arch/i386/interface/pxe/pxe_call.c
[people/xl0/gpxe.git] / src / arch / i386 / core / etherboot.lds
1 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
2 OUTPUT_ARCH(i386)
3
4 ENTRY(_text)
5 SECTIONS {
6         . = ALIGN(16);
7         /* Start address of Etherboot in the virtual address space */
8         _virt_start = 0;
9         _text = . ;
10         .text.nocompress : {
11                 *(.text*.nocompress)
12                 . = ALIGN(16);
13         } = 0x9090
14
15         .text16 : {
16                 _text16 = .;
17                 *(.text16)
18                 *(.text16.*)
19                 _etext16 = . ;
20         }
21         .text.compress : {
22                 *(.text)
23                 *(.text.*)
24         } = 0x9090
25         .rodata : {
26                 . = ALIGN(4);
27                 *(.rodata)
28                 *(.rodata.*)
29         }
30         . = ALIGN(4);
31         .drivers.pci : {
32                 pci_drivers = . ;
33                 *(.drivers.pci);
34                 pci_drivers_end = . ;
35         }
36         . = ALIGN(4);
37         .drivers.isa : {
38                 isa_drivers = . ;
39                 *(.drivers.isa);
40                 isa_drivers_end = .;
41         }
42         _etext = . ;
43         _data = . ;
44         .data : {
45                 *(.data)
46                 *(.data.*)
47         }
48         _edata = . ;
49         _uncompressed_verbatim_end = . ;
50         . = ALIGN(16);
51         .bss.preserve : {
52                 *(.bss.preserve)
53                 *(.bss.preserve.*)
54         }
55         _bss = . ;
56         .bss : {
57                 *(.bss)
58                 *(.bss.*)
59         }
60         . = ALIGN(16);
61         _ebss = .;
62         _stack = . ;
63         .stack : {
64                 _stack_start = . ;
65                 *(.stack)
66                 *(.stack.*)
67                 _stack_end = . ;
68         }
69         _bss_size = _ebss - _bss;
70         _stack_offset = _stack - _text ;
71         _stack_offset_pgh = _stack_offset / 16 ;
72         _stack_size = _stack_end - _stack_start ;
73         . = ALIGN(16);
74         _end = . ;
75
76         /DISCARD/ : {
77                 *(.comment)
78                 *(.note)
79         }
80
81         /* PXE-specific symbol calculations.  The results of these are
82          * needed in romprefix.S, which is why they must be calculated
83          * here.
84          */
85         _pxe_stack_size = _pxe_stack_t_size
86                 + _pxe_callback_interface_size
87                 + _rm_callback_interface_size
88                 + _e820mangler_size + 15 ;
89
90 }