aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/score/include/asm/page.h3
-rw-r--r--arch/score/include/asm/thread_info.h15
-rw-r--r--arch/score/kernel/vmlinux.lds.S77
4 files changed, 21 insertions, 76 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index d8973ca86f2a..ed6cd99a57ba 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4465,7 +4465,7 @@ SCORE ARCHITECTURE
4465P: Chen Liqin 4465P: Chen Liqin
4466M: liqin.chen@sunplusct.com 4466M: liqin.chen@sunplusct.com
4467P: Lennox Wu 4467P: Lennox Wu
4468M: lennox.wu@sunplusct.com 4468M: lennox.wu@gmail.com
4469W: http://www.sunplusct.com 4469W: http://www.sunplusct.com
4470S: Supported 4470S: Supported
4471 4471
diff --git a/arch/score/include/asm/page.h b/arch/score/include/asm/page.h
index ee5821042fcc..d92a5a2d36d4 100644
--- a/arch/score/include/asm/page.h
+++ b/arch/score/include/asm/page.h
@@ -2,10 +2,11 @@
2#define _ASM_SCORE_PAGE_H 2#define _ASM_SCORE_PAGE_H
3 3
4#include <linux/pfn.h> 4#include <linux/pfn.h>
5#include <linux/const.h>
5 6
6/* PAGE_SHIFT determines the page size */ 7/* PAGE_SHIFT determines the page size */
7#define PAGE_SHIFT (12) 8#define PAGE_SHIFT (12)
8#define PAGE_SIZE (1UL << PAGE_SHIFT) 9#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
9#define PAGE_MASK (~(PAGE_SIZE-1)) 10#define PAGE_MASK (~(PAGE_SIZE-1))
10 11
11#ifdef __KERNEL__ 12#ifdef __KERNEL__
diff --git a/arch/score/include/asm/thread_info.h b/arch/score/include/asm/thread_info.h
index 3a1122885528..55939992c27d 100644
--- a/arch/score/include/asm/thread_info.h
+++ b/arch/score/include/asm/thread_info.h
@@ -7,6 +7,15 @@
7#define KU_USER 0x08 7#define KU_USER 0x08
8#define KU_KERN 0x00 8#define KU_KERN 0x00
9 9
10#include <asm/page.h>
11#include <linux/const.h>
12
13/* thread information allocation */
14#define THREAD_SIZE_ORDER (1)
15#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
16#define THREAD_MASK (THREAD_SIZE - _AC(1,UL))
17#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
18
10#ifndef __ASSEMBLY__ 19#ifndef __ASSEMBLY__
11 20
12#include <asm/processor.h> 21#include <asm/processor.h>
@@ -62,12 +71,6 @@ struct thread_info {
62register struct thread_info *__current_thread_info __asm__("r28"); 71register struct thread_info *__current_thread_info __asm__("r28");
63#define current_thread_info() __current_thread_info 72#define current_thread_info() __current_thread_info
64 73
65/* thread information allocation */
66#define THREAD_SIZE_ORDER (1)
67#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
68#define THREAD_MASK (THREAD_SIZE - 1UL)
69#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
70
71#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL) 74#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
72#define free_thread_info(info) kfree(info) 75#define free_thread_info(info) kfree(info)
73 76
diff --git a/arch/score/kernel/vmlinux.lds.S b/arch/score/kernel/vmlinux.lds.S
index f85569831d5c..eebcbaa4e978 100644
--- a/arch/score/kernel/vmlinux.lds.S
+++ b/arch/score/kernel/vmlinux.lds.S
@@ -24,6 +24,8 @@
24 */ 24 */
25 25
26#include <asm-generic/vmlinux.lds.h> 26#include <asm-generic/vmlinux.lds.h>
27#include <asm/thread_info.h>
28#include <asm/page.h>
27 29
28OUTPUT_ARCH(score) 30OUTPUT_ARCH(score)
29ENTRY(_stext) 31ENTRY(_stext)
@@ -49,21 +51,9 @@ SECTIONS
49 . = ALIGN(16); 51 . = ALIGN(16);
50 RODATA 52 RODATA
51 53
52 /* Exception table */ 54 EXCEPTION_TABLE(16)
53 . = ALIGN(16);
54 __ex_table : {
55 __start___ex_table = .;
56 *(__ex_table)
57 __stop___ex_table = .;
58 }
59 55
60 /* writeable */ 56 RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
61 .data ALIGN (4096): {
62 *(.data.init_task)
63
64 DATA_DATA
65 CONSTRUCTORS
66 }
67 57
68 /* We want the small data sections together, so single-instruction offsets 58 /* We want the small data sections together, so single-instruction offsets
69 can access them all, and initialized data all before uninitialized, so 59 can access them all, and initialized data all before uninitialized, so
@@ -72,45 +62,14 @@ SECTIONS
72 .sdata : { 62 .sdata : {
73 *(.sdata) 63 *(.sdata)
74 } 64 }
75
76 . = ALIGN(32);
77 .data.cacheline_aligned : {
78 *(.data.cacheline_aligned)
79 }
80 _edata = .; /* End of data section */ 65 _edata = .; /* End of data section */
81 66
82 /* will be freed after init */ 67 /* will be freed after init */
83 . = ALIGN(4096); /* Init code and data */ 68 . = ALIGN(PAGE_SIZE); /* Init code and data */
84 __init_begin = .; 69 __init_begin = .;
85 70
86 . = ALIGN(4096); 71 INIT_TEXT_SECTION(PAGE_SIZE)
87 .init.text : { 72 INIT_DATA_SECTION(16)
88 _sinittext = .;
89 INIT_TEXT
90 _einittext = .;
91 }
92 .init.data : {
93 INIT_DATA
94 }
95 . = ALIGN(16);
96 .init.setup : {
97 __setup_start = .;
98 *(.init.setup)
99 __setup_end = .;
100 }
101
102 .initcall.init : {
103 __initcall_start = .;
104 INITCALLS
105 __initcall_end = .;
106 }
107
108 .con_initcall.init : {
109 __con_initcall_start = .;
110 *(.con_initcall.init)
111 __con_initcall_end = .;
112 }
113 SECURITY_INIT
114 73
115 /* .exit.text is discarded at runtime, not link time, to deal with 74 /* .exit.text is discarded at runtime, not link time, to deal with
116 * references from .rodata 75 * references from .rodata
@@ -121,28 +80,10 @@ SECTIONS
121 .exit.data : { 80 .exit.data : {
122 EXIT_DATA 81 EXIT_DATA
123 } 82 }
124#if defined(CONFIG_BLK_DEV_INITRD) 83 . = ALIGN(PAGE_SIZE);
125 .init.ramfs ALIGN(4096): {
126 __initramfs_start = .;
127 *(.init.ramfs)
128 __initramfs_end = .;
129 . = ALIGN(4);
130 LONG(0);
131 }
132#endif
133 . = ALIGN(4096);
134 __init_end = .; 84 __init_end = .;
135 /* freed after init ends here */ 85 /* freed after init ends here */
136 86
137 __bss_start = .; /* BSS */ 87 BSS_SECTION(0, 0, 0)
138 .sbss : {
139 *(.sbss)
140 *(.scommon)
141 }
142 .bss : {
143 *(.bss)
144 *(COMMON)
145 }
146 __bss_stop = .;
147 _end = .; 88 _end = .;
148} 89}