⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mv2600.h

📁 VxWorkS下 MV2604的BSP源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
 * * Note: the PCI bus is inherently little endian.  */#define PCI_CFG_RAVEN_PSADD0	0x80#define PCI_CFG_RAVEN_PSATT0	0x84#define PCI_CFG_RAVEN_PSOFF0	0x86#define PCI_CFG_RAVEN_PSADD1	0x88#define PCI_CFG_RAVEN_PSATT1	0x8c#define PCI_CFG_RAVEN_PSOFF1	0x8e#define PCI_CFG_RAVEN_PSADD2	0x90#define PCI_CFG_RAVEN_PSATT2	0x94#define PCI_CFG_RAVEN_PSOFF2	0x96#define PCI_CFG_RAVEN_PSADD3	0x98#define PCI_CFG_RAVEN_PSATT3	0x9c#define PCI_CFG_RAVEN_PSOFF3	0x9e/* Raven MPC registers */#define RAVEN_MPC_VENID		0x00#define RAVEN_MPC_DEVID		0x02#define RAVEN_MPC_REVID		0x05#define RAVEN_MPC_GCSR		0x08#define RAVEN_MPC_FEAT		0x0a#define RAVEN_MPC_MARB		0x0e#define RAVEN_MPC_PADJ		0x13#define RAVEN_MPC_MEREN		0x22#define RAVEN_MPC_MERST		0x27#define RAVEN_MPC_MERAD		0x28#define RAVEN_MPC_MERAT		0x2e#define RAVEN_MPC_PIACK		0x30#define RAVEN_MPC_MSADD0	0x40#define RAVEN_MPC_MSOFF0	0x44#define RAVEN_MPC_MSATT0	0x47#define RAVEN_MPC_MSADD1	0x48#define RAVEN_MPC_MSOFF1	0x4c#define RAVEN_MPC_MSATT1	0x4f#define RAVEN_MPC_MSADD2	0x50#define RAVEN_MPC_MSOFF2	0x54#define RAVEN_MPC_MSATT2	0x57#define RAVEN_MPC_MSADD3	0x58#define RAVEN_MPC_MSOFF3	0x5c#define RAVEN_MPC_MSATT3	0x5f#define RAVEN_MPC_WDT1CNTL      0x60#define RAVEN_MPC_WDT2CNTL      0x68#define RAVEN_MPC_GPREG0_U	0x70#define RAVEN_MPC_GPREG0_L	0x74#define RAVEN_MPC_GPREG1_U	0x78#define RAVEN_MPC_GPREG1_L	0x7c/* * Raven register bit masks * * Bits marked with 'C' indicate conditions which can be cleared by * writing a 1 to the bits. *//* Raven MPC Error Enable (MEREN) register bit masks */#define RAVEN_MPC_MEREN_RTAI	0x0001	/* PCI mstr Recvd Target Abort Int */#define RAVEN_MPC_MEREN_SMAI	0x0002	/* PCI mstr Signld Target Abort Int */#define RAVEN_MPC_MEREN_SERRI	0x0004	/* PCI System Error Int */#define RAVEN_MPC_MEREN_PERRI	0x0008	/* PCI Parity Error Int */#define RAVEN_MPC_MEREN_MATOI	0x0020	/* MPC Address Bus Time-out Int */#define RAVEN_MPC_MEREN_RTAM	0x0100	/* RTAI machine check enable */#define RAVEN_MPC_MEREN_SMAM	0x0200	/* SMAI machine check enable */#define RAVEN_MPC_MEREN_SERRM	0x0400	/* SERRI machine check enable */#define RAVEN_MPC_MEREN_PERRM	0x0800	/* PERRI machine check enable */#define RAVEN_MPC_MEREN_MATOM	0x2000	/* MATOI machine check enable */#define RAVEN_MPC_MEREN_DFLT	0x4000	/* Default MPC Master ID select */#define RAVEN_MPC_MEREN_VALID	0x6F2F	/* Mask for valid MEREN bits *//* Raven MPC Error Status (MERST) register bit masks */#define RAVEN_MPC_MERST_RTA	0x01	/* C PCI mstr Recvd Target Abort */#define RAVEN_MPC_MERST_SMA	0x02	/* C PCI mstr Signld Target Abort */#define RAVEN_MPC_MERST_SERR	0x04	/* C PCI System Error */#define RAVEN_MPC_MERST_PERR	0x08	/* C PCI Parity Error */#define RAVEN_MPC_MERST_MATO	0x20	/* C MPC Address Bus Time-out */#define RAVEN_MPC_MERST_OVF	0x80	/* C Error Status Overflow */#define RAVEN_MPC_MERST_VALID	0xAF	/*   Mask for valid MERST bits */#define RAVEN_MPC_MERST_CLR	0xAF	/*   Clears all errors *//* Raven PCI Configuration Status register bit masks */#define RAVEN_PCI_CFG_STATUS_FAST    0x0010  /*   Fast back-to-back capable */#define RAVEN_PCI_CFG_STATUS_DPAR    0x0100  /* C Data prity error detected */#define RAVEN_PCI_CFG_STATUS_SELTIM0 0x0200  /*   Device select timing bit 0 */#define RAVEN_PCI_CFG_STATUS_SELTIM1 0x0400  /*   Device select timing bit 1 */#define RAVEN_PCI_CFG_STATUS_SIGTA   0x0800  /* C Signalled Target Abort */#define RAVEN_PCI_CFG_STATUS_RCVTA   0x1000  /* C Received Target Abort */#define RAVEN_PCI_CFG_STATUS_RCVMA   0x2000  /* C Received Master Abort */#define RAVEN_PCI_CFG_STATUS_SIGSE   0x4000  /* C Signalled System Error */#define RAVEN_PCI_CFG_STATUS_RCVPE   0x8000  /* C Detected Parity Error */#define RAVEN_PCI_CFG_STATUS_VALID   0xFF10  /*   Valid status bits */#define RAVEN_PCI_CFG_STATUS_CLR     0xF900  /*   Clears all conditions *//* * PMC Span DEC21150 PCI-to-PCI Bridge device-specific registers * * These registers are in Configuration Space and are extensions to a * standard type 1 PCI header. */#define PCI_CFG_DEC21150_CHIP_CTRL 0x40#define PCI_CFG_DEC21150_DIAG_CTRL 0x41#define PCI_CFG_DEC21150_ARB_CTRL  0x42#define PCI_CFG_DEC21150_EVNT_DSBL 0x64#define PCI_CFG_DEC21150_GPIO_DOUT 0x65#define PCI_CFG_DEC21150_GPIO_CTRL 0x66#define PCI_CFG_DEC21150_GPIO_DIN  0x67#define PCI_CFG_DEC21150_SEC_CLK   0x68     /* secondary clock controll reg */#define PCI_CFG_DEC21150_SERR_STAT 0x6A/* programmable interrupt controller (PIC) */#define	PIC_REG_ADDR_INTERVAL	1	/* address diff of adjacent regs. *//* programmable interrupt timers */#define PIT_BASE_ADR		SL82565_TMR1_CNT0	/* timeraddrs */#define PIT_REG_ADDR_INTERVAL	1#define PIT_CLOCK		1193180/* serial ports (COM1 - COM4) */#ifdef INCLUDE_I8250_SIO#  define COM1_BASE_ADR		pc87303_COM1	/* serial port 1 */#  define COM2_BASE_ADR		pc87303_COM2	/* serial port 2 */#  define UART_REG_ADDR_INTERVAL  1       	/* addr diff of adjacent regs */#  define N_UART_CHANNELS 	2		/* No. serial I/O channels */#endif /* INCLUDE_I8250_SIO */#ifdef INCLUDE_Z85230_SIO#  define BAUD_CLK_FREQ		10000000        /* 10 MHz "P Clock" (fixed) */#  define REG_8530_WRITE(reg,val) sysOutByte((UINT32)(reg), (UINT8)(val))#  define REG_8530_READ(reg,pVal) *(UINT8 *)pVal = sysInByte((UINT32)reg)#  define DATA_REG_8530_DIRECT/* #  define Z8530_RESET_DELAY_COUNT 2000 */#define Z8530_RESET_DELAY \        { \        int i; \        for (i = 0; i < Z8530_RESET_DELAY_COUNT; i++) \                ; /* do nothing */ \        }#endif /* INCLUDE_Z85230_SIO *//* total number of serial ports */#if defined(INCLUDE_I8250_SIO) && defined(INCLUDE_Z85230_SIO)#  define N_SIO_CHANNELS	4		/* No. serial I/O channels */#elif defined(INCLUDE_I8250_SIO)#  define N_SIO_CHANNELS	2		/* No. serial I/O channels */#elif defined(INCLUDE_Z85230_SIO)#  define N_SIO_CHANNELS	2		/* No. serial I/O channels */#else#  define N_SIO_CHANNELS	0		/* No. serial I/O channels */#endif/* non-volatile (battery-backed) ram defines * * the top 16 bytes are used for the RTC registers */#define	BBRAM_ADRS		0		/* base address */#define	BBRAM_SIZE		0x1ff0		/* 8k NVRAM Total Size *//* factory ethernet address */#define	BB_ENET			((char *)(BBRAM_ADRS + 0x1f2c))/* MK48TXX register settings *//* flag register */#define MK48T_FLAGS		((char *)(BBRAM_ADRS + 0x1ff0))/* alarm clock registers, 4 1byte locations */#define ALARM_CLOCK		((char *)(BBRAM_ADRS + 0x1ff2))/* interrupt register */#define MK48T_INTR		((char *)(BBRAM_ADRS + 0x1ff6))/* watchdog timer register */#define WD_TIMER		((char *)(BBRAM_ADRS + 0x1ff7))/* MK48TXX bb time of day clk, 8 1byte locations */#define	TOD_CLOCK 		((char *)(BBRAM_ADRS + 0x1ff8))#define NV_RAM_IO_MAPPED	/* nvram is io mapped in ISA space */#define NV_RAM_READ(x)		sysNvRead (x)#define NV_RAM_WRITE(x,y)	sysNvWrite (x,y)#define NV_RAM_LSB_REG		m48TXX_LSB_REG#define NV_RAM_MSB_REG		m48TXX_MSB_REG#define NV_RAM_DAT_REG		m48TXX_DAT_REG/* ncr810/ncr825 delay loop count */#define NCR810_DELAY_MULT       10/* * UNIVERSE REGISTER SETUP FOR CPU <-> VME MAPPING (via PCI) * * ALL VAL_LSIx and VAL_VSIx values MUST be multiples of 64KB !!! * Except VAL_LSI0 and VAL_VSI0, which must be multiples of 4KB ! *//* * VME MASTER WINDOW FOR LM/SEM (MAILBOX) REGISTERS * * Universe PCI slave (VME master) window 0 *  * Map access to A32 VMEbus (VME LM/SEM Regs) (64K) */#define VME_A32_REG_SIZE	0x00001000	/* individual reg space */#define	VME_A32_REG_SPACE	0x00010000	/* total reg space */#ifndef EXTENDED_VME/* * Map access to A32 VMEbus (LM/SEM Regs) - 64K  MAP FOR STANDARD vxWorks * This maps: MPU RANGE:     0xf0000000 - 0xf000ffff   *        to: PCI RANGE:     0x30000000 - 0x3000ffff *        to: VME RANGE:     0x40000000 - 0x4000ffff */#  define CPU_VME_WINDOW_REG_BASE	0xf0000000#  define VME_A32_REG_BASE		0x40000000#  define VAL_LSI0_BS_VALUE	(CPU_VME_WINDOW_REG_BASE - CPU_PCI_ISA_MEM_ADRS)#else/* * Map access to A32 VMEbus (LM/SEM Regs) - 64K  MAP FOR EXTENDED VME vxWorks * This maps: MPU RANGE:     0xfb000000 - 0xfb00ffff *        to: PCI RANGE:     0xfb000000 - 0xfb00ffff *        to: VME RANGE:     0xfb000000 - 0xfb00ffff */#  define CPU_VME_WINDOW_REG_BASE	0xfb000000#  define VME_A32_REG_BASE	0xfb000000#  define VAL_LSI0_BS_VALUE	(CPU_VME_WINDOW_REG_BASE)#endif#define VAL_LSI0_BS		(VAL_LSI0_BS_VALUE)#define VAL_LSI0_BD		(VAL_LSI0_BS + VME_A32_REG_SPACE)#define VAL_LSI0_TO		(VME_A32_REG_BASE - VAL_LSI0_BS)#define VAL_LSI0_CTL		( LSI_CTL_EN     | LSI_CTL_WP  |\                                  LSI_CTL_D64    | LSI_CTL_A32 |\                                  LSI_CTL_DATA   | LSI_CTL_USR |\                                  LSI_CTL_SINGLE | LSI_CTL_PCI_MEM )/* * Semaphore Test-and-Set Register as seen from a slave. * Only used with a special version of sysBusTas() (not included) * and when mv2300, mv2600 or mv3600 boards are the ONLY boards * used in the configuration. */#define OFFBRD_VME_SEM_REG1     (CPU_VME_WINDOW_REG_BASE + \                                 (CPU_VME_SEM_REG1 - CPU_VME_HW_REGS_BASE)) /* * VME MASTER WINDOW FOR A24 SPACE * * Universe PCI slave (VME master) window 2 */#ifndef EXTENDED_VME/* * Map access to A24 VMEbus - 16M       MAP FOR STANDARD vxWorks * This maps: MPU RANGE:     0xe0000000 - 0xe0ffffff *        to: PCI RANGE:     0x20000000 - 0x20ffffff *        to: VME RANGE:     0xff000000 - 0xffffffff */#  define VME_A24_MSTR_LOCAL	0xe0000000#  define VAL_LSI2_BS_VALUE    (VME_A24_MSTR_LOCAL - CPU_PCI_ISA_MEM_ADRS)#else/* * Map access to A24 VMEbus - 16M       MAP FOR EXTENDED VME vxWorks * This maps: MPU RANGE:     0xfa000000 - 0xfaffffff *        to: PCI RANGE:     0xfa000000 - 0xfaffffff *        to: VME RANGE:     0xff000000 - 0xffffffff */#  define VME_A24_MSTR_LOCAL	0xfa000000#  define VAL_LSI2_BS_VALUE	(VME_A24_MSTR_LOCAL)#endif#  if  (VME_A24_MSTR_SIZE > 0x01000000)#  error Maximum VME_A24_MSTR_SIZE cannot exceed 16 MB#  endif#define VAL_LSI2_BS	(VAL_LSI2_BS_VALUE)#define VAL_LSI2_BD	(VAL_LSI2_BS + VME_A24_MSTR_SIZE)#define VAL_LSI2_TO	(0xff000000 + VME_A24_MSTR_BUS - VAL_LSI2_BS)#define VAL_LSI2_CTL	( LSI_CTL_EN     | LSI_CTL_WP  |\                          LSI_CTL_D64    | LSI_CTL_A24 |\                          LSI_CTL_DATA   | LSI_CTL_USR |\                          LSI_CTL_SINGLE | LSI_CTL_PCI_MEM )/* * VME MASTER WINDOW FOR A32 SPACE * * Universe PCI slave (VME master) window 1 */#ifndef EXTENDED_VME/*                       * Map access to A32 VMEbus - 128M      MAP FOR STANDARD vxWorks * This maps: MPU RANGE: 0xd8000000       - 0xdfffffff   *        to: PCI RANGE: 0x18000000       - 0x1fffffff *        to: VME RANGE: VME_A32_MSTR_BUS - VME_A32_MSTR_BUS + VME_A32_MSTR_SIZE */#  define VAL_LSI1_BS_VALUE	(VME_A32_MSTR_LOCAL - CPU_PCI_ISA_MEM_ADRS)#  if  (VME_A32_MSTR_SIZE > 0x08000000)#  error VME_A32_MSTR_SIZE cannot exceed 128 MB#  endif#else/* * Map access to A32 VMEbus - (up to ~3.7GB)  MAP FOR EXTENDED VME vxWorks * This maps: MPU RANGE: VME_A32_MSTR_LOCAL  - VME_A32_MSTR_LOCAL + *                                             VME_A32_MSTR_SIZE *        to: PCI RANGE: VME_A32_MSTR_LOCAL  - VME_A32_MSTR_LOCAL + *                                             VME_A32_MSTR_SIZE *        to: VME RANGE: VME_A32_MSTR_BUS    - VME_A32_MSTR_BUS + *                                             VME_A32_MSTR_SIZE * * NOTE: *  - VME_A32_MSTR_LOCAL + VME_A32_MSTR_SIZE must not exceed *    VME_A24_MSTR_LOCAL (no overlap of A32 and A24 address spaces) *  - for local memory sizes greater than 256 MB, set VME_A32_MSTR_LOCAL equal *    to the memory size. */#  define VAL_LSI1_BS_VALUE	(VME_A32_MSTR_LOCAL)#  if  ((VME_A32_MSTR_LOCAL + VME_A32_MSTR_SIZE) > VME_A24_MSTR_LOCAL)#  error VME A32 space extends into VME A24 space#  endif#endif#  if  ((VME_A32_MSTR_BUS + VME_A32_MSTR_SIZE) > VME_A32_REG_BASE) && \       (VME_A32_MSTR_BUS < (VME_A32_REG_BASE + VME_A32_REG_SPACE))#  warning VME A32 space overlaps VME LM/SEM (MAILBOX) REG space#  endif#define VAL_LSI1_BS	(VAL_LSI1_BS_VALUE)#define VAL_LSI1_BD	(VAL_LSI1_BS + VME_A32_MSTR_SIZE)#define VAL_LSI1_TO	(VME_A32_MSTR_BUS - VAL_LSI1_BS)   /*  LSI_CTL_WP  | */#define VAL_LSI1_CTL	( LSI_CTL_EN     | LSI_CTL_WP  |\                          LSI_CTL_D64    | LSI_CTL_A32 |\                          LSI_CTL_DATA   | LSI_CTL_USR |\                          LSI_CTL_SINGLE | LSI_CTL_PCI_MEM )/* * VME MASTER WINDOW FOR A16 SPACE * * Universe PCI slave (VME master) window 3 */#ifndef EXTENDED_VME/* * Map access to A16 VMEbus - 64K       MAP FOR STANDARD vxWorks * This maps: MPU RANGE:     0xefff0000 - 0xefffffff   *        to: PCI RANGE:     0x2fff0000 - 0x2fffffff *        to: VME RANGE:     0xffff0000 - 0xffffffff */#define VME_A16_MSTR_LOCAL	0xefff0000#define VAL_LSI3_BS_VALUE	(VME_A16_MSTR_LOCAL - CPU_PCI_ISA_MEM_ADRS)#else/* * Map access to A16 VMEbus - 64K       MAP FOR EXTENDED VME vxWorks * This maps: MPU RANGE:     0xfbff0000 - 0xfbffffff *        to: PCI RANGE:     0xfbff0000 - 0xfbffffff *        to: VME RANGE:     0xfbff0000 - 0xfbffffff */#  define VME_A16_MSTR_LOCAL	0xfbff0000#  define VAL_LSI3_BS_VALUE	(VME_A16_MSTR_LOCAL)#endif#  if  (VME_A16_MSTR_SIZE > 0x00010000)#  error Maximum VME_A16_MSTR_SIZE cannot exceed 64 KB#  endif#define	VME_A16_MSTR_BUS	0x00000000	/* must be 0 */#define VAL_LSI3_BS		(VAL_LSI3_BS_VALUE)#define VAL_LSI3_BD		(VAL_LSI3_BS + VME_A16_MSTR_SIZE)#define VAL_LSI3_TO		(0xffff0000 + VME_A16_MSTR_BUS - VAL_LSI3_BS)#define VAL_LSI3_CTL		( LSI_CTL_EN     | LSI_CTL_WP  |\                                  LSI_CTL_D64    | LSI_CTL_A16 |\                                  LSI_CTL_DATA   | LSI_CTL_USR |\                                  LSI_CTL_SINGLE | LSI_CTL_PCI_MEM )/* * VME MASTER MEMORY WINDOW LIMITS * * These values are strictly defined by the base memory addresses and window * sizes of the spaces defined above.  These values must be correct for the * sysBusProbe() memory range checks of the VME bus to work properly.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -