diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-10-31 08:36:11 -0800 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-10-31 08:36:11 -0800 | 
| commit | 53b2ec5518aa2623e8c0cb36f1c304a797988a46 (patch) | |
| tree | 465d8631ade6c2fcbd7576ff9813d00116c6a1e8 /arch/ppc/syslib/ibm44x_common.c | |
| parent | 0753ca7bc2b876dd136e9db11a20f85cbe4e08b1 (diff) | |
| parent | 581c1b14394aee60aff46ea67d05483261ed6527 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'arch/ppc/syslib/ibm44x_common.c')
| -rw-r--r-- | arch/ppc/syslib/ibm44x_common.c | 37 | 
1 files changed, 35 insertions, 2 deletions
diff --git a/arch/ppc/syslib/ibm44x_common.c b/arch/ppc/syslib/ibm44x_common.c index 7612e0623f9..5152c8e4134 100644 --- a/arch/ppc/syslib/ibm44x_common.c +++ b/arch/ppc/syslib/ibm44x_common.c @@ -27,9 +27,14 @@  #include <asm/time.h>  #include <asm/ppc4xx_pic.h>  #include <asm/param.h> +#include <asm/bootinfo.h> +#include <asm/ppcboot.h>  #include <syslib/gen550.h> +/* Global Variables */ +bd_t __res; +  phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_addr_t size)  {  	phys_addr_t page_4gb = 0; @@ -150,8 +155,36 @@ static unsigned long __init ibm44x_find_end_of_memory(void)  	return mem_size;  } -void __init ibm44x_platform_init(void) +void __init ibm44x_platform_init(unsigned long r3, unsigned long r4, unsigned long r5, +				 unsigned long r6, unsigned long r7)  { +	parse_bootinfo(find_bootinfo()); + +	/* +	 * If we were passed in a board information, copy it into the +	 * residual data area. +	 */ +	if (r3) +		__res = *(bd_t *)(r3 + KERNELBASE); + +#if defined(CONFIG_BLK_DEV_INITRD) +	/* +	 * If the init RAM disk has been configured in, and there's a valid +	 * starting address for it, set it up. +	 */ +	if (r4) { +		initrd_start = r4 + KERNELBASE; +		initrd_end = r5 + KERNELBASE; +	} +#endif  /* CONFIG_BLK_DEV_INITRD */ + +	/* Copy the kernel command line arguments to a safe place. */ + +	if (r6) { +		*(char *) (r7 + KERNELBASE) = 0; +		strcpy(cmd_line, (char *) (r6 + KERNELBASE)); +	} +  	ppc_md.init_IRQ = ppc4xx_pic_init;  	ppc_md.find_end_of_memory = ibm44x_find_end_of_memory;  	ppc_md.restart = ibm44x_restart; @@ -178,7 +211,7 @@ void __init ibm44x_platform_init(void)  #endif  } -/* Called from MachineCheckException */ +/* Called from machine_check_exception */  void platform_machine_check(struct pt_regs *regs)  {      	printk("PLB0: BEAR=0x%08x%08x ACR=  0x%08x BESR= 0x%08x\n",  | 
