aboutsummaryrefslogtreecommitdiff
path: root/common/image.c
diff options
context:
space:
mode:
authorMarian Balakowicz2008-05-07 13:10:04 +0200
committerWolfgang Denk2008-05-10 00:16:13 +0200
commit1b5605ca57fbb364f4d78eeee28b974ed875e888 (patch)
tree0a19c491ded69f7b2e1771e654e6b90807bde522 /common/image.c
parentc59518e15949b3403df5c5b0c2c48ea0e5bea24b (diff)
Avoid initrd and logbuffer area overlaps
Add logbuffer to reserved LMB areas to prevent initrd allocation from overlaping with it. Make sure to use correct logbuffer base address. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Diffstat (limited to 'common/image.c')
-rw-r--r--common/image.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/image.c b/common/image.c
index f4070fb3876..f7faf504d42 100644
--- a/common/image.c
+++ b/common/image.c
@@ -36,6 +36,10 @@
#include <dataflash.h>
#endif
+#ifdef CONFIG_LOGBUFFER
+#include <logbuff.h>
+#endif
+
#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)
#include <rtc.h>
#endif
@@ -1018,6 +1022,9 @@ int boot_ramdisk_high (struct lmb *lmb, ulong rd_data, ulong rd_len,
initrd_high = ~0;
}
+ /* Prevent initrd from overwriting logbuffer */
+ lmb_reserve(lmb, logbuffer_base() - LOGBUFF_OVERHEAD, LOGBUFF_RESERVE);
+
debug ("## initrd_high = 0x%08lx, copy_to_ram = %d\n",
initrd_high, initrd_copy_to_ram);