/**
 * @file
 *
 * @ingroup  arm_beagle
 *
 * @brief Linker script for beagles.
 */

MEMORY {
  /* Beagleboards and beaglebones all
   * have either 256M or 512M memory. We just
   * use 256M for all.
   */
  RAM      : ORIGIN = 0x80000000, LENGTH = 256M - 16M - 4M
  NOCACHE  : ORIGIN = 0x80000000 + 256M - 16M - 4M, LENGTH = 16M
  RAM_MMU  : ORIGIN = 0x80000000 + 256M - 4M, LENGTH = 16k
}

REGION_ALIAS ("REGION_START",          RAM);
REGION_ALIAS ("REGION_VECTOR",         RAM);
REGION_ALIAS ("REGION_TEXT",           RAM);
REGION_ALIAS ("REGION_TEXT_LOAD",      RAM);
REGION_ALIAS ("REGION_RODATA",         RAM);
REGION_ALIAS ("REGION_RODATA_LOAD",    RAM);
REGION_ALIAS ("REGION_DATA",           RAM);
REGION_ALIAS ("REGION_DATA_LOAD",      RAM);
REGION_ALIAS ("REGION_FAST_TEXT",      RAM);
REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
REGION_ALIAS ("REGION_FAST_DATA",      RAM);
REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
REGION_ALIAS ("REGION_BSS",            RAM);
REGION_ALIAS ("REGION_WORK",           RAM);
REGION_ALIAS ("REGION_STACK",          RAM);
REGION_ALIAS ("REGION_NOCACHE",        NOCACHE);
REGION_ALIAS ("REGION_NOCACHE_LOAD",   NOCACHE);

bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;

bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;

bsp_vector_table_in_start_section = 1;

bsp_translation_table_base = ORIGIN (RAM_MMU);
bsp_translation_table_end = ORIGIN (RAM_MMU) + LENGTH (RAM_MMU);

INCLUDE linkcmds.armv4

HeapSize = 1024 * 1024;
