Support kernels up to 4MB in size (was 2MB) in initarm().
Removed some un-necessary cache synchronisations. Call the cpu_sleep() function in an infinite loop in halt(). Removed the long dead swap specifier from rc7500 initarm().
This commit is contained in:
parent
0c0a1966bb
commit
6c440cc51b
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: machdep.c,v 1.23 1997/06/12 15:46:26 mrg Exp $ */
|
||||
/* $NetBSD: machdep.c,v 1.24 1997/07/31 02:59:06 mark Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994-1996 Mark Brinicombe.
|
||||
|
@ -245,14 +245,13 @@ extern void hydrastop __P((void));
|
|||
|
||||
/*
|
||||
* Debug function just to park the CPU
|
||||
*
|
||||
* This should be updated to power down an ARM7500
|
||||
*/
|
||||
|
||||
void
|
||||
halt()
|
||||
{
|
||||
while (1);
|
||||
while (1)
|
||||
cpu_sleep(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -811,12 +810,12 @@ initarm(bootconf)
|
|||
* Needs to be 2MB aligned
|
||||
*/
|
||||
|
||||
for (logical = 0; logical < 0x200000; logical += NBPG) {
|
||||
for (logical = 0; logical < 0x400000; logical += NBPG) {
|
||||
map_entry(l2pagetable + 0x2000, logical,
|
||||
bootconfig.dram[0].address + logical + NBPG);
|
||||
}
|
||||
#else
|
||||
for (logical = 0; logical < 0x200000; logical += NBPG) {
|
||||
for (logical = 0; logical < 0x400000; logical += NBPG) {
|
||||
map_entry(l2pagetable + 0x2000, logical,
|
||||
bootconfig.dram[0].address + logical);
|
||||
}
|
||||
|
@ -863,9 +862,6 @@ initarm(bootconf)
|
|||
if (bootconfig.vram[0].pages == 0)
|
||||
vidcconsole_blank(vconsole_current, BLANK_OFF);
|
||||
|
||||
/* XXX - Is this really needed ? - no as the setttb() function cleans the caches */
|
||||
cpu_cache_syncI();
|
||||
|
||||
/* If we don't have VRAM ..
|
||||
* Ahhhhhhhhhhhhhhhhhhhhhh
|
||||
* We have just mapped the kernel across the video DRAM from RISCOS.
|
||||
|
@ -930,7 +926,7 @@ initarm(bootconf)
|
|||
|
||||
/* Zero down the memory we mapped in for the secondary bootstrap */
|
||||
|
||||
bzero(0x00000000, 0x200000); /* XXX */
|
||||
bzero(0x00000000, 0x400000); /* XXX */
|
||||
|
||||
/* Set up the variables that define the availablilty of physcial memory */
|
||||
|
||||
|
@ -1286,9 +1282,6 @@ initarm(bootconf)
|
|||
|
||||
bcopy((char *)KERNEL_BASE, (char *)0x00000000, kerneldatasize);
|
||||
|
||||
/* XXX - Is this really needed ? - no as the setttb() function cleans the caches */
|
||||
cpu_cache_syncI();
|
||||
|
||||
/* Switch tables */
|
||||
|
||||
setttb(kernel_pt_table[KERNEL_PT_PAGEDIR]);
|
||||
|
@ -1311,7 +1304,7 @@ initarm(bootconf)
|
|||
bcopy(page0, (char *)0x00000000, page0_end - page0);
|
||||
|
||||
/* We have modified a text page so sync the icache */
|
||||
cpu_cache_syncI();
|
||||
cpu_cache_syncI_rng(0, page0_end - page0);
|
||||
|
||||
/*
|
||||
* Pages were allocated during the secondary bootstrap for the
|
||||
|
@ -1361,9 +1354,6 @@ initarm(bootconf)
|
|||
undefined_handler_address = (u_int)undefinedinstruction_bounce;
|
||||
console_flush();
|
||||
|
||||
/* XXX - Is this really needed */
|
||||
cpu_cache_syncI();
|
||||
|
||||
/* Diagnostic stuff. while writing the boot code */
|
||||
|
||||
/* for (loop = 0x0; loop < 0x1000; ++loop) {
|
||||
|
@ -1399,18 +1389,12 @@ initarm(bootconf)
|
|||
undefined_init();
|
||||
console_flush();
|
||||
|
||||
/* XXX - Is this really needed */
|
||||
cpu_cache_syncI();
|
||||
|
||||
/* Boot strap pmap telling it where the kernel page table is */
|
||||
|
||||
printf("pmap ");
|
||||
pmap_bootstrap(PAGE_DIRS_BASE);
|
||||
console_flush();
|
||||
|
||||
/* XXX - Is this really needed */
|
||||
cpu_cache_syncI();
|
||||
|
||||
/* Setup the IRQ system */
|
||||
|
||||
printf("irq ");
|
||||
|
@ -1479,17 +1463,17 @@ initarm(prom_id)
|
|||
memory_disc_size = MEMORY_DISK_SIZE * 1024;
|
||||
|
||||
#ifdef MEMORY_DISK_HOOKS
|
||||
boot_args = "root=/dev/md0a swapsize=0";
|
||||
boot_args = "root=/dev/md0a";
|
||||
#else
|
||||
if (strcmp(prom_id->bootdev, "fd") == 0) {
|
||||
boot_args = "root=/dev/fd0a swapsize=0";
|
||||
boot_args = "root=/dev/fd0a";
|
||||
} else {
|
||||
strcpy(bootstring, "root=/dev/");
|
||||
strcat(bootstring, prom_id->bootdev);
|
||||
if (((prom_id->bootdevnum >> B_UNITSHIFT) & B_UNITMASK) == 0)
|
||||
strcat(bootstring, "0a swap=/dev/wd0b");
|
||||
strcat(bootstring, "0a");
|
||||
else
|
||||
strcat(bootstring, "1a swap=/dev/wd1b");
|
||||
strcat(bootstring, "1a");
|
||||
boot_args = bootstring;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue