svn commit: r282267 - head/sys/powerpc/ofw

Justin Hibbits jhibbits at FreeBSD.org
Thu Apr 30 03:15:08 UTC 2015


Author: jhibbits
Date: Thu Apr 30 03:15:07 2015
New Revision: 282267
URL: https://svnweb.freebsd.org/changeset/base/282267

Log:
  Missed ofw_machdep.c in r282264.

Modified:
  head/sys/powerpc/ofw/ofw_machdep.c

Modified: head/sys/powerpc/ofw/ofw_machdep.c
==============================================================================
--- head/sys/powerpc/ofw/ofw_machdep.c	Thu Apr 30 02:47:21 2015	(r282266)
+++ head/sys/powerpc/ofw/ofw_machdep.c	Thu Apr 30 03:15:07 2015	(r282267)
@@ -62,11 +62,12 @@ __FBSDID("$FreeBSD$");
 #include <machine/ofw_machdep.h>
 #include <machine/trap.h>
 
+static void	*fdt;
+int		ofw_real_mode;
+
 #ifdef AIM
 extern register_t ofmsr[5];
 extern void	*openfirmware_entry;
-static void	*fdt;
-int		ofw_real_mode;
 char		save_trap_init[0x2f00];          /* EXC_LAST */
 char		save_trap_of[0x2f00];            /* EXC_LAST */
 
@@ -336,10 +337,10 @@ ofw_mem_regions(struct mem_region *memp,
 	*availsz = asz;
 }
 
-#ifdef AIM
 void
 OF_initial_setup(void *fdt_ptr, void *junk, int (*openfirm)(void *))
 {
+#ifdef AIM
 	ofmsr[0] = mfmsr();
 	#ifdef __powerpc64__
 	ofmsr[0] &= ~PSL_SF;
@@ -348,22 +349,25 @@ OF_initial_setup(void *fdt_ptr, void *ju
 	__asm __volatile("mfsprg1 %0" : "=&r"(ofmsr[2]));
 	__asm __volatile("mfsprg2 %0" : "=&r"(ofmsr[3]));
 	__asm __volatile("mfsprg3 %0" : "=&r"(ofmsr[4]));
+	openfirmware_entry = openfirm;
 
 	if (ofmsr[0] & PSL_DR)
 		ofw_real_mode = 0;
 	else
 		ofw_real_mode = 1;
 
+	ofw_save_trap_vec(save_trap_init);
+#else
+	ofw_real_mode = 1;
+#endif
+
 	fdt = fdt_ptr;
-	openfirmware_entry = openfirm;
 
 	#ifdef FDT_DTB_STATIC
 	/* Check for a statically included blob */
 	if (fdt == NULL)
 		fdt = &fdt_static_dtb;
 	#endif
-
-	ofw_save_trap_vec(save_trap_init);
 }
 
 boolean_t
@@ -371,6 +375,7 @@ OF_bootstrap()
 {
 	boolean_t status = FALSE;
 
+#ifdef AIM
 	if (openfirmware_entry != NULL) {
 		if (ofw_real_mode) {
 			status = OF_install(OFW_STD_REAL, 0);
@@ -386,18 +391,22 @@ OF_bootstrap()
 			return status;
 
 		OF_init(openfirmware);
-	} else if (fdt != NULL) {
+	} else
+#endif
+	if (fdt != NULL) {
 		status = OF_install(OFW_FDT, 0);
 
 		if (status != TRUE)
 			return status;
 
 		OF_init(fdt);
+		OF_interpret("perform-fixup", 0);
 	} 
 
 	return (status);
 }
 
+#ifdef AIM
 void
 ofw_quiesce(void)
 {


More information about the svn-src-all mailing list