diff options
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/head_64.S | 14 | ||||
-rw-r--r-- | arch/powerpc/kernel/udbg.c | 4 |
2 files changed, 17 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index dea8191253d..06c7251c1bf 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -53,7 +53,8 @@ | |||
53 | * 2. The kernel is entered at __start | 53 | * 2. The kernel is entered at __start |
54 | * -or- For OPAL entry: | 54 | * -or- For OPAL entry: |
55 | * 1. The MMU is off, processor in HV mode, primary CPU enters at 0 | 55 | * 1. The MMU is off, processor in HV mode, primary CPU enters at 0 |
56 | * with device-tree in gpr3 | 56 | * with device-tree in gpr3. We also get OPAL base in r8 and |
57 | * entry in r9 for debugging purposes | ||
57 | * 2. Secondary processors enter at 0x60 with PIR in gpr3 | 58 | * 2. Secondary processors enter at 0x60 with PIR in gpr3 |
58 | * | 59 | * |
59 | * For iSeries: | 60 | * For iSeries: |
@@ -335,6 +336,11 @@ _GLOBAL(__start_initialization_multiplatform) | |||
335 | /* Save parameters */ | 336 | /* Save parameters */ |
336 | mr r31,r3 | 337 | mr r31,r3 |
337 | mr r30,r4 | 338 | mr r30,r4 |
339 | #ifdef CONFIG_PPC_EARLY_DEBUG_OPAL | ||
340 | /* Save OPAL entry */ | ||
341 | mr r28,r8 | ||
342 | mr r29,r9 | ||
343 | #endif | ||
338 | 344 | ||
339 | #ifdef CONFIG_PPC_BOOK3E | 345 | #ifdef CONFIG_PPC_BOOK3E |
340 | bl .start_initialization_book3e | 346 | bl .start_initialization_book3e |
@@ -711,6 +717,12 @@ _INIT_STATIC(start_here_multiplatform) | |||
711 | bdnz 3b | 717 | bdnz 3b |
712 | 4: | 718 | 4: |
713 | 719 | ||
720 | #ifdef CONFIG_PPC_EARLY_DEBUG_OPAL | ||
721 | /* Setup OPAL entry */ | ||
722 | std r28,0(r11); | ||
723 | std r29,8(r11); | ||
724 | #endif | ||
725 | |||
714 | #ifndef CONFIG_PPC_BOOK3E | 726 | #ifndef CONFIG_PPC_BOOK3E |
715 | mfmsr r6 | 727 | mfmsr r6 |
716 | ori r6,r6,MSR_RI | 728 | ori r6,r6,MSR_RI |
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c index 5b3e98e0315..35f948203ec 100644 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c | |||
@@ -69,6 +69,10 @@ void __init udbg_early_init(void) | |||
69 | udbg_init_wsp(); | 69 | udbg_init_wsp(); |
70 | #elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC) | 70 | #elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC) |
71 | udbg_init_ps3gelic(); | 71 | udbg_init_ps3gelic(); |
72 | #elif defined(CONFIG_PPC_EARLY_DEBUG_OPAL_RAW) | ||
73 | udbg_init_debug_opal_raw(); | ||
74 | #elif defined(CONFIG_PPC_EARLY_DEBUG_OPAL_HVSI) | ||
75 | udbg_init_debug_opal_hvsi(); | ||
72 | #endif | 76 | #endif |
73 | 77 | ||
74 | #ifdef CONFIG_PPC_EARLY_DEBUG | 78 | #ifdef CONFIG_PPC_EARLY_DEBUG |