Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot
In directory usw-pr-cvs1:/tmp/cvs-serv23123/arch/vax/boot
Modified Files:
head.S tmp_init.c
Log Message:
Reorganise tmp_start_kernel. max_pfn/hwpfn fixes. update config file.
Index: head.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/head.S,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- head.S 2001/02/15 01:26:58 1.3
+++ head.S 2001/02/18 16:42:45 1.4
@@ -267,7 +267,7 @@
halt
now_on_kstack:
- calls $0, tmp_start_kernel # should never return
+ calls $0, vax_start_kernel # should never return
halt
msg_loaded:
Index: tmp_init.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/tmp_init.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- tmp_init.c 2001/02/18 12:03:31 1.7
+++ tmp_init.c 2001/02/18 16:42:45 1.8
@@ -83,6 +83,8 @@
extern struct task_struct *child_reaper;
static int tmp_init(void * unused);
+char *vax_linux_banner="Linux/VAX (lin...@mi...)\n";
+extern void start_kernel(void);
/* This is a transitionary function. When things are finally sorted
* the only tasks this function will perform will relate to the interaction
@@ -96,8 +98,61 @@
* ok ive changed my mind. We turn on MM in the asm before we hit C code
* (keeps stacks simpler) just like the i386, with a default 8mb system
* page table setup (with a 1:1 mapping of system space.
+ *
+ * Things that are temporary have a habit of becoming permanent.
+ * I've renamed from tmp_start_kernel to vax_start_kernel, as convenient
+ * bit of arch-specific C code before starting the main start_kernel
*/
+void vax_start_kernel(void)
+{
+ unsigned long mempages;
+/* this is a temporary command line that allows booting via nfsroot */
+/*
+ * Interrupts are still disabled. Do necessary setups, then
+ * enable them
+ */
+ /* set the number of 4k pages */
+ max_pfn = max_hwpfn/8;
+
+ printk(vax_linux_banner);
+
+ /* Protect us from interrupt stack overflows */
+ guard_int_stack();
+
+ /* If it is possible to register a console for your
+ machine at this point in the boot sequence, do so
+ in post_vm_init(). Otherwise, implement mv->console_init()
+ which will be called later. */
+
+ mv->post_vm_init();
+
+ #ifdef __SMP__
+ static int boot_cpu = 1;
+ /* "current" has been set up, we need to load it now */
+ if (!boot_cpu)
+ initialize_secondary();
+ boot_cpu = 0;
+ #endif
+
+ /*
+ * Interrupts are still disabled. Do necessary setups, then
+ * enable them
+ */
+
+ printk("RPB info: l_pfncnt: %08x, .l_vmb_version: %08x .l_badpgs: %08x\n",
+ boot_rpb.l_pfncnt, boot_rpb.l_vmb_version, boot_rpb.l_badpgs);
+
+ printk("Physical memory: %08x HW pagelets, %08x pages (%dKB)\n",
+ max_hwpfn, max_pfn, max_hwpfn/2);
+
+ printk("CPU type: %s, SID: %08x\n", mv->cpu_type_str(), vax_cpu.sid);
+
+ printk("calling start_kernel...\n");
+ start_kernel();
+
+}
+
void tmp_start_kernel(void)
{
char * command_line;
@@ -107,6 +162,9 @@
* Interrupts are still disabled. Do necessary setups, then
* enable them
*/
+ /* set the number of 4k pages */
+ max_pfn = max_hwpfn/8;
+
/* Protect us from interrupt stack overflows */
guard_int_stack();
@@ -129,7 +187,6 @@
* Interrupts are still disabled. Do necessary setups, then
* enable them
*/
-
lock_kernel();
printk(linux_banner);
@@ -137,7 +194,7 @@
boot_rpb.l_pfncnt, boot_rpb.l_vmb_version, boot_rpb.l_badpgs);
printk("Physical memory: %08x HW pagelets, %08x pages (%dKB)\n",
- max_pfn, max_pfn/8, max_pfn / 2);
+ max_hwpfn, max_pfn, max_hwpfn/2);
setup_arch(&command_line);
@@ -163,7 +220,6 @@
memory on the free list */
mem_init();
- asm("halt");
kmem_cache_sizes_init();
#ifdef CONFIG_PROC_FS
|