diff options
author | Michael Neuling <mikey@neuling.org> | 2013-03-05 17:35:24 +0000 |
---|---|---|
committer | Michael Ellerman <michael@ellerman.id.au> | 2013-04-18 13:03:59 +1000 |
commit | 2a3563b023e5f99e1ec48b66b4caeac94584e7c7 (patch) | |
tree | 40492bf2ec5725cb7b640b72476744691ec86457 | |
parent | 04b418c97f4e6cabe186484e9d9cd2f42e67d912 (diff) | |
download | linux-2a3563b023e5f99e1ec48b66b4caeac94584e7c7.tar.bz2 |
powerpc: Setup in HFSCR for POWER8
Setup the HFSCR (Hypervisor Facility Status and Control Register) for POWER8
when running HV=1. The HFSCR is the same as the FSCR except it's for
hypervisors. It controls the available of various facilities in OS and
userspace levels. It also indicates the cause of a hypervisor facility
unavailable interrupt (although we are not using this here).
This patch sets the facilities Linux knows about incase the firmware doesn't.
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
-rw-r--r-- | arch/powerpc/kernel/cpu_setup_power.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/cpu_setup_power.S b/arch/powerpc/kernel/cpu_setup_power.S index ea847abb0d0a..2e6ad1180e9c 100644 --- a/arch/powerpc/kernel/cpu_setup_power.S +++ b/arch/powerpc/kernel/cpu_setup_power.S @@ -57,6 +57,7 @@ _GLOBAL(__setup_cpu_power8) mfspr r3,SPRN_LPCR oris r3, r3, LPCR_AIL_3@h bl __init_LPCR + bl __init_HFSCR bl __init_TLB mtlr r11 blr @@ -72,6 +73,7 @@ _GLOBAL(__restore_cpu_power8) mfspr r3,SPRN_LPCR oris r3, r3, LPCR_AIL_3@h bl __init_LPCR + bl __init_HFSCR bl __init_TLB mtlr r11 blr @@ -120,6 +122,12 @@ __init_FSCR: mtspr SPRN_FSCR,r3 blr +__init_HFSCR: + mfspr r3,SPRN_HFSCR + ori r3,r3,HFSCR_TAR|HFSCR_TM|HFSCR_DSCR|HFSCR_VECVSX|HFSCR_FP + mtspr SPRN_HFSCR,r3 + blr + __init_TLB: /* Clear the TLB */ li r6,128 |