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

📄 bsp.h

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 H
📖 第 1 页 / 共 2 页
字号:
/*  bsp.h * *  Following defines must reflect the setup of the particular MVME167. *  All page references are to the MVME166/MVME167/MVME187 Single Board *  Computer Programmer's Reference Guide (MVME187PG/D2) with the April *  1993 supplements/addenda (MVME187PG/D2A1). * *  COPYRIGHT (c) 1989-1999. *  On-Line Applications Research Corporation (OAR). * *  The license and distribution terms for this file may be *  found in the file LICENSE in this distribution or at *  http://www.rtems.com/license/LICENSE. * *  Modifications of respective RTEMS file: *  Copyright (c) 1998, National Research Council of Canada * *  $Id: bsp.h,v 1.10.4.1 2003/09/04 18:44:42 joel Exp $ */#ifndef __MVME167_H#define __MVME167_H#ifdef __cplusplusextern "C" {#endif#include <bspopts.h>#include <rtems.h>#include <clockdrv.h>#include <console.h>#include <iosupp.h>#include <rtems/bspIo.h>/* *  confdefs.h overrides for this BSP: *   - termios serial ports (defaults to 1) *   - Interrupt stack space is not minimum if defined. */#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 4#define CONFIGURE_INTERRUPT_STACK_MEMORY  (4 * 1024)  #include <mvme16x_hw.h>/* GCSR is in mvme16x_hw.h *//* LCSR is in mvme16x_hw.h *//* i82596 is in mvme16x_hw.h *//* NVRAM is in mvme16x_hw.h */#if 0/* *  Representation of the PCCchip2 */typedef volatile struct pccchip2_regs_ {  unsigned char     chip_id;            /* 0xFFF42000 */  unsigned char     chip_revision;      /* 0xFFF42001 */  unsigned char     gen_control;        /* 0xFFF42002 */  unsigned char     vector_base;        /* 0xFFF42003 */  unsigned long     timer_cmp_1;        /* 0xFFF42004 */  unsigned long     timer_cnt_1;        /* 0xFFF42008 */  unsigned long     timer_cmp_2;        /* 0xFFF4200C */  unsigned long     timer_cnt_2;        /* 0xFFF42010 */  unsigned char     LSB_prescaler_count;/* 0xFFF42014 */  unsigned char     prescaler_clock_adjust; /* 0xFFF42015 */  unsigned char     timer_ctl_2;        /* 0xFFF42016 */  unsigned char     timer_ctl_1;        /* 0xFFF42017 */  unsigned char     gpi_int_ctl;        /* 0xFFF42018 */  unsigned char     gpio_ctl;           /* 0xFFF42019 */  unsigned char     timer_int_ctl_2;    /* 0xFFF4201A */  unsigned char     timer_int_ctl_1;    /* 0xFFF4201B */  unsigned char     SCC_error;          /* 0xFFF4201C */  unsigned char     SCC_modem_int_ctl;  /* 0xFFF4201D */  unsigned char     SCC_tx_int_ctl;     /* 0xFFF4201E */  unsigned char     SCC_rx_int_ctl;     /* 0xFFF4201F */  unsigned char     reserved1[3];  unsigned char     modem_piack;        /* 0xFFF42023 */  unsigned char     reserved2;  unsigned char     tx_piack;           /* 0xFFF42025 */  unsigned char     reserved3;  unsigned char     rx_piack;           /* 0xFFF42027 */  unsigned char     LANC_error;         /* 0xFFF42028 */  unsigned char     reserved4;  unsigned char     LANC_int_ctl;       /* 0xFFF4202A */  unsigned char     LANC_berr_ctl;      /* 0xFFF4202B */  unsigned char     SCSI_error;         /* 0xFFF4202C */  unsigned char     reserved5[2];  unsigned char     SCSI_int_ctl;       /* 0xFFF4202F */  unsigned char     print_ack_int_ctl;  /* 0xFFF42030 */  unsigned char     print_fault_int_ctl;/* 0xFFF42031 */  unsigned char     print_sel_int_ctl;  /* 0xFFF42032 */  unsigned char     print_pe_int_ctl;   /* 0xFFF42033 */  unsigned char     print_busy_int_ctl; /* 0xFFF42034 */  unsigned char     reserved6;  unsigned char     print_input_status; /* 0xFFF42036 */  unsigned char     print_ctl;          /* 0xFFF42037 */  unsigned char     chip_speed;         /* 0xFFF42038 */  unsigned char     reserved7;  unsigned char     print_data;         /* 0xFFF4203A */  unsigned char     reserved8[3];  unsigned char     int_level;          /* 0xFFF4203E */  unsigned char     int_mask;           /* 0xFFF4203F */} pccchip2_regs;/* *  Base address of the PCCchip2. *  This is not configurable in the MVME167. */#define pccchip2    ((pccchip2_regs * const) 0xFFF42000)#endif/* * The MVME167 is equiped with one or two MEMC040 memory controllers at * 0xFFF43000 and 0xFFF43100. This port assumes that the controllers * were initialized by 167Bug. */typedef volatile struct memc040_regs_ {  unsigned char     chip_id;            /* 0xFFF43000/0xFFF43100 */  unsigned char     reserved1[3];  unsigned char     chip_revision;      /* 0xFFF43004/0xFFF43104 */  unsigned char     reserved2[3];  unsigned char     mem_config;         /* 0xFFF43008/0xFFF43108 */  unsigned char     reserved3[3];  unsigned char     alt_status;         /* 0xFFF4300C/0xFFF4310C */  unsigned char     reserved4[3];  unsigned char     alt_ctl;            /* 0xFFF43010/0xFFF43110 */  unsigned char     reserved5[3];  unsigned char     base_addr;          /* 0xFFF43014/0xFFF43114 */  unsigned char     reserved6[3];  unsigned char     ram_ctl;            /* 0xFFF43018/0xFFF43118 */  unsigned char     reserved7[3];  unsigned char     bus_clk;            /* 0xFFF4301C/0xFFF4311C */} memc040_regs;/* *  Base address of the MEMC040s. *  This is not configurable in the MVME167. */#define memc040_1   ((memc040_regs * const) 0xFFF43000)#define memc040_2   ((memc040_regs * const) 0xFFF43100)/* *  The MVME167 may be equiped with error-correcting RAM cards. In this case, *  each MEMC040 is replaced by two MCECC ECC DRAM controllers. This port *  assumes that these controllers, if present, are initialized by 167Bug. *  They do not appear to hold information of interest at this time, so they *  are not described. However, each MCECC pair lives at the same address as *  the MEMC040 is replaces. The first eight registers of the MCECC are *  nearly identical to the ones of the MEMC040, and the memc040_X structures *  can be used to read those first eight registers. */ /* *  Representation of the Cirrus Logic CL-CD2401 Multi-Protocol Controller */typedef volatile struct cd2401_regs_ {  unsigned char     reserved1[7];  unsigned char     cor7;           /* 0xFFF45007 - Channel Option 7 */  unsigned char     reserved2;  unsigned char     livr;           /* 0xFFF45009 - Local Interrupt Vector */  unsigned char     reserved3[6];  unsigned char     cor1;           /* 0xFFF45010 - Channel Option 1 */  unsigned char     ier;            /* 0xFFF45011 - Interrupt Enable */  unsigned char     stcr;           /* 0xFFF45012 - Special Transmit Command */  unsigned char     ccr;            /* 0xFFF45013 - Channel Command */  unsigned char     cor5;           /* 0xFFF45014 - Channel Option 5 */  unsigned char     cor4;           /* 0xFFF45015 - Channel Option 4 */  unsigned char     cor3;           /* 0xFFF45016 - Channel Option 3 */  unsigned char     cor2;           /* 0xFFF45017 - Channel Option 2 */  unsigned char     cor6;           /* 0xFFF45018 - Channel Option 6 */  unsigned char     dmabsts;        /* 0xFFF45019 - DMA Buffer Status */  unsigned char     csr;            /* 0xFFF4501A - Channel Status */  unsigned char     cmr;            /* 0xFFF4501B - Channel Mode */  union {    struct {      unsigned char schr4;          /* 0xFFF4501C - Special Character 4 */      unsigned char schr3;          /* 0xFFF4501D - Special Character 3 */      unsigned char schr2;          /* 0xFFF4501E - Special Character 2 */      unsigned char schr1;          /* 0xFFF4501F - Special Character 1 */    } async;    struct {      unsigned char rfar4;          /* 0xFFF4501C - Receive Frame Address 4 */      unsigned char rfar3;          /* 0xFFF4501D - Receive Frame Address 3 */      unsigned char rfar2;          /* 0xFFF4501E - Receive Frame Address 2 */      unsigned char rfar1;          /* 0xFFF4501F - Receive Frame Address 1 */    } sync;  } u1;      unsigned char     reserved4[2];  unsigned char     scrh;           /* 0xFFF45022 - Special Character Range High */  unsigned char     scrl;           /* 0xFFF45023 - Special Character Range Low */  union {

⌨️ 快捷键说明

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