powerpc: Initialize the Hardware Interrupt Offset Register (HIOR) earlier for ppc970

Since we now have a much larger KVA on powerpc64, it's possible to get SLB
traps earlier in boot, possibly even before the HIOR is properly configured
for us.  Move the HIOR setup to immediately after reset, so that we use our
exception handlers instead of Open Firmware's.

PR:		233863
Submitted by:	Mark Millard (partial)
Reported by:	Mark Millard
MFC after:	2 weeks
This commit is contained in:
Justin Hibbits 2019-05-10 19:36:14 +00:00
parent d1c34a6b76
commit f04019c3c6

View File

@ -68,6 +68,10 @@ cpudep_ap_early_bootstrap(void)
case IBM970:
case IBM970FX:
case IBM970MP:
/* Set HIOR to 0 */
__asm __volatile("mtspr 311,%0" :: "r"(0));
powerpc_sync();
/* Restore HID4 and HID5, which are necessary for the MMU */
#ifdef __powerpc64__
@ -314,10 +318,6 @@ cpudep_ap_setup()
case IBM970:
case IBM970FX:
case IBM970MP:
/* Set HIOR to 0 */
__asm __volatile("mtspr 311,%0" :: "r"(0));
powerpc_sync();
/*
* The 970 has strange rules about how to update HID registers.
* See Table 2-3, 970MP manual