Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot
In directory usw-pr-cvs1:/tmp/cvs-serv6214
Modified Files:
Makefile
Added Files:
startup.c
Removed Files:
tmp_init.c
Log Message:
Clean up initial boot sequence. Remove vestiges of debugging init sequence
--- NEW FILE ---
/* First C code - started by head.S */
/* Copyright atp 1998-2001 under the GNU GPL */
#include <asm/rpb.h>
#include <asm/mv.h>
#include <linux/mm.h>
/* stuff that is declared in head.S */
extern unsigned long int phys_start; /* physical address of kernel*/
extern unsigned long int virt_start; /* virtual address of kernel */
extern unsigned long int boot_ap; /* argument pointer */
extern unsigned long int boot_r11; /* rpb pointer */
extern unsigned long int boot_scb; /* scb pointer */
extern unsigned long int iomap_base;
/* head.S copies the RPB into this structure */
struct rpb_struct boot_rpb;
/* head.S gets the size of the RPB from here. We do it this
way because we can't use sizeof() in assembly :-( */
unsigned int rpb_size = sizeof(struct rpb_struct);
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
* with VMB and other stuff that needs to go on early before we start_kernel()
* like patchable control store, memory bitmap creation on non-ROM based
* VAXen.
* At present its used for testing the early parts of the kernel startup.
* The other main thing it does is load the rpb and scb global variables,
* and switch on basic paging. The main paging setup is done later.
*
* 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
*
* atp aug 2001 - This is now permanent, and has been renamed to startup.c
*/
#define IOMAP_START (PAGE_OFFSET+((iomap_base-swapper_pg_dir[2].br)<<(PAGELET_SHIFT-2)))
void vax_start_kernel(void)
{
/* 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, %08lx 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("VM: mapped physical from %x to %x, iomap from %x\n", PAGE_OFFSET, PAGE_OFFSET+(max_hwpfn*512), IOMAP_START);
printk("VM: vmalloc from %x to %x\n", VMALLOC_START, VMALLOC_END);
printk("VM: ptemap from %x to %x for %d processes\n",TASKPTE_START, TASKPTE_END,TASK_MAXUPRC);
printk("calling start_kernel...\n");
start_kernel();
}
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/Makefile,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Makefile 2001/03/04 23:44:42 1.4
+++ Makefile 2001/08/19 10:34:42 1.5
@@ -14,6 +14,6 @@
all: head.o libboot.a
L_TARGET := libboot.a
-obj-y := tmp_init.o lib.o hexdump.o mmstart.o cpu_sel.o
+obj-y := startup.o lib.o hexdump.o mmstart.o cpu_sel.o
include $(TOPDIR)/Rules.make
--- tmp_init.c DELETED ---
|