Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 2010 06:42:08 +0000 (UTC)
From:      Neel Natu <neel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r201631 - in projects/mips/sys/mips: mips sentry5 sibyte
Message-ID:  <201001060642.o066g8To042466@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: neel
Date: Wed Jan  6 06:42:08 2010
New Revision: 201631
URL: http://svn.freebsd.org/changeset/base/201631

Log:
  Remove all CFE-specific code from locore.S. The CFE entrypoint initialization
  is now done in platform-specific code.
  
  Approved by: imp (mentor)

Modified:
  projects/mips/sys/mips/mips/locore.S
  projects/mips/sys/mips/sentry5/s5_machdep.c
  projects/mips/sys/mips/sibyte/sb_machdep.c

Modified: projects/mips/sys/mips/mips/locore.S
==============================================================================
--- projects/mips/sys/mips/mips/locore.S	Wed Jan  6 06:35:10 2010	(r201630)
+++ projects/mips/sys/mips/mips/locore.S	Wed Jan  6 06:42:08 2010	(r201631)
@@ -77,12 +77,6 @@
 GLOBAL(fenvp)
 	.space 4			# Assumes mips32?  Is that OK?
 #endif
-#ifdef CFE			/* Assumes MIPS32, bad? */
-GLOBAL(cfe_handle)
-	.space 4
-GLOBAL(cfe_vector)
-	.space 4
-#endif
 GLOBAL(stackspace)
 	.space NBPG /* Smaller than it should be since it's temp. */
 	.align 8
@@ -176,16 +170,6 @@ VECTOR(_locore, unknown)
 	/* Save YAMON boot environment pointer */
 	sw	a2, _C_LABEL(fenvp)
 #endif
-#ifdef CFE
-	/*
-	* Save the CFE context passed to us by the loader.
-	*/
-	li	t1, 0x43464531
-	bne	a3, t1, no_cfe		/* Check for "CFE1" signature */
-	sw	a0, _C_LABEL(cfe_handle)/* Firmware data segment */
-	sw	a2, _C_LABEL(cfe_vector)/* Firmware entry vector */
-no_cfe:
-#endif
 
 	/*
 	 * The following needs to be done differently for each platform and

Modified: projects/mips/sys/mips/sentry5/s5_machdep.c
==============================================================================
--- projects/mips/sys/mips/sentry5/s5_machdep.c	Wed Jan  6 06:35:10 2010	(r201630)
+++ projects/mips/sys/mips/sentry5/s5_machdep.c	Wed Jan  6 06:42:08 2010	(r201631)
@@ -79,11 +79,6 @@ __FBSDID("$FreeBSD$");
 #include <dev/cfe/cfe_api.h>
 #endif
 
-#ifdef CFE
-extern uint32_t cfe_handle;
-extern uint32_t cfe_vector;
-#endif
-
 extern int *edata;
 extern int *end;
 
@@ -183,8 +178,8 @@ platform_trap_exit(void)
 }
 
 void
-platform_start(__register_t a0 __unused, __register_t a1 __unused, 
-    __register_t a2 __unused, __register_t a3 __unused)
+platform_start(__register_t a0, __register_t a1, __register_t a2,
+	       __register_t a3)
 {
 	vm_offset_t kernend;
 	uint64_t platform_counter_freq;
@@ -197,16 +192,17 @@ platform_start(__register_t a0 __unused,
 	/*
 	 * Initialize CFE firmware trampolines before
 	 * we initialize the low-level console.
+	 *
+	 * CFE passes the following values in registers:
+	 * a0: firmware handle
+	 * a2: firmware entry point
+	 * a3: entry point seal
 	 */
-	if (cfe_handle != 0)
-		cfe_init(cfe_handle, cfe_vector);
+	if (a3 == CFE_EPTSEAL)
+		cfe_init(a0, a2);
 #endif
 	cninit();
 
-#ifdef CFE
-	if (cfe_handle == 0)
-		panic("CFE was not detected by locore.\n");
-#endif
 	mips_init();
 
 # if 0

Modified: projects/mips/sys/mips/sibyte/sb_machdep.c
==============================================================================
--- projects/mips/sys/mips/sibyte/sb_machdep.c	Wed Jan  6 06:35:10 2010	(r201630)
+++ projects/mips/sys/mips/sibyte/sb_machdep.c	Wed Jan  6 06:42:08 2010	(r201631)
@@ -86,11 +86,6 @@ __FBSDID("$FreeBSD$");
 #endif
 #endif
 
-#ifdef CFE
-extern uint32_t cfe_handle;
-extern uint32_t cfe_vector;
-#endif
-
 #ifdef CFE_ENV
 extern void cfe_env_init(void);
 #endif
@@ -236,8 +231,8 @@ platform_trap_exit(void)
 }
 
 void
-platform_start(__register_t a0 __unused, __register_t a1 __unused, 
-    __register_t a2 __unused, __register_t a3 __unused)
+platform_start(__register_t a0, __register_t a1, __register_t a2,
+	       __register_t a3)
 {
 	vm_offset_t kernend;
 
@@ -249,16 +244,17 @@ platform_start(__register_t a0 __unused,
 	/*
 	 * Initialize CFE firmware trampolines before
 	 * we initialize the low-level console.
+	 *
+	 * CFE passes the following values in registers:
+	 * a0: firmware handle
+	 * a2: firmware entry point
+	 * a3: entry point seal
 	 */
-	if (cfe_handle != 0)
-		cfe_init(cfe_handle, cfe_vector);
+	if (a3 == CFE_EPTSEAL)
+		cfe_init(a0, a2);
 #endif
 	cninit();
 
-#ifdef CFE
-	if (cfe_handle == 0)
-		panic("CFE was not detected by locore.\n");
-#endif
 	mips_init();
 
 	mips_timer_init_params(sb_cpu_speed(), 0);



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