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

📄 lan_saa9730.c

📁 MIPS YAMON, a famous monitor inc. source, make file and PDF manuals.
💻 C
📖 第 1 页 / 共 5 页
字号:
#define LAN_TXSTA_COLLISIONS_SHF        0#define LAN_TXSTA_COLLISIONS_MSK        (MSK(4) << LAN_TXSTA_COLLISIONS_SHF)/******** reg: RXCTL  ********//* field: ENGOOD */#define LAN_RXCTL_ENGOOD_SHF            14#define LAN_RXCTL_ENGOOD_MSK            (MSK(1) << LAN_RXCTL_ENGOOD_SHF)#define LAN_RXCTL_ENGOOD_SET            LAN_RXCTL_ENGOOD_MSK/* field: ENPARITY */#define LAN_RXCTL_ENPARITY_SHF          13#define LAN_RXCTL_ENPARITY_MSK          (MSK(1) << LAN_RXCTL_ENPARITY_SHF)#define LAN_RXCTL_ENPARITY_SET          LAN_RXCTL_ENPARITY_MSK/* field: ENLONGERR */#define LAN_RXCTL_ENLONGERR_SHF         11#define LAN_RXCTL_ENLONGERR_MSK         (MSK(1) << LAN_RXCTL_ENLONGERR_SHF)#define LAN_RXCTL_ENLONGERR_SET         LAN_RXCTL_ENLONGERR_MSK/* field: ENOVER */#define LAN_RXCTL_ENOVER_SHF            10#define LAN_RXCTL_ENOVER_MSK            (MSK(1) << LAN_RXCTL_ENOVER_SHF)#define LAN_RXCTL_ENOVER_SET            LAN_RXCTL_ENOVER_MSK/* field: ENCRCERR */#define LAN_RXCTL_ENCRCERR_SHF          9#define LAN_RXCTL_ENCRCERR_MSK          (MSK(1) << LAN_RXCTL_ENCRCERR_SHF)#define LAN_RXCTL_ENCRCERR_SET          LAN_RXCTL_ENCRCERR_MSK/* field: ENALIGN */#define LAN_RXCTL_ENALIGN_SHF           8#define LAN_RXCTL_ENALIGN_MSK           (MSK(1) << LAN_RXCTL_ENALIGN_SHF)#define LAN_RXCTL_ENALIGN_SET           LAN_RXCTL_ENALIGN_MSK/* field: IGNORECRC */#define LAN_RXCTL_IGNORECRC_SHF         6#define LAN_RXCTL_IGNORECRC_MSK         (MSK(1) << LAN_RXCTL_IGNORECRC_SHF)#define LAN_RXCTL_IGNORECRC_SET         LAN_RXCTL_IGNORECRC_MSK/* field: PASSCTL */#define LAN_RXCTL_PASSCTL_SHF           5#define LAN_RXCTL_PASSCTL_MSK           (MSK(1) << LAN_RXCTL_PASSCTL_SHF)#define LAN_RXCTL_PASSCTL_SET           LAN_RXCTL_PASSCTL_MSK/* field: STRIPCRC */#define LAN_RXCTL_STRIPCRC_SHF          4#define LAN_RXCTL_STRIPCRC_MSK          (MSK(1) << LAN_RXCTL_STRIPCRC_SHF)#define LAN_RXCTL_STRIPCRC_SET          LAN_RXCTL_STRIPCRC_MSK/* field: SHORTEN */#define LAN_RXCTL_SHORTEN_SHF           3#define LAN_RXCTL_SHORTEN_MSK           (MSK(1) << LAN_RXCTL_SHORTEN_SHF)#define LAN_RXCTL_SHORTEN_SET           LAN_RXCTL_SHORTEN_MSK/* field: LONGEN */#define LAN_RXCTL_LONGEN_SHF            2#define LAN_RXCTL_LONGEN_MSK            (MSK(1) << LAN_RXCTL_LONGEN_SHF)#define LAN_RXCTL_LONGEN_SET            LAN_RXCTL_LONGEN_MSK/* field: RXHALT */#define LAN_RXCTL_RXHALT_SHF            1#define LAN_RXCTL_RXHALT_MSK            (MSK(1) << LAN_RXCTL_RXHALT_SHF)#define LAN_RXCTL_RXHALT_SET            LAN_RXCTL_RXHALT_MSK/* field: RXEN */#define LAN_RXCTL_RXEN_SHF              0#define LAN_RXCTL_RXEN_MSK              (MSK(1) << LAN_RXCTL_RXEN_SHF)#define LAN_RXCTL_RXEN_SET              LAN_RXCTL_RXEN_MSK/******** reg: RXSTA  ********//* field: HALTED */#define LAN_RXSTA_HALTED_SHF            15#define LAN_RXSTA_HALTED_MSK            (MSK(1) << LAN_RXSTA_HALTED_SHF)#define LAN_RXSTA_HALTED_SET            LAN_RXSTA_HALTED_MSK/* field: GOOD */#define LAN_RXSTA_GOOD_SHF              14#define LAN_RXSTA_GOOD_MSK              (MSK(1) << LAN_RXSTA_GOOD_SHF)#define LAN_RXSTA_GOOD_SET              LAN_RXSTA_GOOD_MSK/* field: PARITY */#define LAN_RXSTA_PARITY_SHF            13#define LAN_RXSTA_PARITY_MSK            (MSK(1) << LAN_RXSTA_PARITY_SHF)#define LAN_RXSTA_PARITY_SET            LAN_RXSTA_PARITY_MSK/* field: LONGERR */#define LAN_RXSTA_LONGERR_SHF           11#define LAN_RXSTA_LONGERR_MSK           (MSK(1) << LAN_RXSTA_LONGERR_SHF)#define LAN_RXSTA_LONGERR_SET           LAN_RXSTA_LONGERR_MSK/* field: OVERFLOW */#define LAN_RXSTA_OVERFLOW_SHF          10#define LAN_RXSTA_OVERFLOW_MSK          (MSK(1) << LAN_RXSTA_OVERFLOW_SHF)#define LAN_RXSTA_OVERFLOW_SET          LAN_RXSTA_OVERFLOW_MSK/* field: CRCERR */#define LAN_RXSTA_CRCERR_SHF            9#define LAN_RXSTA_CRCERR_MSK            (MSK(1) << LAN_RXSTA_CRCERR_SHF)#define LAN_RXSTA_CRCERR_SET            LAN_RXSTA_CRCERR_MSK/* field: ALIGNERR */#define LAN_RXSTA_ALIGNERR_SHF          8#define LAN_RXSTA_ALIGNERR_MSK          (MSK(1) << LAN_RXSTA_ALIGNERR_SHF)#define LAN_RXSTA_ALIGNERR_SET          LAN_RXSTA_ALIGNERR_MSK/* field: WAS10MB */#define LAN_RXSTA_WAS10MB_SHF           7#define LAN_RXSTA_WAS10MB_MSK           (MSK(1) << LAN_RXSTA_WAS10MB_SHF)#define LAN_RXSTA_WAS10MB_SET           LAN_RXSTA_WAS10MB_MSK/* field: INTERRUPT */#define LAN_RXSTA_INTERRUPT_SHF         6#define LAN_RXSTA_INTERRUPT_MSK         (MSK(1) << LAN_RXSTA_INTERRUPT_SHF)#define LAN_RXSTA_INTERRUPT_SET         LAN_RXSTA_INTERRUPT_MSK/* field: CONTROLRCV */#define LAN_RXSTA_CONTROLRCV_SHF        5#define LAN_RXSTA_CONTROLRCV_MSK        (MSK(1) << LAN_RXSTA_CONTROLRCV_SHF)#define LAN_RXSTA_CONTROLRCV_SET        LAN_RXSTA_CONTROLRCV_MSK/******** reg: MDDATA ********//* field: DATA */#define LAN_MDDATA_DATA_SHF             0#define LAN_MDDATA_DATA_MSK             (MSK(16) << LAN_MDDATA_DATA_SHF)#define LAN_MDDATA_DATA_SET             LAN_MDDATA_DATA_MSK/******** reg: MDCTL  ********//* field: PRESUP */#define LAN_MDCTL_PRESUP_SHF            12#define LAN_MDCTL_PRESUP_MSK            (MSK(1) << LAN_MDCTL_PRESUP_SHF)#define LAN_MDCTL_PRESUP_SET            LAN_MDCTL_PRESUP_MSK/* field: BUSY */#define LAN_MDCTL_BUSY_SHF              11#define LAN_MDCTL_BUSY_MSK              (MSK(1) << LAN_MDCTL_BUSY_SHF)#define LAN_MDCTL_BUSY_SET              LAN_MDCTL_BUSY_MSK/* field: WR */#define LAN_MDCTL_WR_SHF                10#define LAN_MDCTL_WR_MSK                (MSK(1) << LAN_MDCTL_WR_SHF)#define LAN_MDCTL_WR_SET                LAN_MDCTL_WR_MSK/* field: PHY */#define LAN_MDCTL_PHY_SHF               5#define LAN_MDCTL_PHY_MSK               (MSK(5) << LAN_MDCTL_PHY_SHF)/* field: ADDR */#define LAN_MDCTL_ADDR_SHF              0#define LAN_MDCTL_ADDR_MSK              (MSK(5) << LAN_MDCTL_ADDR_SHF)/******** reg: CAMADR ********//* field: ADDRESS */#define LAN_CAMADR_ADDRESS_SHF          0#define LAN_CAMADR_ADDRESS_MSK          (MSK(9) << LAN_CAMADR_ADDRESS_SHF)/******** reg: CAMDAT ********//* 32-bit transparent data register *//******** reg: CAMENA ********//* field: ENABLE */#define LAN_CAMENA_ENABLE_SHF          0#define LAN_CAMENA_ENABLE_MSK          (MSK(22) << LAN_CAMENA_ENABLE_SHF)/******** reg: DBGRXS ********//* field: RXPI */#define LAN_DBGRXS_RXPI_SHF            16#define LAN_DBGRXS_RXPI_MSK            (MSK(10) << LAN_DBGRXS_RXPI_SHF)#define LAN_DBGRXS_RXPI_ERROR          1/* field: RXDII */#define LAN_DBGRXS_RXDII_SHF           0#define LAN_DBGRXS_RXDII_MSK           (MSK(9) << LAN_DBGRXS_RXDII_SHF)#define LAN_DBGRXS_RXDII_ERROR         8/************************************************************************ *  LAN SAA9730: Packet Control & Status Word, Relative Address*************************************************************************/#define TXPACKET_CONTROL_OFS    0x00000 /* TX-Packet, Control word      */#define TXPACKET_STATUS_OFS     0x00000 /* TX-Packet, Status  word      */#define RXPACKET_CONTROL_OFS    0x00000 /* RX-Packet, Control word      */#define RXPACKET_STATUS_OFS     0x00000 /* RX-Packet, Status  word      *//************************************************************************ *  LAN SAA9730: Packet Control & Status Word, Field encodings*************************************************************************//******** reg: TXPACKET_CONTROL ********//* field: FLAG */#define TXPACKET_CONTROL_FLAG_SHF       30#define TXPACKET_CONTROL_FLAG_MSK       (MSK(2) << TXPACKET_CONTROL_FLAG_SHF)#define TX_EMPTY                        0#define TX_READY                        2#define TX_HWDONE                       3/* field: COMPLETION */#define TXPACKET_CONTROL_COMPLETION_SHF 29#define TXPACKET_CONTROL_COMPLETION_MSK (MSK(1) << TXPACKET_CONTROL_COMPLETION_SHF)/* field: NOCRC */#define TXPACKET_CONTROL_NOCRC_SHF      28#define TXPACKET_CONTROL_NOCRC_MSK      (MSK(1) << TXPACKET_CONTROL_NOCRC_SHF)/* field: NOPAD */#define TXPACKET_CONTROL_NOPAD_SHF      27#define TXPACKET_CONTROL_NOPAD_MSK      (MSK(1) << TXPACKET_CONTROL_NOPAD_SHF)/* field: SIZE */#define TXPACKET_CONTROL_SIZE_SHF       0#define TXPACKET_CONTROL_SIZE_MSK       (MSK(11) << TXPACKET_CONTROL_SIZE_SHF)/******** reg: TXPACKET_STATUS  ********//* field: FLAG */#define TXPACKET_STATUS_FLAG_SHF        30#define TXPACKET_STATUS_FLAG_MSK        (MSK(2) << TXPACKET_STATUS_FLAG_SHF)/* field: SQERR */#define TXPACKET_STATUS_SQERR_SHF       27#define TXPACKET_STATUS_SQERR_MSK       (MSK(1) << TXPACKET_STATUS_SQERR_SHF)/* field: TXHALTED */#define TXPACKET_STATUS_TXHALTED_SHF    26#define TXPACKET_STATUS_TXHALTED_MSK    (MSK(1) << TXPACKET_STATUS_TXHALTED_SHF)/* field: COMPLETION */#define TXPACKET_STATUS_COMPLETION_SHF  25#define TXPACKET_STATUS_COMPLETION_MSK  (MSK(1) << TXPACKET_STATUS_COMPLETION_SHF)/* field: PARITYERR */#define TXPACKET_STATUS_PARITYERR_SHF   24#define TXPACKET_STATUS_PARITYERR_MSK   (MSK(1) << TXPACKET_STATUS_PARITYERR_SHF)/* field: LATECOLLERR */#define TXPACKET_STATUS_LATECOLLERR_SHF 23#define TXPACKET_STATUS_LATECOLLERR_MSK (MSK(1) << TXPACKET_STATUS_LATECOLLERR_SHF)/* field: WAS10MB */#define TXPACKET_STATUS_WAS10MB_SHF     22#define TXPACKET_STATUS_WAS10MB_MSK     (MSK(1) << TXPACKET_STATUS_WAS10MB_SHF)/* field: LOSTCARRIER */#define TXPACKET_STATUS_LOSTCARRIER_SHF 21#define TXPACKET_STATUS_LOSTCARRIER_MSK (MSK(1) << TXPACKET_STATUS_LOSTCARRIER_SHF)/* field: EXDEFER */#define TXPACKET_STATUS_EXDEFER_SHF     20#define TXPACKET_STATUS_EXDEFER_MSK     (MSK(1) << TXPACKET_STATUS_EXDEFER_SHF)/* field: UNDERRUN */#define TXPACKET_STATUS_UNDERRUN_SHF    19#define TXPACKET_STATUS_UNDERRUN_MSK    (MSK(1) << TXPACKET_STATUS_UNDERRUN_SHF)/* field: COLLISIONS */#define TXPACKET_STATUS_COLLISIONS_SHF  11#define TXPACKET_STATUS_COLLISIONS_MSK  (MSK(5) <<TXPACKET_STATUS_COLLISIONS_SHF)/* field: SIZE */#define TXPACKET_STATUS_SIZE_SHF        0#define TXPACKET_STATUS_SIZE_MSK        (MSK(11) << TXPACKET_STATUS_SIZE_SHF)#define TXPACKET_STATUS_ERROR_MSK       (TXPACKET_STATUS_EXDEFER_MSK     | \                                         TXPACKET_STATUS_LATECOLLERR_MSK | \                                         TXPACKET_STATUS_LOSTCARRIER_MSK | \                                         TXPACKET_STATUS_UNDERRUN_MSK    | \                                         TXPACKET_STATUS_SQERR_MSK       )/******** reg: RXPACKET_CONTROL ********//******** reg: RXPACKET_STATUS  ********//* field: FLAG */#define RXPACKET_STATUS_FLAG_SHF        30#define RXPACKET_STATUS_FLAG_MSK        (MSK(2) << RXPACKET_STATUS_FLAG_SHF)#define RX_NDIS                         0#define RX_INVALID_STAT                 1#define RX_READY                        2#define RX_HWDONE                       3/* field: GOOD */#define RXPACKET_STATUS_GOOD_SHF        25#define RXPACKET_STATUS_GOOD_MSK        (MSK(1) << RXPACKET_STATUS_GOOD_SHF)/* field: PARITY */#define RXPACKET_STATUS_PARITY_SHF      24#define RXPACKET_STATUS_PARITY_MSK      (MSK(1) << RXPACKET_STATUS_PARITY_SHF)/* field: LONGERR */#define RXPACKET_STATUS_LONGERR_SHF     22#define RXPACKET_STATUS_LONGERR_MSK     (MSK(1) << RXPACKET_STATUS_LONGERR_SHF)/* field: OVERFLOW */#define RXPACKET_STATUS_OVERFLOW_SHF    21#define RXPACKET_STATUS_OVERFLOW_MSK    (MSK(1) << RXPACKET_STATUS_OVERFLOW_SHF)/* field: CRCERR */#define RXPACKET_STATUS_CRCERR_SHF      20#define RXPACKET_STATUS_CRCERR_MSK      (MSK(1) << RXPACKET_STATUS_CRCERR_SHF)/* field: ALIGNERR */#define RXPACKET_STATUS_ALIGNERR_SHF    19#define RXPACKET_STATUS_ALIGNERR_MSK    (MSK(1) << RXPACKET_STATUS_ALIGNERR_SHF)/* field: WAS10MB */#define RXPACKET_STATUS_WAS10MB_SHF     18#define RXPACKET_STATUS_WAS10MB_MSK     (MSK(1) << RXPACKET_STATUS_WAS10MB_SHF)/* field: SIZE */#define RXPACKET_STATUS_SIZE_SHF        0#define RXPACKET_STATUS_SIZE_MSK        (MSK(11) << RXPACKET_STATUS_SIZE_SHF)/* Global driver states */#define LAN_SAA9730_DRIVER_IS_STOPPED   0x42#define LAN_SAA9730_DRIVER_IS_STARTED   0x44/************************************************************************ *      Public variables ************************************************************************//************************************************************************ *      Static variables ************************************************************************/static UINT32 poll_count = 0 ;static char msg[160] ;/* Global driver state */static UINT32 LAN_SAA9730_state = LAN_SAA9730_DRIVER_IS_STOPPED ;/* MAC broadcast address */static t_mac_addr mac_broadcast_adr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } ;/* User registered receive handler */static UINT32 (*usr_receive)( UINT32 length, UINT8 *data ) = NULL ;/* Device context per minor device for this driver */static t_LAN_SAA9730_device   minor_device[LAN_MINOR_SAA9730_DEVICES] ;/* Dynamic allocated memory */static UINT32 lan_dma_buffers ;static char* opmode_info[]= {  /* OPMODE_AUTONEGOTIATE       */ "still in auto-negotiate",  /* OPMODE_10BASET_HALFDUPLEX  */ "10 Mbit/s, half-duplex",  /* OPMODE_100BASEX_HALFDUPLEX */ "100 Mbit/s, half-duplex",  /* OPMODE_REPEATER_MODE       */ "repeater mode",  /* OPMODE_UNDEFINED           */ "undefined",  /* OPMODE_10BASET_FULLDUPLEX  */ "10 Mbit/s, full-duplex",  /* OPMODE_100BASEX_FULLDUPLEX */ "100 Mbit/s, full-duplex",  /* OPMODE_ISOLATE             */ "PHY/MII isolate, auto-negotiate disabled"} ;static bool opmode_is_fullduplex[]= {  /* OPMODE_AUTONEGOTIATE       */ FALSE,  /* OPMODE_10BASET_HALFDUPLEX  */ FALSE,  /* OPMODE_100BASEX_HALFDUPLEX */ FALSE,  /* OPMODE_REPEATER_MODE       */ FALSE,  /* OPMODE_UNDEFINED           */ FALSE,  /* OPMODE_10BASET_FULLDUPLEX  */ TRUE,  /* OPMODE_100BASEX_FULLDUPLEX */ TRUE,  /* OPMODE_ISOLATE             */ FALSE} ;/************************************************************************ *      Static function prototypes, local helper functions ************************************************************************//************************************************************************ * *                         LAN_SAA9730_enable_buffer *  Description : *  ------------- *  *  Enable next receive buffer. *  * *  Parameters :

⌨️ 快捷键说明

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