summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/a29k/portsw/startup/romlink
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/a29k/portsw/startup/romlink')
-rw-r--r--c/src/lib/libbsp/a29k/portsw/startup/romlink146
1 files changed, 146 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/a29k/portsw/startup/romlink b/c/src/lib/libbsp/a29k/portsw/startup/romlink
new file mode 100644
index 0000000000..043b2ed32c
--- /dev/null
+++ b/c/src/lib/libbsp/a29k/portsw/startup/romlink
@@ -0,0 +1,146 @@
+;
+; $Id$
+;
+;#{
+;# SCCS INFORMATION:
+;# SID = @(#)sa29200.lnk 4.1; DLU=95/09/14-11:05:57
+;# Q = @(#) Copyright (C) 1995 Advanced Micro Devices, Inc.
+;# Module Type = @(#) OSBOOT/DBG_CORE absolute liker file (AMD-EPD-29K, AMIR)
+;# SCCS Path = %P\%
+;# SCCS File = %F\%
+;# FileName = sa29200.lnk
+;# SCCS ID = 4.1
+;# Date Update = 14 Sep 1995, (DLU=95/09/14-11:05:57)
+;# Date Extract = 12 Oct 1995, (DLE=95/10/12-16:27:31)
+;#}
+; @(#)sa29200.lnk 3.6 94/08/22 11:58:54, Srini, AMD.
+; This is the linker command file used to bind the inrementally linked
+; osboot.o module to a memory map. This also defines some link-time constants
+; used in the code. These constants are genral for all 29K family members.
+; You only need to customize, if necessary, the definitions that affect
+; your target processor, and leave the rest alone.
+; The default values in this file are for binding osboot.o for use with
+; SA29200 stand-alone board with the -29200/-29205 option.
+;
+; Order the code segments according to the memory map structure.
+; The defaul OSBOOT has only .text and .bss sections. You need to ORDER
+; other sections of your applications that are not included below.
+; We use separate ORDER statements below to distinguish the two memory
+; regions used. The text section is bound to ROM memory region, and the
+; data region to RAM memory space.
+; MAKE SURE to order the BSS section at the very end. This is because the
+; BSS section size could get adjusted after linking with raminit.o (produced
+; by romcoff utility) or other initialization routines. This change in size
+; could affect the offsets used by the program to refer to the remaining data
+; sections that follow BSS.
+ALIGN ProcInit=16
+ORDER Reset=0x0
+ORDER ProcInit,OsbText,.text,!text
+ORDER .lit,!lit
+ORDER vectable=0x40000000
+ORDER msg_data=0x40000400
+ORDER .data,!data
+ORDER OsbBss,dbg_030,dbg_bss,cfg_bss,.bss,!bss
+ORDER HeapBase
+ORDER .comment
+; For Stand-Alone application out of ROM use the ORDER statements below:
+; For Stand-Alone application out of RAM use the ORDER statement below:
+;ORDER Reset=0x40010000,ProcInit,OsbText,.text,!text,.lit,!lit,.data,!data,msg_data,dbg_dat,.bss,!bss,HeapBase,.comment
+;
+; definitions of link time constants used in code.
+;
+; Definition of the initial value of CPS register.
+; The value below is for an Am29200 processor. It sets TU, SM,DI, DA,IM fields
+; bits in the register. You may modify it to suit your target environment.
+; Like, changing the IM field for instance. IM is 0x11 by default enabling
+; all INTR[0-3] lines.
+;public _init_CPS=0x87F
+public _init_CPS=0x20813
+;public _init_CPS=0x2081F
+;public _init_CPS=0x081F
+; Define the memory map in general values. The code - except for simulators -
+; configures the external RAM at run-time and updates the DMemSize value.
+; DMemStart and DMemSize are the most important values below. DMemStart is
+; used to initialize the vector base address register (VAB). And DMemSize
+; is used to find the highest addressable data memory to place the register
+; and memory stacks. Remember, DMemSize is configured at run-time for hardware
+; targets and updated.
+public VectorBaseAddress=0x40000000
+public IMemStart=0x0000000
+public IMemSize=0xfffff
+public DMemStart=0x40000000
+#public DMemStart=0x100000
+public DMemSize=0xfffff
+#public DMemSize=0x17ffff
+#public DMemSize=0x3fffffff
+public RMemStart=0x0
+public RMemSize=0xfffff
+public EnableDRAMSizing=1
+;
+; For the 29K Microcontrollers, you need to define the ROM Control register
+; value (RMCT_VALUE), the ROM Configuration register value (RMCF_VALUE), and
+; the DRAM Control register value (DRCT_VALUE) based on DMemSize specified
+; above. This could be overwritten in software targets such as the simulator.
+; ROM and RAM Control registers. ROM COnfiguration. (not valid for Am2900X,
+; Am29050, and Am2903X processors)
+; The DRAM REFRATE value (in DRCT) must be specified here. To disable
+; DRAM refreshing (on a system with no DRAM), set REFRATE field in DRCT
+; to zero. Otherwise, set it to the desired frequency. The default is 0xFF
+; The default values in this file are for Am2920X processors.
+;public RMCT_VALUE=0x03030303
+;public DRCT_VALUE=0x888800FF
+;public RMCF_VALUE=0x00f8f8f8
+;
+public RMCT_VALUE=0x4a424300
+public DRCT_VALUE=0xccc000f0
+public RMCF_VALUE=0x011121ff
+;
+;
+; Execute trap handlers from ROM? If your trap handlers are in ROM space,
+; then set _TRAPINROM to TWO (0x2). It is used to modify the tarp vector
+; address installed to set the R bit when fetched. If the trap handlers in
+; ROM or if there is no ROM-space (no RE bit in CPS), set _TRAPINROM to ZERO.
+; The default in this file is for SA29200 board and _TRAPINROM is set to ZERO.
+public _TRAPINROM=0
+;
+; Define the processor clock frequencies. These values are used by the HIF
+; kernel to provide some HIF services.
+public TicksPerMillisecond=16000
+public ClockFrequency=16000000
+;
+; There are some C functions which are not leaf functions. However, they are
+; no expected to spill or fill registers. We ensure that by setting up a
+; pseudo register stack before calling those functions. The code generated
+; for those functions however do have the prologue and epilogue which refer
+; to the symbols V_SPILL and V_FILL. The linker does not know about these
+; symbols. So we define it here so that it does not complain.
+; If you use the hc29 compiler driver to link the objects it will warn that
+; the definitions here are already internally defined. You
+; can use hc29 with -nocrt0 option to do the linking for linear memory spaces.
+; public V_SPILL=64
+; public V_FILL=65
+;
+; Set the UART debug/monitor port serial communications baud rate.
+;
+public UCLK=32000000
+; INITBAUD defines the cold start baud rate. This is the baud rate
+; the monitor would use when powered up. This can be overridden by
+; defining BAUDRATE on the assembler/compiler command line.
+public INITBAUD=9600
+;
+; Is there a SCC 8530 on the target?
+; If there is an 8530 SC on target, define the symbols below appropriately.
+; The routines in scc8530.s use these values to access the registers of
+; SCC and program it. The default values are for EZ030 target.
+; Baudrate can be specified on the command-line to override the default
+; baud rate defined in scc8530.s.
+; scc channel A control
+;public SCC8530_CHA_CONTROL=0xC0000007
+; scc channel B control
+;public SCC8530_CHB_CONTROL=0xC0000003
+; scc channel A data
+;public SCC8530_CHA_DATA=0xC000000F
+; scc channel B data
+;public SCC8530_CHB_DATA=0xC000000B
+; scc baud clock generator
+;public SCC8530_BAUD_CLK_ENBL=3