diff options
Diffstat (limited to 'arch/sh/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/sh/kernel/vmlinux.lds.S | 42 |
1 files changed, 12 insertions, 30 deletions
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index a1e4ec24f1f5..7f8a709c3ada 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S | |||
@@ -3,7 +3,7 @@ | |||
3 | * Written by Niibe Yutaka and Paul Mundt | 3 | * Written by Niibe Yutaka and Paul Mundt |
4 | */ | 4 | */ |
5 | #ifdef CONFIG_SUPERH64 | 5 | #ifdef CONFIG_SUPERH64 |
6 | #define LOAD_OFFSET CONFIG_PAGE_OFFSET | 6 | #define LOAD_OFFSET PAGE_OFFSET |
7 | OUTPUT_ARCH(sh:sh5) | 7 | OUTPUT_ARCH(sh:sh5) |
8 | #else | 8 | #else |
9 | #define LOAD_OFFSET 0 | 9 | #define LOAD_OFFSET 0 |
@@ -14,17 +14,16 @@ OUTPUT_ARCH(sh) | |||
14 | #include <asm/cache.h> | 14 | #include <asm/cache.h> |
15 | #include <asm/vmlinux.lds.h> | 15 | #include <asm/vmlinux.lds.h> |
16 | 16 | ||
17 | #ifdef CONFIG_PMB | ||
18 | #define MEMORY_OFFSET 0 | ||
19 | #else | ||
20 | #define MEMORY_OFFSET __MEMORY_START | ||
21 | #endif | ||
22 | |||
17 | ENTRY(_start) | 23 | ENTRY(_start) |
18 | SECTIONS | 24 | SECTIONS |
19 | { | 25 | { |
20 | #ifdef CONFIG_PMB_FIXED | 26 | . = PAGE_OFFSET + MEMORY_OFFSET + CONFIG_ZERO_PAGE_OFFSET; |
21 | . = CONFIG_PAGE_OFFSET + (CONFIG_MEMORY_START & 0x1fffffff) + | ||
22 | CONFIG_ZERO_PAGE_OFFSET; | ||
23 | #elif defined(CONFIG_32BIT) | ||
24 | . = CONFIG_PAGE_OFFSET + CONFIG_ZERO_PAGE_OFFSET; | ||
25 | #else | ||
26 | . = CONFIG_PAGE_OFFSET + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET; | ||
27 | #endif | ||
28 | 27 | ||
29 | _text = .; /* Text and read-only data */ | 28 | _text = .; /* Text and read-only data */ |
30 | 29 | ||
@@ -35,12 +34,7 @@ SECTIONS | |||
35 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | 34 | .text : AT(ADDR(.text) - LOAD_OFFSET) { |
36 | HEAD_TEXT | 35 | HEAD_TEXT |
37 | TEXT_TEXT | 36 | TEXT_TEXT |
38 | 37 | EXTRA_TEXT | |
39 | #ifdef CONFIG_SUPERH64 | ||
40 | *(.text64) | ||
41 | *(.text..SHmedia32) | ||
42 | #endif | ||
43 | |||
44 | SCHED_TEXT | 38 | SCHED_TEXT |
45 | LOCK_TEXT | 39 | LOCK_TEXT |
46 | KPROBES_TEXT | 40 | KPROBES_TEXT |
@@ -51,24 +45,12 @@ SECTIONS | |||
51 | } = 0x0009 | 45 | } = 0x0009 |
52 | 46 | ||
53 | EXCEPTION_TABLE(16) | 47 | EXCEPTION_TABLE(16) |
54 | |||
55 | NOTES | 48 | NOTES |
56 | RO_DATA(PAGE_SIZE) | ||
57 | |||
58 | /* | ||
59 | * Code which must be executed uncached and the associated data | ||
60 | */ | ||
61 | . = ALIGN(PAGE_SIZE); | ||
62 | .uncached : AT(ADDR(.uncached) - LOAD_OFFSET) { | ||
63 | __uncached_start = .; | ||
64 | *(.uncached.text) | ||
65 | *(.uncached.data) | ||
66 | __uncached_end = .; | ||
67 | } | ||
68 | 49 | ||
50 | _sdata = .; | ||
51 | RO_DATA(PAGE_SIZE) | ||
69 | RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) | 52 | RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) |
70 | 53 | _edata = .; | |
71 | _edata = .; /* End of data section */ | ||
72 | 54 | ||
73 | DWARF_EH_FRAME | 55 | DWARF_EH_FRAME |
74 | 56 | ||