Commit 1b5605ca authored by Marian Balakowicz's avatar Marian Balakowicz Committed by Wolfgang Denk

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: default avatarMarian Balakowicz <m8@semihalf.com>
parent c59518e1
......@@ -66,6 +66,12 @@ static logbuff_t *log;
#endif
static char *lbuf;
unsigned long __logbuffer_base(void)
{
return CFG_SDRAM_BASE + gd->bd->bi_memsize - LOGBUFF_LEN;
}
unsigned long logbuffer_base (void) __attribute__((weak, alias("__logbuffer_base")));
void logbuff_init_ptrs (void)
{
unsigned long tag, post_word;
......@@ -75,7 +81,7 @@ void logbuff_init_ptrs (void)
log = (logbuff_t *)CONFIG_ALT_LH_ADDR;
lbuf = (char *)CONFIG_ALT_LB_ADDR;
#else
log = (logbuff_t *)(gd->bd->bi_memsize-LOGBUFF_LEN) - 1;
log = (logbuff_t *)(logbuffer_base ()) - 1;
lbuf = (char *)log->buf;
#endif
......
......@@ -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);
......
......@@ -60,6 +60,7 @@ int drv_logbuff_init (void);
void logbuff_init_ptrs (void);
void logbuff_log(char *msg);
void logbuff_reset (void);
unsigned long logbuffer_base (void);
#endif /* CONFIG_LOGBUFFER */
......
......@@ -398,6 +398,11 @@ ulong get_effective_memsize(void)
************************************************************************
*/
unsigned long logbuffer_base(void)
{
return CFG_SDRAM_BASE + get_effective_memsize() - LOGBUFF_LEN;
}
void board_init_f (ulong bootflag)
{
bd_t *bd;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment