diff options
| author | Kumar Gala <galak@kernel.crashing.org> | 2008-08-15 08:24:43 -0500 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-08-26 23:45:20 +0200 | 
| commit | 2a1a2cb6e2b87ee550e6f27b647d23331dfd5e1b (patch) | |
| tree | af05886e553effd9ab2b9825a73d169be5c784ed /lib_ppc/bootm.c | |
| parent | 3082d2348c8e13342f5fdd10e9b3f7408062dbf9 (diff) | |
| download | olio-uboot-2014.01-2a1a2cb6e2b87ee550e6f27b647d23331dfd5e1b.tar.xz olio-uboot-2014.01-2a1a2cb6e2b87ee550e6f27b647d23331dfd5e1b.zip | |
fdt: refactor initrd related code
Created a new fdt_initrd() to deal with setting the initrd properties
in the device tree and fixing up the mem reserve.  We can use this
both in the choosen node handling and lets us remove some duplicated
code when we fixup the initrd info in bootm on PPC.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'lib_ppc/bootm.c')
| -rw-r--r-- | lib_ppc/bootm.c | 28 | 
1 files changed, 2 insertions, 26 deletions
| diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c index 300e00a2d..9892aface 100644 --- a/lib_ppc/bootm.c +++ b/lib_ppc/bootm.c @@ -182,32 +182,8 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],  #if defined(CONFIG_OF_LIBFDT)  	/* fixup the initrd now that we know where it should be */ -	if ((of_flat_tree) && (initrd_start && initrd_end)) { -		uint64_t addr, size; -		int  total = fdt_num_mem_rsv(of_flat_tree); -		int  j; - -		/* Look for the dummy entry and delete it */ -		for (j = 0; j < total; j++) { -			fdt_get_mem_rsv(of_flat_tree, j, &addr, &size); -			if (addr == images->rd_start) { -				fdt_del_mem_rsv(of_flat_tree, j); -				break; -			} -		} - -		ret = fdt_add_mem_rsv(of_flat_tree, initrd_start, -					initrd_end - initrd_start + 1); -		if (ret < 0) { -			printf("fdt_chosen: %s\n", fdt_strerror(ret)); -			goto error; -		} - -		do_fixup_by_path_u32(of_flat_tree, "/chosen", -					"linux,initrd-start", initrd_start, 0); -		do_fixup_by_path_u32(of_flat_tree, "/chosen", -					"linux,initrd-end", initrd_end, 0); -	} +	if ((of_flat_tree) && (initrd_start && initrd_end)) +		fdt_initrd(of_flat_tree, initrd_start, initrd_end, 1);  #endif  	debug ("## Transferring control to Linux (at address %08lx) ...\n",  		(ulong)kernel); |