From: Andy P. <at...@us...> - 2001-08-19 10:34:46
|
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 --- |