aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/setup.c
diff options
context:
space:
mode:
authorRobin Getz <robin.getz@analog.com>2007-10-09 05:28:36 -0400
committerBryan Wu <bryan.wu@analog.com>2007-10-09 05:28:36 -0400
commitce3afa1c043ab3d4125671441a57353d80f5f6f7 (patch)
treea6d2d85c7380eab7e28a456cef0af2a271f1c32d /arch/blackfin/kernel/setup.c
parent2ebcade590dcf822dcdadcc4f8f68efd3ff2e217 (diff)
Blackfin arch: Enable earlyprintk earlier - so any error after our interrupt tables are set up will print out
Also ensure that the traps_c code doesn't cause a double fault, by sending a signal to a faulting kernel before the memory subsystem is fully initialized, by printing out the error message before sending the signal. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/kernel/setup.c')
-rw-r--r--arch/blackfin/kernel/setup.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index abf34a8dd070..8dcd76e87ed5 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -44,6 +44,7 @@
44#include <asm/blackfin.h> 44#include <asm/blackfin.h>
45#include <asm/cplbinit.h> 45#include <asm/cplbinit.h>
46#include <asm/fixed_code.h> 46#include <asm/fixed_code.h>
47#include <asm/early_printk.h>
47 48
48u16 _bfin_swrst; 49u16 _bfin_swrst;
49 50
@@ -157,8 +158,10 @@ static __init void parse_cmdline_early(char *cmdline_p)
157 1; 158 1;
158 } 159 }
159 } 160 }
161 } else if (!memcmp(to, "earlyprintk=", 12)) {
162 to += 12;
163 setup_early_printk(to);
160 } 164 }
161
162 } 165 }
163 c = *(to++); 166 c = *(to++);
164 if (!c) 167 if (!c)
@@ -177,6 +180,23 @@ void __init setup_arch(char **cmdline_p)
177#ifdef CONFIG_DUMMY_CONSOLE 180#ifdef CONFIG_DUMMY_CONSOLE
178 conswitchp = &dummy_con; 181 conswitchp = &dummy_con;
179#endif 182#endif
183
184#if defined(CONFIG_CMDLINE_BOOL)
185 strncpy(&command_line[0], CONFIG_CMDLINE, sizeof(command_line));
186 command_line[sizeof(command_line) - 1] = 0;
187#endif
188
189 /* Keep a copy of command line */
190 *cmdline_p = &command_line[0];
191 memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
192 boot_command_line[COMMAND_LINE_SIZE - 1] = '\0';
193
194 /* setup memory defaults from the user config */
195 physical_mem_end = 0;
196 _ramend = CONFIG_MEM_SIZE * 1024 * 1024;
197
198 parse_cmdline_early(&command_line[0]);
199
180 cclk = get_cclk(); 200 cclk = get_cclk();
181 sclk = get_sclk(); 201 sclk = get_sclk();
182 202
@@ -210,22 +230,6 @@ void __init setup_arch(char **cmdline_p)
210 flash_probe(); 230 flash_probe();
211#endif 231#endif
212 232
213#if defined(CONFIG_CMDLINE_BOOL)
214 strncpy(&command_line[0], CONFIG_CMDLINE, sizeof(command_line));
215 command_line[sizeof(command_line) - 1] = 0;
216#endif
217
218 /* Keep a copy of command line */
219 *cmdline_p = &command_line[0];
220 memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
221 boot_command_line[COMMAND_LINE_SIZE - 1] = '\0';
222
223 /* setup memory defaults from the user config */
224 physical_mem_end = 0;
225 _ramend = CONFIG_MEM_SIZE * 1024 * 1024;
226
227 parse_cmdline_early(&command_line[0]);
228
229 if (physical_mem_end == 0) 233 if (physical_mem_end == 0)
230 physical_mem_end = _ramend; 234 physical_mem_end = _ramend;
231 235