diff options
author | Varun Sethi <Varun.Sethi@freescale.com> | 2012-07-09 09:01:51 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2012-09-12 15:57:09 -0400 |
commit | 0778407f836d632cce90e5d9df490a7c5e6e398a (patch) | |
tree | 1f1a6897abb055cb9230b75c8839eca10250df13 /arch/powerpc/kernel/exceptions-64e.S | |
parent | 2c71b0cc4a626d8bd02b88b3b92ce18be4d54c6d (diff) |
powerpc/booke: Separate out restore_e5500/setup_e5500 routines.
For the 64 bit case separate out e5500 cpu_setup and cpu_restore functions.
The cpu_setup function (for the primary core) is passed the cpu_spec
pointer, which is not there in case of the cpu_restore function. Also, in
our case we will have to manipulate the CPU_FTR_EMB_HV flag on the primary
core.
Signed-off-by: Varun Sethi <Varun.Sethi@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/exceptions-64e.S')
-rw-r--r-- | arch/powerpc/kernel/exceptions-64e.S | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S index 87a82fbdf05a..4684e33a26c3 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S | |||
@@ -1356,25 +1356,11 @@ _GLOBAL(setup_perfmon_ivor) | |||
1356 | _GLOBAL(setup_doorbell_ivors) | 1356 | _GLOBAL(setup_doorbell_ivors) |
1357 | SET_IVOR(36, 0x280) /* Processor Doorbell */ | 1357 | SET_IVOR(36, 0x280) /* Processor Doorbell */ |
1358 | SET_IVOR(37, 0x2a0) /* Processor Doorbell Crit */ | 1358 | SET_IVOR(37, 0x2a0) /* Processor Doorbell Crit */ |
1359 | |||
1360 | /* Check MMUCFG[LPIDSIZE] to determine if we have category E.HV */ | ||
1361 | mfspr r10,SPRN_MMUCFG | ||
1362 | rlwinm. r10,r10,0,MMUCFG_LPIDSIZE | ||
1363 | beqlr | ||
1364 | |||
1365 | SET_IVOR(38, 0x2c0) /* Guest Processor Doorbell */ | ||
1366 | SET_IVOR(39, 0x2e0) /* Guest Processor Doorbell Crit/MC */ | ||
1367 | blr | 1359 | blr |
1368 | 1360 | ||
1369 | _GLOBAL(setup_ehv_ivors) | 1361 | _GLOBAL(setup_ehv_ivors) |
1370 | /* | ||
1371 | * We may be running as a guest and lack E.HV even on a chip | ||
1372 | * that normally has it. | ||
1373 | */ | ||
1374 | mfspr r10,SPRN_MMUCFG | ||
1375 | rlwinm. r10,r10,0,MMUCFG_LPIDSIZE | ||
1376 | beqlr | ||
1377 | |||
1378 | SET_IVOR(40, 0x300) /* Embedded Hypervisor System Call */ | 1362 | SET_IVOR(40, 0x300) /* Embedded Hypervisor System Call */ |
1379 | SET_IVOR(41, 0x320) /* Embedded Hypervisor Privilege */ | 1363 | SET_IVOR(41, 0x320) /* Embedded Hypervisor Privilege */ |
1364 | SET_IVOR(38, 0x2c0) /* Guest Processor Doorbell */ | ||
1365 | SET_IVOR(39, 0x2e0) /* Guest Processor Doorbell Crit/MC */ | ||
1380 | blr | 1366 | blr |