diff src/cs/system/template/gsm_ds_fuj4d_gol.template @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/system/template/gsm_ds_fuj4d_gol.template	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,114 @@
+/*
+ * 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 */
+
+}