summaryrefslogtreecommitdiff
path: root/flattree.c
diff options
context:
space:
mode:
authorJerry Van Baren <gvb.uboot@gmail.com>2007-04-04 22:04:33 -0400
committerJon Loeliger <jdl@freescale.com>2007-04-05 09:57:55 -0500
commit4384b23454a939852d679aee93ee624cf210287f (patch)
tree3baf8083f97b09b0df91f16c23a36d7b426a6cf7 /flattree.c
parentce34ae3b238c562a215df0dddea56da866f16c0f (diff)
downloaddtc-4384b23454a939852d679aee93ee624cf210287f.tar.gz
Implement the -R option and add a -S option.
Implement the -R <number> option to add memory reserve slots. Add a -S <size> option makes the blob at least this number of bytes. Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Diffstat (limited to 'flattree.c')
-rw-r--r--flattree.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/flattree.c b/flattree.c
index 780142f..151d16e 100644
--- a/flattree.c
+++ b/flattree.c
@@ -295,10 +295,18 @@ static struct data flatten_reserve_list(struct reserve_info *reservelist,
{
struct reserve_info *re;
struct data d = empty_data;
+ static struct reserve_entry null_re = {0,0};
+ int j;
for (re = reservelist; re; re = re->next) {
d = data_append_re(d, &re->re);
}
+ /*
+ * Add additional reserved slots if the user asked for them.
+ */
+ for (j = 0; j < reservenum; j++) {
+ d = data_append_re(d, &null_re);
+ }
return d;
}
@@ -324,8 +332,18 @@ static void make_bph(struct boot_param_header *bph,
bph->off_dt_struct = cpu_to_be32(reserve_off + reservesize);
bph->off_dt_strings = cpu_to_be32(reserve_off + reservesize
+ dtsize);
- bph->totalsize = cpu_to_be32(reserve_off + reservesize
- + dtsize + strsize);
+ bph->totalsize = reserve_off + reservesize + dtsize + strsize;
+ if (minsize > 0) {
+ if (bph->totalsize >= minsize) {
+ if (quiet < 1)
+ fprintf(stderr,
+ "Warning: blob size %d >= minimum size %d\n",
+ bph->totalsize, minsize);
+
+ } else
+ bph->totalsize = minsize;
+ }
+ bph->totalsize = cpu_to_be32(bph->totalsize);
if (vi->flags & FTF_BOOTCPUID)
bph->boot_cpuid_phys = cpu_to_be32(boot_cpuid_phys);