diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2006-01-11 16:41:35 -0600 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2006-01-11 16:41:35 -0600 |
commit | e559a6901ae1c5cd02fbd909631b843975f84bbc (patch) | |
tree | f53e9435b6a1ea19eb652d3e02509582a829aa0f /common/ft_build.c | |
parent | c2871f038062abafa0b7f2048075098915a5ba41 (diff) | |
download | u-boot-imx-e559a6901ae1c5cd02fbd909631b843975f84bbc.zip u-boot-imx-e559a6901ae1c5cd02fbd909631b843975f84bbc.tar.gz u-boot-imx-e559a6901ae1c5cd02fbd909631b843975f84bbc.tar.bz2 |
Add support for passing initrd information via flat device tree
Patch by Kumar Gala 11 Jan 2006
Diffstat (limited to 'common/ft_build.c')
-rw-r--r-- | common/ft_build.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/common/ft_build.c b/common/ft_build.c index 7a9a40a..9e9c906 100644 --- a/common/ft_build.c +++ b/common/ft_build.c @@ -163,7 +163,7 @@ void ft_add_rsvmap(struct ft_cxt *cxt, u64 physaddr, u64 size) ((u64 *) cxt->pres)[0] = cpu_to_be64(physaddr); /* phys = 0, size = 0, terminate */ ((u64 *) cxt->pres)[1] = cpu_to_be64(size); - cxt->pres += 18; /* advance */ + cxt->pres += 16; /* advance */ ((u64 *) cxt->pres)[0] = 0; /* phys = 0, size = 0, terminate */ ((u64 *) cxt->pres)[1] = 0; @@ -577,7 +577,7 @@ static const struct { }; #endif -void ft_setup(void *blob, int size, bd_t * bd) +void ft_setup(void *blob, int size, bd_t * bd, ulong initrd_start, ulong initrd_end) { u32 *p; int len; @@ -602,7 +602,8 @@ void ft_setup(void *blob, int size, bd_t * bd) ft_begin(&cxt, blob, size); - /* fs_add_rsvmap not used */ + if (initrd_start && initrd_end) + ft_add_rsvmap(&cxt, initrd_start, initrd_end - initrd_start + 1); ft_begin_tree(&cxt); @@ -645,6 +646,10 @@ void ft_setup(void *blob, int size, bd_t * bd) ft_prop_str(&cxt, "name", "chosen"); ft_prop_str(&cxt, "bootargs", getenv("bootargs")); ft_prop_int(&cxt, "linux,platform", 0x600); /* what is this? */ + if (initrd_start && initrd_end) { + ft_prop_int(&cxt, "linux,initrd-start", initrd_start); + ft_prop_int(&cxt, "linux,initrd-end", initrd_end); + } #ifdef OF_STDOUT_PATH ft_prop_str(&cxt, "linux,stdout-path", OF_STDOUT_PATH); #endif |