From owner-p4-projects@FreeBSD.ORG Fri Jan 4 07:19:40 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A44316A41A; Fri, 4 Jan 2008 07:19:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D393116A417 for ; Fri, 4 Jan 2008 07:19:39 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8E0D013C458 for ; Fri, 4 Jan 2008 07:19:39 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m047Jdkq050330 for ; Fri, 4 Jan 2008 07:19:39 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m047JdLk050327 for perforce@freebsd.org; Fri, 4 Jan 2008 07:19:39 GMT (envelope-from imp@freebsd.org) Date: Fri, 4 Jan 2008 07:19:39 GMT Message-Id: <200801040719.m047JdLk050327@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 132461 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jan 2008 07:19:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=132461 Change 132461 by imp@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 /* * 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();