view src/cs/system/template/gsm_ds_fuj4d_gol.template @ 536:ae18f9aad7ce

C155 target support implemented in a way that should work with this model's original bootloader
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 05 Nov 2018 23:15:45 +0000
parents 945cf7f506b2
children
line wrap: on
line source

/*
 * Integrated Protocol Stack Linker command file (all components)
 *
 * Target : ARM
 *
 * Copyright (c) Texas Instruments 2002, Condat 2002
 *
 */

-c /* Autoinitialize variables at runtime */

/*********************************/
/* SPECIFY THE SYSTEM MEMORY MAP */
/*********************************/

MEMORY
{
  /* CS0: Flash 8 Mbytes ****************************************************/
  /* Interrupt Vectors Table */
  I_MEM   (RXI) : org = 0x00000000   len = 0x00000100

  /* Boot Sector */
  B_MEM   (RXI) : org = 0x00000100   len = 0x00001f00

  /* Magic Word for Calypso Boot ROM */
  MWC_MEM (RXI) : org = 0x00002000   len = 0x00000004  fill = 0x0000001

  /* Program Memory */
  P_MEM1  (RXI) : org = 0x00010000   len = 0x00000700
  P_MEM2  (RXI) : org = 0x00010700   len = 0x0030f900
/*  P_MEM3  (RXI) : org = 0x00400000   len = 0x00300000*/

  /* FFS Area */
  FFS_MEM (RX)  : org = 0x00320000   len = 0x000D0000
  /**************************************************************************/

  /* CS1: External SRAM 1 Mbytes ********************************************/
  /* Data Memory */
  D_MEM1  (RW)  : org = 0x01000000   len = 0x00100000
  /**************************************************************************/

  /* CS2: External SRAM 8 Mbytes ********************************************/
  /* Data Memory */
  D_MEM2  (RW)  : org = 0x01800000   len = 0x00800000
  /**************************************************************************/

  /* CS6: Calypso Internal SRAM 512 kbytes **********************************/
  /* Code & Variables Memory */
  S_MEM   (RXW) : org = 0x00800000   len = 0x00080000
  /**************************************************************************/
}

/***********************************************/
/* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */
/***********************************************/

/*
 * Since the bootloader directly calls the INT_Initialize() routine located
 * in int.s, this int.s code must always be mapped at the same address
 * (usually in the second flash sector). Its length is about 0x500 bytes.
 * Then comes the code that need to be loaded into the internal RAM.
 */

SECTIONS
{
    .intvecs : {} > I_MEM      /* Interrupt Vectors Table */
    .monitor : > B_MEM         /* Monitor Constants & Code */
    {
        $(CONST_BOOT_LIB)
    }

    .inttext : {} > P_MEM1     /* int.s Code */
    
    .bss_dar : > S_MEM         /* DAR SWE Variables */
    {
        $(BSS_DAR_LIB)
    }

    .bss     : > S_MEM         /* Global & Static Variables */
    {
        $(BSS_BOOT_LIB)
    }

    /*
     * The rest of the code and constants is mapped in flash.
     */

    .cinit   : {} > P_MEM2     /* Initialization Tables */
    .const   : {} > P_MEM2     /* Constant Data */
    .text    : {} > P_MEM2     /* Code */

    .stackandheap : > S_MEM    /* System Stacks, etc... */
    {
      /* Leave 20 32bit words for register pushes. */
        . =  align(8);
      . += 20 * 4;

      /* Stack for abort and/or undefined modes. */
      exception_stack = .;

      /* Leave 38 32bit words for state saving on exceptions. */
        _xdump_buffer   = .;
      . += 38 * 4;
      . = align(8);

      /* Beginning of stacks and heap area - 2.75 kbytes (int.s) */
      stack_segment = .;
      . += 0xB00;
    }

    .data    : {} > S_MEM      /* Initialized Data */
    .sysmem  : {} > S_MEM      /* Dynamic Memory Allocation Area */

}