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

📄 m302_int.h

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 H
📖 第 1 页 / 共 2 页
字号:
/* *  Implements the Motorola 68302 multi-protocol chip parameter *  definition header. * *  $Id: m302_int.h,v 1.1 2000/12/14 17:53:53 joel Exp $ */#ifndef __M302_INT_h#define __M302_INT_h#ifndef uchar#define uchar unsigned char#endif#ifndef ushort#define ushort unsigned short#endif#ifndef ulong#define ulong unsigned long#endif/* Ethernet Control Register ECNTRL */#define ECNTRL_BIT_RESET    0x0001#define ECNTRL_BIT_ETHER_EN  0x0002#define ECNTRL_BIT_GTS      0x0004/* Ethernet DMA Configuration Status Register EDMA */#define EDMA_BDERR_MASK      0xFE00#define EDMA_BDSIZE_MASK      0x00C0#define EDMA_BDSIZE_8T_120R    0x0000#define EDMA_BDSIZE_16T_112R  0x0040#define EDMA_BDSIZE_32T_96R    0x0080#define EDMA_BDSIZE_64T_64R    0x00C0#define EDMA_BIT_TSRLY      0x0020#define EDMA_WMRK_MASK      0x0018#define EDMA_WMRK_8FIFO      0x0000#define EDMA_WMRK_16FIFO    0x0008#define EDMA_WMRK_24FIFO    0x0010#define EDMA_WMRK_32FIFO    0x0018#define EDMA_BLIM_MASK      0x0007#define EDMA_BLIM_8ACCESS    0x0003/* Ethernet Maximum Receive Buffer Length EMRBLR */#define EMRBLR_MASK          0x07FFE/* Interrupt Vector Register IVEC */#define IVEC_BIT_VG          0x0100#define IVEC_INV_MASK        0x00FF/* Interrupt Event Register INTR_EVENT */#define INTR_EVENT_BIT_RXB      0x0001#define INTR_EVENT_BIT_TXB      0x0002#define INTR_EVENT_BIT_BSY      0x0004#define INTR_EVENT_BIT_RFINT    0x0008#define INTR_EVENT_BIT_TFINT    0x0010#define INTR_EVENT_BIT_EBERR    0x0020#define INTR_EVENT_BIT_BOD      0x0040#define INTR_EVENT_BIT_GRA      0x0080#define INTR_EVENT_BIT_BABT      0x0100#define INTR_EVENT_BIT_BABR      0x0200#define INTR_EVENT_BIT_HBERR    0x0400/* Interrupt Mask Register INTR_MASK */#define INTR_MASK_BIT_RXIEN      0x0001#define INTR_MASK_BIT_TXIEN      0x0002#define INTR_MASK_BIT_BSYEN      0x0004#define INTR_MASK_BIT_RFIEN      0x0008#define INTR_MASK_BIT_TFIEN      0x0010#define INTR_MASK_BIT_EBERREN    0x0020#define INTR_MASK_BIT_BODEN      0x0040#define INTR_MASK_BIT_GRAEN      0x0080#define INTR_MASK_BIT_BTEN      0x0100#define INTR_MASK_BIT_BREN      0x0200#define INTR_MASK_BIT_HBEEN      0x0400/* Ethernet Configuration ECNFIG */#define ECNFIG_BIT_LOOP          0x0001#define ECNFIG_BIT_FDEN          0x0002#define ECNFIG_BIT_HBC          0x0004#define ECNFIG_BIT_RDT          0x0008/* Ethernet Test ETHER_TEST */#define ETHER_TEST_BIT_TWS      0x0001#define ETHER_TEST_BIT_RWS      0x0002#define ETHER_TEST_BIT_DRTY      0x0004#define ETHER_TEST_BIT_COLL      0x0008#define ETHER_TEST_BIT_SLOT      0x0010#define ETHER_TEST_BIT_TRND      0x0020#define ETHER_TEST_BIT_TBO      0x0040#define ETHER_TEST_BIT_RNGT      0x0080#define ETHER_TEST_REV_MASK      0xF000/* Ethernet AR Control Registere AR_CNTRL */#define AR_CNTRL_BIT_PROM        0x0400#define AR_CNTRL_BIT_PA_REJ      0x0800#define AR_CNTRL_BIT_NO_BROADCAST  0x1000#define AR_CNTRL_BIT_MULTI1      0x2000#define AR_CNTRL_BIT_INDEX_EN    0x4000#define AR_CNTRL_BIT_HASH_EN    0x8000#define AR_CNTRL_MULTI_MASK      (AR_CNTRL_BIT_MULTI0 | AR_CNTRL_BIT_MULTI1)/* Ethernet buffer Status TX */#define BUF_STAT_CARRIER_LOST    0x0001#define BUF_STAT_UNDERRUN        0x0002#define BUF_STAT_RETRANS_COUNT  0x003C#define BUF_STAT_RETRY_LIMIT    0x0040#define BUF_STAT_LATE_COLLISION  0x0080#define BUF_STAT_HEARTBIT        0x0100#define BUF_STAT_DEFER          0x0200#define BUF_STAT_TX_CRC          0x0400#define BUF_STAT_LAST            0x0800#define BUF_STAT_INTERRUPT      0x1000#define BUF_STAT_WRAP            0x2000#define BUF_STAT_TO              0x4000#define BUF_STAT_READY          0x8000/* Ethernet buffer Status RX */#define BUF_STAT_COLLISION      0x0001#define BUF_STAT_OVERRUN        0x0002#define BUF_STAT_CRC_ERROR      0x0004#define BUF_STAT_SHORT          0x0008#define BUF_STAT_NONALIGNED      0x0010#define BUF_STAT_LONG            0x0020#define BUF_STAT_FIRST_IN_FRAME  0x0400#define BUF_STAT_EMPTY          0x8000  /* SCC Buffer Descriptor structure  ----------------------------------*/struct m68302_scc_bd {  ushort      stat_ctrl;  ushort      data_lgth;  uchar      *p_buffer;};#define M68302_scc_bd_stat_ctrl(p) \    (((struct m68302_scc_bd *)(p)) -> stat_ctrl)#define M68302_scc_bd_data_lgth(p) \    (((struct m68302_scc_bd *)(p)) -> data_lgth)#define M68302_scc_bd_p_buffer(p)  \   (((struct m68302_scc_bd *)(p)) -> p_buffer)struct m68302_imp {/* BASE : user data memory  */  uchar  user_data[0x240];        /* 0x240 bytes user data */  uchar  user_reserved[0x1c0];    /* empty till 0x400 *//* BASE + 400H: PARAMETER RAM */  struct {    struct m68302_scc_bd scc_bd_rx[8];  /* Rx buffer descriptors */    struct m68302_scc_bd scc_bd_tx[8];  /* Tx buffer descriptors */    uchar      rfcr;        /* Rx function code */    uchar      tfcr;        /* Tx function code */    ushort     mrblr;        /* maximum Rx buffer length */    ushort     rist;        /* internal state */    uchar      res1;    uchar      rbdn;        /* Rx internal buffer number */    ulong      ridp;    ushort     ribc;    ushort     rtmp;    ushort     tist;    uchar      res2;    uchar      tbdn;        /* Tx internal buffer number */    ulong      tidp;    ushort     tibc;    ushort     ttmp;    unsigned char  scc_spp  [0x64];    /* SCC specific parameters */  } parm_ram [3];  uchar reserved_1 [0x100];/* BASE + 800H: INTERNAL REGISTERS */    /* DMA */  ushort  dma_res1;           /* reserved */  ushort  dma_mode;           /* dma mode reg */  ulong   dma_src;            /* dma source */  ulong   dma_dest;           /* dma destination */  ushort  dma_count;          /* dma byte count */  uchar   dma_status;         /* dma status */  uchar   dma_res2;           /* reserved */  uchar   dma_fct_code;       /* dma function code */  uchar   dma_res3;           /* reserved */    /* Interrupt Controller */  ushort  it_mode;            /* interrupt mode register */  ushort  it_pending;         /* interrupt pending register */  ushort  it_mask;            /* interrupt mask register */  ushort  it_inservice;       /* interrupt in service register */  ulong   it_reserved;        /* reserved */    /* Parallel I/O */  struct {    ushort  control;         /* port control register */    ushort  direction;       /* port data direction register */    ushort  data;            /* port data value register */  } port[2];  ushort  p_reserved;        /* reserved */    /* Chip Select */  ulong  cs_reserved;  struct {    ushort  base;            /* chip select base register */    ushort  option;          /* chip select option register */  } cs[4];    /* Timer */  ushort  t1_mode;             /* timer 1 mode register */  ushort  t1_reference;        /* timer 1 reference register */  ushort  t1_capture;          /* timer 1 capture register */  ushort  t1_counter;          /* timer 1 counter */  uchar   tim_res1;            /* reserved */  uchar   t1_event;            /* timer 1 event */  ushort  t3_reference;        /* timer 3 reference register */  ushort  t3_counter;          /* timer 3 counter */  ushort  tim_res2;            /* reserved */  ushort  t2_mode;              /* timer 2 mode register */  ushort  t2_reference;         /* timer 2 reference register */  ushort  t2_capture;           /* timer 2 capture register */  ushort  t2_counter;           /* timer 2 counter */  uchar   tim_res3;             /* reserved */  uchar   t2_event;             /* timer 2 event */  ushort  tim_res4[3];          /* reserved */    /* command register */  uchar  cp_cmd;                /* communication processor command register */  uchar  cp_cmd_res;            /* reserved */    /* reserved */  uchar  reserved_2[0x1e];    /* SCC registers */  struct scc_regs {    ushort  resvd;           /* reserved */    ushort  scon;            /* SCC configuration register */    ushort  scm;             /* SCC mode register */    ushort  dsr;             /* SCC sync register */    uchar   scce;            /* SCC event register */    uchar   res1;            /* reserved */    uchar   sccm;            /* SCC mask register */    uchar   res2;            /* reserved */    uchar   sccs;            /* SCC status register */    uchar   res3;            /* reserved */    ushort  res4;            /* reserved */  } scc_regs[3];    /* SP (SCP + SMI) */  ushort  scc_mode_reg;          /* scp, smi mode + clock control */

⌨️ 快捷键说明

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