sunhme.h
来自「Linux内核源代码 为压缩文件 是<<Linux内核>>」· C头文件 代码 · 共 614 行 · 第 1/3 页
H
614 行
#define BIGMAC_XCFG_XLBACK 0x00000002 /* Loopback-mode XIF enable */#define BIGMAC_XCFG_MLBACK 0x00000004 /* Loopback-mode MII enable */#define BIGMAC_XCFG_MIIDISAB 0x00000008 /* MII receive buffer disable */#define BIGMAC_XCFG_SQENABLE 0x00000010 /* SQE test enable */#define BIGMAC_XCFG_SQETWIN 0x000003e0 /* SQE time window */#define BIGMAC_XCFG_LANCE 0x00000010 /* Lance mode enable */#define BIGMAC_XCFG_LIPG0 0x000003e0 /* Lance mode IPG0 *//* BigMac transmit config register. */#define BIGMAC_TXCFG_ENABLE 0x00000001 /* Enable the transmitter */#define BIGMAC_TXCFG_SMODE 0x00000020 /* Enable slow transmit mode */#define BIGMAC_TXCFG_CIGN 0x00000040 /* Ignore transmit collisions */#define BIGMAC_TXCFG_FCSOFF 0x00000080 /* Do not emit FCS */#define BIGMAC_TXCFG_DBACKOFF 0x00000100 /* Disable backoff */#define BIGMAC_TXCFG_FULLDPLX 0x00000200 /* Enable full-duplex */#define BIGMAC_TXCFG_DGIVEUP 0x00000400 /* Don't give up on transmits *//* BigMac receive config register. */#define BIGMAC_RXCFG_ENABLE 0x00000001 /* Enable the receiver */#define BIGMAC_RXCFG_PSTRIP 0x00000020 /* Pad byte strip enable */#define BIGMAC_RXCFG_PMISC 0x00000040 /* Enable promiscous mode */#define BIGMAC_RXCFG_DERR 0x00000080 /* Disable error checking */#define BIGMAC_RXCFG_DCRCS 0x00000100 /* Disable CRC stripping */#define BIGMAC_RXCFG_ME 0x00000200 /* Receive packets addressed to me */#define BIGMAC_RXCFG_PGRP 0x00000400 /* Enable promisc group mode */#define BIGMAC_RXCFG_HENABLE 0x00000800 /* Enable the hash filter */#define BIGMAC_RXCFG_AENABLE 0x00001000 /* Enable the address filter *//* These are the "Management Interface" (ie. MIF) registers of the transceiver. */#define TCVR_BBCLOCK 0x00UL /* Bit bang clock register */#define TCVR_BBDATA 0x04UL /* Bit bang data register */#define TCVR_BBOENAB 0x08UL /* Bit bang output enable */#define TCVR_FRAME 0x0cUL /* Frame control/data register */#define TCVR_CFG 0x10UL /* MIF config register */#define TCVR_IMASK 0x14UL /* MIF interrupt mask */#define TCVR_STATUS 0x18UL /* MIF status */#define TCVR_SMACHINE 0x1cUL /* MIF state machine */#define TCVR_REG_SIZE 0x20UL/* Frame commands. */#define FRAME_WRITE 0x50020000#define FRAME_READ 0x60020000/* Transceiver config register */#define TCV_CFG_PSELECT 0x00000001 /* Select PHY */#define TCV_CFG_PENABLE 0x00000002 /* Enable MIF polling */#define TCV_CFG_BENABLE 0x00000004 /* Enable the "bit banger" oh baby */#define TCV_CFG_PREGADDR 0x000000f8 /* Address of poll register */#define TCV_CFG_MDIO0 0x00000100 /* MDIO zero, data/attached */#define TCV_CFG_MDIO1 0x00000200 /* MDIO one, data/attached */#define TCV_CFG_PDADDR 0x00007c00 /* Device PHY address polling *//* Here are some PHY addresses. */#define TCV_PADDR_ETX 0 /* Internal transceiver */#define TCV_PADDR_ITX 1 /* External transceiver *//* Transceiver status register */#define TCV_STAT_BASIC 0xffff0000 /* The "basic" part */#define TCV_STAT_NORMAL 0x0000ffff /* The "non-basic" part *//* Inside the Happy Meal transceiver is the physical layer, they use an * implementations for National Semiconductor, part number DP83840VCE. * You can retrieve the data sheets and programming docs for this beast * from http://www.national.com/ * * The DP83840 is capable of both 10 and 100Mbps ethernet, in both * half and full duplex mode. It also supports auto negotiation. * * But.... THIS THING IS A PAIN IN THE ASS TO PROGRAM! * Debugging eeprom burnt code is more fun than programming this chip! *//* First, the DP83840 register numbers. */#define DP83840_BMCR 0x00 /* Basic mode control register */#define DP83840_BMSR 0x01 /* Basic mode status register */#define DP83840_PHYSID1 0x02 /* PHYS ID 1 */#define DP83840_PHYSID2 0x03 /* PHYS ID 2 */#define DP83840_ADVERTISE 0x04 /* Advertisement control reg */#define DP83840_LPA 0x05 /* Link partner ability reg */#define DP83840_EXPANSION 0x06 /* Expansion register */#define DP83840_DCOUNTER 0x12 /* Disconnect counter */#define DP83840_FCSCOUNTER 0x13 /* False carrier counter */#define DP83840_NWAYTEST 0x14 /* N-way auto-neg test reg */#define DP83840_RERRCOUNTER 0x15 /* Receive error counter */#define DP83840_SREVISION 0x16 /* Silicon revision */#define DP83840_CSCONFIG 0x17 /* CS configuration */#define DP83840_LBRERROR 0x18 /* Lpback, rx, bypass error */#define DP83840_PHYADDR 0x19 /* PHY address */#define DP83840_RESERVED 0x1a /* Unused... */#define DP83840_TPISTATUS 0x1b /* TPI status for 10mbps */#define DP83840_NCONFIG 0x1c /* Network interface config *//* Basic mode control register. */#define BMCR_RESV 0x007f /* Unused... */#define BMCR_CTST 0x0080 /* Collision test */#define BMCR_FULLDPLX 0x0100 /* Full duplex */#define BMCR_ANRESTART 0x0200 /* Auto negotiation restart */#define BMCR_ISOLATE 0x0400 /* Disconnect DP83840 from MII */#define BMCR_PDOWN 0x0800 /* Powerdown the DP83840 */#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */#define BMCR_SPEED100 0x2000 /* Select 100Mbps */#define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */#define BMCR_RESET 0x8000 /* Reset the DP83840 *//* Basic mode status register. */#define BMSR_ERCAP 0x0001 /* Ext-reg capability */#define BMSR_JCD 0x0002 /* Jabber detected */#define BMSR_LSTATUS 0x0004 /* Link status */#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */#define BMSR_RFAULT 0x0010 /* Remote fault detected */#define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */#define BMSR_RESV 0x07c0 /* Unused... */#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */#define BMSR_100BASE4 0x8000 /* Can do 100mbps, 4k packets *//* Advertisement control register. */#define ADVERTISE_SLCT 0x001f /* Selector bits */#define ADVERTISE_CSMA 0x0001 /* Only selector supported */#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */#define ADVERTISE_RESV 0x1c00 /* Unused... */#define ADVERTISE_RFAULT 0x2000 /* Say we can detect faults */#define ADVERTISE_LPACK 0x4000 /* Ack link partners response */#define ADVERTISE_NPAGE 0x8000 /* Next page bit */#define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \ ADVERTISE_100HALF | ADVERTISE_100FULL)/* Link partner ability register. */#define LPA_SLCT 0x001f /* Same as advertise selector */#define LPA_10HALF 0x0020 /* Can do 10mbps half-duplex */#define LPA_10FULL 0x0040 /* Can do 10mbps full-duplex */#define LPA_100HALF 0x0080 /* Can do 100mbps half-duplex */#define LPA_100FULL 0x0100 /* Can do 100mbps full-duplex */#define LPA_100BASE4 0x0200 /* Can do 100mbps 4k packets */#define LPA_RESV 0x1c00 /* Unused... */#define LPA_RFAULT 0x2000 /* Link partner faulted */#define LPA_LPACK 0x4000 /* Link partner acked us */#define LPA_NPAGE 0x8000 /* Next page bit *//* Expansion register for auto-negotiation. */#define EXPANSION_NWAY 0x0001 /* Can do N-way auto-nego */#define EXPANSION_LCWP 0x0002 /* Got new RX page code word */#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */#define EXPANSION_NPCAPABLE 0x0008 /* Link partner supports npage */#define EXPANSION_MFAULTS 0x0010 /* Multiple faults detected */#define EXPANSION_RESV 0xffe0 /* Unused... *//* N-way test register. */#define NWAYTEST_RESV1 0x00ff /* Unused... */#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */#define NWAYTEST_RESV2 0xfe00 /* Unused... *//* The Carrier Sense config register. */#define CSCONFIG_RESV1 0x0001 /* Unused... */#define CSCONFIG_LED4 0x0002 /* Pin for full-dplx LED4 */#define CSCONFIG_LED1 0x0004 /* Pin for conn-status LED1 */#define CSCONFIG_RESV2 0x0008 /* Unused... */#define CSCONFIG_TCVDISAB 0x0010 /* Turns off the transceiver */#define CSCONFIG_DFBYPASS 0x0020 /* Bypass disconnect function */#define CSCONFIG_GLFORCE 0x0040 /* Good link force for 100mbps */#define CSCONFIG_CLKTRISTATE 0x0080 /* Tristate 25m clock */#define CSCONFIG_RESV3 0x0700 /* Unused... */#define CSCONFIG_ENCODE 0x0800 /* 1=MLT-3, 0=binary */#define CSCONFIG_RENABLE 0x1000 /* Repeater mode enable */#define CSCONFIG_TCDISABLE 0x2000 /* Disable timeout counter */#define CSCONFIG_RESV4 0x4000 /* Unused... */#define CSCONFIG_NDISABLE 0x8000 /* Disable NRZI *//* Loopback, receive, bypass error register. */#define LBRERROR_EBUFFER 0x0001 /* Show elasticity buf errors */#define LBRERROR_PACKET 0x0002 /* Show packet errors */#define LBRERROR_LINK 0x0004 /* Show link errors */#define LBRERROR_END 0x0008 /* Show premature end errors */#define LBRERROR_CODE 0x0010 /* Show code errors */#define LBRERROR_RESV1 0x00e0 /* Unused... */#define LBRERROR_LBACK 0x0300 /* Remote and twister loopback */#define LBRERROR_10TX 0x0400 /* Transceiver loopback 10mbps */#define LBRERROR_ENDEC 0x0800 /* ENDEC loopback 10mbps */#define LBRERROR_ALIGN 0x1000 /* Bypass symbol alignment */#define LBRERROR_SCRAMBLER 0x2000 /* Bypass (de)scrambler */#define LBRERROR_ENCODER 0x4000 /* Bypass 4B5B/5B4B encoders */#define LBRERROR_BEBUF 0x8000 /* Bypass elasticity buffers *//* Physical address register. */#define PHYADDR_ADDRESS 0x001f /* The address itself */#define PHYADDR_DISCONNECT 0x0020 /* Disconnect status */#define PHYADDR_10MBPS 0x0040 /* 1=10mbps, 0=100mbps */#define PHYADDR_RESV 0xff80 /* Unused... *//* TPI status register for 10mbps. */#define TPISTATUS_RESV1 0x01ff /* Unused... */#define TPISTATUS_SERIAL 0x0200 /* Enable 10mbps serial mode */#define TPISTATUS_RESV2 0xfc00 /* Unused... *//* Network interface config register. */#define NCONFIG_JENABLE 0x0001 /* Jabber enable */#define NCONFIG_RESV1 0x0002 /* Unused... */#define NCONFIG_SQUELCH 0x0004 /* Use low squelch */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?