PERFORCE change 132461 for review

Warner Losh imp at FreeBSD.org
Thu Jan 3 23:19:40 PST 2008


http://perforce.freebsd.org/chv.cgi?CH=132461

Change 132461 by imp at imp_paco-paco on 2008/01/04 07:18:46

	locks of hacks for the moment to get things "compiling".
	
	but there's lots of work here still to reconcile how we want to
	do locore interfaces, cpu junk, etc.

Affected files ...

.. //depot/projects/mips2-jnpr/src/sys/mips/include/md_var.h#5 edit
.. //depot/projects/mips2-jnpr/src/sys/mips/include/trap.h#4 edit
.. //depot/projects/mips2-jnpr/src/sys/mips/mips/locore.S#5 edit
.. //depot/projects/mips2-jnpr/src/sys/mips/mips/machdep.c#5 edit
.. //depot/projects/mips2-jnpr/src/sys/mips/mips32/malta/malta_machdep.c#3 edit

Differences ...

==== //depot/projects/mips2-jnpr/src/sys/mips/include/md_var.h#5 (text+ko) ====

@@ -59,4 +59,10 @@
 #define	MIPS_DEBUG_PRINT(fmt, args...)
 #endif
 
+void	cpu_identify(void);
+void	mips_cpu_init(void);
+
+/* Platform call-downs. */
+void	platform_identify(void);
+
 #endif /* !_MACHINE_MD_VAR_H_ */

==== //depot/projects/mips2-jnpr/src/sys/mips/include/trap.h#4 (text+ko) ====

@@ -106,4 +106,10 @@
 
 #endif
 
+#ifndef LOCORE /* XXX */
+int check_address(void *);
+void platform_trap_enter(void);
+void platform_trap_exit(void);
+#endif
+
 #endif /* !_MACHINE_TRAP_H_ */

==== //depot/projects/mips2-jnpr/src/sys/mips/mips/locore.S#5 (text+ko) ====

@@ -125,7 +125,8 @@
 	bne    a2, zero, start_secondary
 	nop
 
-
+/*XXXimp:	 should call platform_start here and also port over the
+	platform specific code. */
 	jal	_C_LABEL(mips_init)		# mips_init(argc, argv, envp)
 	sw	zero, START_FRAME - 8(sp)	# Zero out old fp for debugger
 	nop

==== //depot/projects/mips2-jnpr/src/sys/mips/mips/machdep.c#5 (text+ko) ====

@@ -122,7 +122,7 @@
 SYSCTL_INT(_hw, OID_AUTO, clockrate, CTLFLAG_RD, 
     &cpu_clock, 0, "CPU instruction clock rate");
 
-vm_offset_t proc0kstack;
+vm_offset_t kstack0;
 
 #ifdef SMP
 struct pcpu __pcpu[32];
@@ -266,11 +266,11 @@
  * Initialize mips and configure to run kernel
  */
 
-static void
+void
 mips_proc0_init(void)
 {
-	proc0kstack = pmap_steal_memory(KSTACK_PAGES * PAGE_SIZE);
-	thread0.td_kstack = proc0kstack;
+	kstack0 = pmap_steal_memory(KSTACK_PAGES * PAGE_SIZE);
+	thread0.td_kstack = kstack0;
 	thread0.td_pcb = (struct pcb *)
 	    (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1;
 
@@ -513,6 +513,12 @@
 #include <machine/ns16550.h>
 /*
  * Do all the stuff that locore normally does before calling mi_start().
+ *
+ * We need to migrate to the mips2 way of doing things.  There's code in
+ * locore.S which preserves environment parameters and passes them to
+ * platform start...
+ *
+ * XXXimp
  */
 void
 mips_init(int bootinfo_magic, int boothowto_arg, u_int32_t bootdev_arg,
@@ -570,6 +576,7 @@
 
 	getmemsize();
 
+#if 0
 	/* depend on phys_avail being initialized first */
 	mips_proc0_init();
 	mutex_init();
@@ -579,8 +586,10 @@
 	if ((boothowto & RB_KDB) || (boothowto & RB_GDB))
 		kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger");
 #endif
-
 	pmap_bootstrap();
+#else
+	/* XXXimp need to call platform start */
+#endif
 	init_param2(physmem);
 }
 

==== //depot/projects/mips2-jnpr/src/sys/mips/mips32/malta/malta_machdep.c#3 (text+ko) ====

@@ -183,12 +183,16 @@
 	mips_cpu_init();
 	pmap_bootstrap();
 
+#if 0
 	proc_linkup(&proc0, &thread0);
 	thread0.td_kstack = kstack0;
 	pcpu_init(pcpup, 0, sizeof(struct pcpu));
 	pcpup->pc_curthread = &thread0;
 	cpu_thread_alloc(curthread);
 	pcpup->pc_curpcb = curthread->td_pcb;
+#else
+	mips_proc0_init();
+#endif
 
 	mutex_init();
 


More information about the p4-projects mailing list