diff options
Diffstat (limited to 'arch/sparc/lib/bootm.c')
| -rw-r--r-- | arch/sparc/lib/bootm.c | 17 | 
1 files changed, 7 insertions, 10 deletions
| diff --git a/arch/sparc/lib/bootm.c b/arch/sparc/lib/bootm.c index bcc63584b..1a9343c10 100644 --- a/arch/sparc/lib/bootm.c +++ b/arch/sparc/lib/bootm.c @@ -95,10 +95,8 @@ void arch_lmb_reserve(struct lmb *lmb)  int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t * images)  {  	char *bootargs; -	ulong initrd_start, initrd_end;  	ulong rd_len;  	void (*kernel) (struct linux_romvec *, void *); -	struct lmb *lmb = &images->lmb;  	int ret;  	if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) @@ -131,24 +129,23 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t * im  	 * extracted and is writeable.  	 */ +	ret = image_setup_linux(images); +	if (ret) { +		puts("### Failed to relocate RAM disk\n"); +		goto error; +	} +  	/* Calc length of RAM disk, if zero no ramdisk available */  	rd_len = images->rd_end - images->rd_start;  	if (rd_len) { -		ret = boot_ramdisk_high(lmb, images->rd_start, rd_len, -					&initrd_start, &initrd_end); -		if (ret) { -			puts("### Failed to relocate RAM disk\n"); -			goto error; -		} -  		/* Update SPARC kernel header so that Linux knows  		 * what is going on and where to find RAM disk.  		 *  		 * Set INITRD Image address relative to RAM Start  		 */  		linux_hdr->hdr_input.ver_0203.sparc_ramdisk_image = -		    initrd_start - CONFIG_SYS_RAM_BASE; +			images->initrd_start - CONFIG_SYS_RAM_BASE;  		linux_hdr->hdr_input.ver_0203.sparc_ramdisk_size = rd_len;  		/* Clear READ ONLY flag if set to non-zero */  		linux_hdr->hdr_input.ver_0203.root_flags = 1; |