Part Number Hot Search : 
608X5 XC2S100 00600 TS6601HD LC74794 MMBT4403 PC2501 NDH832P
Product Description
Full Text Search
 

To Download MX98728EC Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  1 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC gmac single chip 10/100 fast ethernet controller for generic application 1.0 features ? 32 bits general purpose asynchronous bus architec- ture up to 33mhz for easy system application ? single chip solution integrating 10/100 tp transceiver to reduce overall cost ? optional mii interface for external tranceiver. ? fully compliant with the ieee 802.3u spec. ? supports 32/16 bits x1, x2, x4 burst read transfers for the receive packet buffer ? packet buffer access through an io mapped port or host dma for a wide variety of bus applications ? programmable bus integrity check timer and interrupt assertion scheme ? supports 16/8 bits packet buffer data width and 32/ 16 bits host bus data width ? separated tx and rx fifos to support the full du- plex mode, independent tx and rx channel ? rich on-chip registers to support a wide variety of network management functions ? 1.6kb tx fifo to support maximum network through- put in the full duplex mode ? 16/8 bits sram interface of the packet buffer sup- porting burst dma for on-chip fifos ? flexible packet buffer partition and addressing space for up to 1mb ? nway autonegotiation function to automatically set up network speed and protocol ? 3 loop back modes for system level diagnosis ? supports 64 bits hash table for multicast addressing, broadcast control. ? optional eeprom configuration, supports 1k bits and 4k bits eeprom interface ? supports software eeprom interface for easy up- grade of eeprom contents ? 5v cmos in an 160 pqfp package 1.1 introduction MX98728EC ( gmac ) is a general purpose single chip 10/100 fast ethernet controller. with no glue logic or very little extra logic, it can be used in a variety of system applications through its host bus interface. single chip solution will help reduce system cost, not only on the ic count but also on the board size. full nway function with 10/100 transceiver will ease the field installation. simply plug the chip in and it will connect itself with the best protocol available. a data cache is also used on the host bus to deliver the 32 /16 bits burst read on the host data port up to 4 data transfers in a single cycle. two hand shake signals to communicate to the host bus interface during the data port transfer are simple and fast for the system integra- tor. an intelligent built-in sram bus arbiter will manage all sram access requests from the host bus access, the transmit local dma and the receive local dma. the 16/8 bit sram interface with local dmas help sys- tem developers to optimize the performance. the be- havior of these local dmas can be easily adjusted by the optional bits on the chip. (the term "packet buffer" and "packet memory" are used interchangeably in this document). a programmable receive packet interrupt scheme using a timer (rxintt) and a packet counter (rxintc) allows system developers to adjust the interrupt traffic. the re- ceive interrupt assertion timing is also programmable for different system applications. a general purpose host receive packet counter (hrpktcnt) is also provided to the host for the buffer management purpose. bus integrity check feature allows the system to recover from a bus hang or an excessively long bus access. bict ( bus integrity check timer ) can be programmed to abort any bus access that runs abnormally long. based multicast and broadcast frame filtering is supported to minimize the unnecessary network traffic. MX98728EC is also equipped with the back-to-back transmit capability which allows the software to fire as many transmit packets as needed in a single command. the receive fifo also allows the back-to-back recep- tion. optional eeprom can be used to store the mac id and the other configuration information. all options including mac id can be programmed through the host interface.
2 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 1.2 internal block diagram packet buffer (sram) sramiu rx fifo rx sm host biu tx fifo tx sm pcs architecture and interface overview 100 tx phy 100tx pmd interface nway ctrl & regs 10mbps mcc+tp interface eprom mii interface serial rom port
3 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 1.3 typical application host mx98728 packet buffer host memory subsystem customer application typical application tp cable rj45 xformer decode eprom c46/c66 local dma csb 1.4 combo application host mx98728 packet buffer host memory subsystem customer application combo application rj11 xformer 1m 8phy or 10m 8phy decode eprom c46/c66 local dma tp cable phone line csb or rj45 xformer
4 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 2.0 pin configuration and description : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 gnda gnda vdda rtx rtx2eq cpk gnda gnda txop txon vdda gndr gndr vddr vddr rxip rxin vddr vddr gndr gndr vdda gnda gnda ckref(x1) x2 vdda rda gnda vdda txd0 txd1 txd2 txd3 ma19(rxd0) ma18(rxd1) ma17(rxd2) ma16(rxd3) vdd gnd gnd d11 d10 d9 d8 a11(rxc) a10(rxvd) a9(crs) a8(col) rstb a7 a6 a5 wrb rdb a4 srdy a3 a2 a1 nc intb clkin led1(txen) led0(txc) gnd mcsb moeb mwe0b mwe1b md0 md1 vdd gnd md2 md3 md4 vdd md5 md6 md7 vdd md8 md9 md10 md11 gnd md12 md13 md14 md15 d24 d25 d26 d27 d28 d29 d30 d31 eecs ma0(eeck) gnd ma1(eedi) ma2(eedo) ma3 ma4 ma5 ma6 ma7 vdd ma8 ma9 ma10 gnd ma11 ma12 ma13 ma14 gnd ma15 a12 a13 a14 a15 gnd vdd d12 d13 d14 d15 d16 d17 d18 vdd d19 d20 gnd d21 d22 d23 d0 d1 gnd d2 d3 d4 d5 d6 d7 h16_32 csb dackb dreqb c46/c66 gnd(mdc) gnd(mdio) gnda vdda gnda vdda 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 mx98728
5 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 2.1 pin description: ( all internal pull-up is 168k ohm, pull-down is 70k ohm ) host bus interface pin# pin name type description 143 clkin i, ttl not used, nc pin. 19-12, d[31:0] i/o, 4ma host data bit [31:0]: 101-103, 105-106, 108-114, 122-125, 92-97, 99, 100 117-120, a[15:1] i, 4ma host bus address bit [15:1] : in 32 bit mode, h16_32=0, 126-129, all host accesses are 32 bit wide. when h16_32=1, all 131-133, host accesses are 16 bit wide. (internal pull-up). 136,138-140 a11, a10, a9, a8 has other definition in mii mode. 126 a11(rxc) i, ttl host bus address bit11, when on-chip tranceiver is used, it is used in a[15:1], when in mii mode, it is defined as receive clock rxc (25mhz or 2.5mhz) when this pin is used as address bit, it is internally grounded until reg50.6 (a11a8en bit) is set to enable decoding of this pin as address bit. 127 a10(rxdv) i,ttl host bus address bit10, when on-chip tranceiver is used, it is used in a[15:1], when in mii mode, it is defined as receive data valid rxdv signal. when this pin is used as address bit, it is internally grounded until reg50.6 (a11a8en bit) is set to enable decoding of this pin as address bit. 128 a9(crs) i,ttl host bus address bit9, when on-chip tranceiver is used, it is used in a[15:1], when in mii mode, it is defined as carrier same crs signal. when this pin is used as address bit, it is internally grounded until reg50.6 (a11a8en bit) is set to enable decoding of this pin as address bit. 129 a8(col) i,ttl host bus address bit8, when on-chip tranceiver is used, it is used in a[15:1], when in mii mode, it is defined as collision col signal. when this pin is used as address bit, it is internally grounded until reg50.6 (a11a8en bit) is set to enable decoding of this pin as address bit. 141 nc nc pin : not connected. 137 srdy o, 4ma synchronous ready : active high for the write cycle to indicate the data is secured and the cycle can be fin- ished.
6 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC packet memory interface pin# pin name type description 46-43, ma[19:3] o ,4ma memory address bits 19-3: 40, 38-35, 33-31, 29-25 46 ma19(rxd0) i/o, 4ma memory address bit19, when on-chip tranceiver is used, it is defined as ma19, while in mii mode, it is used as receive data bit rxd0 pin. 45 ma18(rxd1) i/o, 4ma memory address bit18, when on-chip tranceiver is used, it is defined as ma18, while in mii mode, it is used as receive data bit rxd1 pin. 44 ma17(rxd2) i/o, 4ma memory address bit17, when on-chip tranceiver is used, it is defined as ma17, while in mii mode, it is used as receive data bit rxd2 pin. 43 ma16(rxd3) i/o, 4ma memory address bit16, when on-chip tranceiver is used, it is defined as ma16, while in mii mode, it is used as receive data bit rxd3 pin. 24 ma2(eedo) i/o,4ma memory address bit 2 or eeprom data out bit: right after the host reset, gmac automatically load the configuration informa- tion from the external eeprom. during this period, ma2 pin acts as an eedo pin that reads in the output data stream from the eeprom. after the eeprom auto load sequence is done, this pin becomes ma2. together with ma[19:3], they form the packet buffer address lines 19 - 0. 135 rdb i, ttl host bus read indicator : active low. (internal pull-up) 134 wrb i, ttl host bus write indicator : active low. (internal pull-up) 142 intb o/d, 4ma host bus interrupt output : active low. 88 dreqb o, 4ma dma burst read request : active low to request a burst read transfer. 89 dackb i, ttl dma read acknowledge : active low during the burst read cycle. 130 rstb i,ttl host bus reset input : active low. (schmidt trigger input, internal pull-up) input delay is typically 7ns, minimum rstb pulse width must be 5 tclk,tclk=1/50mhz. 90 csb i,ttl host bus chip select input : active low to enable access to gmac, set to disable access to gmac. but the net- work activity is independent of this signal. (internal pull- down) 91 h16_32 i,ttl host bus width 16 bit / 32 bit select : set for the 16 bit host bus, reset for the 32 bit host bus.
7 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 10/100 transceiver interface pad# pin name type description 53 rda o rda external resistor to ground: 10k ohm, 5% 56 ckref(x1) i,ttl 25mhz , 30 ppm external osc./crystal input : 55 x2 o 25mhz , 30 ppm external crystal output : 64 rxin i t wisted pair receive differential input: supports both 10/100 mbps speeds. 65 rxip i twisted pair receive differential input: supports both 10/100 mbps speeds. 71 txon o t wisted pair transmit differential output: supports both 10/100 mbps speeds, 802.3 aoi spec. 72 txop o twisted pair transmit differential output: supports both 10/100 mbps speeds, 802.3 aoi spec. 75 cpk o nc pin : used in the test mode only. 76 rtx2eq o rtx2eq external resistor to ground: 1.4k ohm, 5% 77 rtx o rtx external resistor to ground: 560 ohm, 5% 23 ma1(eedi) i/o,4ma memory address bit 1 or eeprom data in bit: during the eeprom auto load sequence, the ma1 pin acts as the eedi pin that writes the data stream into the eeprom. after the eeprom auto load sequence is done, this pin becomes ma1. together with ma[19:2], they form the packet buffer address lines. 21 ma0(eeck) i/o,4ma memory address bit 0 or eeprom clock input : during the eeprom auto load sequence, ma0 pin acts as the eeck pin that provides clock to the eeprom. after the eeprom autoload sequence is done, this pin becomes ma0. together with ma[19:1], they form the packet buffer address lines. ma0 is don't care when packet memory is in word mode. 11-8, md[15:0] i/o,4ma packet memory data bits 15-0: (internal pull-down) 6-3, 1, 160, 159, 157-155, 152,151 148 moeb o ,4ma memory output enable: active low during packet buffer read accesses. 147 mcsb o ,4ma memory chip select: active low during packet buffer accesses. 150,149 mweb[1:0] o ,4ma byte write enable: active low during the packet buffer write cycle. mweb1 for the high byte and mweb0 for the low byte.
8 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC vdd/gnd pins pin# pin name type description 51,54,59,70,78,81,83 vdda analog vdd pins : must be carefully isolated in the separated vdd plane. 52,57,58,73,74,79,80, gnda analog ground pins : must be carefully isolated in the 82,84 seperated gnd plane. 62,63,66,67 vddr rx vdd pins : must be carefully isolated in the separated vdd plane. 60,61,68,69 gndr rx ground pins : must be carefully isolated in the separated ground plane. 42,30,2,153,115,107 vdd digital vdd pins : must be carefully isolated in the 158 separated vdd plane. 41,39,34,22,7,154, gnd digital ground pins : must be carefully isolated in the 146,121,116,104,98, separated ground plane. 85 gnd(mdio) i/o, 4ma normally grounded when on-chip tranceiver is used, while in mii mode, it is defined as mdio pin. 86 gnd(mdc) i/o, 4ma normally grounded when on-chip tranceiver is used, while in mii mode, it is defined as mdc clock pin. miscellaneous pin# pin name type description 20 eecs o ,2ma eeprom chip select signal 87 c46/c66 i,ttl eeprom size select : 1 for c46, 0 for c66. default is 1.(internal pull- up) 145 led0(txc) i/o ,16ma led0 (txc in mii mode) : when on-chip tranceiver is used, it is defined as speed led. when the light is on, it indicates the 100 mbps speed. when off, it indicates the 10 mbps speed. when both led0 and led1 are flashing identically, it means the bus integrity error. (internal pull- up). when in mii mode, this pin is defined as transmit clock txc (25 mhz or 2.5 mhz) input. 144 led1(txen) o,16ma led1 (txen in mii mode) :when on-chip tranceiver is used, it is de- fined as link/activity led. when the light is stable and on, it indicates a good link. when flashing, it indicates tx and rx activities. when off, it means a bad link. (internal pull-up). when in mii mode, this pin is defined as transmit enable txen pin. 47-50 txd[3:0] o, 4ma mii test port txd[3:0] : used only in the test mode as part of the mii interface. (internal pull-down)
9 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 3.0 register (default value is defined after the hardware/power-up reset) reset logic : all register bits are cleared by the hardware reset, while the register bit with an "*" in its symbol name is also cleared by the software reset. network control register a : ncra (reg0h), r/w, default=00h bit symbol description 0.0 reset reset : software reset. after hardware reset, this bit is 0 meaning normal operation. to reset gmac by software, software must write a 1 to this bit first, then followed by writing a 0 to this bit. after writing a 0 to this bit, gmac starts normal operation. 0.1 st0* start transmit command/status : write to issue commands. when done, both bits are 0.2 st1* cleared automatically. transmit command : st1 st0 idle state 0 0 read to indicate tx dma idle state, write has no effect. tx dma poll 0 1 start tx dma, send packets stored in packet memory. tx fifo send 1 0 immediately send the packet stored in the tx fifo. tx dma poll 1 1 start tx dma, send packets stored in packet memory. all transmit commands are cleared to 00 when the operation is done to indicate idle state. when the tx dma poll and the tx fifo send can not be used at the same time. new packet can be written to the fifo directly only when st1, st0=idle and txdma[3:0]=1h. the tx dma poll and the tx fifo send commands can be issued only when st1, st0=idle and txdma[3:0]=1h, regardless of any error status in previous transmission. 0.3 sr* start receive : enable the mac to receive packets. default is disabled. 0.4, 0.5 lb0*,lb1* loop back mode: lb1 lb0 mode0 0 0 normal mode mode1 0 1 internal fifo loopback mode2 1 0 internal nway loopback mode3 1 1 internal pmd loopback mode 2 and 3 are reserved for the ic test purpose. only mode 1 can be used on the bench. external loopback for the bench can be done by the full duplex normal mode with the real cable hooked up from the tx port to the rx port. 0.6 intmode interrupt mode: set for the active high interrupt, reset for the active low interrupt case. 0.7 intclk must be 0 for normal operation.
10 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC network control register b : ncrb (reg1h),r/w, default=01h bit symbol description 1.0 pr* promiscuous mode: set to receive any incoming valid frames received, regardless of its destination address. default is set. 1.1 ca* capture effect mode: set to enable an enhanced pick-off algorithm to avoid the net- work capture effect. 1.2 pm* pass multicast: set to accept all multicast packets (not including the broadcast ad- dress). default is reset which directs all multicast address to hash table for further filtering . 1.3 pb* pass bad frame: set to enable gmac to accept runt frames defined by register 50.2 ( runtsize). default is reset. when pb=1, runt frame is accepted reguardless of reg32.3 (arxerrb). 1.4 ab* accept broadcast: default is reset which yields control of all the broadcast addresses to the check logic defined by register 32h bit 7, register 38h and 39h. set to accept all broadcast packets without any further address filtering. 1.5 hbd* reserved for test purpose. default is 0. 1.7-6 rxintc[1:0]* receive interrupt counter : receive interrupt ri or rei assertion depends on the num- ber of packets received defined by these two bits or the rxintt timer ( reg.15/14h ) timeout, whichever comes first. default is 00h after reset, meaning the normal receive interrupt operation which as- serts ri or rei after a single packet is received and no rxintt timer is used. non- zero value in these two bits will enable this special receive interrupt operation. rxintc1 rxintc0 interrupt received packet count 0 0 1 ( default ) 01 2 10 4 11 8
11 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC gmac test register a : tra (reg02h),r/w, default=00h bit symbol description 2.0 test test mode enable: set to enable test modes defined by tmode[2:0]. default is reset for the normal operation, 2.1-2.3 tmode[2:0] test mode select bits[2:0]: reserved for gmac's inter nal tests, only meaningful when the test bit is set, except when tmode [2:0] = "110" which is also used as normal mode with eeprom interface disabled. when tmode [2:0] = "110" & test =0, then ma19~ma16 are still sram address bit19~16, while test = 1, ma19~ma16 are de- fined as test pins reserved for debug purpose. 2.4 rwr receive watchdog release : when set, the receive watchdog is released 40 to 48 bit times from the last carrier deassertion. when reset, the receive watchdog is released 16 to 24 bits times from the last carrier deassertion. 2.5 rwd receive watchdog disable : when set, the receive watchdog is disabled. when reset, receive carriers longer than 2560 bytes are guaranteed to cause the watchdog time- out. packets shorted than 2048 bytes are guaranteed to pass. 2.6 fc forced collision : set to force collision at every transmit packet. this bit works only in the internal fifo loopback mode, i.e. lb0=1, lb1=0, to test the excessive colli- sion. default is reset. 2.7 sb start/stop back-off counter: when set, indicates the internal back-off counter stops counting when any carrier is detected. the counter resumes when the carrier drops. when reset, the internal back-off counter is not affected by the carrier activity. default is reset. gmac test register b : trb (reg03h),r/w, default=00h bit symbol description 3.0 fkd* flaky oscillator disable: when set, indicates that the internal flaky oscillator is disabled. pseudo random numbers are chosen instead of fully random numbers, used for the internal diagnostic purpose. set to disable the normal clocking scheme in the timer's test. reset to enable the timer test. default is reset. 3.1 rdncntcb* reserved for test 3.2 rdncntsb* reserved for test 3.3 colcntcb* reserved for test 3.4 bfs0*(mdc) normally used as bfs0 pin for test purpose, while in mii mode, it is defined as mii management clock signal (mdc) to be used as a timing reference of mdio pin. 3.5 bkcntlb*(mdioen) normally used as bkcntlb pin for test purpose, while in mii mode, it is used to control the direction of mdio pin. set mdioen = 1 will make mdio pin as input pin, the value can be read from mdi bit. set mdioen = 0 will make mdio pin as output pin, the value of mdo bit is driven out to mdio pin.
12 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC last transmitted packet status: ltps ( reg4h), ro, default=00h bit symbol description 4.0 cc0* collision count bit 0 : 4.1 cc1* collision count bit 1 : 4.2 cc2* collision count bit 2 : 4.3 cc3* collision count bit 3 : when cc[3:0] = 1111 and a new collision is detected, it is called the excessive collision error which will abort the current packet. the tei inter- rupt bit will be set. 4.4 crslost* carrier sense lost : set to indicate crs was lost during the transmission. default is reset for the normal packet transmission. 4.5 uf* tx fifo underflow : set to indicate a underflow problem in the tx fifo. an fifoei interrupt is generated for the driver to resolve this problem. 4.6 owc* out of window collision : set to indicate a collision occurred after 64 bytes of data has been transmitted. no retransmission will be issued. 4.7 terr* tr ansmit error: set to indicate the packet transmitted with error. reset for the normal packet transmission. last received packet status: lrps ( reg5h), ro bit symbol description 5.0 bf* rx packet buffer full error : 1 indicates the rx packet buffer is full. 5.1 crc* crc error : the calculation is based on the integer multiple of bytes. set to indicate the crc error for the received packet. 5.2 fae* frame alignment error : set to indicate an extra nibble is received which is not at the octet boundary. this error is independent of the crc detection. 5.3 fo* fifo overrun : when set, an interrupt is generated. the driver must resolve this error. 5.4 rw* receive watchdog : set to indicate the frame length exceeds 2048 bytes. an interrupt will be generated to the driver. 5.5 mf* multicast frame address : set to indicate the current frame has the multicast address. 5.6 rf* runt frame : set to indicate a frame length less than 64 or 60 bytes depending on register 50.2 ( runtsize ), only meaningful when the reg01h.3 pb bit is set. when pb=1, a runt frame will be accepted & ri is set for receive interrupt. when pb=0, a runt frame is rejected. 5.7 rerr* receive error : set to indicate a packet received with errors including crc, fae, fo, rw error. notes : this lrps register contains the same status byte as in the description field of the last received packet in the packet memory. 3.6 bfs1*(mdo) normally used as bfs1 pin for test purpose, while in mii mode, it is used as mii management write data (mdo) for mdio pin's output data. 3.7 bfstatus*(mdi) nor mally used as bfstatus pin for test purpose, while in mii mode, it is used as mii management read data (mdi) for mdio pin's input data.
13 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC interrupt mask register: imr (reg.08h), r/w, default=00h bit symbol description 8.0 fragim fragment counter interrupt mask: set to enable the host dma fragment counter ( fragi) interrupt. default is reset which disable the fragi interrupt.when autorcvr is set, this bit should be reset. 8.1 rim received interrupt mask: set to enable the packet received interrupt. default is reset which disables the ri interrupt. 8.2 tim transmit interrupt mask: set to enable the packet transmit ok interrupt. default is reset which disables the ti interrupt. 8.3 reim receive error interrupt mask: set to enable the receive error interrupt. default is reset which disables the rei interrupt. 8.4 teim transmit error interrupt mask: set to enable transmit error interrupt. default is reset which disables the tei interrupt. 8.5 fifoeim fifo error interrupt mask: set to enable the fifo error interrupt. default is reset which disables the fifoei interrupt. when autorcvr is set, this bit should be reset. 8.6 buseim bus error interrupt mask: set to enable the bus error interrupt. default is reset which disables the busei interrupt. 8.7 rbfim rx buffer full interrupt mask: set to enable the rx buffer full interrupt. default is reset which disables the bfi interrupt. missed packet counter: mpcl (reg07/06h), r/w, default=0000h bit symbol description 6.7-0 misscnt[7:0]* miss packet counter bits [7:0]: lower byte of the miss packet counter. 7.7-0 misscnt[15:8]* miss packet counter bits [15:8]: upper byte of the miss packet counter.
14 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC interrupt register: ir (reg09h), r/w, default=00h bit symbol description 9.0 fragi* fr agment counter interrupt : set to assert the interrupt when the host dma fragment counter is less than current received packet length. writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. 9.1 ri* receive ok interrupt : set to assert the interrupt. writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. the assertion timing of ri can be programmed through the reg50.4 bit (rintsel) for either the completion of the host receive dma activity or the completion of the receive local dma activity. 9.2 ti* transmit ok interrupt: set to assert the interrupt. writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. 9.3 rei* receive error interrupt: set to assert the interrupt when the packet is received with error . writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. the assertion timing of ri can be programmed through the reg50.4 bit (rintsel) for either the completion of the host receive dma activity or the completion of the receive local dma activity. 9.4 tei* transmit error interrupt : set to assert the interrupt when the packet is transmitted with error. writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. 9.5 fifoei* fifo error interrupt: set to assert the interrupt when either the tx fifo is overrun or the rx fifo is overrun. writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. 9.6 busei* bus error interrupt: set to assert the interrupt when the bus integrity check is enabled and failed. writing 1 to this bit will clear the bit and the interrupt. writing 0 has no effect. 9.7 rbfi* rx buffer full interrupt: set to assert the interrupt when the rx buffer area is being overwritten by new received packets. writing 1 to this bit will clear the bit and the inter- rupt. writing 0 has no effect. note : all page pointer bits [11:0] are mapped to ma[19:8] with the same bit ordering.
15 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC boundary page pointer register: bp (reg.0bh/0ah), r/w, default=x000h bit symbol description 0a.7-0, bp[11:0] boundary page pointer between the tx/rx buffers: page tlbp[11:0] to page 0b.3-0 bp[11:0] is the tx buffer. page bp[11:0] to page rhbp[11:0] is the rx buffer. bp[11:0] is mapped to ma[19:8]. the msb is the reg0bh.3 bit. the lsb is the reg0ah.0 bit. tx low boundary page pointer register: tlbp (reg.0dh/0ch), r/w, default=x000h bit symbol description 0d.3-0, tlbp[11:0] tx low boundary page pointer : the tx packet buffer is defined as between tlbp [11:0] and bp [11:0]. the msb is the reg0dh.3 bit. the lsb is the reg0ch.0 bit. transmit buffer write page pointer register: twp (reg.0fh/0eh), r/w, default=x000h bit symbol description 0e.7-0, twp[11:0] tr ansmit buffer write page pointer: twp[11:0] are mapped to ma[19:8] with the 0f.3-0 same bit ordering. the msb is the reg0fh.3 bit. the lsb is the reg0eh.0 bit. twp is normally controlled by the device driver. an internal byte counter (twpbc) is associated with this page register. reserved register: (reg11h/10h), default=x000h bit symbol description reserved not used transmit buffer read page pointer register: trp (reg.13h/12h), r/w, default=x000h bit symbol description 12.7-0, trp[11:0] the page index of the transmit buffer read pointer: current transmit read page 13.3-0 pointer. the msb is the reg13h.3 bit. the lsb is the reg12h.0 bit. trp is controlled by gmac only. an internal byte counter (trpbc) is associated with this page register.
16 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC receive buffer write page pointer register: rwp (reg17h/16h), r/w, default=x000h bit symbol description 16.7-0, rwp[11:0] receive buffer write page pointer: current receive write page pointer. the msb 17.3-0 is the reg17h.3 bit. the lsb is the reg16h.0 bit. this register is controlled by gmac only. an internal byte counter (rwpbc) is associated with this page register. receive buffer read page pointer register: rrp ( reg19h/18h), r/w, default=0000h bit symbol description 18.7-0, rrp[11:0] receive buffer read page pointer: current receive read page pointer. rrp[11:0] 19.3-0 is mapped to ma[19:8]. the msb is the reg19h.3 bit. the lsb is the reg18h.0 bit. this register is normally controlled by the device driver. an internal byte counter (rrpbc) is associated with this page register. rx high boundary page pointer register: rhbp reg.1bh/1ah, r/w, default=x000h bit symbol description 1a.7-0. rhbp[11:0] receive high boundary page pointer : the rx packet buffer is defined as 1b.3-0 between rhbp [11:0] and bp[11:0]. the msb is the reg1bh.3 bit. the lsb is reg1ah.0 bit. receive interrupt timer: rxintt (reg15h/14h), r/w, default=0000h bit symbol description 14.7-0, rxintt[7:0], receive interrupt timer: default is 0000h, meaning no time-out is used on the ri 15.7-0 rxintt[15:8] or the rei interrupt assertion. reg15h.7 is the rxintt.15 bit. reg14h.0 is the rxintt.0 bit. any non-zero value enables the time out function if rxintc[1:0] (reg01h.[7:6] ) > 0. the time unit of this counter is 40ns per count. the possible timeout period ranges from 40ns to 2622 us. when the rxintt times out, if the received packet count has not reached the rxintc [1:0], an interrupt will be generated (which is caused by the rxintt timeout alone). depending on the reg50.4 bit, rxintt will start counting after the end of the last receive packet of either the host dma or the rx local dma. see waveform diagram about "rxintt start time definifion."
17 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC eeprom interface register: reg1ch, r/w, default=00h bit symbol description 1c.0 eecs* chip select output to the external eeprom clock device 1c.1 eeck* serial clock output to the external eeprom clock device, <1mhz. 1c.2 eedi* serial data input to the external eeprom clock device 1c.3 eedo* serial data output from the external eeprom clock device 1c.4 eesel* set to enable the external eeprom write operation(write select). default 0 is read. 1c.5 eeld* set to enable reloading the entire contents of the eeprom just like the power-on reset or the hardware reset. when the loading is done, this bit will be set by gmac automatically. 1c.6 holdreq reserved, default = 0. 1c.7 hldaack reserved, read only. io data port page pointer register: iordp (reg.1fh/1eh), r/e, default=x000h bit symbol description 1e.7-0, iordp[11:0] io read data port page pointer [11:0] : any read to iord (reg4c-4f) will be 1f.3-0 mapped to the packet buffer address which consists of iordp and the current content of the internal byte counter (iordpbc). iordp can be pointed to any page within the packet buffer space. iordp[11:0] are mapped to ma[19:8] during the data port access. iordp can be increment automatically when the current page is exhausted and if autopub is 0. this page pointer is usually used by the driver to read multiple tx packets status in the packet memory. bit 3a.1 ( stiord/rrdyb ) is with iordp and iord if the srdy pin is not available on the system application. bus integrity check timer: bict (reg1dh), r/w, default=00h bit symbol description 1d.7-0 bict[7:0]* bus integrity check timer: default is 00h, meaning no bus integrity check is enabled. the time unit of this counter is 40ns. value in this counter other than zero will enable the bus integrity check. any bus cycle longer than the timeout period will cause the "termination of the current bus cycle", which can avoid the abnor- mal bus hang and the bus dead lock. the busei interrupt will be issued. led0 and led1 will both be flashing identically in 12.5hz. the possible timeout period ranges from 40ns to a maximum of 10.24us. this counter can be used to warn long cycles so that the driver can tune the local dma performance.
18 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC network address filtering registers : reg20h~25h (r/w), 26h~2dh (r/w), default=00h bit symbol description 20.[7:0] par0 physical address register byte 0: par [7:0] 21.[7:0] par1 physical address register byte 1: par [15:8] 22.[7:0] par2 physical address register byte 2 : par [23:16] 23.[7:0] par3 physical address register byte 3 : par [31:24] 24.[7:0] par4 physical address register byte 4 : par [39:32] 25.[7:0] par5 physical address register byte 5 : par [47:40] 26.[7:0] mar0 hash table register byte 0 : mar [7:0] 27.[7:0] mar1 hash table register byte 1 : mar [15:8] 28.[7:0] mar2 hash table register byte 2 : mar [23:16] 29.[7:0] mar3 hash table register byte 3 : mar [31:24] 2a.[7:0] mar4 hash table register byte 4 : mar [39:32] 2b.[7:0] mar5 hash table register byte 5 : mar [47:40] 2c.[7:0] mar6 hash table register byte 6 : mar [56:48] 2d.[7:0] mar7 hash table register byte 7 : mar [63:57] transceiver control register : analog (reg 2eh), r/w, default=07h bit symbol description 2e.0 ds120 must be 1 for normal mode with auto-compensation. 2e.1 ds130 must be 1 for normal mode with auto-compensation 2e.2 pwd10b set for normal mode, write 0 followed by write 1 will power down 10 base-t analog circuit. 2e.3 pwd100 reset for normal mode, write 1 followed by write 0 will power down 100 base- t analog circuit. 2e.4 rsq reduced squelch enable : set to enable the reduced squelch circuit in the 10 base-t mode for the receive channel. this can help the reception in a long cable application. default is reset, meaning the normal cat-5 cable is used. 2e.5 rst100 reset for normal mode, write 1 followed by write 0 will reset 100 bare-t analog circuit. 2e.6-7 reserved m ust be zero. dma interval timer : dintval (reg 2fh), r/w, default=00h bit symbol description 2f.7-0 dintval dma interval timer : used to control the latency between the two consecutive dma read burst cycles. default is all zero, meaning this function is disabled. a non-zero value tells gmac to prepare the next host dma read close to the timer's expiration. this timer will improve the host dma read access priority. the timer's time base is 0.5mhz, which gives a maximum of 512us.
19 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC nway configuration register : nwayc (reg 30h), r/w, default=84h bit symbol description 30.0 fd full duplex mode: set 1 to force the full duplex mode. the default is 0, meaning the half duplex mode. this bit is meaningful only if ane = 0 30.1 ps100/10 port select 100/10 bit : default is 0, meaning the 10 base-t mode. 30.2 ane a utonegotiation enable: set to enable the nway function. default is set. ans[2:0] should be written 001 to restart the autonegotiation sequence after ane is set. 30.[5:3] ans[2:0] autonegotiation status bits: read only for the nway status, except when write 001 will restart the autonegotiation sequence. the msb is the reg30h.5 bit when nway settles down in one network mode, one bit of reg31.4~reg 31.7 will be set to indicate the chosen network mode. autonegotiation arbitration state, arbitration states are defined 000 = autonegotiation disable 001 = transmit disable 010 = ability detect 011 = acknowledge detect 100 = complete acknowledge detect 101 = flp link good; autonegotiation complete 110 = link check 30.6 nttest reserved 30.7 lte link test enable : default is high, meaning the link check is always enabled. reset forces a good link in the 10 base-t mode for the testing purpose. nway status register : nways (reg 31h), ro, default=00h bit symbol description 31.0 ls10 ph ysical link status of 10 mbps tp : set for a good link in 10 base-t. 31.1 ls100 ph ysical link status of 100 mbps tp : set for a good link in 100 base-tx. 31.2 lpnway link partner nway status : 1 to indicate the link partner is capable of nway support. reset for the non-nway link partner. 31.3 anclpt a uto-negotiation completion : set to indicate that a normal nway state machine completion. reset for incomplete state. 31.4 100txf nway 100 tx full_duplex mode : set to indicate nway is settled down in the 100 tx full duplex mode. 31.5 100txh nway 100 tx half_dulpex mode : set to indicate nway is settled down in the 100 base-t half duplex mode. 31.6 10txf nway 10 tx full_duplex mode : set to indicate nway is settled down in the 10 base-t full duplex mode. 31.7 10txh nway 10 tx half_duplex mode : set to indicate nway is settled down in the 10 base-t half duplex mode.
20 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC gmac configuration a register: gca (reg 32h), r/w, default=00h bit symbol description 32.0 bpscrm bypass scrambler: default is 0, meaning enable the 100 tx scrambler. set to disable the scrambler for the 100 tx mode. 32.1 pbw packet buffer data width : default is 0, meaning the packet buffer data width is byte. set when the packet buffer data width is 16 bits. 32.2 slowsram nor mally reset, sram taa must be less than 25ns, set to use -70ns sram or better 32.3 arxerrb accept rx packet with error : default is reset to receive packets with error, set to reject packets with error, packet memory will not contain packet with rw, fo, crc errors. 32.4 miisel default = 0 after reset, on-chip tranceiver is used. set by software to enable mii interface. 32.5 autopub a uto page update option : set to disable the automatic host page update during the host dmas. reset to enable the host page update for the rrp, twp registers. default is reset. 32.6 txfifocnten def ault=0, after rest which means reg 3e & 3f (txfifocnt) are not used. this option is only good for a byte-base host transfer. for host which do word/double word transfer, this bit must be set to 1 to force txfifo use actual packet length for transmission. 32.7 reserved default = 0. gmac configuration b register: gcb (reg33h), r/w, default=00h bit symbol description 33.1-0 tthd[1:0] tr ansmit fifo threshold : default is 00 tthd1 tthd0 fifo depth aggressiveness 0 0 1/2 medium 0 1 1/4 least 1 0 3/4 more 1 1 reserved reserved 33.3-2 rthd[1:0] receive fifo threshold : default is 00 rthd1 rthd0 fifo depth aggressiveness 0 0 1/2 medium 0 1 1/4 most 1 0 3/4 least 1 1 reserved 33.4 sramelen sram early latch enable : default = 0. set to enable. 33.5 x4elen x4 fifo early latch enable : defautl = 0. set to enable. 33.6 dreqb2en dreqb new timing enable : default = 0. set to enable. 33.7 reserved
21 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC reserved register : reserved (reg39h/38h), r/w, default=0000h bit symbol description 38.7-0 reserved default = 00h 39.7-0 reserved default = 00h host interface protocol register: reg3ah, r/w, default=00h bit symbol description 3a.0 wrdyb write packet memory ready bar status indication : it is used to indicate whether the twd port is ready for the next write. read only. 1 indicates the host can not issue a new write cycle into the twd data port. 0 indicates the host can issue a new write cycle into the twd port. this bit is primarily used by the host who does not use the srdy pin. 3a.1 stiord/rrdyb start iord read/read ready bar : write 1 to start the iord port read. when data is ready for the host in the iord port, this bit becomes 0 indicating a "read ready". so the host needs to poll this bit for 0 before he can issue a read to the iord port. reading a 1 indicates data is not ready in the iord port yet. this bit is primarily used by the host who does not use the srdy pin. 3a.2 dreqb dreqb pin status bit : a direct reflection of the dreqb pin which can be read to inquire whether there are any rx packet data available in the rrd port. this bit is primarily used by the host who does not use the dreqb pin. io mapped data port: twd (reg34h/35h/36h/37h), wo bit symbol description 34.7-0 twd[31:0] tr ansmit write data port : the 32 bit data port is used for writing the packet data into 35.7-0 the transmit buffer ring. in the 32 bit mode, i.e. h16_32=0, reg37h is the msb byte 36.7-0 (byte3), and reg34h is the lsb byte (byte 0). in the 16 bit mode, i.e. h16_32=1, reg35h 37.7-0 is the msb byte (byte 1) and reg34h is the lsb byte (byte 0). access to this port will be mapped to the packet buffer pointed to by the twp page pointer and the internal byte counter twpbc. no burst is supported for either read or write. any access to this port will increment the twpbc by either 2 or 4 depending on h16_32. this is usually used by the driver to prepare tx packets. if host system does not support srdy pin, then register 3a bit 0 ( wrdyb ) can be used to handshake with gmac during the data port write cycle.
22 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC txdma[1:0] state description 00 idle 01 read tx description 10 transmit current packet 11 write tx description rxdma[1:0] state description 00 idle 01 receive current packet 10 write tx description 11 run frame/reset rx fifo tx/rx dma status register: reg3ch, r/w, default=00h bit symbol description 3c.7-4 txdma[3:0]* tx dma state indicators : for internal diagnostic purpose indicating tx dma's current status. txdma3 is tx status error bit, set to indicate error during transmission. txdma2 is tx fifo underflow error. 3c.3-0 rxdma[3:0]* rx dma state indicators : for internal diagnostic purpose indicating rx dma's current status. rxdma3 is rx status error bit, set to indicate error during receive. rxdma2 is rx fifo overflow error. link partner link code register : lpc, reg3bh, ro bit symbol description 3b.0 lpc[0] link par tner link code a0 : 10 base-t half duplex ability 3b.1 lpc[1] link par tner link code a1 : 10 base-t full duplex ability 3b.2 lpc[2] link par tner link code a2 : 100 base-tx half duplex ability 3b.3 lpc[3] link par tner link code a3 : 100 base-tx full duplex ability 3b.4 lpc[4] link par tner link code a4 : 100 base-t4 ability 3b.5 lpc[5] link par tner link code rf bit : remote fault bit 3b.6 lpc[6] link par tner link code ack bit : acknowledge bit 3b.7 lpc[7] link par tner link code np bit : next page bit
23 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC misc control register : misc1, reg3dh, r/w, default=3ch bit symbol description 3d.0 burstdma reserved for internal dma burst control, default = 0 after reset. 3d.1 disldma* disable local dma arbitration : default is 0 after reset, meaning local dmas are enabled in the sram bus arbitration. set to disable the local dma arbitration only when the reg02h.0 test bit is also set. it is used to force the overrun or the underrun error for the test purpose. 3d.2 tpf 10 base-t port full duplex capability bit in the linkcode word : default is set to enable advertising the 10 base-t full duplex capability. reset to disable advertis- ing this capability in the outgoing nway's linkcode word. 3d.3 tph 10 base-t port half duplex capability bit in the linkcode word : default is set to enable advertising the 10 base-t half duplex capability. reset to disable advertis- ing this capability in the outgoing nway's linkcode word. 3d.4 txf 100 base-tx full duplex capability bit in the linkcode word : default is set to enable advertising the 100 base-tx full duplex capability. reset to disable advertising this capability in the outgoing nway's linkcode word. 3d.5 txh 100 base-tx half duplex capability bit in the linkcode word ; default is set to enable advertising the 100 base-tx half duplex capability. reset to disable adver- tising this capability in the outgoing nway's linkcode word. 3d.6 txfiforst tx fifo reset control : writing a 1 to this bit will clear the tx fifo, reset all the current tx fifo's internal pointers and related byte counters and bring the tx dma back to the idle state. after reset this bit to 0, gmac starts normal operation. if current transmission takes too long due to collisions, the software can use this bit to abort "current transmission" and bring gmac's tx dma back to idle state for a fresh new transmission. 3d.7 rxfiforst rx fifo reset control : writing a 1 to this bit will clear the rx fifo, reset all the current rx fifo's internal pointers and related byte counters and bring the rx dma back to the idle state. after reset this bit to 0, gmac starts normal operation.
24 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC rx burst read data port : rrd[31:0] (reg40h~43h), ro, default=xxxxxxxxh bit symbol description 40.7-0, rrd[31:0] rx read data port : the 32 bit read only data port for the rx buffer ring. 41.7-0 the msb byte (byte 3) is reg43h and the lsb byte (byte 0) is reg40h 42.7-0 if h16_32=0. reg41h is the msb byte (byte 1 ) and reg40h is the 43.7-0 lsb 43.7-0 byte (byte 0) if h16_32=1.the rx buffer ring accessed by this port is pointed to by rrp and rrpbc. when 4 consecutive double words (4x4 bytes if h16_32=0, or 4x2 bytes if h16_32=1) are ready inside gmac, dreqb will be asserted and burst transfers can be issued through the use of dackb. gmac will maintain the burst read buffer's integrity in both cases. this port is used to fetch rx packets. bit symbol description 3e.7-0 txfifocnt[7:0] tx fifo send byte count bits [7:0]: together with txfifocnt[11:8] forms a 12 bits tx fifo byte count for the direct fifo mode. 3f.3-0 txfifocnt[11:8] tx fifo send byte count bits [11:8]: together with txfifocnt[7:0] forms a 12 bits tx fifo byte count for the direct fifo mode. software must program txfifocnt[11:0] with exact packet length in bytes before command gmac to start transmit ( st0, st1 ). since host bus is either word or double word mode. a exact byte count must be programmed for tx channel to send out data and crc correctly. id2 (reg46h/47h), ro, default="0001" bit symbol description 46.7-0, 47.7-0 id2[15:0] id2 16 bit code : reg47h is the msb byte, which is set to 00h. reg46h is the lsb byte, which is set to 01h. id1 (reg45h/44h), ro, default="mx" bit symbol description 44.7-0, 45.7-0 id1[15:0] id1 16 bit code : reg45h is the msb byte, which is set to "m". reg44h is the lsb byte, which is set to "x". tx fifo byte counter (direct fifo mode) : txfifocnt, reg3f/3eh, r/w
25 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC write tx fifo data port register : wrtxfifod[31:0] ( reg 4b-48h ), wo bit symbol description 48.7-0, wrtxfifod[31:0] wr ite tx fifo data port : the 32 bit write only data port for the tx on-chip 49.7-0 fifo in the direct fifo mode. in the 32 bit mode, h16_32=0, the msb byte 4a.7-0 (byte 3) is reg4bh and the lsb byte (byte 0) is reg48h. in the 16 bit 4b.7-0 mode, h16_32=1, reg49h is the msb byte (byte 1) and reg48h is the lsb byte (byte 0). an internal counter (txfifobc) is used to keep track of the total number of bytes written to the fifo through this port before the host issues reg00h.st1=1, st0=0 (the tx fifo send command). do not write to this port when the tx local dma is still active. io read data port register : iord[31:0] ( reg 4c-4fh ), ro 4c.7-0, iord[31:0] io read data port : the 32 bit read only data port that works with the 4d.7-0 iordp page pointer. in the 32 bit mode, h16_32=0, the msb byte (byte 3) 4e.7-0 is reg4fh and the lsb byte (byte 0) is reg4ch. in the 16 bit mode, 4f.7-0 h16_32=1, reg4dh is the msb byte (byte 1) and reg4ch is the lsb byte (byte 0). an internal counter (iordpbc) is used to keep track of the current location within a particular page . for the system that does not support the srdy pin, the register 3a.1 bit (stiord/rrdyb ) can be used to read this port in a hand shaking manner. to use register 3a.1 ,first write 1 to register 3a.1. when the data is ready in this iord port, register 3a.1 bit will be internally cleared to 0. so the host can read the register 3a.1 bit for 0 in order to know whether the data is ready or not. this iord can be used to fetch tx descriptors in a multiple packets send operation.
26 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC misc control register 2 : misc2, reg50h, r/w, default=00h. bit symbol description 50.0 hbrlen0 host burst read length control bit 0 : together with hbrlen1 define the length of the burst read access. 50.1 hbrlen1 host burst read length control bit 1 : together with hbrlen0 define the length of the burst read access. hbrlen1 hbrlen0 burst length 00x4 01x1 10x2 11x4 50.2 runtsize runt frame size select bit : default is 0, meaning the runt frame is defined as less than 64 bytes. set to define the runt frame as less than 60 bytes. 50.3 dreqbctrl dreqb timing control : default is 0, meaning dreqb is deasserted after the data transfer. if set, dreqb deassertion is earlier than the end of the data transfer. see the timing diagram for details. 50.4 rintsel receive interrupt timing select : default is 0, which asserts ri and rei at the end of the receive local dma. if set, assert ri and rei at the end of the host receive dma. it also defines the rxintt's & rxintc's counting tim- ing. see the timing diagram for details. 50.5 itpsel reserved for internal test probing select. 50.6 a11a8en default=0, a11 to a8 are internally grounded. set this bit to enable a11 to a8 decoding. this bit is ignored if miisel = 1 in mii mode. 50.7 aut orcvr auto rx full recovery: default is reset meaning when rx buffer full and rx fifo overflow happen at the same time, gmac will stop receiving until host clear up rx fifo and rx full condition. set to enable gmac to re- cover from such error automatically , the last packet with such error will be discarded in the packet memory and rx fifo will be cleared at the end of current receiving, and then receiving is resumed for next packet. host receive packet counter : hrpktcnt, reg53/52h, ro bit symbol description 52.7-0 hrpktcnt[7:0] host receive packet count [7:0] : together with hrpktcnt[15:8] forms a 16 bits counter. cleared after a read access to this register. 53.7-0 hrpktcnt[15:8] host receive packet count [15:8] : together with hrpktcnt[7:0] forms a 16 bits counter. counter is increment only at the beginning of a received packet's last host dma cycle. a read access to this register will clear the counter to 0 right at the end of this read cycle. this counter records the total receive packet count since previous read access to this counter.
27 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC host dma fragment counter : fragcnt, reg56/55/54h, rw bit symbol description 54.7-0 fragcnt[7:0] host dma fragment [23:0] : used as a down counter to track word count in 55.7-0 fragcnt[15:8] all packet memory read by the host. the largest count value can be pro- 56.7-0 fragcnt[23:16] grammed is 16mb, and is decrement by 2 at every word transferred for 16bit host bus or decrement by 4 at every word transferred for 32bit host bus from packet memory to host. when the remaining count value is less than current receive packet length then reg 9h. 0 bit ( fragi ) will be set , dreqb will be disabled and an interrupt to host bus will be issued if reg 8h.0 ( fragim ) is also set by software. initial counter value must be non-zero to enable this fragment counter function with interrupt and dreqb control. when inter- rupt is asserted and dreqb is disabled, this counter must be re-programmed and write 1 to fragi bit to clear up interrupt flag in order to resume pending host dma activities to the receive channel.
28 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC descriptor structure next packet pointer host useable area (header) page 0 page 1 tx ring rx ring packet length 7 40 status page 0 (data) figure 4.0 packet buffer data structures page 1 (data) page n (data) descriptor rwp rrp rhbp up usable area tlbp twp trp bp
29 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 4.0 host communication gmac and the device driver communicate through three data structures : * on chip registers described in chapter 3. * descriptors and data buffers resides in the packet memory. * direct data port with on the chip tx fifo for the direct packet transmission. gmac moves received data frames to the receive buffer in the local packet memory and transmits data from the transmit buffers in the local packet memory. all the page pointers in the registers together with the descriptors acts as pointers to these buffers in the packet memory. figure 4.0 depicts the general data structure of the packet memory and page pointers. there are two data buffers inside the packet memory, i.e. the transmit buffer and the receive buffer. packet memory is partitioned into pages. each page contains exactly 256 bytes. a page pointer defined by registers acts as the base address of the corresponding page. by programming these page pointers, the size and the area of the transmit buffer and the receive buffer can be individually set to the desirable size and area. the transmit and receive buffers must be contiguous and separated by the bp ( boundary page pointer ) de- fined in registers 0ah and 0bh. tlbp ( transmit low boundary pointer ) defines the start page of the transmit buffer. bp- 1 defines the end page of the transmit buffer. if the current transmit process exceeds the end of the bp- 1 page, it will be set to the start page pointed to by tlbp, thus forms a "ring buffer" that logically links the end page back to the start page of the transmit buffer. the receive buffer has a similar structure as the trans- mit buffer. the start page of the receive buffer is pointed to by bp while the end page is pointed to by rhbp ( receive high boundary page pointer ). if the current receive process exceeds the end of the end page pointed to by rhbp, then it will be set to the start page pointed to by bp, thus forms a "ring buffer" that logically links the end page and the start page of the receive buffer. a 1.6k bytes tx fifo can also be used to send out a packet directly from the fifo. the register port wrtxfifod ( 4bh-48h ) can be used by the host to write the packet data directly into the tx fifo. after moving one complete packet into the tx fifo, the host can issue a command (called the tx fifo send com- mand) to send out the packet stored in the tx fifo. this function can be used alternately with the other trans- mission method that uses the tx buffer ring. all incoming and outgoing packets are stored in these buffers. a long packet may occupy multiple pages that are contiguous. the descriptor is located at the begin- ning of the first page of the packet. normally there might be some free space left in the last page of a multiple- page packet which is called the fragment page. a new packet must start from an empty page. the free space inside those fragment pages can not be used.
30 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 4.1 packet transmission gmac supports two ways to prepare packet(s) for trans- mission. one way is the host can write a packet directly into the tx fifo through an io port and send the packet directly from the fifo. this is called the direct fifo mode. the other way is to write packet(s) into the tx buffer ring in the packet memory and activate the tx local dma to send out packet(s). using the direct fifo mode can eliminate the tx local dma completely, which will leave the packet memory's total bandwidth to the rx local dma and the host. therefore, receiving at the full line speed is more achievable this way. the disad- vantage is that only one packet is prepared and sent out at a time. the next packet must wait until the current packet is sent out and the fifo is empty before it can be moved into the tx fifo. in another word, you can not issue the multiple packet transmission with a single command. but you still can prepare new packet(s) in the tx buffer ring while a packet in the direct fifo mode is still active. once the packet in the direct fifo mode is finished, you can active the tx dma right away. the tx local dma mode is used between gmac and the packet memory during the transmission of the packet. trp ( transmit read page pointer ) is used by the local dma to fetch the first page of the desired packet in the packet memory. when gmac receives a tx dma send command ( register 00h.st1=0, st0=1 ), data in the packet memory will be moved into the gmac's transmit fifo. gmac will append preamble, sync and crc fields during the actual transmission. the advantage of this mode is the multiple packets can be processed with a single command. new packet(s) to the packet memory can be prepared while the tx local dma is active. there- fore, potential higher throughout of the tx channel can be achieved. the disadvantage is the packet memory bandwidth is now shared by the host, the tx channel and the rx channel. this means the bandwidth might not be enough for all three to run at their full speeds which may result in the tx fifo underrun, or the rx fifo overrun and slow host accesses, especially in a system where you only have an 8 bit packet memory. it may be desirable to mix both the direct fifo mode and the tx local dma mode so that the bandwidth of the packet memory and the convenience of the concurrent processing of multiple packets can be compromised to achieve the best system performance. cautions should be taken when you use the mixed mode. do not write directly to the fifo while the tx local dma is active, because such write will interfere with whichever packet being transmitted in the fifo. do not activate the tx local dma while the direct fifo send has not been fin- ished for the current packet transmission. register 00h.st1 and st0 bits are both command and status, before the host issues any new packet send command (the tx dma poll or the tx fifo send ). always read these two bits and make sure they are both 0, which indicate a transmit channel idle ( the fifo is also empty ). the rule of the mixed modes is always activating one mode at a time. st1 and st0 must both be 0 before the other mode is used. prior to the transmission in the direct fifo mode when st1 and st0 bits are both 0, the host can write a packet no longer than 1518 bytes through an io port register located in 4bh to 48h. it is called the "wrtxfifod" port. gmac will record the byte count. since the register wrtxfifod is a write only port, it can not be read. before the entire packet is completely inside the fifo, the host is allowed to do other opera- tions except activating the tx local dma. when tx byte count is not multiple of host bus width, txfifocnt and txfifocnten should be set. issuing the tx dma poll command before current direct fifo write operations or the tx fifo send completion will "corrupt" the current packet inside the tx fifo. when the entire packet is in the fifo, the host can issue st1=1 and st0=0 (the tx fifo send command ). when this packet is sent out completely, the transmit status will be recorded in regis- ter 04h and both st1 and st0 are cleared to 0 to indi- cate the idle state. prior to the transmission in the tx local dma mode the transmit descriptor located at the beginning of the first page of the desired packet in the packet memory must be properly set by the device driver prior to a trans- mit command. by using twp ( transmit write page pointer ) and the twd data port , the device driver can fill up packet(s) in the transmit buffer ring. for the single packet transmission, the next packet page pointer field of the transmit descriptor should be equal to the trp page pointer which links to the current packet itself. if multiple packets are to be transmitted, then the next packet page pointer field of the transmit descriptor should be set to the start page of the next packet. the current packet length field ( in bytes ) is set to indicate the size of the current packet. transmit status bit 7 ( the own
31 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC during the process of filling up packet(s) in the transmit buffer ring, the current write address to the tx buffer ring is controlled by gmac using twp and twpbc to form packet memory's address lines. twp is updated by the driver only and twp checked against trp,bp,tlbp by both gmac and the driver to maintain tx buffer ring's integrity. twp serves as the start page of non-ready packet(s) which is still being prepared by the driver. the following flow chart shows the typical way of preparing a packet in the packet buffer. (for systems without the srdy pin support). conditions required to begin transmission 1. register 00h.st1=0 and reg00h.st0=1 in the tx lo- cal dma mode or register 00h.st1=1 and st0=0 in the direct fifo mode 2. the interframe gap timer has timed out. 3. the tx fifo is filled with a complete packet or is full. 4. if a collision has been detected and the backoff timer has expired. after the packet starts to go out to the network, tthd[1:0] will begin to affect the packet memory's arbitration if the fifo needs more data from the packet memory( tthd is not used in the direct fifo mode ). in the tx local dma mode, the advantage of the smaller threshold is to reduce the risk of a potential transmit fifo underrun error for large packets beyond 1518 bytes. such underrun error occurs when all the data in the fifo is transmitted while the local dma still has not filled in more data to be transmitted. since the tx fifo is large enough for the largest normal packet ( 1518 bytes ), the tthd and fifo underrun applies to packets larger than 1518 bytes in the tx local dma mode. the larger the tthd, the less aggressive the tx dma is in the packet memory arbitra- tion. therefore the host and the rx dma may have more bandwidth in the packet memory. when this underrun occurs, the packet will be aborted and an interrupt will be asserted to get the host's atten- tion. the fifoei ( register 09h bit 5 ) interrupt bit will be set when the underrun occurs and an interrupt to the host is asserted if the fifoeim bit (register 08h bit 5 ) is also set. bit ) of the descriptor needs to be set to 1 to indicate that the device driver has finished preparing the current packet. then the packet can be transferred to gmac for transmission. at this point, the tx dma poll command can be issued by setting reg00h.st1=0, st0=1 to ac- tivate the transmit operation. st1 and st0 bits will be cleared to 0 and txdma[3:0]=1h when the transmission is done. start ye s next data write? exit write processing ye s write starting page address to twp (0e/0f) read wrdyb (3a.0)==0? first data write to tx registers (34-37) next data write to tx register (34-37) no no
32 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC for a successful transmission, an interrupt is caused by the interrupt register bit ti ( bit 2 of register 09h ) of the interrupt register ir, provided that the correspond- ing enable bit tim ( bit 2 of register 08h ) of the interrupt enable register imr is set. in case that an error occurred during the transmission, the interrupt register bit tei will be set instead of ti. the register 09h bit 4 ( teim ) is the interrupt enable bit for tei. set teim will enable the tei interrupt. the transmission error can be read from register 04h ( the ltps register ) which records the trans- mit status of the last packet transmitted. if bit 7 ( terr ) of register 04h is set, then tei will be set as well. terr is a logical or of the underrun error( uf bit ), the out-of- window collision error ( owc bit ), the carrier lost error ( crslost bit ) and the excessive collision error ( cc[3:0]=1111 and tei = 1). collision recovery during transmission, if a collision is detected before the first 64 bytes of the the packet has been transmitted, the fifo will restore the necessary fifo pointers to retransmit the same packet without fetching the trans- mitted data from the packet memory. an out-of-window collision is a collision occured after 64 bytes of data transmitted. if the out-of-window collision occurred, the packet will be aborted with an interrupt asserted. the owc bit of the transmit descriptor is set and the device driver needs to resolve such a situation and reissue a transmit command so that gmac can fetch the entire packet from the packet memory again for retransmis- sion. the collision count will be recorded for the current packet in register 04h.cc[3:0] bits. if all 15 retransmissions result in collisions, the transmission is aborted and the collision count cc[3:0]=1111 and an interrupt will be as- serted and the tei interrupt bit is set to indicate such an excessive collision error. if the ti interrupt bit is set, then the packet is successfully transmitted with the col- lision count=cc[3:0]. after a single packet transmission when a packet(s) transmission is completed, register 00h.st1 and st0 are both cleared to 0 automatically by gmac. whenever the first packet is sent out, an inter- rupt is asserted for the host attention. the device driver can process this packet's status. in the tx local dma mode, the first thing to check is making sure the own bit in the status field bit 7 is 0, which indicates that gmac has completed the transmission of this packet and the status is valid. or in the direct fifo mode, check st1 and st0 for both 0, which indicates completion of the previous transmission. at this point, the device driver can proceed with the transmit status ( on the register or in the descriptor ) and other book keeping tasks. if host system does not support srdy pin, the following flow chart provides a way to fetch transmit status of any transmitted packet in the packet memory in tx dma mode. this is useful when multiple packets are trans- mitted in a single command and multiple transmit status needed to be checked. start ye s next data read? end ye s write starting page address to iordp (1e/1f) read rrdyb (3a.1)==0? write "1" to stiord/ rrdyb (3a.1) read back data from iord (4c-4f) no no
33 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC transmit packet assembly format in the packet memory for the 16 bit sram interface : d15 d8 d7 d0 descriptor byte 1 descriptor byte 0 descriptor byte 3 descriptor byte 2 destination address byte 1 destination address byte 0 destination address byte 3 destination address byte 2 destination address byte 5 destination address byte 4 source address byte 1 source address byte 0 source address byte 3 source address byte 2 source address byte 5 source address byte 4 type/length byte 1 type/length byte 0 data byte 1 data byte 0 for the 8 bit sram interface : d7 d0 descriptor byte 0 descriptor byte 1 descriptor byte 2 descriptor byte 3 destination address byte 0 destination address byte 1 destination address byte 2 destination address byte 3 destination address byte 4 destination address byte 5 source address byte 0 source address byte 1 source address byte 2 source address byte 3 source address byte 4 source address byte 5 type/length byte 0 type/length byte 1 data byte 0 multiple packets transmission ( tx local dma mode only ) if more packets are prepared in the packet memory and all transmit descriptors are set properly ( i.e. next packet page pointer, packet length, own bit = 1, etc), then a tx dma poll command can be used to send out all these packets at once. as soon as the first packet transmis- sion is done, an interrupt will be asserted to get the host attention. the device driver can serve this interrupt by processing all the packets that have the own bit set to zero in this multiple packets list in the packet memory. the device driver can "peek" the own bit of the next packet's descriptor to see if there are more packet(s) transmitted completely at that point. if the own bit of the next packet's descriptor is zero, then the device driver can proceed to the next packet after finishing the cur- rent packet. when all packets are transmitted success- fully or aborted, register 00h. st1 and st0 bits are inter- nally reset. this way, packets can be sent out in a burst with a single transmit command. the iord port and the iordp page pointer together can be used to access all the previous packet transmis- sion status. since the iord port will read data from the packet memory, the srdy pin must be used for pos- sible wait states caused by the packet memory's arbi- tration. if the system application does not support the srdy pin, then register 3a.1 ( stiord/rrdyb ) can be used to read data from the iord port in a handshake manner.
34 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC bit symbol description 0 cc0 collision count bit 0 : 1 cc1 collision count bit 1 : 2 cc2 collision count bit 2 : 3 cc3 collision count bit 3 : when cc[3:0] = 1111 and the tei interrupt bit is set, it is called an excessive collision error which will abort the current packet. if the ti interrupt bit is set, cc[3:0] is the collision count and the packet is transmitted successfully. 4 crslost carrier sense lost : the network carrier signal was lost at some point during the trans- mission or lost during the entire duration of the transmission. 5 uf tx fifo underflow : the tx fifo is exhausted before the tx dma fills in more data for the transmission. 6 owc out of window collision : a collision occurred after 64 bytes of data had been transmit- ted. this packet will be aborted. 7 own packet buffer ownership indicator: 1: indicates gmac has access right to the current packet's buffer 0: indicates the host has access right to the current packet's buffer transmit descriptor format there are 4 bytes in a descriptor structure for the transmit packet. the transmit descriptor is prepared by the device driver before transmitting the packet and is defined as follows : bit 7 bit 0 next packet page pointer ( bit 7-4 ) next packet page pointer ( bit 3-0 ) packet length ( bit 3-0 ) next packet page pointer( bit 11-8 ) packet length ( bit 11-8 ) packet length ( bit 7-4 ) transmit status ( bit 7-4 ) transmit status ( bit 3-0 )
35 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 4.2 packet reception the local dma receive channel uses a receive buffer ring structure comprised of a series of contiguous fixed length 256-byte ( 128 word ) buffers for storage of re- ceived packets. the location of this receive buffer ring is programmed in two page pointers, the boundary page pointer and the receive high boundary page pointer. ethernet packets consist of a distribution of shorter link control packets and longer data packets, the 256-bytes buffer length provides a good compromise between dif- ferent packet sizes to best utilize the memory. the re- ceive buffer ring provides storage for back-to-back pack- ets in a loaded network. the assignment of buffers for storing packets is managed by the gmac's receive dma logic. three basic functions are provided by the receive dma logic : linking receive buffers for long packets, re- covery of buffers when a packet is rejected and recircu- lation of buffer pages that has been read by the host. buffer 1 buffer 2 buffer 3 pag e rhbp bp packet memory 256 bytes figure 4.2.1 gmac receive buffer ring 4 3 2 1 n n-1 n-2 receive write page pointer boundary page pointer receive high boundary page pointer 256 bytes figure 4.2.2 gmac receive buffer ring at initialization 4 3 2 1 n n-1 n-2 receive read page pointer initialization of the receive buffer ring two static page pointer and two working page pointers control the operation of the receive buffer ring . these are the boundary page ( bp ) pointer, the receive high boundary page ( rhbp ) pointer, the receive read page ( rrp ) pointer and the receive write page ( rwp ) pointer. the bp register points to the first buffer ( page ) of the receive buffer ring. rhbp points to the last page of the receive buffer ring. the rwp register points to the page in which the receive dma logic is storing the incoming network data. the rrp register points to the page from which the host will read the next network data. a receive descriptor structure is located at the begin- ning of the start page of a received packet. if gmac ever reaches the page pointed to by the rhbp register, it will link the page pointed to by the bp register as the next page, thus forms a ring buffer structure. the size of the receive buffer ring is the total buffer space between the bp and the rhbp registers. an internal 8 bit byte counter ( rwpbc ) accounts for ma[7:0] will be used with the rwp register to form a physical memory address during the receive dma write operation. this rwpbc counter will track the actual location within a page. after gmac is initialized, bp, rwp and rrp should all point to the same page. these registers must be properly initialized before setting the register 00h sr ( bit 3 ) bit to 1 which enables the receive channel for the dma function.
36 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC begin storing packet receive write page pointer 4 byte offset for packet descriptor begin data reception figure 4.2.3 received packet enters the receive buffer pages 4 3 2 1 n n-1 n-2 receive buffer ring full in a heavily loaded network which may cause overflow of the receive buffer ring, when the last available page is exhausted and more data needs to be stored for the current packet then the receive buffer ring is full but gmac will continue receiving until rx fifo is also over- flow. at this point, gmac will do the following actions : 1. close current received packet with the fo bit ( bit 3 ) and the bf bit ( bit 0 ) of the receive descriptor being set if a minimum of one page is used by this packet. 2. an interrupt may be asserted if the rbfi ( register 09h bit 7 ) interrupt bit is set and the rbfim bit ( register 08h bit 7 ) is also set. 3. if autorcvr is set, then the last packet with fo, bf error will be discarded from the packet memory and from rx fifo as well and receiving is resumed for next packet. 4. if autorcvr is reset, then gmac can not receive any more packet. all following packets will be lost and mpc ( missed packet counter ), registers 07h and 06h, will be increment automatically. mpc can be reset by the device driver. beginning of reception after all four page pointers are properly set by the de- vice driver ( the host ), the register 00h sr bit can be set to enable the reception of packets. when the first packet arrives, the gmac begins storing the packet at the lo- cation pointed to by the rwp register. 4 bytes ( descrip- tor ) are saved in this first page to store receive status corresponding to this packet. whenever the internal byte counter reaches ffh indicating the end of a page, rwp will be increment by 1 automatically if more data of the packet is arriving. the incoming network address is examined by gmac to determine whether to accept or reject. if gmac de- cides to reject the packet, then the receive fifo will restore all spaces used by the rejected packet ( called restore ). if the packet should be accepted and the rx fifo contains data up to a threshold level which can be programmed by rthd[1:0] ( register 33h bits [3:2] ). the smaller the threshold, the faster the receive dma logic removing data from fifo, thus may has lower risk in running into a fifo overrun situation. the disadvantage of a smaller threshold is that the host and the transmit channel may have less bandwidth of the packet memory. so rthd threshold should be chosen to tune for the best network throughput. the default value of the receive fifo threshold is 00, meaning 50% of the fifo is filled up before any receive local dma can start removing data out of the fifo. linking receive buffer pages if the packet exhausts the first 256-bytes buffer, the re- ceive dma logic will perform a forward link to the next buffer to store the remainder of the packet. for a maxi- mum length packet , up to 6 buffers can be linked to- gether. buffers can not be skipped when linking. there- fore a packet will always be stored in contiguous buff- ers. before the next page can be linked, the receive dma logic does two comparisons. the first comparison tests the equality between the con- tent of the rwp register + 1 and the content of rrp register. if equal, the reception is aborted. this is called the receive buffer full error. second comparison tests the equality between the rwp register and the rhbp register. if equal, the receive dma will restore rwp to the first buffer in the receive buffer ring pointed to by the bp register if the receive buffer ring is not full.
37 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC if device driver choose autorcvr = 0, the following procedure is suggested for the device driver to recover from such an error situation manually. 1. issue the sr=0 ( ncra register bit 3 ) which will stop rx channel to prevent new data from coming into rx fifo. 2. issue rx fiforst to clean rx fifo. 3. remove all the received packets in the packet memory. when buffer ring is empty, rrp=rwp. 4. clear all receive related interrupt flags and then set the sr bit=1 to resume the receive operation. successful reception based on the network address filtering modes set up by the device driver, gmac will determine whether to re- ceive a packet or to reject it. it either branches to a routine to store the packet or to another routine to re- claim the buffers used to store the packet. if a packet is successfully received, gmac will store the receive sta- tus , the packet length and the next packet pointer in the receive descriptor located at the beginning of the first page of the packet and the status in the lrps ( register 05h ) register. note that the remaining bytes in the last page are discarded and reception of the next packet begins on the next empty 256-byte page boundary. the rwp is then set by gmac to the next available page in the buffer ring. receive write page pointer packet ends receive read page pointer packet status figure 4.2.4 termination of received packet-packet accepted next package page pointer packet length receive status 4 3 2 1 n n-1 n-2 rejected packets if the packet is a runt packet and the pb bit ( pass bad option, register 01h, bit 3 ) is 0, then it is rejected. the buffer previously used by this rejected packet is re- claimed by resetting the internal byte counter to zero automatically by gmac. packets with at least 64 or 60 bytes defined by register 50.2 ( runtsize ) are always received and stored regardless of the crc error status.
38 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC removing packets from the buffer ring packets are removed from the buffer ring inside the packet memory by the host through two ways, namely, host dma and io mode. the host dma uses dackb and dreqb signals to conduct read or multiple reads ( burst reads ) on the chip. the other way is so called io mode read or burst reads to register 43h-40h of the chip. this 32 bit port is also called rrd data port. when dreqb = 0, the host can still do both read and write accesses to gmac's internal registers. dreqb is asserted by the chip whenever there is at least one receive packet inside the buffer ring and at least one burst transfer is ready inside the chip's on chip fast buffer. host can issue dackb or io read at rrd port to read out the data whenever the dreqb = 0. the chip will keep track of the dma byte count auto- matically and issue an interrupt at the end of host dma depending on the set up of receive interrupt conditions. the actual packet memory address contains two parts, the higher address lines consists of rrp register bit [11:0] and the lower address lines are provided by the rrpbc counter. by reading the descriptor, the device driver will know the size of the packet and it can move data up to the last page without updating the rrp regis- ter. the rrp register will be automatically updated by gmac (if autopub bit=0) whenever a page is ex- hausted. gmac also will properly link the rrp to the next page pointed to by the bp register if the rhbp page is exhausted. the device driver does have the right to "overwrite" the content of the rrp register at any time. the configuration register gca (32h) bit 5 is "autopub", when 0 meaning all page registers for the host side will be updated by gmac automatically. the content of gca can be loaded by gmac from eeprom automatically right after the system hardware reset. if autopub is 1, it means no automatic update of these host page registers ( rrp, twp ). default is 0 for the automatic host page registers update. so both the auto- matic and the manual rrp pointer updates are avail- able for the device driver. the following is a suggested method for maintaining the receive buffer ring pointers : 1. at initialization, set up bp= rrp=rwp and rhbp to a higher memory page. at this point, the receive buffer is empty. 2. setup a software address counter and a byte counter to keep track of the packet being removed from the packet memory to the host. after a packet is removed, the rrp is increment by gmac so that rwp will not overwrite a page which is part of an unprocessed packet. 3. after a packet is stored in the receive buffer ring, gmac may assert an interrupt.the device driver will start moving data beginning from the page pointed to by the rrp register. it reads the packet length and advanced the address counter the same as the dma. care should be taken when the rhbp page is ex- hausted or the buffer is full if the manual page pointer update is used . possible junk data of burst transfer burst read length can be programmed through register 50.1 and 50.0 bit. length can be 1 , 2 or 4. it is possible to have extra junk bytes in the last burst transfer. when h16_32=1 (16 bit host), regardless of burst length, all burst transfer will end at 8 bytes boundary. therefore, possible junk bytes could be 1 byte to 7 bytes. when h16_32=0 (32 bit host), regardless of burst length, all burst transfer will end at 16 bytes boundary. there- fore, possible junk bytes could be 1 byte to 15 bytes.
39 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC there are 4 bytes in a descriptor structure for both the transmit and the receive packets.the receive descriptor is prepared by gmac and is defined as follows : bit 7 bit 0 next packet page pointer ( bit 7-4 ) next packet page pointer ( bit 3-0 ) packet length ( bit 3-0 ) next packet page pointer( bit 11-8 ) packet length ( bit 11-8 ) packet length ( bit 7-4 ) receive status ( bit 7-4 ) receive status ( bit 3-0 ) receive status in the descriptor notes : this staus byte of last received packet is also copied to register 5 ( lrps ). bit # symbol description 0 bf rx packet buffer full error : 1 indicates the rx packet buffer is full. 1 crc crc error : caused by the corrupted data or dribble byte (s). 2 fae frame alignment error : dribble nibble (s). an fae error might not cause a crc error (e.g. only a dribble nibble is detected by gmac). an fae error will not set the rerr bit. 3 fo fifo overrun 4 rw receive watchdog : set to indicate the frame length exceeds 2048 bytes. 5 mf multicast frame address : set to indicate the current frame has multicast address. 6 rf runt frame : set to indicate a frame length less than 64 or 60 bytes as defined by register 50.2 ( runtsize) , only meaningful when reg00h.4 (pb bit) is set. 7 rerr receive error : a logical or of crc, fo, bf, rw and rf bits. receive packet assembly format in the packet memory for the 16 bit sram interface : d15 d8 d7 d0 descriptor byte 1 descriptor byte 0 descriptor byte 3 descriptor byte 2 destination address byte 1 destination address byte 0 destination address byte 3 destination address byte 2 destination address byte 5 destination address byte 4 source address byte 1 source address byte 0 source address byte 3 source address byte 2 source address byte 5 source address byte 4 type/length byte 1 type/length byte 0 data byte 1 data byte 0 for the 8 bit sram interface : d7 d0 descriptor byte 0 descriptor byte 1 descriptor byte 2 descriptor byte 3 destination address byte 0 destination address byte 1 destination address byte 2 destination address byte 3 destination address byte 4 destination address byte 5 source address byte 0 source address byte 1 source address byte 2 source address byte 3 source address byte 4 source address byte 5 type/length byte 0 type/length byte 1 data byte 0
40 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC *numbers in parentheses indicate field length in bytes. the crc polynomial, as specified in the ethernet specification, is as follows: fcs(x) = x 31 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x 1 + 1 the 32 bits of the crc value are placed in the fcs field so that the x 31 term is the right-most bit of the first octet, and the x 0 term is the left-most bit of the last octet. the bits of the crc are transmitted in the order x 31 ,x 30 ,....x 1 ,x 0 . crc type/ length data source address destination address sfd preamble (7) (1) (6) (2) (46...1500) (4) (6) ethernet frame format 4.3 packet structure and 802.3 conformance the network speed may be 10 mbps or 100 mbps. further more, gmac supports the full duplex mode where the transmit and the receive processes are running independently. a typical ethernet frame structure is shown below. ethernet and ieee 802.3 frames an ethernet frame format consists of the following: field description preamble a 7-byte field of 56 alternating 1s and 0s, beginning with a 0. sfd start frame delimiter. a 1-byte field that contains the value 10101011; the msb is trans- mitted and received first. destination a 6-byte field that contains the specific station address, the broadcast address, or a multicast address where this frame is directed. source a 6-byte field that contains the specific station address where this frame was sent from. type/length a 2-byte field that indicates whether the frame is in ieee 802.3 format or ethernet format. a field greater than 1500 is interpreted as a type field, which defines the type of protocol of the frame. a field smaller than or equal to 1500 is interpreted as a length field, which indicates the no. of data bytes in the frame. data a data field consists of 46 to 1500 bytes that is fully transparent. shorter than 46 bytes is allowed. crc a frame check sequence is a 32-bit cyclic redundancy check(crc) value that is computed as a function of the destination address field, source address field, type field and data field. the fcs is appended to each transmitted frame, and used at reception to determine if the receive frame is valid. the figure shows the ethernet frame format.
41 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 4.4 network address filtering the first bit of the destination address signifies whether it is a physical address or a multicast address. the receive mac filters the frame based on the address filtering option described below. register 01h ( ncrb ) bit 0 is pr ( promiscuous mode ) and bit 2 is pm ( pass multicast ). they are used to control the desired address filtering options. possible address filtering options ( all independent of each other ) option description 1 one physical address perfect filtering , always enabled. 2 unlimited multicast addresses imperfect filtering using the hash table. 3 pass all multicast addresses. 4 promiscuous ethernet reception. when set, all valid frames are received. 5 length field redefined as to be match against all broadcast packets. if matched, this broadcast packet is received. if the frame address passes the network address filter, the receive mac removes the preamble and delivers the frame to the host processor memory. however, if the address does not pass the filter when mismatch is recognized, the receive mac terminates this reception. gmac network address filtering (note1) broadcast packet is not filtered by hash table array. (note1) address match logic selected bit "0"=reject,"1"=accept ncrb.ab ncrb.pb ncrb.pm ncrb.pr rx address match id compare incoming mac id index 32 bit crc 31 26 0 destination address 47 0 0 1 par0-par5 mac id hash table array mar0-mar7
42 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC gmac's network address filtering flow chart llc input packet accept packet drop unicast compare da and par(0x20-0x25) accept broadcast reg0x1[4]=0 pass multicast 0x1[2]=1 hash filter mart(0x26-0x2d) broadcast yes yes yes yes yes yes no no no a no no (multicast packet) a
43 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 5.0 host/local dmas and the packet memory bus arbitration packet memory bus arbitration state diagram host access (1st priority) host is critical tx is critical & no one else is critical host is critical tx is critical & no one else is critical tx is critical & no one else is critical rx is critical & host is not critical rx is critical & host is not critical rx is critical & host is not critical rx dma (2nd priority) tx dma (3rd priority) host is critical if no one is critical, then round-robin scheme is used in prioritization. rules of the packet memory access prioritization rule 1: the tx local dma is said to be "critical" if the tx fifo counter falls below the tthd level. if the tx packet is in the "stored and forward" mode (tthd[1:0]=11 ), the tx local dma is never critical. rule 2 : the rx local dma is said to be "critical" if the rx fifo counter rises above the rthd level. rule 3 : the host access is said to be "critical" if the dintval timer is timed out. rule 4 : if all three accesses are critical, the host has the 1st priority. the rx local dma has the 2nd priority and the tx local dma has the last priority. if no one is critical, round-robin is used.
44 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 5.1 host accesses to the packet memory host burst read receive packet is removed by host through a high speed burst read buffer which is 32 bits x 4 or 16 bits x 4 de- pending on h16_32 pin. the burst read buffer can be accessed by two methods : dackb and dreqb based protocol or io based access ( rrd port ) to registers located at 43h-40h. before any packet buffer read can be issued, the rx buffer must be initialized with proper page pointers set up at appropriate locations. any read access to the burst read buffer, using dackb/dreqb protocol or through io register 43h-40h, will get data from the current location within the receive buffer ring pointed to by the rrp page pointer and the rrpbc byte counter. when the rrpbc reaches the boundary of a page, it will increment the rrp page pointer by 1 and reset rrpbc itself automatically. of course, the software can always overwrite the rrp pointer. this write will also reset the rrpbc counter. a burst read access can be issued only when either the dreqb pin is asserted low or the register 3a.2 bit ( dreqb status bit ) is low which indicates 4 consecu- tive data transfers are ready inside the gmac's burst read buffer for a burst read transfer. the host can read the rrd data port or issue dackb in any length less than or equal to 4 reads. when the host have finished reading the entire packet and there might be junk data in the burst read buffer, the host can issue a rrp page pointer update (e.g. rrp+1), which will automatically reset the burst read buffer and the related control cir- cuit. after the rrp page pointer update, the burst read buffer will fetch 4 consecutive double word from the new page if there are more data available. note : the current read physical location in the packet memory = the rrp pointer ( mapped to ma[19:8] ) cas- caded with the rrpbc byte counter ( mapped to ma[7:0] ). host write the twd data port ( offset 37h - 34h ) is used for write accesses to the transmit buffer ring. the current write position within the transmit buffer ring is pointed to by the twp page pointer and the twpbc byte counter. since a write access to the transmit buffer ring involves the packet memory arbitration, the srdy pin or the register 3a.0 ( wrdyb ) bit can be used for the wait state pur- pose. for system that supports the srdy pin for wait states, a write to the twd port can be issued at any time. this write will be treated as the top priority in the packet memory's arbitration. if no srdy pin is supported in the system, inquire the register 3a.0 bit ( wrdyb ) for 0 to see if a new write can be issued. otherwise, if wrdyb is 1 which means the previous write to twd is still pend- ing inside gmac, a new write must not be issued. when the twpbc counter reaches the boundary of a page, it will increment the twp page pointer and reset the twpbc byte counter automatically. of course, software can always overwrite the twp pointer which also reset the internal twpbc byte counter. note : the current write physical location in the packet memory = the twp pointer ( mapped to ma[19:8] ) cas- caded with the twpbc byte counter ( mapped to ma[7:0] ). a write cycle is completed by the assertion of the srdy signal high to indicate that gmac has secured the write data. or reading the register 3a.0 bit ( wrdyb ) for 0 which indicates that the previous write was done and a new write can be issued to gmac. no burst is supported for any write access. a write access is independent of the status of the dreqb pin or the dreqb register bit. due to the arbitration for the packet memory access, a write cycle ( without first reading a 0 from the wrdyb bit ) may encounter some "wait state" which delays the assertion of srdy for certain time. in any case, bus integrity check timer ( bict ) can be pre-programmed to "terminate" any write cycle that runs over bict time- out period. such a time-out can both generate an inter- rupt to the software and flash led0 and led1 at identi- cal low visible frequency to resolve a potential bus hang, bus dead lock problem.
45 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC transmit fifo threshold of the transmit dma the transmit fifo threshold is defined by register 33h bits [1:0] (tthd [1:0]). tthd is used to control the ag- gressiveness of the transmit dma request for the packet longer than 1518 bytes in the packet memory bus arbi- tration. for example, the default value of tthd=1/2 depth of the transmit fifo means whenever the content of fifo falls below 1/2 of the fifo space, the transmit dma will have higher prority over the receive dma if the receive fifo is not critical. if the transmit fifo is over the tthd level, then transmit may have equal priority as receive dma or lower priority to the receive dma if the receive fifo is critical. the larger the tthd thresh- old, the more aggressive the transmit dma and it takes more time for the transmit dma to become critical of running empty. the small tthd will result in less ag- gressive transmit dma but then it is also more critical of running the fifo empty (underrun error). since the packet memory bandwidth is shared by the host, the transmit dma and receive dma, "tuning" tthd may be necessary for the best network/system throughput. transmit dma transmit dma normally has higher priority over the host but lower than the receive dma. the physical address of receive dma is formed by cascading a page address rwp register and the rwpbc counter for the receive dma. rwp [11:0] is mapped to ma[19:8] while the rwpbc counter is mapped to ma[7:0]. thus a 20 bit ma address is derived. rwp will be automatically up- dated by gmac whenever a page is exhausted. if rhbp is reached, gmac will link bp as the next available page into rwp if the bp page is free. 5.2 local dma receive fifo threshold of the receive dma the receive fifo threshold is defined by register 33h bit [3:2] (rthd[1:0]). it is used to control the aggres- siveness of the receive dma request in the packet memory bus arbitration. for example, the default value of rthd=1/2 depth of the receive fifo means when- ever the contents of the fifo are over 1/2 of the fifo space, it becomes "critical" since the fifo may soon be full or overrun. when the receive fifo is "critical", the receive dma will have higher priority over the trans- mit dma (regardless of whether the transmit fifo is critical or not). if the fifo is not over the rthd level, it is not critical. the transmit dma may have equal prior- ity as the receive dma or higher priority over the receive dma if the transmit fifo is critical. the larger the re- ceive threshold, the less aggressive the receive dma because it takes more time for the receive dma to be- come critical. it also presents a higher risk to become fifo full or to overrun the fifo space. the smaller the rthd, the more aggressive the receive dma is and less risk in running into a fifo full condition, but it also blocks other accesses from the host and the transmit dma. since the packet memory bandwidth is shared by the host, the transmit dma and the receive dma, "tuning" the rthd threshold may be necessary for the best net- work/system throughput. receive dma the receive dma normally has higher priority over the host and the transmit dma. this is due to the receive data can not be reproduced locally. therefore it is more urgent than others. the physical address of the receive dma is formed by cascading a page address rwp reg- ister and the rwpbc counter for the receive dma. rwp [11:0] is mapped to ma[19:8] while the rwpbc counter is mapped to ma[7:0]. thus a 20 bit ma address is derived. rwp will be automatically updated by gmac whenever a page is exhausted. if rhbp is reached, gmac will set rwp as bp if the bp page is available.
46 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 5.3 receive interrupt normally the interrupt will be asserted after a packet is received. either ri or rei will be set to indicate such an event. sometimes, it is desirable not to report every single reception using the interrupt. gmac has incorpo- rated a receive packet counter and an interrupt timer ( rxintt) to control the receive interrupt condition. by these two logic, we can issue the receive interrupt based on the receive packet count or the rxintt time out, whichever comes first. so the receive interrupt logic can be expressed as follows: assert ri ( or rei ) interrupt if ( rxintc is reached ) or ( rxintt has timed out ) receive interrupt timer : register 15h and 14h forms a 16 bit timer running at 25mhz. default is 0000h, mean- ing no time-out is used on the ri or rei interrupt asser- tion. reg15h.7 is the rxintt.15 bit and reg14h.0 is the rxintt.0 bit. any non-zero value enables the time out function. the possible time-out period ranges from 40ns to 2621 us. the rxintt timer will be started after the last packet ( within the rxintc range ) is transfered to the packet memory (rintsel=0) or the host memory (rintsel=1) and the timer will be reset when the inter- rupt is generated. when the received packet count has not reached the rxintc [1:0] before the rxintt time- out, an interrupt will be generated by the rxintt time- out alone. receive interrupt counter : register 01h bit 7 and bit 6 define the number of packets received before the re- ceive interrupt ri or rei can be asserted. this function is independent of the rxintt timer's ( reg.15h/14h ) time-out. whenever either a time-out or a packet count is reached, a receive interrupt will be generated. default is 00h after reset, meaning the normal receive interrupt operation which asserts ri or rei after a single packet received and no rxintt timer is used. non-zero value in these two bits will enable this special receive interrupt operation. rxintc1 rxintc0 interrupt received packet count 0 0 1 ( default ) 0 1 2 1 0 4 1 1 8 5.4 bus integrity check sometimes, it is necessary to have a hardware check- ing mechanism which constantly monitoring the host activity for any abnormal situation.the host bus hang problem is sometimes seen in many systems. gmac provides a monitoring logic that watches out for any ab- normally long cycle on the host interface. a timer called the bict ( register 1dh ) timer is used, which is an 8 bit counter running at 25mhz or 40ns per clock. default is 00h, meaning no bus integrity check is enabled. value in this counter other than zero will enable the bus integrity check. any bus cycle that longer than the time-out pe- riod defined in this timer will cause termination of the current bus cycle so that this abnormal bus hang and bus dead lock can be recovered. the busei interrupt ( register 09h bit 6 ) will be issued in this case. the pos- sible time-out period ranges from 40ns to a maximum of 10.24us. as soon as a cycle is being processed by gmac, this timer is started and the counter is reset when the cycle is normally finished before the time out.
47 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 5.5 host receive dma fragment counter in order to allow host to predict an insufficient host buffer problem before the actual host dma takes place. the chip provide a fragment counter which can be used to "down count" the host dma byte length and automati- cally compare the content to the length of the next re- ceive packet. if the length fo the next receive packet is larger than the content of this counter then dreqb will be disabled temporarily until the count is programmed a new value which is larger than the length of next receive packet. flow chart of fragment counter programming typical application is that host set the initial counter value to indicate the amount of free host buffer for re- ceive packets. when host buffer has been filled with packets and remaining free buffer might be smaller than the length of next receive packet then the chip can interrupt the host, if register 8.0 fragim bit is set. register 9.0 fragi will be set after host dma of cur- rent packet is finished to indicate this interrupt and dma is temporarily disabled so that host can allocate more free buffer to prevent "fragment" in the host buffer. reg- ister 54h, 55h and 56h are defined as fragment counter which are all 0 after reset. when the counter is 0, this fragment counter logic is disabled, no down counting or interrupt will be valid. after initialization write a non-zero value to the counter as byte count dreqb is asserted dreqb is deasserted fragi is asserted host dma resume reload fragcnt clear fragi mac has more rx packets for host compare incoming packet length > fragcnt yes yes no no
48 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 6.0 serial rom ( eeprom ) interface serial rom connection gmac eesc eeck eedi eedo serial rom (micro wire) sk cs din dout eedo - serial rom (eeprom) data out = register 1ch, bit 3 eedi - serial rom (eeprom) data in = register1ch, bit2 eeck - serial rom (eeprom) serial clock = register 1ch, bit 1 eecs - serial rom (eeprom) chip select = register 1ch, bit 0 eesel - must be set to enable the eeprom access by register 1ch, bit 4 software programming interface a read operation consists of three phases : 1. command phase - 3 bits ( binary code of "110") 2. address phase - 6 bits for 256- to 1k-bit roms ( c46/ c66 pin is high), 8 bits for 2k- to 4k-bit roms ( c46/ c66 is forced low ) 3. data phase - 16 bits for all type of eeproms. these phases are generated through a sequence of writes to 1ch. in certain action, the driver must wait until the minimum timing requirement for the serial rom opera- tion is met in order to advance to the next action. the software sequence is available in the c source code from mxic. a typical read cycle can look like this(eesel bit is set ) write register 1ch 10h ( >= 30ns ) write register 1ch 11h ( >= 50ns ) write register 1ch 13h ( >= 250ns ) write register 1ch 11h ( >= 100ns ) write register 1ch 15h ( >= 150ns ) write register 1ch 17h ( >= 250ns ) write register 1ch 15h ( >= 250ns ) write register 1ch 17h ( >= 250ns ) write register 1ch 15h ( >= 100 ns ) write register 1ch 11h ( >= 150 ns ) write register 1ch 13h ( >= 250 ns ) write register 1ch 11h ( >= 100ns ) write register 1ch 00h ( >= 150 ns ) write register 1ch 00h ( >= 250 ns ) write register 1ch 00h ( >= 100ns ) write register 1ch 03h ( >= 100ns ) read register 1ch.3 = dx ( >= 150ns ) write register 1ch 01h ( >= 250ns ) write register 1ch 00h ( >= 100ns ) end a write operation consist of three phases : 1. command phase - 3 bits ( binary code of "110" ) 2. address phase - 6 bits for 256- to 1k-bit roms, 8 bits for 2k- to 4k-bit roms. 3. data phase - 16 bits.
49 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC these phases are generated through a sequence of writes to 1ch. in certain action, the driver must wait until the minimum timing requirement for the serial rom opera- tion is met in order to advance to the next action. a typical driver sequence can look like this write register 1ch 00h ( >= 30ns ) write register 1ch 01h ( >= 50ns ) write register 1ch 03h ( >= 250ns ) write register 1ch 01h ( >= 100ns ) write register 1ch 05h ( >= 150ns ) write register 1ch 07h ( >= 250ns ) write register 1ch 05h ( >= 100ns ) write register 1ch 01h ( >= 150ns ) write register 1ch 03h ( >= 250 ns ) write register 1ch 01h ( >= 100 ns ) write register 1ch 05h ( >= 150 ns ) write register 1ch 07h ( >= 250 ns ) write register 1ch 05h ( >= 100ns ) write register 1ch 00h ( >= 150 ns ) write register 1ch 00h ( >= 250 ns ) write register 1ch 00h ( >= 100ns ) write register 1ch 03h ( >= 150ns ) write register 1ch 0xh ( >= 250ns ) write register 1ch 0xh ( >= 100ns ) write register 1ch 00h ( >= 250ns ) write register 1ch 01h ( >= 250ns ) *read register 1ch.3 if register 1ch.3 = 1 then go on write register 1ch 00h ( >= 250ns ) else wait 1 ms then go to *read register 1ch.3 end register 1ch serial rom interface block diagram (from eeprom) eedo mux eecs eedi eeck eedi (to eeprom) auto load eeprom logic
50 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC autoload function the autoload function is executed only once after the hardware reset pin rstb from low to high. at that time the serial rom interface is driven by the internal circuit to load the data of the serial rom. eeprom content ( suggested ) location content 00h physical address byte 0 : par[7:0] ( msb ) 01h physical address byte 1: par[15:8] 02h physical address byte 2 : par[23:16] 03h physical address byte 3 : par[31:24] 04h physical address byte 4 : par[39:32] 05h physical address byte 5 : par[47:40] 06h gmac configuration a register : gca[7:0] bit 0 : bpscrm bit 1 : pbw bit 2 : slowsram bit 3 : arxerrb bit 4 : miisel bit 5 : autopub bit 6 : txfifocnten bit 7 : reserved 07h reserved 08h-end reserved for software application 6.1 on-chip transceiver vs mii interface after system reset, gmac enter its normal mode in which on chip 10/100 fast ethernet tranceiver is used and immediately nway auto negotiation will start setting up link in the network. the option of using a 3rd party tranceiver, such as 10/100 fast ethernet tranceiver or homepna tranceiver is possible through the mii (media independent interface) interface. even if both fast ethernet connection and homepna connection are desired, gmac can allow user to switch between these two connection through register setup. when mii mode is chosen, both nway and on chip tranceiver are isolated from the internal mac logic, so all data are from and to through the mii interface.
51 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC a5/a7 a0 d0 d15 0 eecs eeck eedi eedo eeprom read cycle a5/a7 busy ready d0 d14 d15 a0 eecs eeck eedi eedo eeprom write cycle twp
52 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC end of rx local dma rx fifo receive interrupt assertion timing diagram rdb (. csb . add=40h ) . rdb (. csb . add=40h ) . dackb or packet memory rintsel=0 (reg50.4=0) rx local dma intb rx dv host packet memory host rx dma rx fifo dackb or packet memory rintsel=1 (reg50.4=1) rx local dma intb rx dv host packet memory end of rx host dma (last x4 burst transfer) host rx dma
53 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC dreqb timing control parameter symbol min. max. unit dreqb deassertion delay tasync 5 7+1 tclk ns tclk=20ns dreqb timing control (rdb csb . add=40h) . (rdb csb . add=40h) . dackb or dreqbctrl=0 (reg50.3=0) tasync dreqb dackb or dreqbctrl=1 (reg50.3=1) dreqb tasync host dma ri (internal only) intb packet packet packet packet packet packet packet packet packet packet write ri=1 write ri=1 write ri=1 ri is not occured shorter time gap than rxintt period rxintt period ri is occured by rxintt 1 234 1 23412 rxintt start time definition
54 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC read cycle parameter symbol min. max. unit read cycle time trc 35 40 ns chip select pulse width tcw 35 40 ns output enable pulse width toew 35 40 ns data hold from address change tdh 0 - ns data setup to moeb rising edge tds 10 - ns note : ma[19:0], moeb, mcsb are asserted at the same internal clock edge. tcw toew tds data valid 16/8 bit packet memory read cycle trc ma[19:1] or ma[19:0]* mcsb moeb * 8-bit packet memory md[15:0] or md[7:0]* tdh
55 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC write cycle parameter symbol min. max. unit write cycle time twc 35 40 ns chip select pulse wdith tcw 35 40 ns address set-up time tas 5 - ns write pulse width (oe-high) twp 18 - ns data setup to write rising edge tds 25 28 ns data hold from mweb deassertion tdh 10 - ns note : ma[19:0], moeb, mcsb are asserted at the same internal clock edge. high-z tdh twp tas tcw twc ma[19:0] mcsb moeb md[7:0] *mw0b * in byte mode, only mwe0b is used. 8 bit packet memory write cycle tds
56 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC write cycle parameter symbol min. max. unit write cycle time twc 35 40 ns chip select pulse wdith tcw 35 40 ns address set-up time tas 5 - ns write pulse width (oe-high) twp 18 - ns data setup to write rising edge tds 25 28 ns data hold from mweb deassertion tdh 10 - ns note : ma[19:0], moeb, mcsb are asserted at the same internal clock edge. high-z tdh twp tas tcw twc ma[19:0] mcsb moeb md[15:0] *mwe1b or mwe0b 16 bit packet memory write cycle tds
57 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit dackb pulse width tackw 30 ns dreqb recovery time trcv 20 ns read data valid delay tdval 7 10 ns read data hold time tdh 3 ns dreqb deassertion delay tasync 5 7+1tclk ns, tclk=20ns tackw tasync tdh tdval dreqb csb wrb rdb d[7:0] or d[7:0] 40 data 1 a[15:1] rdb/csb based 32/16 bit x1 burst read at i/o address=40h trcv . tasync dackb
58 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit dackb pulse width tackw 30 ns dreqb recovery time trcv 20 ns read data valid delay tdval 7 10 ns read data hold time tdh 3 ns dreqb deassertion delay tasync 5 7+1tclk ns, tclk=20ns dreqb csb wrb rdb d[31:0] or d[15:0] 40 data 1 a[15:1] rdb/csb based 32/16 bit x2 burst read at i/o address=40h . dackb tackw tasync tdh tdval 40 data 2 trcv tasync
59 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit dackb pulse width tackw 30 ns dreqb recovery time trcv 20 ns read data valid delay tdval 7 10 ns read data hold time tdh 3 ns dreqb deassertion delay tasync 5 7+1tclk ns, tclk=20ns dreqb csb wrb rdb d[31:0] or d[15:0] 40 data 1 a[15:1] rdb/csb based 32/16 bit x4 burst read at i/o address=40h . dackb tackw tasync tdh tdval 40 data 4 trcv tasync 40 data 2 tdval 40 data 3 tdval tdval
60 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit dackb pulse width tackw 25 ns dreqb recovery time trcv 20 ns read data valid delay tdval 3 10 ns read data hold time tdh 3 ns dreqb deassertion delay time tasync 5 7+1tclk ns, tclk=20ns tackw tasync tdh tdval dackb d[31:0] data 1 a[15:1] rdb wrb data 2 don't care don't care dackb based 32/16 bits x1 burst read trcv tasync dreqb
61 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit dackb pulse width tackw 30 ns dreqb recovery time trcv 20 ns read data valid delay tdval 5 7 ns read data hold time tdh 3 ns dreqb deassertion delay time tasync 5 7+1tclk ns, tclk=20ns tackw tasync tdh tdval tasync dreqb rdb dackb d[31:0] data 1 data 2 dackb based 32/16 bit x2 burst read csb wrb don't care
62 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit dackb pulse width tackw 30 ns dreqb recovery time trcv 20 ns read data valid delay tdval 5 7 ns read data hold time tdh 3 ns dreqb deassertion delay time tasync 5 7+1tclk ns, tclk=20ns tackw trcv tasync tdh tdval tasync dreqb rdb dackb d[31:0] data 1 data 2 data 3 data 4 dackb based 32/16 bit x4 burst read csb wrb don't care
63 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit address setup time (to csb) tascsb 0 ns address setup time (to rdb) tasrdb 0 ns csb assert to rdb assert tcskrdb 0 ns rdb assert to valid data output tdval 10 16 ns rdb assert to srdy assert tdsrdy 7ns 1tclk+10ns tclk=20ns data hold time (from rdb) tdh 4 7 ns srdy hold time (form rdb) tasync 0.5tclk+7ns 1.5tclk+10ns ns a[15:2] or a[15:1]* csb register address (00xxh) d[31:0] or d[15:0]* tascsb tasrdb rdb srdy (g-mac out) * 16-bit host interface 32/16 bit host register ( non-iord port ) read tdh tasync tdrval valid data tdsrdy tcskrdb
64 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit address setup time (to csb) tascsb 0 address setup time (to wrb) tasrdb 0 csb assert to wrd assert tcskrdb 0 data setup to wrb tdval 0 wrb assert to srdy assert tdsrdy 1.5tclk+7ns 2.5tclk+10ns tclk=20ns data hold time (from wrb) tasync 0 srdy hold time (from wrb) tdh 0.5tclk+7ns 1.5tclk+10ns ns wrb recovery time trcv 1.5tclk a[15:0] csb register address (00xxh) d[31:0] (cpu out) tascsb tasrdb wrb srdy (g-mac out) 32/16 bit host register ( non-twd port ) write tdh trcv tdrval valid data tdsrdy tcskrdb
65 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit address setup time (to csb) tascsb 0 ns address setup time (to rdb) tasrdb 0 ns csb assert to rdb assert tcskrdb 0 ns rdb assert to valid data output tdval 2tclk+10 9tclk+16ns rdb assert to srdy assert tdsrdy 2tclk+7ns 9tclk+10ns tclk=20ns data hold time (from rdb) tdh 4 7 ns srdy hold time (form rdb) tasync 0.5tclk+7ns 1.5tclk+10ns ns a[15:2] or a[15:1]* csb register address (00xxh) d[31:0] or d[15:0]* tascsb tasrdb rdb srdy (g-mac out) * 16-bit host interface 32/16 bit iord port read tdh tasync tdrval valid data tdsrdy tcskrdb
66 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC parameter symbol min. max. unit address setup time (to csb) tascsb 0 address setup time (to wrb) tasrdb 0 csb assert to wrd assert tcskrdb 0 data setup to wrb tdval 0 wrb assert to srdy assert tdsrdy 2tclk+7ns 9tclk+10ns tclk=20ns data hold time (from wrb) tasync 0 srdy hold time (from wrb) tdh 0.5tclk+7ns 1.5tclk+10ns ns wrb recovery time trcv 1.5tclk a[15:0] csb register address (00xxh) d[31:0] (cpu out) tascsb tasrdb wrb srdy (g-mac out) 32/16 bit host twd port register write tdh trcv tdrval valid data tdsrdy tcskrdb
67 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC mii management signal mdio timing sourced by phy: mdc tmdp mdio symbol par ameter min max u nits tmdp mdc high to mdio data valid 2 300 ns symbol par ameter min max units tmdch mdc high time 200 ns tmdcl mdc low time 200 ns tmdsu mdio to mdc high setup time 10 ns tmdhd mdio to mdc high hold time 10 ns mii management signal mdio timing for gmac : mdc tmdch tmdcl tmdsu tmdhd mdio
68 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 8.0 dc characteristics symbol par ameter conditions min. max. units ttl/pci input/output voh minimum high level output voltage loh=-4ma 2.4 v vol maximum low level output voltage lol=+4ma 0.4 v vih minimum high level input voltage 2.0 v vil maximum low level input voltage 0.8 v lin input current vi=vcc or gnd -1.0 +1.0 ua loz minimum tri-state output leakage current vout=vcc or gnd -10 +10 ua led output driver vlol led turn on output voltage lol=16ma 0.4 v idd average supply current ckref=25mhz 160 230 ma ianalog aver age analog current full duplex 120 160 ma irx average rx current full duplex 50 70 ma itx txop, txon max output current max swing 1v/pin 35 50 ma vdd average supply voltage 4.75v 5.25v v clock 25mhz 30ppm
69 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC 9.0 package information 160-pin plastic quad flat pack item millimeters inches a 31.20 . 30 1.228 . 12 b 28.00 . 10 1.102 .004 c 28.00 . 10 1.102 . 004 d 31.20 . 30 1.228 . 012 e 25.35 .999 f 1.33 [ref.] .052 [ref.] g 1.33 [ref.] .052 [ref.] h .30 [typ.] .012 [typ.] i .65 [typ.] .026 [typ.] j 1.60 [ref.] .063 [ref.] k .80 . 20 .031 . 008 l .15 [typ.] .006 [typ.] m .10 max. .004 max. n 3.35 max. .132 max. o .10 min. .004 min. p 3.68 max. .145 max. note: each lead centerline is located within .25 mm[.01 inch] of its true position [tp] at maximum material condition. f n m k l j p o ecd 40 1 80 81 120 121 160 41 i h g b a
70 p/n:pm0723 rev. 1.0, jul. 13, 2000 MX98728EC revision history revision description page date 0.9.9 contents modify mx98728oki-->MX98728EC modify reset, st0, st1 description p8 apr/26/2000 modify hbd as reserved bit p9 modify fragim, fifoeim description p12 modify rxintt description p15 modify ane description p18 modify tx fiforst, rxfiforst description p22 modify " prior to the transmission in the direct fifo mode" paragraphp29 modify receive buffer full description p36 modify address filtering block diagram p41 modify recerive interrupt section about rxintt timer's function p45 modify flow chart of fragment counter programming p46 modify timing diagram for rintsel=1 p51 add rxintt start time definition waveform p52 add features p1 may/16/2000 modify block diagram p2 add combo application p3 modify pin definitions : 126~129, 144, 145, 43~46, 85, 86 p4 add host bus interface (pin126~129) p5 add packet memory interface (pin46~43) p6 modify miscellaneous (pin145, 144) p8 add vdd/gnd pins (85, 86) p8 modify gmac test register a & b p11,12 modify gmac configuration a register (bit 32.4) p20 modify misc control register (bit 3d.0) p23 add 6.1 on-chip transceiver vs mii interface p50 add management signal timing mdio source by sta & phy p67 add top side marking p71 modify fragcnt description, a11a8en description p26 jun/01/2000 enhance reg54~reg56 description p27 jun/09/2000 1.0 change reg 0.1, 0.2 description p9 jul/13/2000 add reg 1c.6 and 1c.7 descriptions p17 change reg 30.0 fd bit description p19 add reg 33.4, 33.5 and 33.6 descriptions p20 enhance reg 3d.6 description p23 enhance description of fragment counter p47
m acronix i nternational c o., l td. headquarters: tel:+886-3-578-6688 fax:+886-3-563-2888 europe office: tel:+32-2-456-8020 fax:+32-2-456-8021 japan office: tel:+81-44-246-9100 fax:+81-44-246-9105 singapore office: tel:+65-348-8385 fax:+65-348-8096 taipei office: tel:+886-2-2509-3300 fax:+886-2-2509-2200 m acronix a merica, i nc. tel:+1-408-453-8088 fax:+1-408-453-8488 chicago office: tel:+1-847-963-1900 fax:+1-847-963-1909 http : //www.macronix.com macronix international co., ltd. reserves the right to change product and specifications without notice. MX98728EC MX98728EC c9930 ta777001 38bax taiwan top side marking line 1 : mx98728 is mxic parts no. "e" :pqfp "c" : commercial grade line 2 : assembly date code. line 3 : wafer lot no. line 4 : "38b" : revision code, "a" : bonding option "x" : no used line 5 : state 71


▲Up To Search▲   

 
Price & Availability of MX98728EC

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X