diff options
| -rw-r--r-- | arch/microblaze/kernel/vmlinux.lds.S | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S index b76c17c9ae41..dbb98f830f3e 100644 --- a/arch/microblaze/kernel/vmlinux.lds.S +++ b/arch/microblaze/kernel/vmlinux.lds.S | |||
| @@ -12,15 +12,15 @@ OUTPUT_FORMAT("elf32-microblaze", "elf32-microblaze", "elf32-microblaze") | |||
| 12 | OUTPUT_ARCH(microblaze) | 12 | OUTPUT_ARCH(microblaze) |
| 13 | ENTRY(_start) | 13 | ENTRY(_start) |
| 14 | 14 | ||
| 15 | #include <asm-generic/vmlinux.lds.h> | ||
| 16 | #include <asm/page.h> | 15 | #include <asm/page.h> |
| 16 | #include <asm-generic/vmlinux.lds.h> | ||
| 17 | #include <asm/thread_info.h> | 17 | #include <asm/thread_info.h> |
| 18 | 18 | ||
| 19 | jiffies = jiffies_64 + 4; | 19 | jiffies = jiffies_64 + 4; |
| 20 | 20 | ||
| 21 | SECTIONS { | 21 | SECTIONS { |
| 22 | . = CONFIG_KERNEL_START; | 22 | . = CONFIG_KERNEL_START; |
| 23 | .text : { | 23 | .text : AT(ADDR(.text) - LOAD_OFFSET) { |
| 24 | _text = . ; | 24 | _text = . ; |
| 25 | _stext = . ; | 25 | _stext = . ; |
| 26 | *(.text .text.*) | 26 | *(.text .text.*) |
| @@ -35,9 +35,12 @@ SECTIONS { | |||
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | . = ALIGN (4) ; | 37 | . = ALIGN (4) ; |
| 38 | _fdt_start = . ; /* place for fdt blob */ | 38 | __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) { |
| 39 | . = . + 0x4000; | 39 | _fdt_start = . ; /* place for fdt blob */ |
| 40 | _fdt_end = . ; | 40 | *(__fdt_blob) ; /* Any link-placed DTB */ |
| 41 | . = _fdt_start + 0x4000; /* Pad up to 16kbyte */ | ||
| 42 | _fdt_end = . ; | ||
| 43 | } | ||
| 41 | 44 | ||
| 42 | . = ALIGN(16); | 45 | . = ALIGN(16); |
| 43 | RODATA | 46 | RODATA |
| @@ -47,7 +50,7 @@ SECTIONS { | |||
| 47 | * sdata2 section can go anywhere, but must be word aligned | 50 | * sdata2 section can go anywhere, but must be word aligned |
| 48 | * and SDA2_BASE must point to the middle of it | 51 | * and SDA2_BASE must point to the middle of it |
| 49 | */ | 52 | */ |
| 50 | .sdata2 : { | 53 | .sdata2 : AT(ADDR(.sdata2) - LOAD_OFFSET) { |
| 51 | _ssrw = .; | 54 | _ssrw = .; |
| 52 | . = ALIGN(4096); /* page aligned when MMU used - origin 0x8 */ | 55 | . = ALIGN(4096); /* page aligned when MMU used - origin 0x8 */ |
| 53 | *(.sdata2) | 56 | *(.sdata2) |
| @@ -68,12 +71,12 @@ SECTIONS { | |||
| 68 | 71 | ||
| 69 | /* Under the microblaze ABI, .sdata and .sbss must be contiguous */ | 72 | /* Under the microblaze ABI, .sdata and .sbss must be contiguous */ |
| 70 | . = ALIGN(8); | 73 | . = ALIGN(8); |
| 71 | .sdata : { | 74 | .sdata : AT(ADDR(.sdata) - LOAD_OFFSET) { |
| 72 | _ssro = .; | 75 | _ssro = .; |
| 73 | *(.sdata) | 76 | *(.sdata) |
| 74 | } | 77 | } |
| 75 | 78 | ||
| 76 | .sbss : { | 79 | .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { |
| 77 | _ssbss = .; | 80 | _ssbss = .; |
| 78 | *(.sbss) | 81 | *(.sbss) |
| 79 | _esbss = .; | 82 | _esbss = .; |
| @@ -86,26 +89,26 @@ SECTIONS { | |||
| 86 | 89 | ||
| 87 | INIT_TEXT_SECTION(PAGE_SIZE) | 90 | INIT_TEXT_SECTION(PAGE_SIZE) |
| 88 | 91 | ||
| 89 | .init.data : { | 92 | .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { |
| 90 | INIT_DATA | 93 | INIT_DATA |
| 91 | } | 94 | } |
| 92 | 95 | ||
| 93 | . = ALIGN(4); | 96 | . = ALIGN(4); |
| 94 | .init.ivt : { | 97 | .init.ivt : AT(ADDR(.init.ivt) - LOAD_OFFSET) { |
| 95 | __ivt_start = .; | 98 | __ivt_start = .; |
| 96 | *(.init.ivt) | 99 | *(.init.ivt) |
| 97 | __ivt_end = .; | 100 | __ivt_end = .; |
| 98 | } | 101 | } |
| 99 | 102 | ||
| 100 | .init.setup : { | 103 | .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { |
| 101 | INIT_SETUP(0) | 104 | INIT_SETUP(0) |
| 102 | } | 105 | } |
| 103 | 106 | ||
| 104 | .initcall.init : { | 107 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET ) { |
| 105 | INIT_CALLS | 108 | INIT_CALLS |
| 106 | } | 109 | } |
| 107 | 110 | ||
| 108 | .con_initcall.init : { | 111 | .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { |
| 109 | CON_INITCALL | 112 | CON_INITCALL |
| 110 | } | 113 | } |
| 111 | 114 | ||
| @@ -113,7 +116,7 @@ SECTIONS { | |||
| 113 | 116 | ||
| 114 | __init_end_before_initramfs = .; | 117 | __init_end_before_initramfs = .; |
| 115 | 118 | ||
| 116 | .init.ramfs ALIGN(4096) : { | 119 | .init.ramfs ALIGN(4096) : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { |
| 117 | __initramfs_start = .; | 120 | __initramfs_start = .; |
| 118 | *(.init.ramfs) | 121 | *(.init.ramfs) |
| 119 | __initramfs_end = .; | 122 | __initramfs_end = .; |
| @@ -129,7 +132,8 @@ SECTIONS { | |||
| 129 | } | 132 | } |
| 130 | __init_end = .; | 133 | __init_end = .; |
| 131 | 134 | ||
| 132 | .bss ALIGN (4096) : { /* page aligned when MMU used */ | 135 | .bss ALIGN (4096) : AT(ADDR(.bss) - LOAD_OFFSET) { |
| 136 | /* page aligned when MMU used */ | ||
| 133 | __bss_start = . ; | 137 | __bss_start = . ; |
| 134 | *(.bss*) | 138 | *(.bss*) |
| 135 | *(COMMON) | 139 | *(COMMON) |
