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

📄 mplregs.h

📁 NATIONAL公司DP83816芯片Linux下驱动
💻 H
📖 第 1 页 / 共 3 页
字号:

//**********************************************************************
//
//  MPLREGS.H
//
//  Copyright (c) 2004 National Semiconductor Corporation.
//  All Rights Reserved
//
//  Defines the device registers (MAC and PHY)
//
//**********************************************************************

#ifndef _MPLREGS_H
#define _MPLREGS_H

// Reset intervals
#define RESETINTERVAL_MAC   1000 // interval from MAC reset (in usec)
#define EELOADINTERVAL      1000 // interval from EELOAC (usec)
#define RESETINTERVAL_PHY   1000 // interval from MAC reset (in usec)

// MacPhy PHY IDs
#define MP_PHY_ID1        0x2000
#define MP_PHY_REV        0x5C20 //Prior to MP3
#define ASPEN_PHY_REV     0x5C90
#define PHY_MII_REG_BASE  0x80 

// MacPhy MAC IDs
#define MPI_C_MAC_ID      0x0302 // Macphyter-I Rev-C
#define MPI_D_MAC_ID      0x0403 // Macphyter-I Rev-D
#define MPII_A4_MAC_ID    0x0504 // Macphyter-II Rev-A4
#define MPII_A5_MAC_ID    0x0505 // Macphyter-II Rev A5
#define MPIII_MAC_ID      0x0601 // Macphyter-III

// All packed on byte boundaries
#pragma pack(1)

//    Operational Register Map for MacPhyter2/3
typedef volatile struct _DP8381xOpRegs {

    // Basic MAC (0x00 to 0x5C)
    NS_UINT32   CR;         // Command register 
    NS_UINT32   CFG;        // Cfg and media status 
    NS_UINT32   MEAR;       // Mii, EEprom Access 
    NS_UINT32   MTSCR;      // MAC Test Control 
    NS_UINT32   ISR;        // Interrupt Status 
    NS_UINT32   IMR;        // Interrupt Mask 
    NS_UINT32   IER;        // Interrupt enable 
    NS_UINT32   IHR;        // Interrupt holdoff 
    NS_UINT32   TXDP;       // Tx descriptor ptr, queue 0 
    NS_UINT32   TXCFG;      // Transmit configuration 
    NS_UINT32   pad1;       // Reserved 
    NS_UINT32   GPIOR;      // General I/O pin control 
    NS_UINT32   RXDP;       // Rx descriptor ptr, queue0 
    NS_UINT32   RXCFG;      // Receive configuration 
    NS_UINT32   pad2;       // Reserved 
    NS_UINT32   CCSR;       // PME backdoor 
    NS_UINT32   WCSR;       // Wake-on-LAN command Status 
    NS_UINT32   PCR;        // Pause frame control status 
    NS_UINT32   RFCR;       // Receive filter control 
    NS_UINT32   RFDR;       // Receive filter data 
    NS_UINT32   BRAR;       // Boot rom address 
    NS_UINT32   BRDR;       // Boot rom data 
    NS_UINT32   SRR;        // Silicon revision 
    NS_UINT32   MIBC;       // MIB statistics Control 
    
    // MIB regs (0x60 to 0x7C)
    NS_UINT32   RXE;        // Packets recd with errors 
    NS_UINT32   RXFCS;      // Packets recd with frame check seq err 
    NS_UINT32   RXM;        // Packets missed due to FIFO overruns 
    NS_UINT32   RXFAE;      // Packets recd with frame alignment err 
    NS_UINT32   RXS;        // Packets recd with symbol err 
    NS_UINT32   RXF;        // Packets recd with len > 1518 
    NS_UINT32   TXSQE;      // Packets with loss of collision during 
                            //  transmission 
    NS_UINT32   RXIRL;      // Packets recd with InRange length errs 

    // Internal PHY (0x80 to 0x9C)
    NS_UINT32   BMCR;       // Basic Mode Control Register 
    NS_UINT32   BMSR;       // Basic Mode Status Register 
    NS_UINT32   PHYIDR1;    // PHY Id reg1 
    NS_UINT32   PHYIDR2;    // PHY Id reg2 
    NS_UINT32   ANAR;       // Auto-Neg Adv reg 
    NS_UINT32   ANLPAR;     // Auto-Neg Link partner reg 
    NS_UINT32   ANER;       // Auto-Neg expansion reg 
    NS_UINT32   ANNPTR;     // Auto-Neg next page TX 

    // Priority Queuing (0xA0 to 0xAC)
    NS_UINT32   TXDP1;      // Tx descriptor ptr, queue1 
    NS_UINT32   TXDP2;      // Tx descriptor ptr, queue2 
    NS_UINT32   TXDP3;      // Tx descriptor ptr, queue3 
    NS_UINT32   PQCR;       // Prority Queue Control reg

    // VLAN control (0xB0 to 0xB4)
    NS_UINT32   VRCR;       // VLAN receive control 
    NS_UINT32   VTCR;       // VLAN transmit control 

    NS_UINT32   pad3;       // Reserved 
    NS_UINT32   pad4;       // Reserved 

    // PHY Status (0xC0)
    NS_UINT32   PHYSTS;     // Phy Status Register

    // PHY MII Regs (0xC4 and 0xC8)
    NS_UINT32   MICR;       // Phy MII Interrupt Control
    NS_UINT32   MISR;       // Phy MII Interrupt Status

    // PHY Interal Regs
    NS_UINT32   PAGE;       // 0xCC page select
    union _RegD0 {
        NS_UINT32  FCSCR;   // 0xD0 (Page 0) false carrier sense counter 
        NS_UINT32  FCOCTL;  // 0xD0 (Page 1) FCO control 
    } RegD0;
#define FCSCR  RegD0.FCSCR
#define FCOCTL RegD0.FCOCTL

    union _RegD4 {
        NS_UINT32  RECR;    // 0xD4 (Page 0) receiver error counter 
        NS_UINT32  TMR;     // 0xD4 (Page 1) test mode 
    } RegD4;
#define RECR RegD4.RECR 
#define TMR RegD4.TMR

    union _RegD8 {
        NS_UINT32  PCS;     // 0xD8 (Page 0) PCS sub layer config & status 
        NS_UINT32  BGR;     // 0xD8 (Page 1) band gap reference 
    } RegD8;
#define PCS RegD8.PCS
#define BGR RegD8.BGR

    union _RegDC {
        NS_UINT32  RBR;     // 0xDC (Page 0) RMII & bypass 
        NS_UINT32  CRM;     // 0xDC (Page 1) CRM 
    } RegDC;
#define RBR RegDC.RBR
#define CRM RegDC.CRM

    NS_UINT32  CDCT12;      // 0xE0 (Page 1) CD test control 2 

    union _RegE4 {
        NS_UINT32  PHYCTL;  // 0xE4 (Page 0) phy control 
        NS_UINT32  PMDCSR;  // 0xE4 (Page 1) PMD control/status 
    } RegE4;
#define PHYCTL RegE4.PHYCTL
#define PMDCSR RegE4.PMDCSR

    union _RegE8 {
        NS_UINT32  TENBT;   // 0xE8 (Page 0) 10BaseT status/control 
        NS_UINT32  PGMCGM;  // 0xE8 (Page 1) PGM/CGM control 
    } RegE8;
#define TENBT RegE8.TENBT
#define PGMCGM RegE8.PGMCGM

    union _RegEC {
        NS_UINT32  CDCTL1;  // 0xEC (Page 0) CD test control 1 
        NS_UINT32  DSPTST;  // 0xEC (Page 1) DSP test 
    } RegEC;
#define CDCTL1 RegEC.CDCTL1
#define DSPTST RegEC.DSPTST

    NS_UINT32  EXTCFG;      // 0xF0 (Page 1) extended config 
    NS_UINT32  DSPCFG;      // 0xF4 (Page 1) DSP config 
    NS_UINT32  SDCFG;       // 0xF8 (Page 1) signal detect config. 
    NS_UINT32  TDATA;       // 0xFC (Page 1) test data 

} DP8381xOpRegs;

#pragma pack()  // reset back to the default packing 



// OPERATIONAL REGISTER  BIT DEFINITIONS
// (R/W = read/write, RO = read only, ROSC = read only, self-clearing,
//  WR0 = write, read back 0, !825 = DP83825 only)

//***************************************************************
// CR - command register bit definitions
//***************************************************************
#define TX_EN           0x00000001      // transmitter enable (R/W) 
#define TX_DIS          0x00000002      // transmitter disable (WR0) 
#define RX_EN           0x00000004      // receiver enable (R/W) 
#define RX_DIS          0x00000008      // receiver disable (WR0) 
#define TXRESET         0x00000010      // transmitter reset (WR0) 
#define RXRESET         0x00000020      // receiver reset (WR0) 
                                        // bit 6 (reserved) 
#define SWINT           0x00000080      // software interrupt 
#define SOFTRESET       0x00000100      // soft reset (W read 0  when comp) 
#define TXQUEUE_MASK    0x00001E00      // Tx priority queue mask 
#define TXQUEUE0_EN     0x00000200      // Tx Priority Queue 0 (R/W) 
#define TXQUEUE1_EN     0x00000400      // Tx Priority Queue 1 (R/W) 
#define TXQUEUE2_EN     0x00000800      // Tx Priority Queue 2 (R/W) 
#define TXQUEUE3_EN     0x00001000      // Tx Priority Queue 3 (R/W) 
#define TX_PQUEUE_OFF   9               // Bit Offset for Tx Pri Q setting 


//***************************************************************
// CFG - Configuration and Media Status Register 
//***************************************************************
#define BIG_ENDIAN      0x00000001    // big endian (DMA only) (R/W)
#define TMRTEST         0x00000002    // speeds up 100us internal timer to 4us
#define BROM_DIS        0x00000004    // disable Boot ROM I/F (R/W) 
#define SERR_ON_PAR_ERR 0x00000008    // SERR on PCI parity err (R/W) 
#define ABORT_ON_EXCESSIVE_DEF 0x00000010 // abrt on excessive deferral (R/W) 
#define OOWTMR_AT_PRESTRT 0x00000020  // out-of-window at preamble start (R/W) 
#define SINGLETXBCKOFF  0x00000040    // Single IFG tx Backoff (R/W) 
#define PCIREQ_WEAK     0x00000080    // conservative PCI bus req algo (R/W) 
#define EXTENDEDDESC_EN 0x00000100    // Extended descriptor format en (R/W) 
#define PHY_DIS         0x00000200    // dise phy (deassert mii RXEN) (R/W) 
#define PHY_RST         0x00000400    // reset phy (assert PHYRST_N) (R/W) 
#define BEM_REG         0x00000800    // Big endian reg mode (R/W)-DP83818
#define EXT_PHY         0x00001000    // Enable External Phy Support (R/W) 

// Auto-Neg Select - FM

#define PAUSE_ADV       0x00010000    // pause Advertise (R/W) 

⌨️ 快捷键说明

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