diff options
Diffstat (limited to 'common/board_f.c')
-rw-r--r-- | common/board_f.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/common/board_f.c b/common/board_f.c index 31181a9dc4..6867abc8e6 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -467,12 +467,29 @@ static int reserve_uboot(void) return 0; } +#ifdef CONFIG_SYS_NONCACHED_MEMORY +static int reserve_noncached(void) +{ + /* round down to SECTION SIZE (typicaly 1MB) limit */ + gd->start_addr_sp &= ~(MMU_SECTION_SIZE - 1); + gd->start_addr_sp -= CONFIG_SYS_NONCACHED_MEMORY; + debug("Reserving %dM for noncached_alloc() at: %08lx\n", + CONFIG_SYS_NONCACHED_MEMORY >> 20, gd->start_addr_sp); + + return 0; +} +#endif + /* reserve memory for malloc() area */ static int reserve_malloc(void) { gd->start_addr_sp = gd->start_addr_sp - TOTAL_MALLOC_LEN; debug("Reserving %dk for malloc() at: %08lx\n", TOTAL_MALLOC_LEN >> 10, gd->start_addr_sp); +#ifdef CONFIG_SYS_NONCACHED_MEMORY + reserve_noncached(); +#endif + return 0; } |