diff options
Diffstat (limited to 'arch/xtensa/kernel/setup.c')
-rw-r--r-- | arch/xtensa/kernel/setup.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c index 24c1a57abb40..6dd25ecde3f5 100644 --- a/arch/xtensa/kernel/setup.c +++ b/arch/xtensa/kernel/setup.c | |||
@@ -328,6 +328,27 @@ extern char _UserExceptionVector_literal_start; | |||
328 | extern char _UserExceptionVector_text_end; | 328 | extern char _UserExceptionVector_text_end; |
329 | extern char _DoubleExceptionVector_literal_start; | 329 | extern char _DoubleExceptionVector_literal_start; |
330 | extern char _DoubleExceptionVector_text_end; | 330 | extern char _DoubleExceptionVector_text_end; |
331 | #if XCHAL_EXCM_LEVEL >= 2 | ||
332 | extern char _Level2InterruptVector_text_start; | ||
333 | extern char _Level2InterruptVector_text_end; | ||
334 | #endif | ||
335 | #if XCHAL_EXCM_LEVEL >= 3 | ||
336 | extern char _Level3InterruptVector_text_start; | ||
337 | extern char _Level3InterruptVector_text_end; | ||
338 | #endif | ||
339 | #if XCHAL_EXCM_LEVEL >= 4 | ||
340 | extern char _Level4InterruptVector_text_start; | ||
341 | extern char _Level4InterruptVector_text_end; | ||
342 | #endif | ||
343 | #if XCHAL_EXCM_LEVEL >= 5 | ||
344 | extern char _Level5InterruptVector_text_start; | ||
345 | extern char _Level5InterruptVector_text_end; | ||
346 | #endif | ||
347 | #if XCHAL_EXCM_LEVEL >= 6 | ||
348 | extern char _Level6InterruptVector_text_start; | ||
349 | extern char _Level6InterruptVector_text_end; | ||
350 | #endif | ||
351 | |||
331 | 352 | ||
332 | 353 | ||
333 | #ifdef CONFIG_S32C1I_SELFTEST | 354 | #ifdef CONFIG_S32C1I_SELFTEST |
@@ -482,6 +503,27 @@ void __init setup_arch(char **cmdline_p) | |||
482 | mem_reserve(__pa(&_DoubleExceptionVector_literal_start), | 503 | mem_reserve(__pa(&_DoubleExceptionVector_literal_start), |
483 | __pa(&_DoubleExceptionVector_text_end), 0); | 504 | __pa(&_DoubleExceptionVector_text_end), 0); |
484 | 505 | ||
506 | #if XCHAL_EXCM_LEVEL >= 2 | ||
507 | mem_reserve(__pa(&_Level2InterruptVector_text_start), | ||
508 | __pa(&_Level2InterruptVector_text_end), 0); | ||
509 | #endif | ||
510 | #if XCHAL_EXCM_LEVEL >= 3 | ||
511 | mem_reserve(__pa(&_Level3InterruptVector_text_start), | ||
512 | __pa(&_Level3InterruptVector_text_end), 0); | ||
513 | #endif | ||
514 | #if XCHAL_EXCM_LEVEL >= 4 | ||
515 | mem_reserve(__pa(&_Level4InterruptVector_text_start), | ||
516 | __pa(&_Level4InterruptVector_text_end), 0); | ||
517 | #endif | ||
518 | #if XCHAL_EXCM_LEVEL >= 5 | ||
519 | mem_reserve(__pa(&_Level5InterruptVector_text_start), | ||
520 | __pa(&_Level5InterruptVector_text_end), 0); | ||
521 | #endif | ||
522 | #if XCHAL_EXCM_LEVEL >= 6 | ||
523 | mem_reserve(__pa(&_Level6InterruptVector_text_start), | ||
524 | __pa(&_Level6InterruptVector_text_end), 0); | ||
525 | #endif | ||
526 | |||
485 | bootmem_init(); | 527 | bootmem_init(); |
486 | 528 | ||
487 | #ifdef CONFIG_OF | 529 | #ifdef CONFIG_OF |