/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
#include <kern/xpr.h>
#include <kern/zalloc.h>
#include <kern/locks.h>
+#include <console/serial_protos.h>
#include <vm/vm_shared_memory_server.h>
#include <vm/vm_kern.h>
#include <vm/vm_init.h>
#ifdef __ppc__
#include <ppc/Firmware.h>
#include <ppc/mappings.h>
-#include <ppc/serial_io.h>
#endif
static void kernel_bootstrap_thread(void);
static void load_context(
thread_t thread);
+#ifdef i386
+extern void cpu_window_init(int);
+#endif
+
+
/*
* Running in virtual memory, on the interrupt stack.
*/
+
void
kernel_bootstrap(void)
{
* Create a kernel thread to execute the kernel bootstrap.
*/
result = kernel_thread_create((thread_continue_t)kernel_bootstrap_thread, NULL, MAXPRI_KERNEL, &thread);
- if (result != KERN_SUCCESS)
- panic("kernel_bootstrap");
+
+ if (result != KERN_SUCCESS) panic("kernel_bootstrap: result = %08X\n", result);
thread->state = TH_RUN;
thread_deallocate(thread);
(void) spllo(); /* Allow interruptions */
- /*
- * Fill in the comm area (mapped into every task address space.)
- */
- commpage_populate();
+ /*
+ * Fill in the comm area (mapped into every task address space.)
+ */
+ commpage_populate();
+
+#ifdef i386
+ /*
+ * create and initialize a copy window
+ * for processor 0
+ */
+ cpu_window_init(0);
+#endif
/*
* Start the user bootstrap.
}
#endif
-#if __ppc__
serial_keyboard_init(); /* Start serial keyboard if wanted */
-#endif
thread_bind(self, PROCESSOR_NULL);