pre-2.1.132-4..
[davej-history.git] / arch / ppc / kernel / mbx_setup.c
blob30cd01a860b6f4a3e6bb39877b81a9fd4faf78d5
1 /*
2 * $Id: mbx_setup.c,v 1.4 1998/11/15 19:58:55 cort Exp $
4 * linux/arch/ppc/kernel/setup.c
6 * Copyright (C) 1995 Linus Torvalds
7 * Adapted from 'alpha' version by Gary Thomas
8 * Modified by Cort Dougan (cort@cs.nmt.edu)
9 * Modified for MBX using prep/chrp/pmac functions by Dan (dmalek@jlc.net)
13 * bootup setup stuff..
16 #include <linux/config.h>
17 #include <linux/errno.h>
18 #include <linux/sched.h>
19 #include <linux/kernel.h>
20 #include <linux/mm.h>
21 #include <linux/stddef.h>
22 #include <linux/unistd.h>
23 #include <linux/ptrace.h>
24 #include <linux/malloc.h>
25 #include <linux/user.h>
26 #include <linux/a.out.h>
27 #include <linux/tty.h>
28 #include <linux/major.h>
29 #include <linux/interrupt.h>
30 #include <linux/reboot.h>
31 #include <linux/init.h>
32 #include <linux/blk.h>
33 #include <linux/ioport.h>
35 #include <asm/mmu.h>
36 #include <asm/processor.h>
37 #include <asm/residual.h>
38 #include <asm/io.h>
39 #include <asm/pgtable.h>
40 #include <asm/ide.h>
41 #include <asm/mbx.h>
43 extern unsigned long loops_per_sec;
45 unsigned long empty_zero_page[1024];
47 #ifdef CONFIG_BLK_DEV_RAM
48 extern int rd_doload; /* 1 = load ramdisk, 0 = don't load */
49 extern int rd_prompt; /* 1 = prompt for ramdisk, 0 = don't prompt */
50 extern int rd_image_start; /* starting block # of image */
51 #endif
53 extern char saved_command_line[256];
55 extern unsigned long find_available_memory(void);
56 extern void m8xx_cpm_reset(uint);
58 /* this really does make things cleaner -- Cort */
59 void __init powermac_init(void)
62 void __init adbdev_init(void)
66 void __init mbx_ide_init_hwif_ports(ide_ioreg_t *p, ide_ioreg_t base, int *irq)
69 *p = 0;
70 *irq = 0;
72 if (base != 0) /* Only map the first ATA flash drive */
73 return;
74 #ifdef ATA_FLASH
75 base = (unsigned long) ioremap(PCMCIA_MEM_ADDR, 0x200);
76 for (i = 0; i < 8; ++i)
77 *p++ = base++;
78 *p = ++base; /* Does not matter */
79 if (irq)
80 *irq = 13;
81 #endif
84 __initfunc(void
85 mbx_setup_arch(unsigned long * memory_start_p, unsigned long * memory_end_p))
87 int cpm_page;
88 extern char cmd_line[];
90 cpm_page = *memory_start_p;
91 *memory_start_p += PAGE_SIZE;
93 sprintf(cmd_line,
94 "%s root=/dev/nfs nfsroot=/sys/mbxroot",
95 cmd_line);
96 printk("Boot arguments: %s\n", cmd_line);
98 /* Reset the Communication Processor Module.
100 m8xx_cpm_reset(cpm_page);
102 #ifdef notdef
103 ROOT_DEV = to_kdev_t(0x0301); /* hda1 */
104 #endif
106 #ifdef CONFIG_BLK_DEV_INITRD
107 #if 0
108 ROOT_DEV = to_kdev_t(0x0200); /* floppy */
109 rd_prompt = 1;
110 rd_doload = 1;
111 rd_image_start = 0;
112 #endif
113 /* initrd_start and size are setup by boot/head.S and kernel/head.S */
114 if ( initrd_start )
116 if (initrd_end > *memory_end_p)
118 printk("initrd extends beyond end of memory "
119 "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
120 initrd_end,*memory_end_p);
121 initrd_start = 0;
124 #endif
126 #ifdef notdef
127 request_region(0x20,0x20,"pic1");
128 request_region(0xa0,0x20,"pic2");
129 request_region(0x00,0x20,"dma1");
130 request_region(0x40,0x20,"timer");
131 request_region(0x80,0x10,"dma page reg");
132 request_region(0xc0,0x20,"dma2");
133 #endif
136 void
137 abort(void)
139 #ifdef CONFIG_XMON
140 extern void xmon(void *);
141 xmon(0);
142 #endif
143 machine_restart(NULL);