URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [rtems-20020807/] [c/] [src/] [lib/] [libbsp/] [a29k/] [portsw/] [startup/] [romlink] - Rev 1782
Compare with Previous | Blame | View Log
;; romlink,v 1.1 1996/09/18 21:13:09 joel Exp;;#{;# 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=16ORDER Reset=0x0ORDER ProcInit,OsbText,.text,!textORDER .lit,!litORDER vectable=0x40000000ORDER msg_data=0x40000400ORDER .data,!dataORDER OsbBss,dbg_030,dbg_bss,cfg_bss,.bss,!bssORDER HeapBaseORDER .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=0x87Fpublic _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=0x40000000public IMemStart=0x0000000public IMemSize=0xfffffpublic DMemStart=0x40000000#public DMemStart=0x100000public DMemSize=0xfffff#public DMemSize=0x17ffff#public DMemSize=0x3fffffffpublic RMemStart=0x0public RMemSize=0xfffffpublic 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=0x4a424300public DRCT_VALUE=0xccc000f0public 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=16000public 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
