diff options
author | Jonas Bonn <jonas@southpole.se> | 2011-06-04 14:52:05 -0400 |
---|---|---|
committer | Jonas Bonn <jonas@southpole.se> | 2011-07-22 12:46:30 -0400 |
commit | f8c4a270d9330a2bc179aeef0a22ea1ed288fb50 (patch) | |
tree | 0365f38871a6999e5b01587a337adcc21d4c51ce /arch/openrisc/kernel | |
parent | ac689eb7f9d4e270d1365853b82eece669387e2c (diff) |
OpenRISC: Build infrastructure
Signed-off-by: Jonas Bonn <jonas@southpole.se>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/openrisc/kernel')
-rw-r--r-- | arch/openrisc/kernel/Makefile | 14 | ||||
-rw-r--r-- | arch/openrisc/kernel/vmlinux.lds.S | 115 |
2 files changed, 129 insertions, 0 deletions
diff --git a/arch/openrisc/kernel/Makefile b/arch/openrisc/kernel/Makefile new file mode 100644 index 000000000000..9a4c2706d795 --- /dev/null +++ b/arch/openrisc/kernel/Makefile | |||
@@ -0,0 +1,14 @@ | |||
1 | # | ||
2 | # Makefile for the linux kernel. | ||
3 | # | ||
4 | |||
5 | extra-y := head.o vmlinux.lds init_task.o | ||
6 | |||
7 | obj-y := setup.o idle.o or32_ksyms.o process.o dma.o \ | ||
8 | traps.o time.o irq.o entry.o ptrace.o signal.o sys_or32.o \ | ||
9 | sys_call_table.o | ||
10 | |||
11 | obj-$(CONFIG_MODULES) += module.o | ||
12 | obj-$(CONFIG_OF) += prom.o | ||
13 | |||
14 | clean: | ||
diff --git a/arch/openrisc/kernel/vmlinux.lds.S b/arch/openrisc/kernel/vmlinux.lds.S new file mode 100644 index 000000000000..2d69a853b742 --- /dev/null +++ b/arch/openrisc/kernel/vmlinux.lds.S | |||
@@ -0,0 +1,115 @@ | |||
1 | /* | ||
2 | * OpenRISC vmlinux.lds.S | ||
3 | * | ||
4 | * Linux architectural port borrowing liberally from similar works of | ||
5 | * others. All original copyrights apply as per the original source | ||
6 | * declaration. | ||
7 | * | ||
8 | * Modifications for the OpenRISC architecture: | ||
9 | * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com> | ||
10 | * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version | ||
15 | * 2 of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * ld script for OpenRISC architecture | ||
18 | */ | ||
19 | |||
20 | /* TODO | ||
21 | * - clean up __offset & stuff | ||
22 | * - change all 8192 aligment to PAGE !!! | ||
23 | * - recheck if all aligments are really needed | ||
24 | */ | ||
25 | |||
26 | # define LOAD_OFFSET PAGE_OFFSET | ||
27 | # define LOAD_BASE PAGE_OFFSET | ||
28 | |||
29 | #include <asm/page.h> | ||
30 | #include <asm/cache.h> | ||
31 | #include <asm-generic/vmlinux.lds.h> | ||
32 | |||
33 | OUTPUT_FORMAT("elf32-or32", "elf32-or32", "elf32-or32") | ||
34 | jiffies = jiffies_64 + 4; | ||
35 | |||
36 | SECTIONS | ||
37 | { | ||
38 | /* Read-only sections, merged into text segment: */ | ||
39 | . = LOAD_BASE ; | ||
40 | |||
41 | /* _s_kernel_ro must be page aligned */ | ||
42 | . = ALIGN(PAGE_SIZE); | ||
43 | _s_kernel_ro = .; | ||
44 | |||
45 | .text : AT(ADDR(.text) - LOAD_OFFSET) | ||
46 | { | ||
47 | _stext = .; | ||
48 | TEXT_TEXT | ||
49 | SCHED_TEXT | ||
50 | LOCK_TEXT | ||
51 | KPROBES_TEXT | ||
52 | IRQENTRY_TEXT | ||
53 | *(.fixup) | ||
54 | *(.text.__*) | ||
55 | _etext = .; | ||
56 | } | ||
57 | /* TODO: Check if fixup and text.__* are really necessary | ||
58 | * fixup is definitely necessary | ||
59 | */ | ||
60 | |||
61 | _sdata = .; | ||
62 | |||
63 | /* Page alignment required for RO_DATA_SECTION */ | ||
64 | RO_DATA_SECTION(PAGE_SIZE) | ||
65 | _e_kernel_ro = .; | ||
66 | |||
67 | /* Whatever comes after _e_kernel_ro had better be page-aligend, too */ | ||
68 | |||
69 | /* 32 here is cacheline size... recheck this */ | ||
70 | RW_DATA_SECTION(32, PAGE_SIZE, PAGE_SIZE) | ||
71 | |||
72 | _edata = .; | ||
73 | |||
74 | EXCEPTION_TABLE(4) | ||
75 | NOTES | ||
76 | |||
77 | /* Init code and data */ | ||
78 | . = ALIGN(PAGE_SIZE); | ||
79 | __init_begin = .; | ||
80 | |||
81 | HEAD_TEXT_SECTION | ||
82 | |||
83 | /* Page aligned */ | ||
84 | INIT_TEXT_SECTION(PAGE_SIZE) | ||
85 | |||
86 | /* Align __setup_start on 16 byte boundary */ | ||
87 | INIT_DATA_SECTION(16) | ||
88 | |||
89 | PERCPU_SECTION(L1_CACHE_BYTES) | ||
90 | |||
91 | __init_end = .; | ||
92 | |||
93 | . = ALIGN(PAGE_SIZE); | ||
94 | .initrd : AT(ADDR(.initrd) - LOAD_OFFSET) | ||
95 | { | ||
96 | __initrd_start = .; | ||
97 | *(.initrd) | ||
98 | __initrd_end = .; | ||
99 | FILL (0); | ||
100 | . = ALIGN (PAGE_SIZE); | ||
101 | } | ||
102 | |||
103 | __vmlinux_end = .; /* last address of the physical file */ | ||
104 | |||
105 | BSS_SECTION(0, 0, 0x20) | ||
106 | |||
107 | _end = .; | ||
108 | |||
109 | /* Throw in the debugging sections */ | ||
110 | STABS_DEBUG | ||
111 | DWARF_DEBUG | ||
112 | |||
113 | /* Sections to be discarded -- must be last */ | ||
114 | DISCARDS | ||
115 | } | ||