/* * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. * * $Id$ */ #include #include #include extern void *_sdram_size; extern void *_sdram_base; extern void *_bss_free_start; /* * This method returns the base address and size of the area which * is to be allocated between the RTEMS Workspace and the C Program * Heap. */ void bsp_get_work_area( void **work_area_start, size_t *work_area_size, void **heap_start, size_t *heap_size ) { uintptr_t size; /* * Old code had hard-coded heap size of 0x20000 and a comment indicating * something about the undefined symbol MEM_NOCACHE_SIZE. */ size = (uintptr_t)&_sdram_base + (uintptr_t)&_sdram_size - (uintptr_t)&_bss_free_start; *work_area_start = (void *)&_bss_free_start; *work_area_size = size; *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA; *heap_size = BSP_BOOTCARD_HEAP_SIZE_DEFAULT; }