DOC

SBCARM7FLASHBASE

By Donald Cook,2014-08-27 14:20
7 views 0
SBCARM7FLASHBASE

     /* sbcarm7.h - WindRiver SBC ARM7 header file */

    /* Copyright 1984-2001 Wind River Systems, Inc. */ #include "copyright_wrs.h"

/*

    modification history

    --------------------

    01f,16jul02,m_h C++ protection

    01e,04jan02,m_h minor cleanup

    01d,03dec01,m_h remove Diab warnings

    01c,27sep01,m_h base MAC address on user DIP setting 01b,22may01,m_h documentation

    01a,12apr01,m_h created from snds100 template. */

/*

    This file contains I/O address and related constants for the SBC ARM7 board.

    */

#ifndef INCsbcarm7h

    #define INCsbcarm7h

#ifdef __cplusplus

    extern "C" {

    #endif

#include "sngks32c.h"

#define TARGET_SBCARM7

/*****我修改成和config.h#define ROM_BASE_ADRS 0x02000000 一致***/

#define SBCARM7_FLASH_BASE 0x2000000

/*

     * Local-to-Bus memory address constants:

     * the local memory address always appears at 0 locally;

     * it is not dual ported.

     */

    #define LOCAL_MEM_LOCAL_ADRS 0x00000000 /* fixed */

#define LOCAL_MEM_BUS_ADRS 0x00000000 /* fixed */

#define BUS BUS_TYPE_NONE

    #define SBCARM7_CPU_SPEED 50000000 /* CPU clocked at 50 MHz. The timer */

     /* speed is related to this */

/* definitions for the KS32C50100 UART */

    #define N_SBCARM7_UART_CHANNELS 2 /* number of SBCARM7 UART chans */

    #define N_SIO_CHANNELS N_SBCARM7_UART_CHANNELS

    #define N_UART_CHANNELS N_SBCARM7_UART_CHANNELS

    #define UART_REG_ADDR_INTERVAL 1 /* registers 4 bytes apart */

/*去掉一下3个语句;*/

    /* LED Registers (write) */

    /*#define SBCARM7_LEDREG 0x3fd4000*/

/* USER DIP switch (read) */

    /*#define SBCARM7_USERREG 0x3fd4000

    #define READ_USERDIP() (*((volatile char *)SBCARM7_USERREG) & 0xff) */

    /*************************************************************************

     *

     * DRAM Memory Bank 0 area MAP for Exception vector table

     * and Stack, User code area.

     *

     */

    #define DRAM_BASE 0x0 /* Final start address of DRAM */ #define DRAM_LIMIT 0x2000000 /*old value = 0x400000 */ #define RESET_DRAM_START 0x100000 /* Start of DRAM on power-up old value = 0x1000000*/

    #define RESET_ROM_START 0x0 /* Start of ROM on power-up */

    /****************************************************************************

     *

     * Format of the Program Status Register

     */

#define FBit 0x40

    #define IBit 0x80

    #define LOCKOUT 0xC0 /* Interrupt lockout value */ #define LOCK_MSK 0xC0 /* Interrupt lockout mask value */ #define MODE_MASK 0x1F /* Processor Mode Mask */ #define UDF_MODE 0x1B /* Undefine Mode(UDF) */ #define ABT_MODE 0x17 /* Abort Mode(ABT) */ #define SUP_MODE 0x13 /* Supervisor Mode (SVC) */ #define IRQ_MODE 0x12 /* Interrupt Mode (IRQ) */ #define FIQ_MODE 0x11 /* Fast Interrupt Mode (FIQ) */ #define USR_MODE 0x10 /* User Mode(USR) */

/*************************************************************************

     * SYSTEM CLOCK

     */

#define MHz 1000000

    #define fMCLK_MHz 50000000 /* 50MHz, KS32C50100*/ #define fMCLK 50 /* fMCLK_MHz/MHz */

/*************************************************************************

     * SYSTEM MEMORY CONTROL REGISTER EQU TABLES

     */

/* SYSCFG Register Value */

    #define SYSCONFIG_VAL 0x07ffffa0 /* System Configuration Value, EDO

    RAM */

    #define SYSCONFIG_VAL_SDRAM 0xe7ffffa0 /* System Configuration Value,

    SDRAM old value=87ffffa0*/

    /* CLKCON Clock configuration register Values */ #define tCDIV (1<<0)

    #define tWE (0<<16)

    #define tMUX (0<<17)

    #define tAC (0<<18)

    #define tTEST (0<<31)

#define rCLKCON (tCDIV+tWE+tMUX+tAC+tTEST)

    /* EXTACONx External I/O access timing register Values */ #define tCOS0 (7<<0)

    #define tACS0 (7<<3)

#define tCOH0 (7<<6)

    #define tACC0 (7<<9)

    #define tCOS1 (1<<16)

    #define tACS1 (1<<19)

    #define tCOH1 (1<<22)

    #define tACC1 (1<<25)

#define rEXTACON0 (tCOS0+tACS0+tCOH0+tACC0+tCOS1+tACS1+tCOH1+tACC1)

#define tCOS2 (7<<0)

    #define tACS2 (7<<3)

    #define tCOH2 (7<<6)

    #define tACC2 (1<<9)

    #define tCOS3 (1<<16)

    #define tACS3 (1<<19)

    #define tCOH3 (1<<22)

    #define tACC3 (3<<25)

#define rEXTACON1 (tCOS2+tACS2+tCOH2+tACC2+tCOS3+tACS3+tCOH3+tACC3)

/***********************************************************

     *

     * -> EXTDBWTH : Memory Bus Width register

     */

    #define DSR0 (3<<0) /* ROM0, 0 : Disable, 1 : Byte etc.*/

    #define DSR1 (3<<2) /* ROM1 32 */

    #define DSR2 (1<<4) /* ROM2 */ #define DSR3 (0<<6) /* ROM3 */ #define DSR4 (0<<8) /* ROM4 */ #define DSR5 (0<<10) /* ROM5 */ #define DSD0 (3<<12) /* DRAM0 32 */

    #define DSD1 (0<<14) /* DRAM1 */ #define DSD2 (0<<16) /* DRAM2 */ #define DSD3 (0<<18) /* DRAM3 */ #define DSX0 (2<<20) /* EXTIO0 LCD接口 16*/

    #define DSX1 (1<<22) /* EXTIO1 USB接口 8*/

    #define DSX2 (1<<24) /* EXTIO2 以太网接口 16*/

    #define DSX3 (1<<26) /* EXTIO3*/

#define rEXTDBWTH

    (DSR0+DSR1+DSR2+DSR3+DSR4+DSR5+DSD0+DSD1+DSD2+DSD3+DSX0+DSX1+DSX2

    +DSX3)

/***********************************************************

     *

     * -> ROMCON0 : ROM Bank0 Control register

     */

    #define ROMBasePtr0 (0x0<<10) /*=0x00000000*/ #define ROMBasePtr0_S (0x200<<10) /*=0x02000000*/ #define ROMEndPtr0 ((ROM_SIZE>>16)<<20) /*=0x00100000*/ #define ROMEndPtr0_S (((ROM_SIZE>>16)+0x200)<<20) /*=0x02100000*/ #define PMC0 0x0 /* 0x0=Normal ROM, 0x1=4Word Page etc.*/ #define rTpa0 (0x0<<2) /* 0x0=5Cycle, 0x1=2Cycle etc.*/ #define rTacc0 (0x6<<4) /* 0x0=Disable, 0x1=2Cycle etc.*/ #define rROMCON0 (ROMEndPtr0+ROMBasePtr0+rTacc0+rTpa0+PMC0) #define rROMCON0_S (ROMEndPtr0_S+ROMBasePtr0_S+rTacc0+rTpa0+PMC0)

    /***************************************************************************

     * -> ROMCON1 : ROM Bank1 Control register, Mailbox Interface

     */

    #define ROMBasePtr1 (0x210<<10) /*=0x0fc0000*/ #define ROMEndPtr1 (((0x400000>>16)+0x210)<<20) /*=0x02500000*/ #define PMC1 0x0 /* 0x0=Normal ROM, 0x1=4Word Page etc.*/ #define rTpa1 (0x0<<2) /* 0x0=5Cycle, 0x1=2Cycle etc.*/ #define rTacc1 (0x6<<4) /* 0x0=Disable, 0x1=2Cycle etc.*/ #define rROMCON1 (ROMEndPtr1+ROMBasePtr1+rTacc1+rTpa1+PMC1)

    /***************************************************************************

     * -> ROMCON2 : ROM Bank2 Control register, EEPROM

     */

    #define ROMBasePtr2 (0x3fb<<10) /*=0x0fb0000*/ #define ROMEndPtr2 ((0xfc0000>>12)<<20) /*=0x0fc0000*/ #define PMC2 0x0 /* 0x0=Normal ROM, 0x1=4Word Page etc.*/ #define rTpa2 (0x0<<2) /* 0x0=5Cycle, 0x1=2Cycle etc.*/ #define rTacc2 (0x6<<4) /* 0x0=Disable, 0x1=2Cycle etc.*/ /* #define rROMCON2 (ROMEndPtr2+ROMBasePtr2+rTacc2+rTpa2+PMC2) */

    /***************************************************************************

     * -> ROMCONx : unused ROM Bank Control registers

     */

#define rROMCON2 0x60 /* add by ghw*/

    #define rROMCON3 0x60

    #define rROMCON4 0x60

    #define rROMCON5 0x60

/*ROMEndPtr5+ROMBasePtr5+rTacc5+rTpa5+PMC5*/

    /****************************************************************************

     * -> DRAMCON0 : RAM Bank0 control register (EDO)

     */

    #define EDO_Mode0 1 /*(EDO)0=Normal, 1=EDO DRAM*/ #define CasPrechargeTime0 1 /*(Tcp)0=1cycle,1=2cycle*/ #define CasStrobeTime0 2 /*(Tcs)0=1cycle ~ 3=4cycle*/ #define DRAMCON0Reserved 1 /* Must be set to 1*/ #define RAS2CASDelay0 0 /*(Trc)0=1cycle,1=2cycle*/ #define RASPrechargeTime0 2 /*(Trp)0=1cycle ~ 3=4clcyle*/ #define DRAMBasePtr0 (0x10<<10) /*=0x1000000 */

    #define DRAMBasePtr0_S 0x00 /* now RAM moved to zero */

    #define DRAMEndPtr0 (((LOCAL_MEM_SIZE >> 16) + 0x10) << 20) /*=0x02000000 - 32 MB */

    #define DRAMEndPtr0_S ((LOCAL_MEM_SIZE >> 16) << 20) /*=0x02000000 - 32 MB */

    #define NoColumnAddr0 2 /*0=8bit,1=9bit,2=10bit,3=11bits*/

#define Tcs0 (CasStrobeTime0<<1)

    #define Tcp0 (CasPrechargeTime0<<3)

    #define dumy0 (DRAMCON0Reserved<<4) /*dummy cycle*/ #define Trc0 (RAS2CASDelay0<<7)

    #define Trp0 (RASPrechargeTime0<<8)

    #define CAN0 (NoColumnAddr0<<30)

#define rDRAMCON0

    (CAN0+DRAMEndPtr0+DRAMBasePtr0+Trp0+Trc0+Tcp0+Tcs0+dumy0+EDO_Mode0) #define rDRAMCON0_S