Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 May 2019 19:36:15 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r347463 - head/sys/powerpc/aim
Message-ID:  <201905101936.x4AJaFCT078159@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Fri May 10 19:36:14 2019
New Revision: 347463
URL: https://svnweb.freebsd.org/changeset/base/347463

Log:
  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

Modified:
  head/sys/powerpc/aim/mp_cpudep.c

Modified: head/sys/powerpc/aim/mp_cpudep.c
==============================================================================
--- head/sys/powerpc/aim/mp_cpudep.c	Fri May 10 18:25:06 2019	(r347462)
+++ head/sys/powerpc/aim/mp_cpudep.c	Fri May 10 19:36:14 2019	(r347463)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905101936.x4AJaFCT078159>