powerpc: Initialize TLB and LPID register on HV mode Power7
In case entry from the bootloader isn't "clean" Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Родитель
895796a8ab
Коммит
b144871cb5
|
@ -25,7 +25,10 @@ _GLOBAL(__setup_cpu_power7)
|
||||||
bl __init_hvmode_206
|
bl __init_hvmode_206
|
||||||
mtlr r11
|
mtlr r11
|
||||||
beqlr
|
beqlr
|
||||||
|
li r0,0
|
||||||
|
mtspr SPRN_LPID,r0
|
||||||
bl __init_LPCR
|
bl __init_LPCR
|
||||||
|
bl __init_TLB
|
||||||
mtlr r11
|
mtlr r11
|
||||||
blr
|
blr
|
||||||
|
|
||||||
|
@ -34,7 +37,10 @@ _GLOBAL(__restore_cpu_power7)
|
||||||
mfmsr r3
|
mfmsr r3
|
||||||
rldicl. r0,r3,4,63
|
rldicl. r0,r3,4,63
|
||||||
beqlr
|
beqlr
|
||||||
|
li r0,0
|
||||||
|
mtspr SPRN_LPID,r0
|
||||||
bl __init_LPCR
|
bl __init_LPCR
|
||||||
|
bl __init_TLB
|
||||||
mtlr r11
|
mtlr r11
|
||||||
blr
|
blr
|
||||||
|
|
||||||
|
@ -71,3 +77,15 @@ __init_LPCR:
|
||||||
mtspr SPRN_LPCR,r3
|
mtspr SPRN_LPCR,r3
|
||||||
isync
|
isync
|
||||||
blr
|
blr
|
||||||
|
|
||||||
|
__init_TLB:
|
||||||
|
/* Clear the TLB */
|
||||||
|
li r6,128
|
||||||
|
mtctr r6
|
||||||
|
li r7,0xc00 /* IS field = 0b11 */
|
||||||
|
ptesync
|
||||||
|
2: tlbiel r7
|
||||||
|
addi r7,r7,0x1000
|
||||||
|
bdnz 2b
|
||||||
|
ptesync
|
||||||
|
1: blr
|
||||||
|
|
Загрузка…
Ссылка в новой задаче