;
;  $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
