diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2013-04-30 16:17:04 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-05-01 20:37:36 -0400 |
commit | 9353374b8e1585d5fa47a1e5c1d3e9155dd0eb7c (patch) | |
tree | e6fdfc6f3a7aa57214fb481d965ab4378f2fbc7c /arch/powerpc/kernel/entry_64.S | |
parent | 1ddf499e1a49e67c02b89e6565d091a0bda29a91 (diff) |
powerpc: Context switch the new EBB SPRs
This context switches the new Event Based Branching (EBB) SPRs. The three new
SPRs are:
- Event Based Branch Handler Register (EBBHR)
- Event Based Branch Return Register (EBBRR)
- Branch Event Status and Control Register (BESCR)
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/entry_64.S')
-rw-r--r-- | arch/powerpc/kernel/entry_64.S | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index 7a6801faaa83..3fe5259e2fea 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -458,6 +458,14 @@ BEGIN_FTR_SECTION | |||
458 | */ | 458 | */ |
459 | mfspr r0,SPRN_TAR | 459 | mfspr r0,SPRN_TAR |
460 | std r0,THREAD_TAR(r3) | 460 | std r0,THREAD_TAR(r3) |
461 | |||
462 | /* Event based branch registers */ | ||
463 | mfspr r0, SPRN_BESCR | ||
464 | std r0, THREAD_BESCR(r3) | ||
465 | mfspr r0, SPRN_EBBHR | ||
466 | std r0, THREAD_EBBHR(r3) | ||
467 | mfspr r0, SPRN_EBBRR | ||
468 | std r0, THREAD_EBBRR(r3) | ||
461 | END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) | 469 | END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) |
462 | #endif | 470 | #endif |
463 | 471 | ||
@@ -545,6 +553,14 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_1T_SEGMENT) | |||
545 | 553 | ||
546 | #ifdef CONFIG_PPC_BOOK3S_64 | 554 | #ifdef CONFIG_PPC_BOOK3S_64 |
547 | BEGIN_FTR_SECTION | 555 | BEGIN_FTR_SECTION |
556 | /* Event based branch registers */ | ||
557 | ld r0, THREAD_BESCR(r4) | ||
558 | mtspr SPRN_BESCR, r0 | ||
559 | ld r0, THREAD_EBBHR(r4) | ||
560 | mtspr SPRN_EBBHR, r0 | ||
561 | ld r0, THREAD_EBBRR(r4) | ||
562 | mtspr SPRN_EBBRR, r0 | ||
563 | |||
548 | ld r0,THREAD_TAR(r4) | 564 | ld r0,THREAD_TAR(r4) |
549 | mtspr SPRN_TAR,r0 | 565 | mtspr SPRN_TAR,r0 |
550 | END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) | 566 | END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) |