|
If you can't view the Datasheet, Please click here to try to view without PDF Reader . |
|
Datasheet File OCR Text: |
publication release date: aug. 18, 2005 - i - revision a6 w90n740cd/W90N740CDG data sheet winbond 32-bit arm7tdmi-based micro-controller the information described in this documen t is the exclusive intellectual property of winbond electronics corporation and shall not be reproduced without permission from winbond. winbond is providing this document only for referen ce purposes of w90n740-based system design. winbond assumes no responsibility for errors or omissions. all data and specifications are subj ect to change without notice. for additional information or questions , please contact: winbond electronics corp .
w90n740cd/W90N740CDG - ii - table of content- 1. general des cription ......................................................................................................... 1 2. features ....................................................................................................................... .......... 1 3. block di agram .................................................................................................................. .... 5 4. pin config urati on .............................................................................................................. .6 5. pin assign ment ................................................................................................................. .... 7 6. pin descri ption................................................................................................................ ... 10 7. functional des cription ................................................................................................. 14 7.1 arm7tdmi cp u core .................................................................................................. 14 7.2 system manager ........................................................................................................... 15 7.2.1 overvi ew....................................................................................................................... ..15 7.2.2 system memo ry ma p......................................................................................................15 7.2.3 address bus g eneratio n ................................................................................................17 7.2.4 data bus connection with external memory ...................................................................18 7.2.5 bus arbitr ation ................................................................................................................ 28 7.2.6 power-on se tting ...........................................................................................................29 7.2.7 system manager contro l register s map ........................................................................30 7.3 external bus inte rface ( ebi) ......................................................................................... 35 7.3.1 ebi over view..................................................................................................................3 5 7.3.2 sdram cont roller ..........................................................................................................36 7.3.3 external bus mastersh ip.................................................................................................41 7.3.4 ebi control regi sters ma p .............................................................................................41 7.4 cache cont roller ........................................................................................................... 56 7.4.1 on-chip ram .................................................................................................................56 7.4.2 non-cacheabl e area ......................................................................................................56 7.4.3 instruction cache ............................................................................................................56 7.4.4 data ca che..................................................................................................................... 59 7.4.5 write bu ffer ................................................................................................................... .61 7.5 ethernet mac cont roller (e mc) ................................................................................... 64 7.5.1 emc descrip tors ............................................................................................................64 7.5.2 emc regi ster m apping ..................................................................................................7 0 7.6 network address translati on accelerato r (nat a) ..................................................... 101 7.6.1 nat proce ss flow ........................................................................................................102 7.6.2 nata regist ers ma p....................................................................................................103 7.7 gdma cont roller ........................................................................................................ 113 7.7.1 gdma function descripti on ......................................................................................... 113 7.7.2 gdma regist ers ma p...................................................................................................114 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - iii - revision a6 7.8 usb host c ontrolle r ................................................................................................... 121 7.8.1 usb host controller registers map .............................................................................122 7.9 uart cont roller ......................................................................................................... 139 7.9.1 uart control r egisters map .......................................................................................140 7.10 timer cont roller ........................................................................................................ 150 7.10.1 general timer controlle r ............................................................................................150 7.10.2 watch dog timer ........................................................................................................150 7.10.3 timer control r egisters map......................................................................................151 7.11 advanced interrupt c ontroller (a ic) ........................................................................... 156 7.11.1 interrupt s ources ........................................................................................................157 7.11.2 aic register s map .....................................................................................................158 7.12 general-purpose input/output controller (gpio) ...................................................... 167 7.12.1 gpio controller r egisters map ..................................................................................168 8. electrical chara cteristi cs....................................................................................... 174 8.1 absolute maxi mum rati ngs ........................................................................................ 174 8.2 dc characteri stics...................................................................................................... 175 8.2.1 usb transceiver dc c haracterist ics ............................................................................175 8.3 ac characte ristic s ...................................................................................................... 176 8.3.1 ebi/sdram interface ac characteri stics ....................................................................176 8.3.2 ebi/external master interfac e ac characte ristic s ........................................................176 8.3.3 ebi/(rom/sram/external i/o) ac characte ristic s ......................................................177 8.3.4 usb transceiver ac characteri stics ............................................................................178 8.3.5 emc mii ac char acterist ics .........................................................................................179 9. package dime nsions ....................................................................................................... 181 10. w90n740 registers m apping t able ............................................................................ 182 11. ordering info rmation .................................................................................................. 194 12. revision hi story .............................................................................................................. 1 94 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 1 - revision a6 1. general description the w90n740 micro-controller is 16/32 bit, arm7tdmi based risc micro-controller for network as well as embedded applications. an integrated dual ethernet mac, the w90n740, is designed for use in broadband routers, wireless access points, residential gateways and lan camera. the w90n740n is built around the arm7tdmi cpu co re designed by advanced risc machines, ltd. and achieves 80mhz under worse conditions . its small size, fully static design is particularly suitable for cost-sensitive and power-sensitive applications. it designs as harvard architecture by offering an 8k- byte i-cache/sram and an 2k-byte d-cache/sram with flexible configuration and two way set associative structure to balance data movement between cpu and external memory. four stages write buffer also improves latency for write operations. the external bus interface (ebi) controller provides single bus arch itecture, 8/16/32 bit data width to access external sdram, rom/sram, flash memory and i/o devices. it achi eves same frequency as cpu core to minimize latency if internal cache mi sses. memory controller supports different kinds of sdram types and configurations to ease system design. the system manager includes an internal 32- bit system bus arbiter and a pll cl ock controller. generic i/o bus is easily served as pcmcia-like interface for 802.11b wireless lan connection. two 10/100mb macs of ethernet controller is built in to reduce total system cost and increase performance between wan and lan port. either mii or rmii of mac is selected for external 10/100 phy chip to design for varieties of applications. a powerful nat accelerator ( patent pending ) between lan and wan reduces the software loading of cpu and speeds up performance between lan and wan. w90n740 integrates root hub of usb 1.1 host controller with one port transceiver and uses additional port with external transceiver if necessa ry, which can add valuable functions like flash disk, printer server, bluetooth device via usb port. the important peripheral functions include one full wired high speed uart channel, 2-channel gdma , one watch-dog timer , two 24-bit timers with 8-bit pre- scale, 20 programmable i/o ports , and an advanced interrupt controller . 2. features architecture ? highly-integrated system for embedded ethernet applications ? powerful arm7tdmi core and fu lly 16/32-bit risc architecture ? big /little-endian mode supported ? cost-effective jtag-based debug solution system manager ? system memory map & on-chip peripherals memory map ? the data bus width of external memory addr ess & data bus connection with external memory ? bus arbitration supports the fixed priority mode & rotate priority mode ? power-on setting ? on-chip pll module control & clock select control w90n740cd/W90N740CDG - 2 - external bus interface (ebi) ? external i/o control with 8/16/32 bit external data bus ? cost-effective memory-to-peripheral dma interface ? sdram controller supports up to 2 external s dram & the maximum size of each device is 32mb ? rom/flash & external i/o interface ? support for pcmcia 16- bit pc card devices on-chip instruction and data cache ? two-way, set-associative, 8k -byte i-cache and 2k-byte d-cache ? support for lru (least recently used) protocol ? cache can be configured as an internal sram ? support cache lock function ethernet mac controller (emc) ? ieee 802.3 protocol engine with programmabl e mii or rmii interface for 10/100 mbits/s ? dma engine with burst mode ? 256 bytes transmit & 256 bytes receive fi fo for mac protocol engine and dma access ? built-in 16 entry cam address register ? support long frame (more than 1518 bytes) and short frame (less than 64 bytes) ? re-transmit (during collision) the frame without dma access ? half or full duplex function option ? support station management for external phy ? on-chip pad generation nat accelerator (patent pending) ? hardware acceleration on ip address / port number look up and replacement for network address translation, including mac address translation ? provide 64 entries of translation table ? support tcp / udp packets gdma controller ? 2 channel gdma for memory-to-memory data transfers without cpu intervention ? increase or decrease source / destination addr ess in 8-bit, 16-bit, or 32-bit data transfers ? supports 4-data burst mode to boost performance ? support external gdma request w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 3 - revision a6 usb host controller ? usb 1.1 compatible ? open host controller interface (ohci) 1.1 compatible. ? supports both low-speed (1.5 mbps ) and full-speed (12mbps) usb devices. ? built-in dma for real-time data transfer uart ? one uart (serial i/o) blocks with interrupt-based operation ? full set of modem control functions (cts, rts, dsr, dtr, ri and dcd) ? fully programmable serial-interface characteristics: ? break generation and detection ? false start bit detection ? parity, overrun, and framing error detection ? full prioritized interrupt system controls timers ? two programmable 24-bit timers with 8-bit pre-scalar ? one programmable 24-bit watch-dog timer ? one-short mode, period mode or toggle mode operation programmable i/os ? 21 programmable i/o ports ? i/o ports configurable for multiple functions advanced interrupt controller (aic) ? 18 interrupt sources, including 4 external interrupt sources ? programmable normal or fast interrupt mode (irq, fiq) ? programmable as either edge-triggered or leve l-sensitive for 4 external interrupt sources ? programmable as either low-active or hi gh-active for 4 external interrupt sources ? priority methodology is encoded to allow for interrupt daisy-chaining ? automatically mask out the lower priority interrupt during interrupt nesting gpio controller ? programmable as an input or output pin w90n740cd/W90N740CDG - 4 - on-chip pll ? one pll for both cpu and usb host controller ? the external clock can be multiplied by on- chip pll to provide high frequency system clock ? programmable clock frequency, and the input fr equency range is 3-30mhz; 15mhz is preferred. operation voltage range ? 2.7 ? 3.6 v for io buffer ? 1.62 ? 1.98 v for core logic operation temperature range ? 0 ? 70 degree c operating frequency ? 80 mhz (default) package type ? 176-pin lqfp w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 5 - revision a6 3. block diagram arm7tdmi cache controller wrapper apb bridge ahb arbiter ahb decoder uart timer x2 interrupt controller gpio clock controller pll external bus controller gdma controller usb host controller ethenet mac controller 0 w90n740 8k-byte i cache rom flash ram pcmcia io dev sdram usb device phy phy ahb bus apb bus tdmi bus 2k-byte d cache jtag ice ebi bus com port external interrupts wdt nat accelerator ethenet mac controller 1 fig 3.1 w90n740 functional block diagram w90n740cd/W90N740CDG - 6 - 4. pin configuration 85 140 50 55 60 80 75 70 65 165 160 155 150 145 175 170 vdd18 vss18 vdd33 vdd33 vss33 gp18/nirq1 gp17/nirq0 gp20/nirq3 gp19/nirq2 gp12/nwdog gp14/timer1 gp13/timer0 extal xtal tms tck nreset ntrst tdo tdi usbvss usbvdd dn dp d29 d28 d31 d30 sdqm3 vss33 d13 d12 d15 d14 sdqm1 nc nc mdio1 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 mcke nswe vdd18 vss18 vdd33 vdd33 vss33 vss33 mclk a0 a2 a1 d7 d6 d5 d4 d27 d26 d25 d24 nscas nsras d23 d22 d21 d20 d11 d10 d9 d8 emreq noe necs0 nbtcs nwait emack necs3 necs2 necs1 vdd18 vss18 vdd33 vdd33 vss33 vss33 g p15/nxdack g p16/nxdreq a19 a18 a17 a16 a15 a14 a13 nscs1 nscs0 d3 d2 d1 d0 sdqm0 d19 d18 d17 d16 sdqm2 gp0 gp3 gp2 gp1 mdc0 a24 a23 a22 a21 a20 tx0_clk crs0 col0 mdio0 rx0_err rx0_clk tx0d0 tx0_en tx0d3 tx0d2 tx0d1 rx0d0 rx0d3 rx0d2 rx0d1 rx0_dv vdd18 vss18 vdd33 vdd33 avdd18 vss33 vss33 avss18 dvss18 dvdd18 gp11/rxd gp10/txd gp9/ndsr gp4/nri gp5/nrts gp6/ncts gp7/ncd gp8/ndtr 135 mdc1 col1 crs1 tx1clk tx1d3 tx1d2 tx1d0 tx1d1 rx1d0 5 10 15 20 25 30 35 40 95 90 120 110 105 100 130 125 rx1d3 rx1d2 rx1d1 tx1en rx1_err rx1_dv rx1_clk w90n740 176-pin lqfp vss33 vdd33 115 fig 4.1 176-pin lqfp pin diagram w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 7 - revision a6 5. pin assignment table 4 w90n740 pins assignment pin name 176-pin lqfp clock & reset ( 4 pins ) extal z 164 xtal z 163 mclk z 54 nreset z 27 tap interface ( 5 pins ) tck z 25 tms z 20 tdi z 21 tdo z 24 ntrst z 26 external bus interface ( 78 pins ) a [24:22] z 84-82 a [21:0] z 81-74, 72, 70,67-56 d [31:16] z 124-119, 117, 115-114, 111-105 d [15:0] z 104-103, 101, 99-88, 86 nwbe [3:0]/ sdqm [3:0] z 46-43 nscs[1:0] z 42, 41 nsras z 51 nscas z 52 nswe z 50 mcke z 49 nc z 48 nc z 47 emreq z 31 emack z 30 nwait z 32 nbtcs z 40 necs[3:0] z 39-36 noe z 34 w90n740cd/W90N740CDG - 8 - table 4 w90n740 pins assignment, continued pin name 176-pin lqfp ethernet interface (0) ( 17 pins ) mdc0 z 142 mdio0 z 143 col0 / z 151 crs0 / r1b_crsdv z 152 tx0_clk z 150 tx0d [3:0] / r1b_txd [1:0], r0_txd [1:0] z 149-146 tx0_en / r0_txen z 144 rx0_clk / r0_refclk z 153 rx0d [3:0] / r1b_rxd [1:0], r0_rxd [1:0] z 159-157, 154 rx0_dv / r0_crsdv z 160 rx0_err z 161 ethernet interface (1) ( 17 pins ) mdc1 z 10 mdio1 z 8 col1 z 6 crs1 z 7 tx1_clk z 11 tx1d [3:0] / r1a_tx [1:0] z 4-1 tx1_en /r1a_txen z 5 rx1_clk / r1a_refclk z 167 rx1d [3:0] / r1a_rxd [1:0] z 172-169 rx1_dv / r1a_crsdv z 168 rx1_err / r1a_rxerr z 166 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 9 - revision a6 table 4 w90n740 pins assignment, continued name 176-pin lqfp usb interface ( 2 pins ) dp z 131 dn z 130 miscellaneous ( 21 pins ) gp [20:17] / nirq [3:0] z 136-133 gp16 / nxdreq z 29 gp15 /nxdack z 28 gp14 / timer1/ speed z 19 gp13 / timer0/ stdby z 18 gp12 /nwdog z 17 gp11 /rxd z 140 gp10 /txd z 139 gp9/ndsr/ntoe z 128 gp8 /ndtr/fse0 z 127 gp7 /ncd / vo z 126 gp6 /ncts/ vm z 138 gp5 /nrts/ vp z 137 gp4 /nri / rcv z 125 gp [3:0] z 16-13 power/ground (32 pins) vdd18 z 22, 69, 113, 155 vss18 z 23, 68, 112, 156 vdd33 z 12, 33, 53, 71, 85, 100, 116, 141, 162 vss33 z 9, 35, 55, 73, 87, 102, 118, 145, 165 usbvdd z 132 usbvss z 129 dvdd18 z 175 dvss18 z 176 avdd18 z 173 avss18 z 174 w90n740cd/W90N740CDG - 10 - 6. pin description table 6.1 w90n740 pins description pin name io type pad type description system clock & reset extal i - external clock / crystal input xtal o - crystal output mclk o - system master clock out, sdram clock nreset i - system reset, active-low tap interface tck id internal pull- down jtag test clock, tms iu internal pull-up jtag test mode select, tdi iu internal pull-up jtag test data in, tdo o - jtag test data out ntrst iu internal pull-up jtag reset, active-low, external bus interface a [24:22] o - address bus (msb) of external memory and io devices a [21:0] io - address bus of external memory and io devices d [31:16] io - data bus (msb) of external memory and io device, d [15:0] io - data bus (lsb) of external memory and io device nwbe [3:0]/ sdqm [3:0] io - write byte enable for specific device(necs[3:0]), data input/output mask signal for sdram (nscs[1:0]), active-low these pins are always output in normal mode, and input type in internal sram test mode. nscs [1:0] o - sdram chip select for two external banks, active-low. nsras o - row address strobe for sdram, active-low nscas o - column address strobe for sdram, active-low nswe o - sdram write enable, active-low mcke o - sdram clock enable, active-high emreq id internal pull-down external master bus request this is used to request external bus. when emack active, indicates the bus grants the bus , chip drives all the output pins of the external bus to high impedance. emack o - external bus acknowledge nwait iu internal pull-up ex ternal wait, active-low nbtcs o - rom/flash chip select, active-low necs [3:0] io - external i/o chip select, active-low. noe o - rom/flash, external memo ry output enable, active-low w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 11 - revision a6 pins description, continued pin name io type pad type description ethernet interface (0) mdc0 o - mii management data clock for ether net 0. it is the reference clock of mdio0. each mdio0 data will be latched at the rising edge of mdc0 clock. mdio0 io - mii management data i/o for ethernet 0. it is used to transfer mii control and status informa tion between phy and mac. col0 i - collision detect for ethernet 0 in mii mode. this shall be asserted by phy upon detecting a collision happened over the medium. it will be asserted and lasted until collision condition vanishes. crs0 i - carrier sense for ethernet 0 in m ii mode. in rmii mode, external pull-up is necessary. tx0_clk i - transmit data clock for ethernet 0 in mii mode. tx0_clk is driven by phy and provides the timing reference for tx0_en and tx0d. the clock will be 25mhz or 2.5 mhz. tx0d [3:0]/ --, r0_txd [1:0] o - transmit data bus (4-bit) for ethernet 0 in mii mode. the nibble transmit data bus is synchronized with tx0_clk. it should be latched by phy at the rising edge of tx0_clk. in rmii mode, tx0d [1:0] are used as r0_txd [1:0], 2-bit transmit data bus for ethernet 0; tx0_en / r0_txen o - transmit enable for ethernet 0 in mii. it indicates the transmit activity to external phy. it will be synchronized with tx0_clk. in rmii mode, r0_txen shall be asserted synchronously with the first nibble of the preamble and shall remain asserted while all di- bits to be transmitted are presented. of course, it is synchronized with r0_refclk. rx0_clk / r0_refclk i - receive data clock for ethernet 0 in mii mode when it is used as a received clock pin, it is from phy. the clock will be either 25 mhz or 2.5 mhz. the minimum duty cycle at its high or low state should be 35% of the nominal period for all conditions. in rmii mode, this pin is used as r0_refclk, reference clock; the clock shall be 50mhz +/- 50 ppm with minimum 35% duty cycle at high or low state. rx0d [3:0] / --, r0_rxd [1:0] i - receive data bus (4-bit) for et hernet 0 in mii mode. they are driven by external phy, and should be synchronized with rx0_clk and valid only when rx0_dv is valid. in rmii mode, rx0d [1:0] are used as r0_rxd [1:0], 2-bit receive data bus for ethernet 0; rx0_dv / r0_crsdv i - receive data valid for ethernet 0 in mii mode. it will be asserted when received data is coming and present, and de-asserted at the end of the frame. in rmii mode, this pin is used as the r0_crsdv, carrier sense / receive data valid for ethernet 0. the r0_crsdv shall be asserted by phy when the receive medium is non-idle. loss of carrier shall result in the de-a ssertion of r0_crsdv synchronous to the cycle of r0_refclk, and only on nibble boundaries. rx0_err i - receive data error for ethernet 0 in mii mode. it indicates a data error detected by phy. the asse rtion should be lasted for longer than a period of rx0_clk. when rx0_err is asserted, the mac will report a crc error. w90n740cd/W90N740CDG - 12 - pins description, continued pin name io type pad type description ethernet interface (1) mdc1 o - mii management data clock for ethernet 1. it is the reference clock of mdio1. each mdio1 data will be latched at the rising edge of mdc1 clock. mdio1 io - mii management data i/o for ethernet 1. it is used to transfer mii control and status info rmation between phy and mac. col1 i - collision detect for ethernet 1 in mii mode. this shall be asserted by phy upon detecti ng a collision happened over the medium. it will be asserted and lasted until collision condition vanishes. external pull-up is necessary in rmii mode. crs1 i - carrier sense for ethernet 1 in mii mode. external pull-up is necessary in rmii mode. tx1_clk i - transmit data clock for ethernet 1 in mii mode, tx1_clk is driven by phy and provides the timing reference for tx1_en and tx1d. the clock will be 25mhz or 2.5 mhz. external pull- up will be necessary in rmii mode. tx1d [3:0] / --,r1a_txd [1:0] o - transmit data bus (4-bit) for ethernet 1 in mii mode. the nibble transmit data bus is synchronized with tx1_clk. it should be latched by phy at the rising edge of tx1_clk. in rmii mode, tx1d [1:0] are used as r1a_txd [1:0], 2-bit transmit data bus for ethernet 1 tx1_en/ r1a_txen/r1b_ txen o - transmit enable for ethernet 1 in mii and rmii mode. it indicates the transmit activity to external phy. it will be synchronized with tx1_clk in mii mode. rx1_clk / r1a_refclk i - receive data clock for ethernet 1 in mii mode. when it is used as a received clock pin, it is from phy. the clock will be either 25 mhz or 2.5 mhz. the minimum duty cycle at its high or low state should be 35% of the nominal period for all conditions. in rmii mode, this pin is used as r1a_refclk, reference clock and only available for 176-pin package. the clock shall be 50mhz +/-50 ppm with minimum 35% duty cycle at high or low state. rx1d [3:0] / --, r1a_rxd[1:0] i - receive data bus (4-bit) for ethernet 1 in mii mode. they are driven by external phy, and should be synchronized with rx1_clk and valid only when rx1_dv is valid. in rmii mode, rx1d [1:0] are used as r1a_rxd [1:0], 2-bit receive data bus for ethernet 1. rx1_dv/ r1a_crsdv i - receive data valid for ethernet 1 in mii mode. it will be asserted when received data is coming and present, and de-asserted at the end of the frame. in rmii mode, this pin is used as the r1a_crsdv, carrier sense / receive data valid for ethernet 1 and only available for 176-pin package. the r1a_crsdv shall be asserted by phy when the receive medium is non-idle. loss of carrier shall result in the de-assertion of r1a_crsdv synchronous to the cycle of r1a_refclk, and only on nibble boundaries. rx1_err / r1a_rxerr i - receive data error for ethernet 1 in mii and rmii mode. it indicates a data error detected by phy. the assertion should be lasted for longer than a period of rx0_clk. when rx0_err is asserted, the mac will report a crc error. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 13 - revision a6 pins description, continued name io type pad type description usb interface dp io - differential positive usb io signal dn io - differential negative (minus) usb io signal miscellaneous gp[20:17] / nirq[3:0] io - external interrupt request or general purpose i/o gp16 / nxdreq io - external dma request or general purpose i/o gp15 /nxdack io - external dma acknowledge or general purpose i/o gp14 / timer1/speed io - timer 1 or general purpose i/o. this pin is also used as speed, speed mode control for external usb transceiver gp13 / timer0/stdby io - timer 0 or general purpose i/o. this pin is also used as stdby, standby control for external usb transceiver gp12 /nwdog io - watchdog timer timeout flag (active-low) or general purpose i/o gp11 /rxd io - uart receive data or general purpose i/o gp10 /txd io - uart transmit data or general purpose i/o gp9/ndsr/ntoe io - uart receive clock or general purpose i/o. this pin is also used as ntoe, output enable control (active-low) for external usb transceiver. gp8 /ndtr/fse0 io - uart transmit clock or general purpose i/o. this pin is also use d as se0, differential data transce iver output for external usb transceiver. t gp7 /ncd /vo io - uart carrier detector or general purpose i/o. this pin is also used as vo, data output for external usb transceiver. gp6 /ncts/ vm io - uart clear to send or general purpose i/o. this pin is also used as vm, data negative (minus) input for external usb receiver. gp5 /nrts/ vp io - uart ready to send or general purpose i/o. this pin is also used as vp, data positive input for external usb receiver. gp4 /nri /rcv io - uart ring indicator or general purpose i/o. this pin is also used as rcv, difference receiver input. gp[3:0] io - general purpose i/o. power/ground vdd18 p - core logic power (1.8v) vss18 g - core logic ground (0v) vdd33 p - io buffer power (3.3v) vss33 g - io buffer ground (0v) usbvdd p - usb power (3.3v) usbvss g - usb ground (0v) dvdd18 p - pll digital power (1.8v) dvss18 g - pll digital ground (0v) avdd18 p - pll analog power (1.8v) avss18 g - pll analog ground (0v) w90n740cd/W90N740CDG - 14 - 7. functional description 7.1 arm7tdmi cpu core the arm7tdmi cpu core is a member of the ar m family of general-purpose 32-bit microprocessors, which offer high performance for very low power c onsumption. the architecture is based on reduced instruction set computer (risc) principles, and the instruction set and related decode mechanism are much simpler than those of micro-programmed comp lex instruction set com puter (cisc) systems. pipelining is employed so that all parts of the processing and memory system s can operate continuously. the high instruction throughput and impressive real-t ime interrupt response are the major benefits. the arm7tdmi core can execute two instruction sets: (1) the standard 32-bit arm instruction set (2) the 16-bit thumb instruction set the thumb set?s 16-bit instruction length allows it to approach twice the density of standard arm core while retaining most of the arm?s performance advant age over a traditional 16-bit processor using 16-bit registers. thumb instructions oper ate with the standard arm register configuration, allowing excellent interoperability between arm and thumb states. each 16-bit thumb instruction has a corresponding 32-bit arm instruction with the same effect on t he processor model. in the other words, the thumb architecture give 16-bit systems a way to acce ss the 32-bit performance of the arm core without requiring the full overhead of 32-bit processing. arm7tdmi cpu core has 31 x 32-bit registers. at any one time, 16 set are visible; the other registers are used to speed up exception processing. all the r egister specifies in arm instructions can address any of the 16 registers. the cpu al so supports 5 types of exception, such as two levels of interrupt, memory aborts, attempted execution of an undefined instruction and software interrupts. address register address incrementer barrel shifter register bank (31 x 32-bit registers) (6 status registers) 32 x8 multiplier 32-bit alu writer data register instruction pipeline read data register thumb instruction decoder instruction decoder control logic scan control b bus a bus alu bus pc bus incrementer bus a[31:0] d[31:0] fig 7.1 arm7tdmi cpu core block diagram w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 15 - revision a6 7.2 system manager 7.2.1 overview the functions of the system manager: ? system memory map & on-chip peripherals memory map ? the data bus width of external memory addre ss & data bus connection with external memory ? bus arbitration supports the fixed pr iority mode & rotate priority mode ? power-on setting ? on-chip pll module control & clock select control 7.2.2 system memory map w90n740 provides 2g bytes cacheable address s pace and the other 2g bytes are non-cacheable. the on-chip peripherals bank is on 1m bytes top of the space (0xfff0.0000 ? 0xffff.ffff) and the on-chip ram bank?s start address is 0xffe 0.0000, the other banks can be located anywhere (cacheable space: 0x0~0x7fdf.ffff if ca che on; non-cacheable space: 0x8000.0000 ~ 0xffdf.ffff). the size and location of each bank is determined by t he register settings for ?current bank base address pointer? and ?current bank size?. (*note: the addre ss boundaries of consecutive banks must not overlap, when setting the bank control registers.) the start address of each memory bank is not fixed, except on-chip peripher als and on-chip ram. you can use bank control registers to assign a specific bank start address by setting the bank?s base pointer (13 bits). the address resolution is 256k bytes. t he bank?s start address is defined as ?base pointer << 18? and the bank?s size is ?current bank size?. in the event of an access request to an address out side any programmed bank size, an abort signal is generated. the maximum accessible memory size of each external io bank is 32m bytes, and 64m bytes on sdram banks. w90n740cd/W90N740CDG - 16 - rom/flash 256kb - 32mb sdram bank 0 2mb - 64mb sdram bank 1 2mb - 64mb external i/o bank 0 256kb - 32mb external i/o bank 1 256kb - 32mb external i/o bank 2 256kb - 32mb external i/o bank 3 256kb - 32mb reserved reserved 10kb 512kb (fixed) 0x7ff8.0000 0x0000.0000 0x7fff.ffff reserved 0x7fe0.0000 reserved 512kb (fixed) 0x7ff0.0000 ebi space rom/flash 256kb - 32mb sdram bank 0 2mb - 64mb sdram bank 1 2mb - 64mb external i/o bank 0 256kb - 32mb external i/o bank 1 256kb - 32mb external i/o bank 2 256kb - 32mb external i/o bank 3 256kb - 32mb on-chip ram 2kb,8kb on-chip apb peripherals 10kb 512kb (fixed) 0xfff8.0000 0x8000.0000 0xffff.ffff reserved 0xffe0.0000 on-chip ahb peripherals 512kb (fixed) 0xfff0.0000 ebi space cacheable space non-cacheable space fig7.2.1 system memory map w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 17 - revision a6 table 7.2.1 on-chip peripherals memory map base address description ahb peripherals 0xfff0.0000 product identifie r register (pdid) 0xfff0.0004 arbitration control register (arbcon) 0xfff0.0008 pll control register (pllcon) 0xfff0.000c clock select register (clksel) 0xfff0.1000 ebi control register (ebicon) 0xfff0.1004 rom/flash (romcon) 0xfff0.1008 sdram bank 0 - 1 0xfff0.1018 external i/o 0 - 3 0xfff0.2000 cache controller 0xfff0.3000 ethernet mac controller 0 - 1 0xfff0.4000 gdma 0 - 1 0xfff0.5000 usb (host) 0xfff0.6000 nat accelerator 0xfff6.0000 reserved 0xfff7.0000 reserved apb peripherals 0xfff8.0000 uart 0xfff8.1000 timer 0 - 1, wdog timer 0xfff8.2000 interrupt controller 0xfff8.3000 gpio 7.2.3 address bus generation the w90n740 address bus generation is depended on the required data bus width of each memory bank. the data bus width is determined by dbwd bits in each bank?s control register. the maximum accessible memory size of each external io bank is 32m bytes . table 7.2.2 address bus generation guidelines data bus external address pins maximum accessible width a [22:0] a23 a24 memory size 8-bit a22 ? a0 (internal) a23 (inter nal) a24 (internal) 32m bytes 16-bit a23 ? a1 (internal) a24 (i nternal) na 16m half-words 32-bit a24 ? a2 (internal) na na 8m words w90n740cd/W90N740CDG - 18 - 7.2.4 data bus connection with external memory 7.2.4.1. memory formats the internal architecture is big endian. the little endian mode only support for external memory. the w90n740 can be configured as big endian or little endian mode by pull up or down the data d14 pin. if d14 is pull-up then it is a littl e endian mode, otherwise, it is a big endian mode. big endian in big endian format, the w90n740 stores the most si gnificant byte of a word at the lowest numbered byte, and the least significant byte at the highes t-numbered byte. so the byte at address 0 of the memory system connects to data lines 31 through 24. for a word aligned address a, fig7.2.2 shows how t he word at address a, the half-word at addresses a and a+2, and the bytes at addresses a, a+1, a+2, and a+3 map on to each other when the little pin is low. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 word at address a half-word at address a half-word at address a+2 byte at address a byte at address a+1 byte at address a+2 byte at address a+3 fig. 7.2.2 big endian addresses of bytes and half-words within words little endian in little endian format, the lowest addressed byte in a word is considered the least significant byte of the word and the highest addressed bye is the most significant. so the byte at address 0 of the memory system connects to data lines 7 through 0. for a word aligned address a, fig7.2.3 shows how t he word at address a, the half-word at addresses a and a+2, and the bytes at addresses a, a+ 1, a+2, and a+3 map on to each other when little pin is high. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 word at address a half-word at address a+2 half-word at address a byte at address a+3 byte at address a+2 byte at address a+1 byte at address a fig. 7.2.3 little endian addresses of bytes and half-words within words w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 19 - revision a6 7.2.4.2. connection of external memory with various data width the system diagram for w90n740 connecting with the ex ternal memory is shown in fig. 7.2.4. below tables (table7.2.3 ? table7.2.14) show the program/data pat h between cpu register and the external memory using little / big endian and word/half-word/byte access. fig. 7.2.4 address/data bus c onnection with external memory fig. 7.2.5 cpu register read/write with external memory w90n740cd/W90N740CDG - 20 - table 7.2.3 and table 7.2.4 using big-endian and word access, program/data path between register and external memory wa = address whose lsb is 0, 4, 8, c x = don?t care nwbe [3-0] / sdqm [3-0] = a means active and u means inactive table7.2.3 word access write operation with big endian access operation write operation (cpu register ? external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa wa wa wa bit number sd 31 0 abcd 31 0 ab cd 31 0 a b c d bit number ed 31 0 abcd 15 0 ab 15 0 cd 7 0 a 7 0 b 7 0 c 7 0 d xa wa wa wa+2 wa wa+1 wa+2 wa+3 nwbe [3-0] / sdqm [3-0] aaaa xxaa xxaa xxxa xxxa xxxa xxxa bit number xd 31 0 abcd 15 0 ab 15 0 cd 7 0 a 7 0 b 7 0 c 7 0 d bit number ext. mem data 31 0 abcd 15 0 ab 15 0 cd 7 0 a 7 0 b 7 0 c 7 0 d timing sequence 1st write 2nd write 1st write 2nd write 3rd write 4th write w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 21 - revision a6 table7.2.4 word access read operation with big endian access operation read operation (cpu register external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 cdab 31 0 dcba sa wa wa wa bit number sd 31 0 abcd 31 0 cd ab 31 0 d c b a bit number ed 31 0 abcd 31 0 cd xx 31 0 cd ab 31 0 d x x x 31 0 d c x x 31 0 d c b x 31 0 d c b a xa wa wa wa+2 wa wa+1 wa+2 wa+3 sdqm [3-0] aaaa xxaa xxaa xxxa xxxa xxxa xxxa bit number xd 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a bit number ext. mem data 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a timing sequence 1st read 2nd read 1st read 2nd read 3rd read 4th read table 7.2.5 and table 7.2.6 using big-endian and half-word access, program/dat a path between register and external memory. ha = address whose lsb is 0, 2, 4, 6, 8, a, c, e hal = address whose lsb is 0, 4, 8, c hau = address whose lsb is 2, 6, a, e x = don?t care nwbe [3-0] / sdqm [3-0] = a means active and u means inactive w90n740cd/W90N740CDG - 22 - table7.2.5 half-word access write operation with big endian access operation write operation (cpu register ? external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa hal hau ha ha bit number sd 31 0 cd cd 31 0 cd cd 31 0 cd cd 31 0 cd cd 31 0 cd cd bit number ed 31 0 cd cd 31 0 cd cd 31 0 cd cd 7 0 c 7 0 d xa hal hal ha ha ha+1 nwbe [3-0] / sdqm [3-0] aauu uuaa xxaa xxxa xxxa bit number xd 31 0 cd cd 31 0 cd cd 15 0 cd 7 0 c 7 0 d bit number ext. mem data 31 16 cd 15 0 cd 15 0 cd 7 0 c 7 0 d timing sequence 1st write 2nd write table7.2.6 half-word access read operation with big endian access operation read operation (cpu register external memory) xd width word half word byte bit number cpu reg data 15 0 ab 15 0 cd 15 0 cd 15 0 dc sa hal hau ha ha bit number sd 15 0 ab 15 0 cd 15 0 cd 15 0 dc bit number ed 15 0 ab 15 0 cd 15 0 cd 15 0 dx 15 0 dc xa hal hal ha ha ha+1 sdqm [3-0] aauu uuaa xxaa xxxa xxxa bit number xd 31 0 ab cd 31 0 ab cd 15 0 cd 7 0 d 7 0 c bit number ext. mem data 31 0 abcd 15 0 cd 7 0 d 7 0 c timing sequence 1st read 2nd read w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 23 - revision a6 table 7.2.7 and table 7.2.8 using big-endian and byte access, program/data path between register and external memory. ba = address whose lsb is 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f bal = address whose lsb is 0, 2, 4, 6, 8, a, c, e bau = address whose lsb is 1, 3, 5, 7, 9, b, d, f ba0 = address whose lsb is 0, 4, 8, c ba1 = address whose lsb is 1, 5, 9, d ba2 = address whose lsb is 2, 6, a, e ba3 = address whose lsb is 3, 7, b, f table7.2.7 byte access write operation with big endian access operation write operation (cpu register ? external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa ba0 ba1 ba2 ba3 bal bau ba bit number sd 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d bit number ed 31 24 d 23 16 d 15 8 d 7 0 d 15 8 d 7 0 d 7 0 d xa ba0 ba0 ba0 ba0 bal bal ba nwbe [3-0] / sdqm [3-0] auuu uauu uuau uuua xxau xxua xxxa bit number xd 31 0 d x x x 31 0 x d x x 31 0 x x d x 31 0 x x x d 15 0 d x 15 0 x d 7 0 d bit number ext. mem data 31 24 d 23 16 d 15 8 d 7 0 d 15 8 d 7 0 d 7 0 d timing sequence w90n740cd/W90N740CDG - 24 - table7.2.8 byte access read operation with big endian access operation read operation (cpu register external memory) xd width word half word byte bit number cpu reg data 7 0 a 7 0 b 7 0 c 7 0 d 7 0 c 7 0 d 7 0 d sa ba0 ba1 ba2 ba3 bal bau ba bit number sd 7 0 a 7 0 b 7 0 c 7 0 d 7 0 c 7 0 d 7 0 d bit number ed 7 0 a 15 8 b 23 16 c 31 24 d 7 0 c 15 8 d 7 0 d xa ba0 ba0 ba0 ba0 bal bal ba sdqm [3-0] auuu uauu uuau uuua xxau xxua xxxa bit number xd 31 0 abcd 31 0 abcd 31 0 abcd 31 0 abcd 15 0 cd 15 0 cd 7 0 d bit number ext. mem data 31 0 abcd 15 0 cd 7 0 d timing sequence table 7.2.9 and table 7.2.10 using little-endian and word access, program/dat a path between register and external memory wa = address whose lsb is 0, 4, 8, c x = don?t care nwbe [3-0] / sdqm [3-0] = a means active and u means inactive w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 25 - revision a6 table7.2.9 word access write operation with little endian access operation write operation (cpu register ? external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa wa wa wa bit number sd 31 0 abcd 31 0 ab cd 31 0 a b c d bit number ed 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a xa wa wa wa+2 wa wa+1 wa+2 wa+3 nwbe [3-0] / sdqm [3-0] aaaa xxaa xxaa xxxa xxxa xxxa xxxa bit number xd 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a bit number ext. mem data 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a timing sequence 1st write 2nd write 1st write 2nd write 3rd write 4th write table7.2.10 word access read operation with little endian access operation read operation (cpu register external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa wa wa wa bit number sd 31 0 abcd 31 0 ab cd 31 0 a b c d bit number ed 31 0 abcd 31 0 xx cd 31 0 ab cd 31 0 x x x d 31 0 x x c d 31 0 x b c d 31 0 a b c d xa wa wa wa+2 wa wa+1 wa+2 wa+3 sdqm [3-0] aaaa xxaa xxaa xxxa xxxa xxxa xxxa bit number xd 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a bit number ext. mem data 31 0 abcd 15 0 cd 15 0 ab 7 0 d 7 0 c 7 0 b 7 0 a timing sequence 1st read 2nd read 1st read 2nd read 3rd read 4th read w90n740cd/W90N740CDG - 26 - table 7.2.11 and table 7.2.12 using little-endian and half-word access, program/dat a path between register and external memory. ha = address whose lsb is 0, 2, 4, 6, 8, a, c, e hal = address whose lsb is 0,4,8,c hau = address whose lsb is 2, 6, a, e x = don?t care nwbe [3-0] / sdqm [3-0] = a means active and u means inactive table7.2.11 half-word access write operation with little endian access operation write operation (cpu register ? external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa hal hau ha ha bit number sd 31 0 cd cd 31 0 cd cd 31 0 cd cd 31 0 cd cd 31 0 cd cd bit number ed 31 0 cd cd 31 0 cd cd 31 0 cd cd 7 0 d 7 0 c xa hal hal ha ha ha+1 nwbe [3-0] / sdqm [3-0] uuaa aauu xxaa xxxa xxxa bit number xd 31 0 cd cd 31 0 cd cd 15 0 cd 7 0 d 7 0 c bit number ext. mem data 15 0 cd 31 16 cd 15 0 cd 7 0 d 7 0 c timing sequence 1st write 2nd write table7.2.12 half-word access read operation with little endian access operation read operation (cpu register external memory) xd width word half word byte bit number cpu reg data 15 0 cd 15 0 ab 15 0 cd 15 0 cd sa hal hau ha ha bit number sd 15 0 cd 15 0 ab 15 0 cd 15 0 cd bit number ed 15 0 cd 15 0 ab 15 0 cd 15 0 xd 15 0 cd xa hal hal ha ha ha+1 sdqm [3-0] uuaa aauu xxaa xxxa xxxa bit number xd 31 0 ab cd 31 0 ab cd 15 0 cd 7 0 d 7 0 c bit number ext. mem data 31 0 abcd 15 0 cd 7 0 d 7 0 c timing sequence 1st read 2nd read w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 27 - revision a6 table 7.2.13 and table 7.2.14 using little-endian and byte access, program/dat a path between register and external memory. ba = address whose lsb is 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f bal = address whose lsb is 0, 2, 4, 6, 8, a, c, e bau = address whose lsb is 1, 3, 5, 7, 9, b, d, f ba0 = address whose lsb is 0, 4, 8, c ba1 = address whose lsb is 1, 5, 9, d ba2 = address whose lsb is 2, 6, a, e ba3 = address whose lsb is 3, 7, b, f table7.2.13 byte access write ope ration with little endian access operation write operation (cpu register ? external memory) xd width word half word byte bit number cpu reg data 31 0 abcd 31 0 abcd 31 0 abcd sa ba0 ba1 ba2 ba3 bal bau ba bit number sd 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d 31 0 d d d d bit number ed 7 0 d 15 8 d 23 16 d 31 24 d 7 0 d 15 8 d 7 0 d xa ba0 ba0 ba0 ba0 bal bal ba nwbe [3-0] / sdqm [3-0] uuua uuau uauu auuu xxua xxau xxxa bit number xd 31 0 x x x d 31 0 x x d x 31 0 x d x x 31 0 d x x x 15 0 x d 15 0 d x 7 0 d bit number ext. mem data 7 0 d 15 8 d 23 16 d 31 24 d 7 0 d 15 8 d 7 0 d timing sequence w90n740cd/W90N740CDG - 28 - table7.2.14 byte access read ope ration with little endian access operation read operation (cpu register external memory) xd width word half word byte bit number cpu reg data 7 0 d 7 0 c 7 0 b 7 0 a 7 0 d 7 0 c 7 0 d sa ba0 ba1 ba2 ba3 bal bau ba bit number sd 7 0 d 7 0 c 7 0 b 7 0 a 7 0 d 7 0 c 7 0 d bit number ed 7 0 d 7 0 c 7 0 b 7 0 a 7 0 d 7 0 c 7 0 d xa ba0 ba0 ba0 ba0 bal bal ba sdqm [3-0] uuua uuau uauu auuu xxua xxau xxxa bit number xd 31 0 abcd 31 0 abcd 31 0 abcd 31 0 abcd 15 0 cd 15 0 cd 7 0 d bit number ext. mem data 31 0 abcd 15 0 cd 7 0 d timing sequence 7.2.5 bus arbitration the w90n740?s internal function blocks or external devices can request mastersh ip of the system bus and then hold the system bus in order to perform dat a transfers. the design of w90n740 bus allows only one bus master at a time, a bus controller is required to arbitrate when two or more internal units or external devices simultaneously reques t bus mastership. when bus mastership is granted to an internal function block or an external dev ice, other pending requests are not acknowledged until the previous bus master has released the bus. w90n740 supports two priority modes, the fixed priority mode and the rotate priority mode , depends on the prtmod bit setting. 7.2.5.1. fixed priority mode in fixed priority mode ( prtmod = 0, default value), to facilitate bus arbitration, priorities are assigned to each internal w90n740 function block. the bus cont roller arbitration requests for the bus mastership according to these fixed priorities. in the event of contention, mastership is granted to the function block with the highest assigned priority. these pr iorities are listed in table 7.2.15. w90n740 allows raising arm core priority to second if an unmasked interrupt occurred. if ipen bit, bit 22 of the arbitration control register (arbcon) , is set to ?0?, the priority of arm core is fixed to lowest. if ipen bit is set to ?1? and if no unmasked interrupt request, then the arm core?s priority is still lowest and the ipact = 0, bit 23 of the arbitration control register (arbcon) if there is an unmasked interrupt request, then the arm co re?s priority is raised to second and ipact = 1. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 29 - revision a6 if ipen is set, an interrupt handler will normally clear ipact at the end of the interrupt routine to allow an alternate bus master to regain the bus; however, if ipen is cleared, no additional action need be taken in the interrupt handler. the ipact bit can be read and write. writing with ?0?, the ipact bit is cleared, but it will be no effect as writing with ?1?. table 7.2.15 bus priorities for arbi tration in fixed priority mode bus function block priority ipact = 0 ipen = 1 and ipact = 1 1 (highest) external bus master external bus master 2 nat accelerator arm core 3 general dma0 nat accelerator 4 general dma1 general dma0 5 emc0 dma general dma1 6 emc1 dma emc0 dma 7 usb (host) emc1 dma 8 (lowest) arm core usb (host) 7.2.5.2. rotate priority mode in rotate priority mode ( prtmod = 1), the ipen and ipact bits have no function (i.e. ignore). w90n740 used a round robin arbitration scheme ens ures that all bus masters (except the external bus master , it always has the first priority) have equal c hance to gain the bus and that a retracted master does not lock up the bus. 7.2.6 power-on setting after power on reset, there are four power-on setting pins to configure w90n740 system configuration. power-on setting pin internal system clock select d15 little/big endian mode select d14 boot rom/flash data bus width d [13:12] d15 pin internal system clock select if pin d15 is pull-down, the external clock from extal pin is served as internal system clock. if pin d15 is pull-up, the pll output clo ck is used as internal system clock. d14 pin little/big endian mode select if pin d14 is pull-down, the external memory format is big endian mode. if pin d14 is pull-up, the external memory format is little endian mode. w90n740cd/W90N740CDG - 30 - d [13:12] boot rom/flash data bus width d [13:12] bus width pull-down pull-down 8-bit pull-down pull-up 16-bit pull-up pull-down 32-bit pull-up pull-up reserved note: related power-on setting pin d [11:10] d [15] d [11:10] description pull-up pull high w90n740 normal operation d [9:8] d [9:8] pull-up pull-up 7.2.7 system manager control registers map register address r/w description reset value pdid 0xfff0.0000 r product ident ifier register 0xx090.0740 arbcon 0xfff0.0004 r/w arbitrati on control register 0x0000.0000 pllcon 0xfff0.0008 r/w pll c ontrol register 0x0000.2f01 clksel 0xfff0.000c r/w clock se lect register 0x0000.3fx8 product identifier register pdid this register is for read only and enables software to re cognize certain characteristics of the chip id and the version number. register address r/w description reset value pdid 0xfff0.0000 r product ident ifier register 0xx090.0740 31 30 29 28 27 26 25 24 package 1 23 22 21 20 19 18 17 16 chpid 15 14 13 12 11 10 9 8 chpid 7 6 5 4 3 2 1 0 chpid w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 31 - revision a6 package [31:30] package type package [31:30] bus width 1 1 176-pin package chpid [23:0]: chip identifier the chip identifier of w90n740 is 0x90.0740 arbitration control register (arbcon) register address r/w description reset value arbcon 0xfff0.0004 r/w arbitration control register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved ipact ipen prtmod ipact [2] interrupt priority active when ipen =?1?, this bit is set when the arm core has an unmasked interrupt request. this bit is available only when the prtmod = 0. ipen [1] interrupt priority enable bit 0 = the arm core has the lowest priority. 1 = enable to raise the arm core priority to second this bit is available only when the prtmod = 0. prtmod [0] priority mode select 0 = fixed priority mode (default) 1 = rotate priority mode w90n740cd/W90N740CDG - 32 - pll control register pllcon w90n740 provides two options for clock generation - crystal and oscillator. the external clock via extal input pin as the reference clock input of pll module. the external clock can bypass the pll and be used to the internal system clo ck by pull-down the data d15 pin. using pll ?s output clock for the internal syst em clock, d15 pin must be pull-up. register address r/w description reset value pllcon 0xfff0.0008 r/w pll c ontrol register 0x0000.2f01 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved pwden 15 14 13 12 11 10 9 8 fbdv 7 6 5 4 3 2 1 0 fbdv otdv indv pwden [16] power down mode enable 0 = pll is in normal mode (default) 1 = pll is in power down mode fbdv [15:7] pll vco output clock feedback divider feedback divider divides the output clock from vco of pll. otdv [6:5] pll output clock divider otdv [6:5] divided by 0 0 1 0 1 2 1 0 2 1 1 4 indv [4:0] pll input clock divider input divider divides the input re ference clock into the pll. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 33 - revision a6 input divider (nr) pfd feedback divider (nf) charge pump vco output divider (no) clock divider & selector extal eclks otdv[1:0] clks[2:0] 1 0 pll internal system clock indv[4:0] fbdv[8:0] 48mhz gen 480mhz 0 1 usbcks usb module fin fout gp12 fig 7.2.6 system pll block diagram the formula of output clock of pll is: f out = f in no nr nf 1 ? ? f out output clock of output divider f in external clock into the input divider nr input divider value (nr = indv + 2) nf feedback divider value (nf = fbdv + 2) no output divider value (no = otdv) clock select register (clksel) register address r/w description reset value clksel 0xfff0.000c r/w clock se lect register 0x0000.3fx8 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 usbcks reserved gdma nata emc1 emc0 wdts wdt 7 6 5 4 3 2 1 0 usb timer uart eclks clks reset w90n740cd/W90N740CDG - 34 - usbcks [15] usb clock source select bit 0 = usb clock 48mhz input from internal pll ( 480mhz/10) 1 = usb clock 48mhz input from external gp12 pin, this gpio pin direction must set to input. gdma [13] gdma clock enable bit 0 = disable gdma clock 1 = enable gdma clock nata [12] nata clock enable bit 0 = disable nata clock 1 = enable nata clock emc1 [11] emc1 clock enable bit 0 = disable emc1 clock 1 = enable emc1 clock emc0 [10] emc0 clock enable bit 0 = disable emc0 clock 1 = enable emc0 clock wdts [9] : wdts clock selected bit 0 = clock from extal pin is used as wdt counting clock 1 = clock from extal pin is divided by 256, which is used as wdt counting clock wdt [8] wdt clock enable bit 0 = disable wdt counting clock 1 = enable wdt counting clock usb [7] usb clock enable bit 0 = disable usb clock 1 = enable usb clock timer [6] timer clock enable bit 0 = disable timer clock 1 = enable timer clock uart [5] uart clock enable bit 0 = disable uart clock 1 = enable uart clock w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 35 - revision a6 eclks [4] external clock select 0 = external clock from extal pin is used as system clock 1 = pll output clock is used as system clock after power on reset, the content of eclks is the power-on setting value. you can program this bit to change the system clock source. clks [3:1] pll output clock select clks [3:1] pll output clock 0 0 0 58.594 khz* 0 0 1 24 mhz 0 1 0 48 mhz 0 1 1 60 mhz 1 0 0 80 mhz 1 0 1 reserved 1 1 0 reserved 1 1 1 reserved when 24mhz ~ 120mhz is setting, the eclks bit is needed to set on pll output clock mode (logic 1). *about 58.594khz setting, two steps are needed. first step, the eclks bit is set to external clo ck mode (logic 0, 15mhz), then set clks bits to 0. reset [0] reset this is a software reset control bit. set logic 1 to gener ate an internal reset pulse. this bit is auto-clear to logic 0 at the end of the reset pulse. 7.3 external bus interface (ebi) 7.3.1 ebi overview external bus interface ( ebi ) controls the access to the exter nal memory (rom/sram/flash, sdram) and external i/o devices. the ebi has seven chip selects to select one rom/flash bank, two sdram banks, and four external i/o banks and 25-bit address bus. it supports 8-bit, 16- bit, and 32-bit external data bus width for each bank. the features of the ebi y external i/o control with 8/16/32 bit external data bus y cost-effective memory-to-peripheral dma interface y sdram controller supports up to 2 external sdram & the maximum size of each device is 32mb y rom/flash & external i/o interface y support for pcmcia 16-bit pc card devices w90n740cd/W90N740CDG - 36 - 7.3.2 sdram controller the w90n740?s sdram controller cont ains configuration registers, timing control registers, common control register and other logic. the sdram controller provides 8/16/ 32 bits sdram interface with a single 8/16/32 bits sdram device or two 8-bit devices wired to give a 16-bit data path or two 16-bit devices wired to give a 32-bit data path. the maximu m memory size of each bank is 32mb(mbytes). one of two banks can be connected to the sdram interfac e, so the maximum memory can be up to 64mb. the features of the sdram controller ? 8/16/32-bit data interface ? supports up to 2 external sdram devices and maximum size of each device is 32mb ? programmable cas latency 1 2 and 3 ? fixed burst length 1 ? sequential burst type ? write burst length mode is burst ? auto refresh mode and self refresh mode ? adjustable refresh rate ? power up sequence 7.3.2.1. sdram components supported ? 16m bit sdram ? 2mx8 with 2 banks ra0 ~ ra10, ca0 ~ ca8 ? 1mx16 with 2 banks ra0 ~ ra10, ca0 ~ ca7 ? 64m bit sdram ? 8mx8 with 4 banks ra0 ~ ra11, ca0 ~ ca8 ? 4mx16 with 4 banks ra0 ~ ra11, ca0 ~ ca7 ? 2mx32 with 4 banks ra0 ~ ra10, ca0 ~ ca7 ? 128m bit sdram ? 16mx8 with 4 banks ra0 ~ ra11, ca0 ~ ca9 ? 8mx16 with 4 banks ra0 ~ ra11, ca0 ~ ca8 ? 4mx32 with 4 banks ra0 ~ ra11, ca0 ~ ca7 ? 256m bit sdram ? 32mx8 with 4 banks ra0 ~ ra12, ca0 ~ ca9 ? 16mx16 with 4 banks ra0 ~ ra12, ca0 ~ ca8 7.3.2.2. ahb bus address mapping to sdram bus note: * indicates the signal is not used; ** indicates the signal is fixed at logic 0 and is not used; the haddr prefixes have been omi tted on the following tables. a14 ~ a0 are the address pins of the w90n740 ebi interface; a14 and a13 are the bank se lected signal of sdram. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 37 - revision a6 sdram data bus width: 32-bit total type r x c r/c a14 (bs1) a13 (bs0) a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 16m 2mx8 11x9 r ** 11 ** 11 * 22 21 20 19 18 17 16 15 14 13 12 c ** 11 ** 11 * ap 25 * 10 9 8 7 6 5 4 3 2 16m 1mx16 11x8 r ** 10 ** 10 * 11 21 20 19 18 17 16 15 14 13 12 c ** 10 ** 10 * ap 25 * 10 * 9 8 7 6 5 4 3 2 64m 8mx8 12x9 r 11 12 11 * 23 22 21 20 19 18 17 16 15 14 13 24 c 11 12 11 * 23 * ap 25 * 10 9 8 7 6 5 4 3 2 64m 4mx16 12x8 r 11 10 11 * 23 22 21 20 19 18 17 16 15 14 13 12 c 11 10 11 * 23 * ap 25 * 24 * 9 8 7 6 5 4 3 2 64m 2mx32 11x8 r 11 10 11 * 23 * 22 21 20 19 18 17 16 15 14 13 12 c 11 10 11 * 23 * ap 25 * 24 * 9 8 7 6 5 4 3 2 128m* 16mx8 12x10 r 11 12 11 * 23 22 21 20 19 18 17 16 15 14 13 24 c 11 12 11 * 23 * ap 25 10 9 8 7 6 5 4 3 2 128m 8mx16 12x9 r 11 12 11 * 23 22 21 20 19 18 17 16 15 14 13 24 c 11 12 11 * 23 * ap 25 * 10 9 8 7 6 5 4 3 2 128m 4mx32 12x8 r 11 10 11 * 23 22 21 20 19 18 17 16 15 14 13 12 c 11 10 11 * 23 * ap 25 * 10 * 9 8 7 6 5 4 3 2 256m* 32mx8 13x10 r 11 12 24 23 22 21 20 19 18 17 16 15 14 13 25 c 11 12 24 * 23 * ap 26 * 10 9 8 7 6 5 4 3 2 256m* 16mx16 13x9 r 11 12 24 23 22 21 20 19 18 17 16 15 14 13 25 c 11 12 24 * 23 * ap 26 * 10 * 9 8 7 6 5 4 3 2 w90n740cd/W90N740CDG - 38 - sdram data bus width: 16-bit total type r x c r/c a14 (bs1) a13 (bs0) a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 16m 2mx8 11x9 r ** 10 ** 10 * 21 20 19 18 17 16 15 14 13 12 11 c ** 10 ** 10 * ap 24 * 9 8 7 6 5 4 3 2 1 16m 1mx16 11x8 r ** 9 ** 9 * 10 20 19 18 17 16 15 14 13 12 11 c ** 9 ** 9 * ap 24 * 9 * 8 7 6 5 4 3 2 1 64m 8mx8 12x9 r 10 11 10 * 22 21 20 19 18 17 16 15 14 13 12 23 c 10 11 10 * 22 * ap 24 * 9 8 7 6 5 4 3 2 1 64m 4mx16 12x8 r 10 9 10 * 22 21 20 19 18 17 16 15 14 13 12 11 c 10 9 10 * 22 * ap 24 * 23 * 8 7 6 5 4 3 2 1 64m 2mx32 11x8 r 10 9 10 * 22 * 21 20 19 18 17 16 15 14 13 12 11 c 10 9 10 * 22 * ap 24 * 23 * 8 7 6 5 4 3 2 1 128m 16mx8 12x10 r 10 11 10 * 22 21 20 19 18 17 16 15 14 13 12 23 c 10 11 10 * 22 * ap 24 9 8 7 6 5 4 3 2 1 128m 8mx16 12x9 r 10 11 10 * 22 21 20 19 18 17 16 15 14 13 12 23 c 10 11 10 * 22 * ap 24 * 9 8 7 6 5 4 3 2 1 128m 4mx32 12x8 r 10 9 10 * 22 21 20 19 18 17 16 15 14 13 12 11 c 10 9 10 * 22 * ap 24 * 9 * 8 7 6 5 4 3 2 1 256m* 32mx8 13x10 r 10 11 23 22 21 20 19 18 17 16 15 14 13 12 24 c 10 11 23 * 22 * ap 25 * 9 8 7 6 5 4 3 2 1 256m 16mx16 13x9 r 10 11 23 22 21 20 19 18 17 16 15 14 13 12 24 c 10 11 23 * 22 * ap 25 * 9 8 7 6 5 4 3 2 1 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 39 - revision a6 sdram data bus width: 8-bit total type r x c r/c a14 (bs1) a13 (bs0) a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 16m 2mx8 11x9 r ** 9 ** 9 * 20 19 18 17 16 15 14 13 12 11 10 c ** 9 ** 9 * ap 23 * 8 7 6 5 4 3 2 1 0 16m 1mx16 11x8 r ** 8 ** 8 * 9 19 18 17 16 15 14 13 12 11 10 c ** 8 ** 8 * ap 23 * 8 * 7 6 5 4 3 2 1 0 64m 8mx8 12x9 r 9 10 9 * 21 20 19 18 17 16 15 14 13 12 11 22 c 9 10 9 * 21 * ap 23 * 8 7 6 5 4 3 2 1 1 64m 4mx16 12x8 r 9 8 9 * 21 20 19 18 17 16 15 14 13 12 11 10 c 9 8 9 * 21 * ap 23 * 22 * 7 6 5 4 3 2 1 0 64m 2mx32 11x8 r 9 8 9 * 21 * 20 19 18 17 16 15 14 13 12 11 10 c 9 8 9 * 21 * ap 23 * 22 * 7 6 5 4 3 2 1 0 128m 16mx8 12x10 r 9 10 9 * 21 20 19 18 17 16 15 14 13 12 11 22 c 9 10 9 * 21 * ap 23 8 7 6 5 4 3 2 1 0 128m 8mx16 12x9 r 9 10 9 * 21 20 19 18 17 16 15 14 13 12 11 22 c 9 10 9 * 21 * ap 23 * 8 7 6 5 4 3 2 1 0 128m 4mx32 12x8 r 9 8 9 * 21 20 19 18 17 16 15 14 13 12 11 10 c 9 8 9 * 21 * ap 23 * 8 * 7 6 5 4 3 2 1 0 256m 32mx8 13x10 r 9 10 22 21 20 19 18 17 16 15 14 13 12 11 23 c 9 10 22 * 21 * ap 24 8 7 6 5 4 3 2 1 0 256m 16mx16 13x9 r 9 10 22 21 20 19 18 17 16 15 14 13 12 11 23 c 9 10 22 * 21 * ap 24 * 8 7 6 5 4 3 2 1 0 w90n740cd/W90N740CDG - 40 - sdram power up sequence the default value of the mode register is not defined, therefore the mode register must be written after power up to operate the sdram. w90n740 supports the function of power up sequence, that is, after system power on the w90n740 sdram controller automatically executes the commands needed for power up sequence and set the mode register of eac h bank to default value. the default value is: ? burst length = 1 ? burst type = sequential (fixed) ? cas latency = 2 ? write burst length = burst (fixed) the value of mode register can be changed afte r power up sequence by setting the value of corresponding bank?s configuration register ? length ? and ? latency ? bits and set the mrset bit enable to execute the mode register set command. 7.3.2.3. sdram interface mclk mcke nscs[1:0] nsras nscas nswe nsdqm[3:0] a[24:0] d[31:0] a[10:0] dq[[31:0] dqm[3:0] nwe ncas nras ncs bs0 bs1 clk cke w90n740 a13 a14 a[10:0] nscs0 sdram 64mb 512kx4x32 nsdqm[3:0] fig 7.3.1 sdram interface w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 41 - revision a6 7.3.3 external bus mastership the w90n740 can receive and acknowledge bus reques t signals that are generated by an external bus master. when the cpu asserts an external bus acknowledge signal, mastership is granted to the external bus master, assuming the ex ternal bus request is still active. when the external bus acknowledge signal is acti ve, the w90n740?s memory interface signals go to high impedance state so that the external bus ma ster can drive the required external memory interface signals. the w90n740 does not perform sdram refreshes when it is not the bus master. when an external bus master is in control of the external bus, and if it retains control for a long period of time, it must assume the responsibility of performing the necessary sdram refresh operations. 7.3.4 ebi control registers map register address r/w description reset value ebicon 0xfff0.1000 r/w ebi control register 0x 0001.0000 romcon 0xfff0.1004 r/w rom/flash control register 0x 0000.0xfc sdconf0 0xfff0.1008 r/w sdram bank 0 configuration register 0x 0000.0800 sdconf1 0xfff0.100c r/w sdram bank 1 configuration register 0x 0000.0800 sdtime0 0xfff0.1010 r/w sdram bank 0 timing control register 0x 0000.0000 sdtime1 0xfff0.1014 r/w sdram bank 1 timing control register 0x 0000.0000 ext0con 0xfff0.1018 r/w external i/o 0 control register 0x 0000.0000 ext1con 0xfff0.101c r/w external i/o 1 control register 0x 0000.0000 ext2con 0xfff0.1020 r/w external i/o 2 control register 0x 0000.0000 ext3con 0xfff0.1024 r/w external i/o 3 control register 0x 0000.0000 ckskew 0xfff0.1f00 r/w clock skew control register 0x xxxx.0038 ebi control register (ebicon) register address r/w description reset value ebicon 0xfff0.1000 r/w ebi control register 0x0001.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved refen refmod clken 15 14 13 12 11 10 9 8 refrat 7 6 5 4 3 2 1 0 refrat waitvt little w90n740cd/W90N740CDG - 42 - refen [18]: enable sdram refresh cycle for sdram bank0 & bank1 this bit set will start the auto-refresh cycle to sdra m. the refresh rate is according to refrat bits. refmod [17]: the refresh mode of sdram for sdram bank defines the refresh mode type of external sdram bank 0 = auto refresh mode 1 = self refresh mode clken [16]: clock enable for sdram enables the sdram clock enable ( cke ) control signal 0 = disable (power down mode) 1 = enable default refrat [15:3]: refresh count value for sdram the refresh period is calculated as fmclk value period = the sdram controller automatica lly provides an auto refresh cy cle for every refresh period programmed into the refrat bits when the refen bit of each bank is set. waitvt [2:1]: valid time of nwait signal w90n740 recognizes the newait signal at the next ?nth? mclk rising edge after the noe or nwbe active cycle. waitvt bits determine the n. waitvt [2:1] nth mclk 0 0 1 0 1 2 1 0 3 1 1 4 little [0] read only, little endian mode 0 = ebi memory format is big endian mode 1 = ebi memory format is little endian mode after power on reset, the content of little is the power-on setting value from d14 pin. if pin d14 is pull-down, the external memory format is big endian mode. if pin d14 is pull-up, the external memory format is little endian mode. for more detail, refer to power-on setting of system manager . rom/flash control register romcon register address r/w description reset value romcon 0xfff0.1004 r/w rom/flash control register 0x0000.0xfc w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 43 - revision a6 31 30 29 28 27 26 25 24 basaddr 23 22 21 20 19 18 17 16 basaddr size 15 14 13 12 11 10 9 8 reserved tpa 7 6 5 4 3 2 1 0 tacc btsize pgmode basaddr [31:19] base address pointer of rom/flash bank the start address is calculated as rom/flash bank base pointer << 18. the base address pointer together with the ? size ? bits constitutes the whole address range of each bank. size [18:16] the size of rom/flash memory size [10:8] byte 0 0 0 256k 0 0 1 512k 0 1 0 1m 0 1 1 2m 1 0 0 4m 1 0 1 8m 1 1 0 16m 1 1 1 32m tpa [11:8] page mode access cycle time tpa [11:8] mclk 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 tpa [11:8] mclk 1 0 0 0 10 1 0 0 1 12 1 0 1 0 14 1 0 1 1 16 1 1 0 0 18 1 1 0 1 20 1 1 1 0 22 1 1 1 1 24 w90n740cd/W90N740CDG - 44 - tacc [7:4] access cycle time tacc [7:4] mclk 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 tacc [7:4] mclk 1 0 0 0 10 1 0 0 1 12 1 0 1 0 14 1 0 1 1 16 1 1 0 0 18 1 1 0 1 20 1 1 1 0 22 1 1 1 1 24 btsize [3:2] read only, the boot rom/flash data bus width this rom/flash bank is designed for a boot rom. basaddr bits determine its start address. the external data bus width is determined by t he data bus signals d [13:12] power-on setting. btsize [3:2] bus width d [13:12] bus width 0 0 8-bit pull-down pull-down 8-bit 0 1 16-bit pull-down pull-up 16-bit 1 0 32-bit pull-up pull-down 32-bit 1 1 reserved pull- up pull-up reserved pgmode [1:0] page mode configuration pgmode [1:0] mode 0 0 normal rom 0 1 4 word page 1 0 8 word page 1 1 16 word page w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 45 - revision a6 fig7.3.2 rom/flash read operation timing fig 7.3.3 rom/flash page read operation timing configuration registers sdconf0/1 the configuration registers enable software to se t a number of operating parameters for the sdram controller. there are two conf iguration registers sdconf0 sdconf1 for sdram bank 0 bank 1 respectively. each bank can hav e a different configuration. register address r/w description reset value sdconf0 0xfff0.1008 r/w sdram bank 0 configuration register 0x0000.0800 sdconf1 0xfff0.100c r/w sdram bank 1 configuration register 0x0000.0800 w90n740cd/W90N740CDG - 46 - 31 30 29 28 27 26 25 24 basaddr 23 22 21 20 19 18 17 16 basaddr reserved 15 14 13 12 11 10 9 8 mrset reserved autopr latency reserved 7 6 5 4 3 2 1 0 compbk dbwd column size basaddr [31:19] base address pointer of sdram bank 0/1 the start address is calculated as sdram bank 0/1 base pointer << 18. the sdram base address pointer together with the ? size ? bits constitutes the whole address range of each sdram bank. mrset [15] sdram mode register set command for sdram bank 0/1 this bit set will issue a mode register set command to sdram. autopr [13] auto pre-charge mode of sdram for sdram bank 0/1 enable the auto pre-charge functi on of external sdram bank 0/1 0 = auto pre-charge 1 = no auto pre-charge latency [12:11] the cas latency of sdram bank 0/1 defines the cas latency of external sdram bank 0/1 latency [12:11] mclk 0 0 1 0 1 2 1 0 3 1 1 reversed compbk [7] number of component bank in sdram bank 0/1 indicates the number of component bank (2 or 4 banks) in external sdram bank 0/1. 0 = 2 banks 1 = 4 banks dbwd [6:5] data bus width for sdram bank 0/1 indicates the external data bus width connect with sdram bank 0/1 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 47 - revision a6 if dbwd = 00, the assigned sdram access signal is not generated i.e. disable. dbwd [6:5] bits 0 0 bank disable 0 1 8-bit (byte) 1 0 16-bit (half-word) 1 1 32-bit (word) column [4:3] number of column address bits in sdram bank 0/1 indicates the number of column address bits in external sdram bank 0/1. column [4:3] bits 0 0 8 0 1 9 1 0 10 1 1 reversed size [2:0] size of sdram bank 0/1 indicates the memory size of external sdram bank 0/1 size [2:0] size of sdram byte 0 0 0 bank disable 0 0 1 2m 0 1 0 4m 0 1 1 8m 1 0 0 16m 1 0 1 32m 1 1 0 64m 1 1 1 reversed timing control registers sdtime0/1 w90n740 offers the flexible timing control regist ers to control the generation and processing of the control signals and can achieve y ou use different speed of sdram register address r/w description reset value sdtime0 0xfff0.1010 r/w sdram bank 0 timing control register 0x0000.0000 sdtime1 0xfff0.1014 r/w sdram bank 1 timing control register 0x0000.0000 w90n740cd/W90N740CDG - 48 - 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved trcd 7 6 5 4 3 2 1 0 trdl trp tras trcd [10:8] sdram bank 0/1, /ras to /cas delay (see fig 7.3.4) trcd [10:8] mclk 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 8 trdl [7:6] sdram bank 0/1, last data in to pre-charge command (see fig 7.3.5) trdl [7:6] mclk 0 0 1 0 1 2 1 0 3 1 1 4 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 49 - revision a6 trp [5:3] sdram bank 0/1, row pre-charge time (see fig 7.3.4) trp [5:3] mclk 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 8 fig 7.3.4 access timing 1 of sdram w90n740cd/W90N740CDG - 50 - tras [2:0] sdram bank 0/1, row active time (see fig 7.3.4) tras [2:0] mclk 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 8 fig 7.3.5 access timing 2 of sdram w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 51 - revision a6 external i/o control registers ext0con ? ext3con the w90n740 supports an external device control without glue logic. it is very cost effective because address decoding and control signals timing logic are not needed. using these control registers you can configure special external i/o devic es for providing the low cost ex ternal devices control solution. register address r/w description reset value ext0con 0xfff0.1018 r/w external i/o 0 control register 0x0000.0000 ext1con 0xfff0.101c r/w external i/o 1 control register 0x0000.0000 ext2con 0xfff0.1020 r/w external i/o 2 control register 0x0000.0000 ext3con 0xfff0.1024 r/w external i/o 3 control register 0x0000.0000 31 30 29 28 27 26 25 24 basaddr 23 22 21 20 19 18 17 16 basaddr size 15 14 13 12 11 10 9 8 adrs tacc tcoh 7 6 5 4 3 2 1 0 tacs tcos dbwd basaddr [31:19] base address pointer of external i/o bank 0~3 the start address of each external i/o bank is calculated as ? basaddr? base pointer << 18. each external i/o bank base address pointer together with the ? size ? bits constitutes the whole address range of each external i/o bank. size [18:16] the size of the external i/o bank 0~3 size [18:16] byte 0 0 0 256k 0 0 1 512k 0 1 0 1m 0 1 1 2m 1 0 0 4m 1 0 1 8m 1 1 0 16m 1 1 1 32m w90n740cd/W90N740CDG - 52 - adrs [15] address bus alignment for external i/o bank 0~3 when adrs is set, ebi bus is alignment to byte address format, and ignores dbwd [1:0] setting. tacc [14:11] access cycles noe or nwe active time for external i/o bank 0~3 tacc [14:11] mclk 0 0 0 0 reserved 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 tacc [14:11] mclk 1 0 0 0 9 1 0 0 1 11 1 0 1 0 13 1 0 1 1 15 1 1 0 0 17 1 1 0 1 19 1 1 1 0 21 tcoh [10:8] chip selection hold-on time on nwbe for external i/o bank 0~3 tcoh [10:8] mclk 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 53 - revision a6 tacs [7:5] address set-up before necs for external i/o bank 0~3 tacs [7:5] mclk 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 tcos [4:2] chip selection set-up time on noe or nwbe for external i/o bank 0~3 when rom/flash memory bank is conf igured, the access to its bank stre tches chip selection time before the noe or new signal is activated. tcos [4:2] mclk 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 dbwd [1:0] programmable data bus width for external i/o bank 0~3 dbwd [1:0] width of data bus 0 0 disable bus 0 1 8-bit 1 0 16-bit 1 1 32-bit w90n740cd/W90N740CDG - 54 - fig 7.3.6 external i/o write operation timing clock skew control register ckskew register address r/w description reset value ckskew 0xfff7.1f00 r/w clock skew control register 0xxxxx.0038 31 30 29 28 27 26 25 24 dlh_clk_ref 23 22 21 20 19 18 17 16 dlh_clk_ref 15 14 13 12 11 10 9 8 resvered swpon 7 6 5 4 3 2 1 0 dlh_clk_skew mclk_o_d dlh_clk_ref [31:16]: latch dlh_clk clock tree by hclk positive edge. (read only) swpon [8]: sdram initialization by software trigger set this bit will issue a sdram power on default setting command, this bit will be auto-clear by hardware. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 55 - revision a6 dlh_clk_skew [7:4] data latch clock skew adjustment dlh_clk_skew [7:4] gate delay 0 0 0 0 p-0 0 0 0 1 p-1 0 0 1 0 p-2 0 0 1 1 p-3 0 1 0 0 p-4 0 1 0 1 p-5 0 1 1 0 p-6 dlh_clk_skew [7:4] gate delay 1 0 0 0 n-0 1 0 0 1 n-1 1 0 1 0 n-2 1 0 1 1 n-3 1 1 0 0 n-4 1 1 0 1 n-5 1 1 1 0 n-6 note: p-x means data latched clock shift ?x? gat es delays by refer mclko positive edge, n-x means data latched clock shift ?x? gates delays by refer mclko negative edge. mclk_o_d [3:0] mclk output delay adjustment mclk_o_d [3:0] gate delay 0 0 0 0 p-0 0 0 0 1 p-1 0 0 1 0 p-2 0 0 1 1 p-3 0 1 0 0 p-4 0 1 0 1 p-5 0 1 1 0 p-6 mclk_o_d [3:0] gate delay 1 0 0 0 n-0 1 0 0 1 n-1 1 0 1 0 n-2 1 0 1 1 n-3 1 1 0 0 n-4 1 1 0 1 n-5 1 1 1 0 n-6 note: p-x means mclko shift ?x? gates delay by refer hclk positive edge, n-x means mclko shift ?x? gates delay by refer hclk negative edge. mclk is the output pin of mclko, which is a internal signal on chip. w90n740cd/W90N740CDG - 56 - 7.4 cache controller the w90n740 has an 8kb instruction cache, 2kb data cache, and 8 words write buffer. the i-cache and d-cache are similar except the cache size. to enhance the hit ratio, these two caches are configured two-way set associative addressing. each cache has four words cache line size. when a miss occurs, four words must be fetched consecutively from external memory. the replacement algorithm is a lru (least recently used). the w90n740 also provides a write buffer to improve system performance. the write buffer can buffer up to eight words of data. 7.4.1 on-chip ram if i-cache or d-cache is disabled, it can be served as on-chip ram. if d-cache is disabled, there has 2kb on-chip ram, its start addre ss is 0xffe02000. if i-cache is dis abled, there has 8kb on-chip ram and the start address of this ram is 0xffe00000. if bot h the i-cache and d-cache are disabled, it has 10kb on-chip ram starting from 0xffe00000. the size of on-chip ram is depended on the i-cache and d-cache enable bits icaen , dcaen in cache control register (cahcon). table7.4.1 the size and start address of on-chip ram icaen dcaen on-chip ram size start address 0 0 10kb 0xffe0.0000 0 1 8kb 0xffe0.0000 1 0 2kb 0xffe0.2000 1 1 unavailable 7.4.2 non-cacheable area although the cache affects the entir e 2gb system memory, it is so metimes necessary to define non- cacheable areas when the consistency of data stor ed in memory and the cache must be ensured. to support this, the w90n740 provides a non-cacheable ar ea control bit in the address field, a [31]. if a [31] in the rom/flash, sdram, or external i/o bank?s access address is ?0?, then the accessed data is cacheable. if the a [31] value is ?1?, the accessed data is non-cacheable. 7.4.3 instruction cache the instruction cache (i-cache) is an 8k bytes two- way set associative cache. the cache organization is 256 sets, two lines per set, and four words per line. cache lines are aligned on 4-word boundaries in memory. the cache access cycle begins with an instruction reques t from the instruction unit in the core. in the case of a cache hit, the instruction is delivered to t he instruction unit. in case of a cache miss, the cache initiates a burst read cycle on the internal bus with the address of the request ed instruction. the first word received from the bus is the requested instruct ion. the cache forwards this instruction to the instruction unit of the core as soon as it is received from the internal bus. a cache line is then selected to receive the data that will be coming from the bus. a l east recently used (lru) replacement algorithm is used to select a line when no empty lines are available. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 57 - revision a6 when i-cache is disabled, the cache me mory is served as 8kb on-chip ram. the i-cache is always disabled on reset. the features of the instruction cache ? 8k bytes instruction cache ? two-way set associative ? four words in a cache line ? lru replacement policy ? lockable on a per-line basis ? critical word first, burst access instruction cache operation on an instruction fetch, bits 11 4 of the instruction?s address point in to the cache to retrieve the tags and data of one set. the tags from both ways are then compared against bits 30 12 of the instruction?s address. if a match is found and the matched entry is valid , then it is a cache hit. if neither tags match or the matched tag is not valid, it is a cache miss. 7.4.3.1. instruction cache hit in case of a cache hit, bits 3 2 of the instruction address is used to select one word from the cache line whose tag matches. the instruction is immediately transferred to the instruction unit of the core. 7.4.3.2. instruction cache miss on an instruction cache miss, the addr ess of the missed instruction is dr iven on the internal bus with a 4- word burst transfer read request. a cache line is t hen selected to receive the data that will be coming from the bus. the selection algorithm gives first priority to invalid lines. if neither of the two lines in the selected set is invalid, then the least recently us ed line is selected for replacement. locked lines are never replaced. the transfer begins with the word reques ted by the instruction unit (critical word first), followed by the remaining words of the line, then by the word at the beginning of the lines (wraparound). 7.4.3.3. instruction cache flushing the w90n740 does not support external memory snooping. therefore, if self-modi fying code is written, the instructions in the i-cache may become invalid . the entire i-cache can be flushed by software in one operation, or can be flushed one li ne at a time by setting the cahcon register bit flhs or flha with the icah bit is set. as flushing the cache line, the ? v ? bit of the line is cleared to ?0?. the i-cache is automatically flushed during reset. 7.4.3.4. instruction cache load and lock the w90n740 supports a cache-locking feature that can be used to lock critical sections of code into i- cache to guarantee quick access. lockdown can be perfo rmed with a granularity of one cache line. the smallest space, which can be locked down, is 4 words. after a line is locked, it operates as a regular instruction sram. lines locked are not replaced during misses and not affected by flush per line command. w90n740cd/W90N740CDG - 58 - to load and lock instruction, the following sequence should be followed: 1. write the start address of the instructions to be locked into cahadr register. 2. set ldlk and icah bits in the cahcon register. 3. increased the address by 16 and written into cahadr register. 4. set ldlk and icah bits in the cahcon register. 5. repeat the steps 3 and 4, until the desired instructions are all locked. when using i-cache load and lock command, there are some notes should be cared. ? the programs executing load and lock operati on should be held in a non-cacheable area of memory. ? the cache should be enabled and interrupts should be disabled. ? software must flush the cache before execut e load and lock to ensure that the code to be locked down is not already in the cache. instruction cache unlock the unlock operation is used to unlock previous ly locked cache lines. after unlock, the ? l ? bit of the line is cleared to ?0?. w90n740 has two unlock command, unlock line and unlock all. the unlock line operation is performed on a cache line granul arity. in case the line is found in the cache, it is unlocked and starts to operate as a regular valid cache line. in case the line is not found in the cache, no operation is done and the command terminat es with no exception. to unlock one line the following unlock line sequence should be followed: 1. write the address of the line to be unlocked into the cahadr register. 2. set the ulks and icah bits in the cahcon register. the unlock all operation is used to unlock the whole i-cache. this operation is performed on all cache lines. in case a line is locked, it is unlocked and star ts to operate as regular valid cache line. in case a line is not locked or if it is invalid, no operation is performed. to unlock the whole cache, set the ulka and icah bits. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 59 - revision a6 7.4.4 data cache the w90n740 data cache (d-cache) is a 2kb two-way set associative cache. the cache organization is 64 sets, two lines per set, and four words per line. cache lines are aligned on 4-word boundaries in memory. the cache is designed for buffer write-through mode of operation and a least recently used (lru) replacement algorithm is used to select a line when no empty lines are available. when d-cache is disabled, the cache me mory is served as 2kb on-chip ram. the d-cache is always disabled on reset. the features of the data cache ? 2k bytes data cache ? two-way set associative ? four words in a cache line ? lru replacement policy ? lockable on a per-line basis ? critical word first, burst access ? buffer write-through mode ? words write buffer ? drain write buffer data cache operation on a data fetch, bits 9 4 of the data?s address point into the ca che to retrieve the tags and data of one set. the tags from both ways are then compared against bits 30 10 of the data?s address. if a match is found and the matched entry is valid, then it is a cache hit. if neither tags match or the matched tag is not valid, it is a cache miss. 7.4.4.1. data cache read read hit on a cache hit, the requested word is immediately transferred to the core. read miss a line in the cache is selected to hold the data, which will be fetched from memory. the selection algorithm gives first priority to invalid lines and if both lines are invalid the line in way zero is selected first. if neither of the two candidate lines in the selected set is invalid, then one of the lines is selected by the lru algorithm to replace. the tr ansfer begins with the aligned word containing the missed data (critical word first), followed by the rema ining word in the line, then by the word at the beginning of the line (wraparound). as the missed word is received from the bus, it is delivered directly to the core. 7.4.4.2. data cache write as buffer write-through mode, store operations alwa ys update memory. the buffer write-through mode is used when external memory and internal cache images must always agree. write hit data is written into both the cache and write buffer. the processor then continues to access the cache, while the cache controller simultaneously downloads the contents of the write buffer to main memory. this reduces the effective write memory cycle time from the time required for a main memory cycle to the cycle time of the high-speed cache. write miss data is only written into write buffer, not to the cache (write no allocate). w90n740cd/W90N740CDG - 60 - 7.4.4.3. data cache flushing the w90n740 allows flushing of the data cache under software control. the data cache may be invalidated through writing flush line ( flhs ) or flush all ( flha ) commands to the cahcon register. flushing the entire d-cache also flushed any lock ed down code. as flushing the data cache, the ? v ? bit of the line is cleared to ?0?. the d-ca che is automatically flushed during reset. 7.4.4.4. data cache load and lock the w90n740 supports a cache-locking feature that can be used to lock critical sections of data into d- cache to guarantee quick access. lockdown can be perfo rmed with a granularity of one cache line. the smallest space, which can be locked down, is 4 words. after a line is locked, it operates as a regular instruction sram. the locked lines are not replaced dur ing misses and it is not affected by flush per line command. to load and lock data, the following sequence should be followed: 1. write the start address of the data to be locked into cahadr register. 2. set ldlk and dcah bits in the cahcon register. 3. increased the address by 16 and written into cahadr register. 4. set ldlk and dcah bits in the cahcon register. 5. repeat the steps 3 and 4, until the desired data are all locked. when using d-cache load and lock command, there are some notes should be cared. ? the programs executing load and lock operati on should be held in a non-cacheable area of memory. ? the cache should be enabled and interrupts should be disabled. ? software must flush the cache before execute load and lock to ensure that the data to be locked down is not already in the cache. 7.4.4.5. data cache unlock the unlock operation is used to unlock previous ly locked cache lines. after unlock, the ? l ? bit of the line is cleared to ?0?. w90n740 has two unlock command, unlock line and unlock all. the unlock line operation is performed on a cache line granul arity. in case the line is found in the cache, it is unlocked and starts to operate as a regular valid cache line. in case the line is not found in the cache, no operation is done and the command terminat es with no exception. to unlock one line the following unlock line sequence should be followed: 1. write the address of the line to be unlocked into the cahadr register. 2. set the ulks and dcah bits in the cahcon register. the unlock all operation is used to unlock the whole d-cache. this operation is performed on all cache lines. in case a line is locked, it is unlocked and star ts to operate as regular valid cache line. in case a line is not locked or if it is invalid, no operation is performed. to unlock the whole cache, set the ulka and dcah bits. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 61 - revision a6 7.4.5 write buffer the w90n740 provides a write buffer to improve syst em performance. the write buffer can buffer up to eight words of data. the write buffe r may be enabled or be disabled via the wrben bit in the cahcnf register, and the buffer is disabled and flushed on reset. drain write buffer to force data, which is in write buffer, to be written to external main memory. this operation is useful in real time applications where the processor needs to be sure that a write to a peripheral has completed before program execution continues. to perform this command, you can set the drwb and dcah bits in cahcon register. cache control registers map register address r/w description reset value cahcnf 0xfff0.2000 r/w cache conf iguration register 0x0000.0000 cahcon 0xfff0.2004 r/w cache c ontrol register 0x0000.0000 cahadr 0xfff0.2008 r/w cache address register 0x0000.0000 ctest0 0xfff6.0000 r/w cache test register 0 0x0000.0000 ctest1 0xfff6.0004 r cache test register 1 0x0000.0000 cache configuration register (cahcnf) cache controller has a configuration register to enable or disable the i-cache, d-cache, and write buffer. register address r/w description reset value cahcnf 0xfff0.2000 r/w cache configurati on register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved wrben dcaen icaen wrben [2] write buffer enable when set to ?1?, write buffer operation is enabled. write buffer is disabled after reset. w90n740cd/W90N740CDG - 62 - dcaen [1] d-cache enable when set to ?1?, data cache operation is enabled. d-cache is disabled after reset. icaen [0] i-cache enable when set to ?1?, instruction cache operation is enabled. i-cache is disabled after reset. cache control register (cahcon) cache controller supports one control register used to control the following operations. y flush i-cache and d-cache y load and lock i-cache and d-cache y unlock i-cache and d-cache y drain write buffer these command set bits in cahcon register are auto-clear bits. as the end of executi on, that command set bit will be cleared to ?0? automatically. register address r/w description reset value cahcon 0xfff0.2004 r/w cache control register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 drwb ulks ulka ldlk flhs flha dcah icah drwb [7] drain write buffer forces write buffer data to be written to main memory. ulks [6] unlock i-cache/d-cache single line unlocks the i-cache/d-cache per line. both way and addr bits in cahadr register must be specified. ulka [5] unlock i-cache/d-cache entirely unlocks the entire i-cache/d-cache, the lock bit ? l ? will be cleared to 0. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 63 - revision a6 ldlk [4] load and lock i-cache/d-cache loads the instruction or data from exter nal memory and locks into cache. both way and addr bits in cahadr register must be specified. flhs [3] flush i-cache/d-cache single line flushes the entire i-cache/d-cache per line. both way and addr bits in cahadr register must be specified. flha [2] flush i-cache/d-cache entirely to flush the entire i-cache/d-cache, also flus hes any locked-down code. if the i-cache/d-cache contains locked down code, the progra mmer must flush lines individually. dcah [1] d-cache selected when set to ?1?, the command set is executed with d-cache. icah [0] i-cache selected when set to ?1?, the command set is executed with i-cache. notes when using the flha or ulka command, you can set both icah and dcah bits to execute entire i-cache and d-cache flushing or unlocking. but, flhs and ulks commands can only be executed with a cache line specified by cahadr register in i-cache or d-cache at a time. if you set both icah and dcah bits, and set flhs or ulks command bit, it will be treated as an invalid command and no operation is done and the comm and terminates with no exception. the drain write buffer operation is only for d-cache. to per form this operation, you must set drwb and dcah bits. if the icah bit is set when using drwb command, it will be an invalid command and no operation is done and the command ter minates with no exception. cache address register (cahadr) w90n740 cache controller supports one address regist er. this address register is used with the command set in the control register ( cahcon ) by specifying instru ction/data address. register address r/w description reset value cahadr 0xfff0.2008 r/w cache address register 0x0000.0000 31 30 29 28 27 26 25 24 way addr 23 22 21 20 19 18 17 16 addr 15 14 13 12 11 10 9 8 addr 7 6 5 4 3 2 1 0 addr w90n740cd/W90N740CDG - 64 - way [31] way selection 0 = way0 is selected 1 = way1 is selected addr [30:0] the absolute address of instruction or data 7.5 ethernet mac controller (emc) the w90n740 has two ethernet mac controllers (emc ) for wan/lan applicati on. each emc has its dma controller, transmit fifo, and receive fifo. the ethernet mac controller consists of ieee 802.3/ethernet protocol engine with internal cam address register for entry address comparison, transmit-fifo, receive-fifo, tx/rx state mach ine controller and status controller. the emc supplies selectable mii (media independent interface) or rmii (reduced mii), for 10/100mbits/s phy operated with 25m/2.5m hz txclk/rxclk. the features of each emc: ? ieee 802.3 protocol engine with programmabl e mii or rmii interface for 10/100 mbits/s ? dma engine with burst mode ? 256 bytes transmit & 256 bytes receive fi fo for mac protocol engine and dma access ? built-in 16 entry cam address register ? support long frame (more than 1518 bytes) and short frame (less than 64 bytes) ? re-transmit (during collision) the frame without dma access ? half or full duplex function option ? support station management for external phy ? on-chip pad generation 7.5.1 emc descriptors buffer descriptors are used to handle the cont rol, status and data information of each received/transmitted frame. there is much info rmation contained in the descriptors. the w90n740 totally implements four registers fo r receiving and four registers for transmitting, respectively. all the registers are described below. 7.5.1.1. rx buffer descriptor (rxbd) 3 1 3 0 2 9 1 6 1 5 0 o rx status frame length data buffer starting address nat information (reserved) next descriptor starting address o: ownership bits bit [31: 30] 00 = cpu = dma w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 65 - revision a6 11 = nata 01 = undefined w90n740 emc receive dma is allowed to access current descriptor if bit 31 is set to 1 by the user driver program. if the entire frame is received su ccessfully, then the ownership bit 31 is cleared and the ownership is granted to cpu. if nata is enabled, nata is also allowed to access current descriptor and bit 30 is set to 1 by nata when nata is processing. 7.5.1.2. rx status: receive status this field is updated by emc after reception co mpleted. the detail description is on next page. frame length: received frame length this field is the size of the received frame. data buffer starting address this field is the starting address of the frame data to be received. next descriptor start address this field is the start address of the next frame descriptor. 7.5.1.3. nat information this field is reserved for mac rx to send informat ion for nat processing. for user driver program, it is forbidden to modify these bits. rx status (rxsta): receive status 29 28 27 26 25 24 hit iphit porthit inverse natfsh nop 23 22 21 20 19 18 17 16 reserved rp alie rxgd ptle reserved crce rxintr bits 29-24 are nat information for the nat accelerator, and reserved if the nata is disabled. hit: current packet is hit with nat entry table the value is 1 if current packet ip/port is in the ent ry list. if nata is disabled, the bit is reserved. 7.5.1.4. iphit: current packet is hit on ip address the value is 1 if current packet ip/port is hit in the ip address location. porthit: current packet is hit on port number the value is 1 if current packet ip/por t is hit in the port number location. inverse: current hit entry is setting on inverse mode the value is 1 if current hit entry is on inverse mode. w90n740cd/W90N740CDG - 66 - 7.5.1.5. natfsh: nat processing finish the value is 1 if current packet nat processing is finished and successful. this bit will be written while nata finish the nat processing. nop: no operation this bit indicates the packet is hit in nat tabl e but no need to be replaced by nata. this bit will be set to 1 if the packet hit the nat table and the co rresponding nop and discard bit of hit entry is 2?b10. rp: runt packet set if the received packet length is less than 64 bytes. alie: alignment error set if the frame length bits are not a multiple of eight. rxgd: receiving good packet received set if the mac successfully receives a packet with no errors. if enrxgd = 1, an interrupt is generated on each time this bit is being set. ptle: packet too long error set if a received frame longer than 1518 bytes. not set if the alp (accept long packet) bit is set. crce: crc error set if the crc at end of packet does not match the computed value, or else the phy asserts rx_er during packet reception. rxintr: interrupt on receive set if reception of packet caused an interrupt condition. this includes good received, if the enrxgd is set. nat information (reserved if disabled) 31 30 29 28 27 26 25 24 reserved tcp information 23 22 21 20 19 18 17 16 reserved uck_err tu_err nh_err ip header length 15 14 13 12 11 10 9 8 reserved hit entry number 7 6 5 4 3 2 1 0 reserved pppcaps pppoe ucks udp tcp l/w hit tcp information: urg (bit 29), ack, psh, rst, syn, fin (bit 24) the six bit values show current tcp status, and are transparent to the six bits in tcp header. the values are valid if current packet is tcp type and hit is set. uck_err: tcp/ucks error tu_err: tcp/udp error nh_err: no hit error w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 67 - revision a6 these bits records error status if nat proc essing error is occurred and are wrote by nata. (1) uck_err: tcp = 1 and ucks = 1 (2) tu_err: tcp = 1 and udp = 1 (3) nh_err: no hit error ip header length: tcp/udp header location offset the offset value lets the nat accelerator to i dentify the starting address of tcp or udp header, which is used for nat to parsing port data. the value is valid if hit is set. hit entry number: the entry number hit with the input address the value indicates which entry is hit to let nat accelerator to take corresponding data. the value is valid if hit is set. pppcaps: pppoe datagram encapsulated the value is 1 if ppp encapsulation is used (8 bits protocol field), and 0 if encapsulation is not used (16 bits protocol field). pppoe: pppoe protocol the value is 1 if the packet takes pppoe protocol in stead of ip protocol. the value is 0 if the packet takes ip protocol. ucks: udp protocol with skip checksum replacement the value is 1 if the packet takes udp protocol, and its checksum is zero. the nat accelerator will skip the checksum replacement procedure. udp: apply udp protocol it tell nat engine to apply udp protocol. the value is 1 if the packet takes udp protocol, and 0 if the packet takes non-udp protocol. the value is valid if hit is set. tcp: apply tcp protocol it tell nat engine to apply tcp protocol. the value is 1 if the packet takes tcp protocol, and 0 if the packet takes non-tcp protocol. the value is valid if hit is set. l/w: hit port; the value is 1 if internal (lan) port gets hit, and 0 if external (wan) port is hit the s/w program must specify lan port and wan por t with the two emcs. for example, emc 0 is connected to wan port, and emc 1 is connected to la n port. if nat is enabled, emc 0 is connected to external port for {ma, mp} comparison, and emc 1 is connected to internal port for {la, lp} comparison. the l/w value is 1 if the hit port is internal port, and 0 if the hit port is external port. the value is valid if hit is set. hit: current packet is hit with nat entry table the value is 1 if current packet ip/port is in the entry list. if nat is disabled, the bit is reserved. w90n740cd/W90N740CDG - 68 - tx buffer descriptor (txbd) 3 1 3 0 1 6 1 5 3 2 1 0 o i c p data buffer starting address tx status frame length next descriptor starting address o: ownership bit 0 = cpu 1 = dma w90n740 transmit dma is allowed to access current descripto r if this bit is set to ?1? by the user driver program. if the entire frame is transmitted successf ully, then the ownership bit is cleared and the ownership is granted to cpu. i: mac transmit interrupt enable after transmission complete of the frame 0 = disable 1 = enable 7.5.1.6. c: crc mode bit 0 = disable crc mode 1 = enable crc mode 7.5.1.7. p: padding mode bit 0 = disable padding mode 1 = enable padding mode data buffer starting address this field is the starting address of the frame data to be transmitted. 7.5.1.8. tx status: transmit status this field is updated by the emc after transmission. 7.5.1.9. frame length this field is the size of the transmit frame. next descriptor starting address this field is the starting addre ss of the next frame descriptor. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 69 - revision a6 tx status (txsta) 31 30 29 28 27 26 25 24 ccnt seq pau txha 23 22 21 20 19 18 17 16 lc txabt ncs exdef txcp reserved def txintr txintr: interrupt on transmit set if transmission of packet causes an interrupt condition. it includes txcp . def: transmit deferred set when mac has to defer, if mac is ready to tr ansmit a frame, because the carrier sense input is asserted before the mac gets granted to acquire the network media. txcp: transmission completion set when mac completes a transmission or discard one packet. exdef: exceed deferral set if mac deferring time to transmit exceeds 0.32768ms for 100mbit/s or 3.2768ms for 10mbit/s. ncs: no carrier sense error set if carrier sense is not detected during the entire transmission of a packet.. txabt: transmission abort set if transmitting aborted because 16 collis ions occurred in the same packet. lc: late collision set if there is collision occurs after 64 bytes collision window. txha: transmission halted transmission halted by clearing txon bit in the mcmdr . pau: paused transmit is paused by a remote flow control command. sqe: sqe error after transmitting a frame, set if the fake collisi on signal did not come from the phy for 1.6 s. ccnt: transmit collision count count of collisions during transmission of a single packet. after 16 collisions, ccnt is 1111, and txabt is set. w90n740cd/W90N740CDG - 70 - 7.5.2 emc register mapping this set of registers is used to convey status/cont rol information to/from the ethernet mac controller. these registers are used for loading commands gener ated by user, indicating transmit and receive status, buffering data to/from memory, and providi ng interrupt control. the registers used by w90n740 emc (ethernet mac controller) are divided into three groups: ? cam registers ? mac registers ? dma registers note: registers are named as xxxx_0 or xxxx_1, where xxxx_0 is the register in emc 0, and xxxx_1 is the register in emc 1. emc 0 control registers register address r/w description reset value cam registers camcmr_0 0xfff0.3000 r/w cam command register 0x0000.0000 camen_0 0xfff0.3004 r/w cam enable register 0x0000.0000 cam0m_0 0xfff0.3008 r/w cam0 most significant word register 0x0000.0000 cam0l_0 0xfff0.300c r/w cam0 least si gnificant word register 0x0000.0000 cam1m_0 0xfff0.3010 r/w cam1 most significant word register 0x0000.0000 cam1l_0 0xfff0.3014 r/w cam1 least si gnificant word register 0x0000.0000 cam2m_0 0xfff0.3018 r/w cam2 most significant word register 0x0000.0000 cam2l_0 0xfff0.301c r/w cam2 least si gnificant word register 0x0000.0000 cam3m_0 0xfff0.3020 r/w cam3 most significant word register 0x0000.0000 cam3l_0 0xfff0.3024 r/w cam3 least si gnificant word register 0x0000.0000 cam4m_0 0xfff0.3028 r/w cam4 most significant word register 0x0000.0000 cam4l_0 0xfff0.302c r/w cam4 least si gnificant word register 0x0000.0000 cam5m_0 0xfff0.3030 r/w cam5 most significant word register 0x0000.0000 cam5l_0 0xfff0.3034 r/w cam5 least si gnificant word register 0x0000.0000 cam6m_0 0xfff0.3038 r/w cam6 most significant word register 0x0000.0000 cam6l_0 0xfff0.303c r/w cam6 least si gnificant word register 0x0000.0000 cam7m_0 0xfff0.3040 r/w cam7 most significant word register 0x0000.0000 cam7l_0 0xfff0.3044 r/w cam7 least si gnificant word register 0x0000.0000 cam8m_0 0xfff0.3048 r/w cam8 most significant word register 0x0000.0000 cam8l_0 0xfff0.304c r/w cam8 least si gnificant word register 0x0000.0000 cam9m_0 0xfff0.3050 r/w cam9 most significant word register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 71 - revision a6 emc 0 control registers, continued register address r/w description reset value cam registers cam9l_0 0xfff0.3054 r/w cam9 least si gnificant word register 0x0000.0000 cam10m_0 0xfff0.3058 r/w cam10 most significant word register 0x0000.0000 cam10l_0 0xfff0.305c r/w cam10 least si gnificant word register 0x0000.0000 cam11m_0 0xfff0.3060 r/w cam11 most significant word register 0x0000.0000 cam11l_0 0xfff0.3064 r/w cam11 least si gnificant word register 0x0000.0000 cam12m_0 0xfff0.3068 r/w cam12 most significant word register 0x0000.0000 cam12l_0 0xfff0.306c r/w cam12 least si gnificant word register 0x0000.0000 cam13m_0 0xfff0.3070 r/w cam13 most significant word register 0x0000.0000 cam13l_0 0xfff0.3074 r/w cam13 least si gnificant word register 0x0000.0000 cam14m_0 0xfff0.3078 r/w cam14 most significant word register 0x0000.0000 cam14l_0 0xfff0.307c r/w cam14 least si gnificant word register 0x0000.0000 cam15m_0 0xfff0.3080 r/w cam15 most significant word register 0x0000.0000 cam15l_0 0xfff0.3084 r/w cam15 least si gnificant word register 0x0000.0000 mac registers mien_0 0xfff0.3088 r/w mac inte rrupt enable register 0x0000.0000 mcmdr_0 0xfff0.308c r/w mac command register 0x0000.0000 miid_0 0xfff0.3090 r/w mii management data register 0x0000.0000 miida_0 0xfff0.3094 r/w mii management data control and address register 0x0090.0000 mpcnt_0 0xfff0.3098 r/w missed packet counter register 0x0000.7fff dma registers txdlsa_0 0xfff0.309c r/w transmit descriptor link list start address register 0xffff.fffc rxdlsa_0 0xfff0.30a0 r/w receive descriptor link list start address register 0xffff.fffc dmarfc_0 0xfff0.30a4 r/w dma receiv e frame control register 0x0000.0800 tsdr_0 0xfff0.30a8 w transmit st art demand register undefined rsdr_0 0xfff0.30ac w receive st art demand register undefined fifothd_0 0xfff0.30b0 r/w fifo thres hold adjustment register 0x0000.0101 w90n740cd/W90N740CDG - 72 - emc 0 status registers register address r/w description reset value mac registers mista_0 0xfff0.30b4 r/w mac inte rrupt status register 0x0000.0000 mgsta_0 0xfff0.30b8 r/w mac gener al status register 0x0000.0000 mrpc_0 0xfff0.30bc r mac receive pause count register 0x0000.0000 mrpcc_0 0xfff0.30c0 r mac receive p ause current count register 0x0000.0000 mrepc_0 0xfff0.30c4 r mac remote pause count register 0x0000.0000 dma registers dmarfs_0 0xfff0.30c8 r/w dma receiv e frame status register 0x0000.0000 ctxdsa_0 0xfff0.30cc r current transmit descriptor start address register 0x0000.0000 ctxbsa_0 0xfff0.30d0 r current transmit bu ffer start address register 0x0000.0000 crxdsa_0 0xfff0.30d4 r current receive descriptor start address register 0x0000.0000 crxbsa_0 0xfff0.30d8 r current receive bu ffer start address register 0x0000.0000 emc 1 control registers register address r/w description reset value cam registers camcmr_1 0xfff0.3800 r/w cam command register 0x0000.0000 camen_1 0xfff0.3804 r/w ca m enable register 0x0000.0000 cam0m_1 0xfff0.3808 r/w cam0 most si gnificant word register 0x0000.0000 cam0l_1 0xfff0.380c r/w cam0 least si gnificant word register 0x0000.0000 cam1m_1 0xfff0.3810 r/w cam1 most si gnificant word register 0x0000.0000 cam1l_1 0xfff0.3814 r/w cam1 least signi ficant word register 0x0000.0000 cam2m_1 0xfff0.3818 r/w cam2 most si gnificant word register 0x0000.0000 cam2l_1 0xfff0.381c r/w cam2 least si gnificant word register 0x0000.0000 cam3m_1 0xfff0.3820 r/w cam3 most si gnificant word register 0x0000.0000 cam3l_1 0xfff0.3824 r/w cam3 least signi ficant word register 0x0000.0000 cam4m_1 0xfff0.3828 r/w cam4 most si gnificant word register 0x0000.0000 cam4l_1 0xfff0.382c r/w cam4 least si gnificant word register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 73 - revision a6 emc 1 control registers, continued register address r/w description reset value cam registers cam5m_1 0xfff0.3830 r/w cam5 most si gnificant word register 0x0000.0000 cam5l_1 0xfff0.3834 r/w cam5 least signi ficant word register 0x0000.0000 cam6m_1 0xfff0.3838 r/w cam6 most si gnificant word register 0x0000.0000 cam6l_1 0xfff0.383c r/w cam6 least si gnificant word register 0x0000.0000 cam7m_1 0xfff0.3840 r/w cam7 most si gnificant word register 0x0000.0000 cam7l_1 0xfff0.3844 r/w cam7 least signi ficant word register 0x0000.0000 cam8m_1 0xfff0.3848 r/w cam8 most si gnificant word register 0x0000.0000 cam8l_1 0xfff0.384c r/w cam8 least si gnificant word register 0x0000.0000 cam9m_1 0xfff0.3850 r/w cam9 most si gnificant word register 0x0000.0000 cam9l_1 0xfff0.3854 r/w cam9 least signi ficant word register 0x0000.0000 cam10m_1 0xfff0.3858 r/w cam10 most si gnificant word register 0x0000.0000 cam10l_1 0xfff0.385c r/w cam10 least si gnificant word register 0x0000.0000 cam11m_1 0xfff0.3860 r/w cam11 most si gnificant word register 0x0000.0000 cam11l_1 0xfff0.3864 r/w cam11 least signi ficant word register 0x0000.0000 cam12m_1 0xfff0.3868 r/w cam12 most si gnificant word register 0x0000.0000 cam12l_1 0xfff0.386c r/w cam12 least si gnificant word register 0x0000.0000 cam13m_1 0xfff0.3870 r/w cam13 most si gnificant word register 0x0000.0000 cam13l_1 0xfff0.3874 r/w cam13 least signi ficant word register 0x0000.0000 cam14m_1 0xfff0.3878 r/w cam14 most si gnificant word register 0x0000.0000 cam14l_1 0xfff0.387c r/w cam14 least si gnificant word register 0x0000.0000 cam15m_1 0xfff0.3880 r/w cam15 most si gnificant word register 0x0000.0000 cam15l_1 0xfff0.3884 r/w cam15 least signi ficant word register 0x0000.0000 mac registers mien_1 0xfff0.3888 r/w mac interr upt enable register 0x0000.0000 mcmdr_1 0xfff0.388c r/w ma c command register 0x0000.0000 miid_1 0xfff0.3890 r/w mii managem ent data register 0x0000.0000 miida_1 0xfff0.3894 r/w mii management data control and address register 0x0090.0000 mpcnt_1 0xfff0.3898 r/w missed packe t counter register 0x0000.7fff w90n740cd/W90N740CDG - 74 - emc 1 control registers, continued register address r/w description reset value dma registers txdlsa_1 0xfff0.389c r/w transmit descriptor link list start address register 0xffff.fffc rxdlsa_1 0xfff0.38a0 r/w receiv e descriptor link list star t address register 0xffff.fffc dmarfc_1 0xfff0.38a4 r/w dma receiv e frame control register 0x0000.0800 tsdr_1 0xfff0.38a8 w transmit st art demand register undefined rsdr_1 0xfff0.38ac w receive st art demand register undefined fifothd_1 0xfff0.38b0 r/w fifo thre shold adjustment register 0x0000.0101 emc 1 status registers register address r/w description reset value mac registers mista_1 0xfff0.38b4 r/w mac inte rrupt status register 0x0000.0000 mgsta_1 0xfff0.38b8 r/w mac gener al status register 0x0000.0000 mrpc_1 0xfff0.38bc r mac receive pause count register 0x0000.0000 mrpcc_1 0xfff0.38c0 r mac receive p ause current count register 0x0000.0000 mrepc_1 0xfff0.38c4 r mac remote pause count register 0x0000.0000 dma registers dmarfs_1 0xfff0.38c8 r/w dma receiv e frame status register 0x0000.0000 ctxdsa_1 0xfff0.38cc r current transmit descriptor start address register 0x0000.0000 ctxbsa_1 0xfff0.38d0 r current transmit bu ffer start address register 0x0000.0000 crxdsa_1 0xfff0.38d4 r current receive de scriptor start address register 0x0000.0000 crxbsa_1 0xfff0.38d8 r current receive bu ffer start address register 0x0000.0000 cam command register (camcmr_0, camcmr_1) the three accept bits in the camcmr_x are used to ov erride cam rejections or accept ion. to place the mac in promiscuous mode, use camcmr_x settings to accept packets with all three types of destination address. the three types of des tination address packets are as follows: 1. station packets, xxxxxxx0-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx 2. multicast packet, xxxxxxx1-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx. (but x not all 1) 3. broadcast packet, 11111111-11111111-11111111-11111111-11111111-11111111 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 75 - revision a6 register address r/w description reset value camcmr_0 0xfff0.3000 r/w cam command register 0x0000.0000 camcmr_1 0xfff0.3800 r/w cam command register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved ecmp ccam abp amp aup ecmp [4]: enable cam compare default value: 0 set this bit to enable compare mode. ccam [3]: complement cam default value: 0 set this bit to do complement cam compare l ogic, and data packets rejected by cam which can recognize the destination address. abp [2]: accept broadcast packet default value: 0 set this bit to accept any packet with a broadcast address. amp [1]: accept multicast packet default value: 0 set this bit to accept any pa cket with a multicast address. aup [0]: accept unicast packet default value: 0 set this bit to accept any packet with a unicast address. w90n740cd/W90N740CDG - 76 - cam enable register (camen_0, camen_1) the cam enable register, camen_x, indicates wh ich cam entries are valid, using a direct comparison mode. up to 16 entries, numbered 0 through 15, may be active, depending on the cam size. if the cam is smaller than 16 entries, the higher bits are ignored. register address r/w description reset value camen_0 0xfff0.3004 r/w ca m enable register 0x0000.0000 camen_1 0xfff0.3804 r/w ca m enable register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 cam15en cam14en cam13en cam12en cam11en cam10en cam9en cam8en 7 6 5 4 3 2 1 0 cam7en cam6en cam5en cam4en cam3en cam2en cam1en cam0en camxen (x: 15 ~ 0) [15:0] : cam enable bits default value: 0 set the bits in this 16-bit value to selectively enabl e entry locations from 0 through 15. for example, bit 0 is associated with entry cam0, and bit 1 is asso ciated with entry cam1, ?etc. to disable an entry location, clear the appropriate bit. note: the cam13en, cam14en, and cam15en has to be set for sending pause control packet . cam address registers (camxx_0, camxx_1) there are 16 entries for the desti nation address (entries 0~12) and t he pause control packet (entries 13~15). for the destination address values, one destinat ion address consists of 6 bytes with 2-word access port. to send a pause control packet, write in the register set {cam13m, cam13l} with the destination address, the {cam14m, cam14l} entry with the source address, and the {cam15m, cam15l} entry with length/type, op-code, and operand, then set the sdpz bit in the mcmdr (mac command register). the cpu uses the cam address register as a databas e for destination address. to activate the cam function, the appropriate enable bit has to be set in the camen register. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 77 - revision a6 register address r/w description reset value cam0m_0 cam0l_0 l cam15m_0 cam15l_0 0xfff0.3008 0xfff0.300c l 0xfff0.3080 0xfff0.3084 r/w cam0 most significant word register cam0 least significant word register l cam15 most significant word register cam15 least significant word register 0x0000.0000 0x0000.0000 l 0x0000.0000 0x0000.0000 cam0m_1 cam0l_1 l cam15m_1 cam15l_1 0xfff0.3808 0xfff0.380c l 0xfff0.3880 0xfff0.3884 r/w cam0 most significant word register cam0 least significant word register l cam15 most significant word register cam15 least significant word register 0x0000.0000 0x0000.0000 l 0x0000.0000 0x0000.0000 camxm (cam15m excluded) 31 30 29 28 27 26 25 24 destination address byte 6 (most significant byte) 23 22 21 20 19 18 17 16 destination address byte 5 15 14 13 12 11 10 9 8 destination address byte 4 7 6 5 4 3 2 1 0 destination address byte 3 camxl (cam15l excluded) 31 30 29 28 27 26 25 24 destination address byte 2 23 22 21 20 19 18 17 16 destination address byte 1 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved {camxm, camxl} : destination address (6 byte), with 2 by tes in camxl and 4 bytes in camxm, (cam15m and cam15l excluded). for example, if the address of entry cam 1 is des ired to store 12-34-56-78-90- 13, then the content of cam1m is 12-34-56-78, and the cont ent of cam1l is 90-13-00-00. w90n740cd/W90N740CDG - 78 - cam15m (for pause control packet) 31 30 29 28 27 26 25 24 length / type (2 bytes) (most significant byte) 23 22 21 20 19 18 17 16 length / type (2 bytes) 15 14 13 12 11 10 9 8 op-code (2 bytes) (most significant byte) 7 6 5 4 3 2 1 0 op-code (2 bytes) cam15l (for pause control packet) 31 30 29 28 27 26 25 24 operand (2 bytes) (most significant byte) 23 22 21 20 19 18 17 16 operand (2 bytes) 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved {cam15m, cam15l} entry is the length/type, op-code, and operand of the pause control frame. the length/type field is 88-08(h), and the op-code is 00-01(h). mac interrupt enable register (mien_0, mien_1) register address r/w description reset value mien_1 0xfff0.3088 r/w mac interrupt e nable register 0x0000.0000 mien_2 0xfff0.3888 r/w mac interrupt e nable register 0x0000.0000 31 30 29 28 27 26 25 24 reserved entxberr 23 22 21 20 19 18 17 16 entdu enlc entxabt enncs enexdef entxcp entxemp entxintr 15 14 13 12 11 10 9 8 reserved encfr ennaterr ennatok enrxberr enrdu enden endfo 7 6 5 4 3 2 1 0 enmmp enrp enalie enrxgd enptle enrxov encrce enrxintr w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 79 - revision a6 entxberr [24]: enable transmit bus error interrupt default value: 0 set this bit to enable the interrupt, which is generated if system bus access erro r from tx to system memory occurred. if the interrupt is triggered, the tx state machine will stay at halt state. the software reset is recommended while this interrupt occurred. entdu [23]: enable transmit descriptor unavailable interrupt default value: 0 set this bit to enable the interrupt, which is generat ed if transmit descriptors owned to the txdma is unavailable. that means, if the txdma finds the owner ship of descriptors is not belonged to txdma, it will generate an interrupt and tx operation will be c eased till the user issues a write command to transmit start demand register to restart tx operation. enlc [22]: enable late collision interrupt default value: 0 set this bit to enable the interrupt, which is gener ated if a collision occurs after 512 bit times. entxabt [21]: enable transmit abort interrupt default value: 0 set this bit to enable the interrupt, which is generated to indicate 16 collisions occur while transmitting the same packet. enncs [20]: enable no carrier sense interrupt default value: 0 set this bit to enable the interrupt, which is generat ed to indicate no carrier sense is presented during transmission. enexdef [19]: enable defer interrupt default value: 0 set this bit to enable the interrupt, which is gener ated to indicate that the defer time exceeding 0.32768ms operated at 100mbs/s or 3.2768ms operated at 10mbs/s. entxcp [18]: enable transmit completion interrupt default value: 0 set this bit to enable the interrupt, which is gener ated when the mac transmits, or discards one packet. entxemp [17]: enable transmit fifo empty interrupt default value: 0 set this bit to enable the interrupt, which is generated when mac transmit fifo becomes empty (underflow) during a packet transmission. w90n740cd/W90N740CDG - 80 - entxintr [16]: enable interrupt on transmit interrupt default value: 0 set this bit to enable the interrupt, which is generat ed if a transmission of a packet causes an interrupt condition. encfr [13]: enable control frame receive interrupt default value: 0 set this bit to enable the interrupt, which is generat ed if the incoming frame is a mac control frame. ennaterr [13]: enable nat processing error interrupt default value: 0 set this bit to enable the interrupt, which is generat ed if there is any erro r during nata do the nat processing. ennatok [12]: enable nat processing ok interrupt default value: 0 set this bit to enable the interrupt, which is gener ated if there is no erro r during nata do the nat processing. enrxberr [11]: enable receive bus error interrupt default value: 0 set this bit to enable the interrupt, which is generated if system bus access erro r from rx to system memory occurred. if the interrupt is triggered, the rx state machine will stay at halt state. the software reset is recommended while this interrupt occurred. enrdu [10]: enable receive descriptor unavailable interrupt default value: 0 set this bit to enable the interrupt, which is generat ed if receive descriptors owned to the rxdma is unavailable. that means, if the rx dma finds the ownership of descrip tors is not belonged to rxdma, it will generate an interrupt and rx operation will be c eased till the user issues a write command to receive start demand register to restart the rx operation. enden [9]: enable dma early notification interrupts default value: 0 set this bit to enable the interrupt, when the l ength field of the current frame is received. endfo [8]: enable dma receive frame over maximum size interrupt default value: 0 set this bit to enable the interrupt, when the receiv ed frame size is larger than the value stored in rxms . w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 81 - revision a6 enmmp [7]: enable more missed packets interrupt default value: 0 set this bit to enable the interrupt, which is generated when the missed error counter rolls over. enrp [6]: enable runt packet on receive interrupt default value: 0 set this bit to enable the interrupt, which is generat ed if the mac receives a frame shorter less than 64 bytes. enalie [5]: enable alignment error interrupt default value: 0 set this bit to enable the interrupt, which is generated if the frame length in bits was not a multiple of eight. enrxgd [4]: enable receive good interrupt default value: 0 set this bit to enable the interrupt, which is gener ated if a packet was successfully received with no errors. enptle [3]: enable packet too long interrupt default value: 0 set this bit to enable the interrupt, which is generated if the mac receiv ed a frame longer than 1518 bytes (unless alp in mcmdr is set). enrxov [2]: enable receive fifo overflow interrupt default value: 0 set this bit to enable the interrupt, which is generated if the mac receives fifo was full when receiving a frame. encrce [1]: enable crc error interrupt default value: 0 set this bit to enable the interrupt, which is generated if the crc at the end of a packet is not correct, or else the phy asserted rx_er during packet reception. enrxintr [0]: enable interrupt on receive interrupt default value: 0 set this bit to enable the interrupt, which is generated if the reception of a packet caused an interrupt to be generated. this includes a good received in terrupt, if the enrxgd bit is set. w90n740cd/W90N740CDG - 82 - mac command register (mcmdr_0, mcmdr_1) the mac command register provides global control information for the mac. mac command register settings affect both transmission and reception. the us er can also control transmit and receive operation separately. to select customized operating features, users should writ e this register during system initialization. this way, users will not need to write or read it again during normal operation. however, if users change setting during operation, the updated setting will take effect after the current frame is completed. register address r/w description reset value mcmdr_0 0xfff0.308c r/w mac command register 0x0000.0000 mcmdr_1 0xfff0.388c r/w mac command register 0x0000.0000 31 30 29 28 27 26 25 24 reserved reserved lan 23 22 21 20 19 18 17 16 lpcs enrmii lbk opmod enmdc fdup reserved sdpz 15 14 13 12 11 10 9 8 reserved ndef txon 7 6 5 4 3 2 1 0 reserved spcrc aep acp arp alp rxon reserved [25]: default value: 0 lan [24]: lan port setting mode default value: 0 set this bit to set this emc port as a lan port, and clear this bit to set the emc port as a wan port. the s/w program must initial an emc as a lan port, and another emc as a wan port (for example, emc 0 as a lan port and emc 1 as a wan port) to let the nat accelerator work properly. lpcs [23]: low pin count package switch always set: 0 enrmii [22]: enable rmii default value: 0 set this bit to select rmii interface. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 83 - revision a6 mac 1 bit [23:22] lpcs: enrmii mac 0 bit [23:22] lpcs *1 : enrmii mac 1 interface mac 0 interface note 00 x0 mii mii 00 x1 mii rmii 01 x0 rmii mii 01 x1 rmii rmii *1: the lpcs of mac0 bit23 is undefined, which not affect mac 0 interface. lbk [21]: loop back default value: 0 set this bit to enable mac internal loop back mode. opmod [20]: operation mode default value: 0 set this bit to enable mac to be operated at 100mb/s. clear this bit to enable mac to be operated at 10mb/s. enmdc [19]: enable mdc signal default value: 0 set this bit to enable mdc clock generation. clear this bit to disable mdc clock generation. if users want to access the mii management data, the enmdc bit should be set to enable mdc clock. fdup [18]: full duplex default value: 0 set this bit to perform the full duplex function. reserved [17]: default value: 0 sdpz [16]: send pause default value: 0 set this bit to send a pause command or other mac control packet. the sdpz bit will be automatically cleared after the mac control packet has been transmi tted. write zero to this bit has no effect. ndef [9]: no defer default value: 0 set this bit to disable defer counter. txon [8]: transmit on default value: 0 when this bit is set, the transmission process will be started. if the bit is clear, transmissions will stop after the current packet is transmitted completely. users should change the bit when the mac is in idle state. w90n740cd/W90N740CDG - 84 - spcrc [5]: accept strip crc value default value: 0 set this bit to enable mac to check the crc and then strip it from the message. aep [4]: accept error packet default value: 0 set this bit to enable mac to accept error (crc error) packet. acp [3]: accept control packet default value : 0 set this bit to enable accept control packets. arp [2]: accept runt packet default value: 0 set this bit to enable accepting frames with lengths less than 64 bytes. alp [1]: accept long packet default value: 0 set this bit to enable accepting frames with lengths greater than 1518 bytes. rxon [0]: receive on default value: 0 this bit is set to enable mac reception operation. if the bit is clear, receptions will stop after the current packet is received completely. users shoul d change the bit when the mac is in idle state. mac mii management data register (miid_0, miid_1) w90n740 provides mii management function to let user access the registers of the external physical layer device. setting opti ons in mii management registers does not affect the mac controller operation. register address r/w description reset value miid_0 0xfff0.3090 r/w mii managem ent data register 0x0000.0000 miid_1 0xfff0.3890 r/w mii managem ent data register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 miidata 7 6 5 4 3 2 1 0 miidata w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 85 - revision a6 miidata [15:0]: mii station management data this register contains a 16-bit data val ue for the mii station management function. mac mii management data control and address register (miida_0, miida_1) register address r/w description reset value miida_0 0xfff0.3094 r/w mii management data control and address register 0x00a0. 0000 miida_1 0xfff0.3894 r/w mii management data control and address register 0x00a0. 0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 mdccr mdcon presp busy wr 15 14 13 12 11 10 9 8 reserved phyad 7 6 5 4 3 2 1 0 reserved phyrad mdccr [23:20]: mdc clock rating default value: 0x009 the 4-bit value is to set the mdc clock period. mdccr [23:20] mdc clock period 0 0 0 0 4 x (1/fmclk) 0 0 0 1 6 x (1/fmclk) 0 0 1 0 8 x (1/fmclk) 0 0 1 1 12 x (1/fmclk) 0 1 0 0 16 x (1/fmclk) 0 1 0 1 20 x (1/fmclk) 0 1 1 0 24 x (1/fmclk) 0 1 1 1 28 x (1/fmclk) 1 0 0 0 30 x (1/fmclk) 1 0 0 1 32 x (1/fmclk) 1 0 1 0 36 x (1/fmclk) 1 0 1 1 40 x (1/fmclk) 1 1 0 0 44 x (1/fmclk) 1 1 0 1 48 x (1/fmclk) 1 1 1 0 54 x (1/fmclk) 1 1 1 1 60 x (1/fmclk) default mdccr [23:20] = 9 w90n740cd/W90N740CDG - 86 - users should set the mdc clock setting to meet t he phy requirement (maximum 2.5mhz). besides, the mclk (hclk) frequency ranges from 10 mhz to 150 mhz (set mdc 2.5mhz). mdcon [19]: mdc clock on always default value: 0 if this bit was set, the mdc clock will always acti ve. otherwise, the mdc clock will active only when the enmdc of mcmdr and busy of miida are both se t. in other words, the mdc clock will be turned off after the station management command finished. this bit is only for debug. presp [18]: preamble suppress default value: 0 if this bit is set, then the pr eamble is not sent to phy. busy [17]: busy bit default value: 0 set this bit to start a mii management read or wr ite-operation. the mac controller clears this bit automatically when the operation is completed. wr [16]: write/read default value: 0 set this bit for a mii management write-operation. reset the bit for a read operation. phyad [12:8]: phy address default value: 0 the 5-bit address is the phy device address to be accessed. phyrad [4:0]: phy register address default value: 0 the 5-bit address is the register address contained in the phy to be accessed. the miida register is used to specify the c ontrol function and the data message passing for the external physical layer device (p hy). the detail protocol and ti mings for the read and the write operation, respectively, of the mii management functi on are illustrated as the figure below. each bit in the management data frame (mdio) are synchronized at the rising edge of the mii management clock (mdc). mii management protocol mii management protocol access preamble start operation phyaddr phyregaddr ta data idle read 1?. 1 01 10 aaaaa rrrrr z0 16 bits z write 1?. 1 01 01 aaaaa rrrrr 10 16 bits z w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 87 - revision a6 mac missed packet count register (mpcnt_0, mpcnt_1) the value in the mac missed packet count register (m pcnt) indicates the number of packets that were discarded due to various types of errors. together with status information on packets transmitted and received, the mpcnt and these two pause count registers provi de the information required for station management. users can read the mpcnt to get current missed packet counter value and clears the register (read clear). it is the responsibility of software to mainta in a global count with more bits of precision. however, users can write the mpcnt to set the initial value of c ounter overflow and start to count. the counter overflow value ranges from 0x0000 to 0xffff (default value: 0x7fff). it sets the corresponding bit (mmp) in the mista and generates an interrupt if overflow is occurred and the corresponding interrupt enable bit is set. register address r/w description reset value mpcnt_0 0xfff0.3098 r/w missed packe t counter register 0x0000.7fff mpcnt_1 0xfff0.3898 r/w missed packe t counter register 0x0000.7fff 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 mpcnt 7 6 5 4 3 2 1 0 mpcnt mpcnt [15:0]: mac missed packet count default value: 0x7fff it indicates the number of packets that were discarded due to various types of errors. this counter indicates the following kinds of error: dribbling bits error count (aecnt): the number of packets received with alignment errors. the counter will be increment at the end of packe t reception if the mista indicates the alignment errors. frame discarded error count (rxfdcnt): the number of packets discarded by mac because of receive fifo overflows, or because the rxon bit is cleared. this count does not include the number of packets rejected by the cam. crc error count (cecnt): the number of packets received with a crc error. the counter will be increment at the end of packet reception if the mista indicates the crc errors. w90n740cd/W90N740CDG - 88 - dma transmit descriptor link-list start address register (txdlsa_0, txdlsa_1) register address r/w description reset value txdlsa_0 0xfff0.309c r/w transmit descriptor link-list start address register 0xffff.fffc txdlsa_1 0xfff0.389c r/w transmit descriptor link-list start address register 0xffff.fffc 31 30 29 28 27 26 25 24 txdlsa 23 22 21 20 19 18 17 16 txdlsa 15 14 13 12 11 10 9 8 txdlsa 7 6 5 4 3 2 1 0 txdlsa txdlsa [31:0]: dma transmit descriptor link list start address default value: 0xffff.fffc this register defines the transmit descriptor lin k list start address for transmission process. while software first turn on txdma after the hardware reset or software reset, the content of this register will be loaded into the current transmit descriptor start address. the value of this register will not be updated during any hardware operation. t he system would ignore the least 2 significant bits to fit word alignment. dma receive descriptor link list start address register (rxdlsa_0, rxdlsa_1) register address r/w description reset value rxdlsa_0 0xfff0.30a0 r/w receive descriptor link list start address register 0xffff.fffc rxdlsa_1 0xfff0.38a0 r/w receive descriptor link list start address register 0xffff.fffc 31 30 29 28 27 26 25 24 rxdlsa 23 22 21 20 19 18 17 16 rxdlsa 15 14 13 12 11 10 9 8 rxdlsa 7 6 5 4 3 2 1 0 rxdlsa w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 89 - revision a6 rxdlsa [31:0]: dma receive descriptor link list start address default value: 0xffff.fffc this register defines the receive descriptor link lis t start address for frame reception process. while software first turn on rxdma after the hardware reset or software reset, the content of this register will be loaded into the current receive descriptor start address. the value of this register will not be updated during any hardware operation. t he system would ignore the least 2 significant bits to fit word alignment. dma receive frame control register (dmarfc_0, dmarfc_1) register address r/w description reset value dmarfc_0 0xfff0.30a4 r/w dma receiv e frame control register 0x0000.0800 dmarfc_1 0xfff0.38a4 r/w dma receiv e frame control register 0x0000.0800 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 rxms 7 6 5 4 3 2 1 0 rxms rxms [15:0]: dma receive frame maximum size default value: 0800h this value controls the maximum bytes for a rece ived frame can be saved to memory. if the received frame size exceeds the value stored in this location and the endfo is set, an error interrupt is reported. the default maximum size is 2k bytes. w90n740cd/W90N740CDG - 90 - transmit start demand register (tsdr_0, tsdr_1) register address r/w description reset value tsdr_0 0xfff0.30a8 w transmit st art demand register undefined tsdr_1 0xfff0.38a8 w transmit st art demand register undefined 31 30 29 28 27 26 25 24 tsdr 23 22 21 20 19 18 17 16 tsdr 15 14 13 12 11 10 9 8 tsdr 7 6 5 4 3 2 1 0 tsdr tsdr [31:0]: transmit start demand register default value: undefined while the transmit descriptor is unavailable, the tx st ate machine will enter halt state. the user has to issue a write command with any data to transmit star t demand register to restart the tx operation. only while tx state machine stay at halt state, the write command to transmit start demand register can affect the tx operation. receive start demand register (tsdr_0, tsdr_1) register address r/w description reset value rsdr_0 0xfff0.30ac w receive st art demand register undefined rsdr_1 0xfff0.38ac w receive st art demand register undefined 31 30 29 28 27 26 25 24 rsdr 23 22 21 20 19 18 17 16 rsdr 15 14 13 12 11 10 9 8 rsdr 7 6 5 4 3 2 1 0 rsdr rsdr [31:0]: receive start demand register default value: undefined while the receive descriptor is unava ilable, the rx state machine will ent er halt state. the user has to issue a write command with any data to receive star t demand register to restart the rx operation. only while rx state machine stay at halt state, the write command to receive start demand register can affect the rx operation. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 91 - revision a6 fifo threshold adjustment register (fifothd_0, fifothd_1) register address r/w description reset value fifothd_0 0xfff0.30b0 r/w fifo thre shold adjustment register 0x0000.0101 fifothd_1 0xfff0.38b0 r/w fifo thre shold adjustment register 0x0000.0101 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved blength reserved swr 15 14 13 12 11 10 9 8 reserved txthd 7 6 5 4 3 2 1 0 reserved rxthd blength [21:20]: dma burst length default value: 0h value setting: 00b: 4 beats 01b: 8 beats 10b: 16 beats 11b: 16 beats swr [16]: software reset default value: 0h software reset. after a reset is complete, t he mac controller will clear the swr reset bit. txthd [9:8]: transmit fifo lower threshold register default value: 1h value setting: 00b: forbidden 01b: 32 bytes (i.e. high threshold 64 bytes) 10b: 64 bytes (i.e. high threshold 128 bytes) 11b: 96 bytes (i.e. high threshold 192 bytes) this value controls the transmit fifo low thre shold. if transmitting packet number is less than the setting value, tx dma will request the arbiter to get data from memory. w90n740cd/W90N740CDG - 92 - rxthd [1:0]: receive fifo upper threshold register default value: 1h value setting: 00b: depend on the burst length setting 01b: 64 bytes (i.e. low threshold 32 bytes) 10b: 128 bytes (i.e. low threshold 64 bytes) 11b: 192 bytes (i.e. low threshold 96 bytes) this value controls the receive fifo high thres hold. if receiving packet number is greater than the setting value, rx dma will request the arbiter to send data into memory. mac interrupt status register (mista_0, mista_1) the mac event register is used as the ethernet ev ent register to generate interrupts and report events recognized by mac controller. when an event is recognized, the mac controller sets the corresponding mista bit. interrupts are enabled by se tting, and masked by clearing, the equivalent bits in the mac interrupt enable register (mien) . the mista bits are cleared by write ones; writing zeros has no effect. register address r/w description reset value mista_0 0xfff0.30b4 r/w mac inte rrupt status register 0x0000.0000 mista_1 0xfff0.38b4 r/w mac inte rrupt status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved txberr 23 22 21 20 19 18 17 16 tdu lc txabt ncs exdef txcp txemp txintr 15 14 13 12 11 10 9 8 reserved cfr naterr natok rxberr rdu deni dfoi 7 6 5 4 3 2 1 0 mmp rp alie rxgd ptle rxov crce rxintr txberr [24]: transmit bus error interrupt default value: 0 this field will be set if access error from emc to memory (for example, addr ess undefined in system) is occurred. if the status and entxberr in mien are both set, the emc_txint will be triggered. if the status is set, the tx operation will be ceased and t he software reset to reset the emc is recommended. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 93 - revision a6 tdu [23]: transmit descriptor unavailable interrupt default value: 0 this field will be set if the transmit descriptors owned to the txdma is unavailable. if the status and entdu in mien are both set, the emc_txint will be triggered. when it is set, the txdma operation will be ceased till the user issues a write command to tr ansmit start demand register to restart the tx operation. lc [22]: late collision default value: 0 this bit will be set if a collision occurs after 512 bit times. txabt [21]: transmit abort default value: 0 the bit is set to indicate 16 collisions occur while transmitting the same packet. ncs [20]: no carrier sense default value: 0 set to indicate no carrier sens e is presented during transmission. exdef [19]: defer default value: 0 this bit is set to indicate that defer t ime exceeding 0.32768ms operat ed at 100mbs/s and 3.2768ms operated at 10mbs/s. when the enexdef in mien is set, the internal 15-bi t counter will automatically count the deferred bit time and generate in terrupt when the counter overflows. txcp [18]: transmit completion default value: 0 this bit is set when the mac transmits, or discards one packet. txemp [17]: transmit fifo empty default value: 0 set when mac transmitting fifo becomes em pty (underflow) during a packet transmission. txintr [16]: interrupt on transmit default value: 0 this bit is set if transmission of a packet caused an interrupt condition. cfr [14]: control frame receive default value: 0 this field will be set if the incoming fr ame is a mac control frame (type==8808h). w90n740cd/W90N740CDG - 94 - naterr [13]: nat processing error default value: 0 this field will be set if there is any error during nata do the nat processing. if the status and ennaterr in mien are both set, the emc_rxint will be triggered. natok [12]: nat processing ok default value: 0 this field will be set if there is no error during na ta do the nat processing. if the status and ennatok in mien are both set, the emc_rxint will be triggered. rxberr [11]: receive bus error interrupt default value: 0 this field will be set if the access error from emc to memory (for example, address undefined in system) is occurred. if the status and enberr in mien are both set, the emc_rxint will be triggered. if the status is set, the rx operation will be ceased and softw are reset to reset the emc is recommended. rdu [10]: receive descriptor unavailable interrupt default value: 0 this field will be set if the receive descriptors owned to the rxdma is unavailable. if the status and enrdu in mien are both set, the emc_rxint will be trigger ed. when the status is set, the rxdma operation will be ceased till the user issues a write co mmand to receive start demand register to restart rx operation. deni [9]: dma early notification interrupt default value: 0 if enden is reset, an interrupt will be generated when the l ength field of the current frame is received. dfoi [8]: dma receive frame over maximum size interrupt default value: 0 if endfo is set, an interrupt will be generated when the re ceived frame size is larger than the value stored in rxms . mmp [7]: more missed packets than miss rolling over counter flag default value: 0 this bit is automatically set when the missed error counter rolls over. rp [6]: runt packet default value: 0 this bits is set, it indicates that the received pa cket length is less than 64 bytes (unless arp in mcmdr is set). w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 95 - revision a6 alie [5]: alignment error default value: 0 this bit is set if the frame length in bits was not a multiple of eight. rxgd [4]: receive good default value: 0 this bit is set if a packet was successfully received with no errors. ptle [3]: packet too long error default value: 0 this bit is set if the mac received a frame l onger than 1518 bytes (unless alp in mcmdr is set). rxov [2]: receive fifo overflow error default value: 0 this bit is set if the mac receives fifo was overflow when receiving a frame. crce [1]: crc error default value: 0 this bit is set if the crc at the end of a packet is not correct, or else the phy asserted rx_er during packet reception. rxintr [0]: interrupt on receive default value: 0 this bit is set if the reception of a packet c aused an interrupt to be generated. this includes a good received interrupt, if the enrxgd bit in mien is set. mac general status regist er (mgsta_0, mgsta_1) register address r/w description reset value mgsta_0 0xfff0.30b8 r/w mac gener al status register 0x0000.0000 mgsta_1 0xfff0.38b8 r/w mac gener al status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved txha sqe pau def 7 6 5 4 3 2 1 0 ccnt reserved rxha cfr w90n740cd/W90N740CDG - 96 - all the mgsta bits are write ones clear. txha [11]: transmission halted default value: 0 set to indicate that the transmission is halt by clearing the txon bit. sqe [10]: signal quality error default value: 0 set to indicate a sqe. pau [9]: pause bit default value: 0 set when transmission was delayed due to a remote pause command. def [8]: deferred transmission default value: 0 this bit is set to indicate the network is busy. ccnt [7:4]: collision count default value: 0 four bits counter to indicate the number of co llisions occurred before the frame is transmitted. rxha [1]: reception halted default value: 0 this bit is set if reception is halted by clear ing rxon bit in the mac command register (mcmdr). cfr [0]: control frame received default value: 0 this bit is set if (1) the packet received is a mac control frame (type = 8808h), (2) if the cam recognizes the packet address, and (3) if the frame length is 64 bytes. mac received pause count register (mrpc_0, mrpc_1) the received pause count register, mrpc , stores the value of the 16-bit received pause counter. it is read only. register address r/w description reset value mrpc_0 0xfff0.30bc r mac receive pause count register 0x0000.0000 mrpc_1 0xfff0.38bc r mac receive pause count register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 97 - revision a6 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 mrpc 7 6 5 4 3 2 1 0 mrpc mrpc [15:0]: mac received pause count register default value: 0 the count value indicates the number of time sl ots the transmitter was paused due to the receipt of control pause operation packets from the mac. mac received pause current count register (mrpcc_0, mrpcc_1) the received pause current count register, mrpcc , stores the current value of the 16-bit received pause counter. it is read only. register address r/w description reset value mrpcc_0 0xfff0.30c0 r mac receive p ause current count register 0x0000.0000 mrpcc_1 0xfff0.38c0 r mac receive p ause current count register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 mrpc 7 6 5 4 3 2 1 0 mrpc mrpc [15:0]: mac received pause count register default value: 0 the count value indicates the number of ti me slots the transmitter was paused due to the receipt of control pause operation packets from the mac. w90n740cd/W90N740CDG - 98 - mac remote pause count register (mrepc_0, mrepc_1) the remote pause count register, mrepc, stores the current value of the remote pause counter. it is read only. register address r/w description reset value mrepc_0 0xfff0.30c4 r mac remote pause count register 0x0000.0000 mrepc_1 0xfff0.38c4 r mac remote pause count register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 mrepc 7 6 5 4 3 2 1 0 mrepc mrepc [15:0]: mac remote pause count register default value: 0 the count value indicates the number of time slots that a remote mac was paused as a result of its sending control pause operation packets. dma receive frame status regi ster (dmarfs_0, dmarfs_1) register address r/w description reset value dmarfs_0 0xfff0.30c8 r/w dma receiv e frame status register 0x0000.0000 dmarfs_1 0xfff0.38c8 r/w dma receiv e frame status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 rxfs 7 6 5 4 3 2 1 0 rxfs w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 99 - revision a6 rxfs [15:0]: dma receive frame length default value: 0000h when an early notification interrupt occurs, the frame length/type field contains the size of the frame that is currently being received, and stores in rxfs . to save space in the frame memory buffer, us ers can determine the current frame length by : 1. enable the early notif ication interrupt (set enden bit in mien ) 2. read the rxfs field when the interrupt occurs note: all the dmarfs bits are cleared by wr ite ones; writing zeros has no effect. current transmit descriptor start a ddress register (ctxdsa_0, ctxdsa_1) register address r/w description reset value ctxdsa_0 0xfff0.30cc r current transmit descriptor start address register 0x0000.0000 ctxdsa_1 0xfff0.38cc r current transmit descriptor start address register 0x0000.0000 31 30 29 28 27 26 25 24 ctxdsa 23 22 21 20 19 18 17 16 ctxdsa 15 14 13 12 11 10 9 8 ctxdsa 7 6 5 4 3 2 1 0 ctxdsa ctxdsa [31:0]: current transmit descriptor start address default value: 0000h this register reports the start address of the current transmit descriptor used by emc. w90n740cd/W90N740CDG - 100 - current transmit buffer start addr ess register (ctxbsa_0, ctxbsa_1) register address r/w description reset value ctxbsa_0 0xfff0.30d0 r current transmit bu ffer start address register 0x0000.0000 ctxbsa_1 0xfff0.38d0 r current transmit bu ffer start address register 0x0000.0000 31 30 29 28 27 26 25 24 ctxbsa 23 22 21 20 19 18 17 16 ctxbsa 15 14 13 12 11 10 9 8 ctxbsa 7 6 5 4 3 2 1 0 ctxbsa ctxbsa [31:0]: current transmit buffer start address default value: 0000h this register reports the start address of the current transmit buffer used by emc. current receive descriptor start addr ess register (crxdsa_0, crxdsa_1) register address r/w description reset value crxdsa_0 0xfff0.30d4 r current receive descriptor start address register 0x0000.0000 crxdsa_1 0xfff0.38d4 r current receive descriptor start address register 0x0000.0000 31 30 29 28 27 26 25 24 crxdsa 23 22 21 20 19 18 17 16 crxdsa 15 14 13 12 11 10 9 8 crxdsa 7 6 5 4 3 2 1 0 crxdsa crxdsa [31:0]: current receive descriptor start address default value: 0000h this register reports the start address of the current receive descriptor used by emc. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 101 - revision a6 current receive buffer start address register (crxbsa_0, crxbsa_1) register address r/w description reset value crxbsa_0 0xfff0.30d8 r current receive bu ffer start address register 0x0000.0000 crxbsa_1 0xfff0.38d8 r current receive bu ffer start address register 0x0000.0000 31 30 29 28 27 26 25 24 crxbsa 23 22 21 20 19 18 17 16 crxbsa 15 14 13 12 11 10 9 8 crxbsa 7 6 5 4 3 2 1 0 crxbsa crxbsa [31:0]: current receive buffer start address default value: 0000h this register reports the start address of the current receive buffer used by emc. 7.6 network address translation accelerator (nata) the network address translation accelerator (nat a) provides hardware acceleration function to enhance the ip address and port number translation. an inside (local/lan) ip address is mapped to an outside (global/wan) ip address, meaning that an inside ip address is replaced by the appropriate outside ip address, and vice versa. when the netwo rk is connected and sw users can use nata on w90n740 to speed up fixed (static) address trans lation and reduce software loading on processing layer-3 ip replacement. the nata has 64 entries for users to initial replacement ip content and cooperate the 2 emc ports to do nat. the features of the nata ? hardware acceleration on ip address / port number look up and replacement for network address ? translation, including mac address translation ? provide 64 entries of translation table ? support tcp / udp packets w90n740cd/W90N740CDG - 102 - 7.6.1 nat process flow nat process flow while emc port get valid mac packets and store them in memory, it check if {ip, port} hit, and update descriptors rx: look up nat table process : 1. parsing ip address 2. according ip header length jump to tcp/udp header 3. parsing tcp/udp port number 4. compare {ip address, port number} with nat table content rx triggers nat processing no no nat processing nat hit? yes nata begins ip address (or port number) replacement process : 1. the ip address in the ip header is replaced with new inside or outside ip address 2. the port number in the tcp/udp header is replaced with new port number 3. recalculate the ip checksum 4. recalculate the tcp/udp checksum rx send interrupt (if rx interrupt is enabled) nata do mac address replacement process : replace mac 0 and mac 1 address in the mac header hit or not, hit message in descriptor nata exit nat process w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 103 - revision a6 7.6.2 nata registers map this set of registers is used to convey status /control information to/from the nat engine. these registers are used for loading commands generated by user, indicating network translation status, and providing interrupt control. the registers used by w90n740 nata c ontroller are divided into two groups: ? nata control and status registers ? address look up and replacement entry registers register offset r/w description reset value nata control and status registers natcmd 0xfff0.6000 r/w nat command register 0x0000.0000 natcclr0 0xfff0.6010 w nat count er 0 clear register 0x0000.0000 natcclr1 0xfff0.6014 w nat count er 1 clear register 0x0000.0000 natcclr2 0xfff0.6018 w nat count er 2 clear register 0x0000.0000 natcclr3 0xfff0.601c w nat count er 3 clear register 0x0000.0000 natcfg0 0xfff0.6100 r/w nat entry 0 configuration r egister 0x0000.0000 natcfg1 0xfff0.6104 r/w nat entry 1 configuration r egister 0x0000.0000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . natcfg63 0xfff0.61fc r/w nat entry 63 configuration register 0x0000.0000 exmacm 0xfff0.6200 r/w external mac address most significant word register 0x0000.0000 exmacl 0xfff0.6204 r/w external mac address least significant word register 0x0000.0000 inmacm 0xfff0.6208 r/w internal mac address most significant word register 0x0000.0000 inmacl 0xfff0.620c r/w internal mac address least significant word register 0x0000.0000 w90n740cd/W90N740CDG - 104 - register offset r/w description reset value address lookup and replacement registers masad0 0xfff0.6800 r/w nat masqueradi ng ip address entry 0 0x0000.0000 maspn0 0xfff0.6804 r/w nat masqueradi ng port number entry 0 0x0000.0000 lsad0 0xfff0.6808 r/w local stati on ip address entry 0 0x0000.0000 lspn0 0xfff0.680c r/w local stati on port number entry 0 0x0000.0000 lsmac0m 0xfff0.6810 r/w local station mac address most significant word register for entry 0 0x0000.0000 lsmac0l 0xfff0.6814 r/w local station mac address least significant word register for entry 0 0x0000.0000 rsmac0m 0xfff0.6818 r/w remote station mac address most significant word register for entry 0 0x0000.0000 rsmac0l 0xfff0.681c r/w remote station mac address least significant word register for entry 0 0x0000.0000 masad1 0xfff0.6820 r/w nat masqueradi ng ip address entry 1 0x0000.0000 maspn1 0xfff0.6824 r/w nat masqueradi ng port number entry 1 0x0000.0000 lsad1 0xfff0.6828 r/w local stati on ip address entry 1 0x0000.0000 lspn1 0xfff0.682c r/w local stati on port number entry 1 0x0000.0000 lsmac1m 0xfff0.6830 r/w local station mac address most significant word register for entry 1 0x0000.0000 lsmac1l 0xfff0.6834 r/w local station mac address least significant word register for entry 1 0x0000.0000 rsmac1m 0xfff0.6838 r/w remote station mac address most significant word register for entry 1 0x0000.0000 rsmac1l 0xfff0.683c r/w remote station mac address least significant word register for entry 1 0x0000.0000 . . . . . . . . . . . . . . . . . . . . masad63 0xfff0.6fe0 r/w nat masquerading ip address entry 63 0x0000.0000 maspn63 0xfff0.6fe4 r/w nat masqueradi ng port number entry 63 0x0000.0000 lsad63 0xfff0.6fe8 r/w local station ip address entry 63 0x0000.0000 lspn63 0xfff0.6fec r/w local stati on port number entry 63 0x0000.0000 lsmac63m 0xfff0.6ff0 r/w local station mac address most significant word register for entry 63 0x0000.0000 lsmac63l 0xfff0.6ff4 r/w local station mac address least significant word register for entry 63 0x0000.0000 rsmac63m 0xfff0.6ff8 r/w remote station mac address most significant word register for entry 63 0x0000.0000 rsmac63l 0xfff0.6ffc r/w remote station mac address least significant word register for entry 63 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 105 - revision a6 nat command register (natcmd) the nat function is enabled by software setting na ten, and auto triggered by emc rx if current packet is hit. s/w will get hit status from rx descriptors when current packet is receiving, and processed by nata, if it is hit. writing ones in natcmd can start nat f unction, or clear entry counters. register address r/w description reset value natcmd 0x7ff06000 r/w nat command register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved naten naten [0]: nat enable bit default value: 0 set this bit to start nat function. the emc rx will begin packet parsing and lookup procedure if this bit is set. clear this bit will stop all nat operations. nat counter x clear register (natcclrx)(x: 3 ~ 0) register address r/w description reset value natcclr0 | natcclr3 0x7ff06010 | 0x7ff0601c w nat counter 0 clear register | nat counter 3 clear register 0x0000.0000 | 0x0000.0000 w90n740cd/W90N740CDG - 106 - 7.6.2.1. natcclr0 31 30 29 28 27 26 25 24 clreh15 clreh14 clreh 13 clreh12 clreh11 clreh10 clreh 9 clreh 8 23 22 21 20 19 18 17 16 clreh 7 clreh 6 clreh 5 clreh 4 clreh 3 clreh 2 clreh 1 clreh 0 15 14 13 12 11 10 9 8 clrcnt15 clrcnt14 clrcnt 13 clrcnt12 clrcnt11 cl rcnt10 clrcnt9 clrcnt8 7 6 5 4 3 2 1 0 clrcnt7 clrcnt6 clrcnt 5 clrcnt4 clrcnt3 cl rcnt2 clrcnt1 clrcnt0 7.6.2.2. natcclr1 31 30 29 28 27 26 25 24 clreh31 clreh30 clre h29 clreh28 clreh27 clreh26 clreh25 clreh24 23 22 21 20 19 18 17 16 clreh23 clreh22 clre h21 clreh20 clreh19 clreh18 clreh17 clreh16 15 14 13 12 11 10 9 8 clrcnt31 clrcnt30 clrcnt 29 clrcnt28 clrcnt27 cl rcnt26 clrcnt25 clrcnt24 7 6 5 4 3 2 1 0 clrcnt23 clrcnt22 clrcnt 21 clrcnt20 clrcnt19 cl rcnt18 clrcnt17 clrcnt16 7.6.2.3. natcclr2 31 30 29 28 27 26 25 24 clreh47 clreh46 clre h45 clreh44 clreh43 clreh42 clreh41 clreh40 23 22 21 20 19 18 17 16 clreh39 clreh38 clre h37 clreh36 clreh35 clreh34 clreh33 clreh32 15 14 13 12 11 10 9 8 clrcnt47 clrcnt46 clrcnt 45 clrcnt44 clrcnt43 cl rcnt42 clrcnt41 clrcnt40 7 6 5 4 3 2 1 0 clrcnt39 clrcnt38 clrcnt 37 clrcnt36 clrcnt35 cl rcnt34 clrcnt33 clrcnt32 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 107 - revision a6 7.6.2.4. natcclr3 31 30 29 28 27 26 25 24 clreh63 clreh62 clre h61 clreh60 clreh59 clreh58 clreh57 clreh56 23 22 21 20 19 18 17 16 clreh55 clreh54 clre h53 clreh52 clreh51 clreh50 clreh49 clreh48 15 14 13 12 11 10 9 8 clrcnt63 clrcnt62 clrcnt 61 clrcnt60 clrcnt59 cl rcnt58 clrcnt57 clrcnt56 7 6 5 4 3 2 1 0 clrcnt55 clrcnt54 clrcnt 53 clrcnt52 clrcnt51 cl rcnt50 clrcnt49 clrcnt48 clrehx (x: 63 ~ 0) [31:16]: entry x hit counter clear bit default value: 0 set the appropriate bit to clear the corresponding entry x hit counter (ehcntx); writing zero to the bit has no effect. about the usage of ehcnt x, please see details in natcfgx. clrcntx (x: 63 ~ 0) [15:0]: nata entry x counter clear bit default value: 0 set the appropriate bit to clear the corresponding entry counter (cntx); writing zero to the bit has no effect. about the usage of cntx, please see details in natcfgx. nat entry x configuration registers (natcfgx)(x: 63 ~ 0) all nat configuration registers, natcfgx, include enable switches to control ip address and port number comparison, or replacement. further, additional inverse (i) bit to control source address (sa) or destination address (da) comparison. the nat func tion is enabled if either of entry enable bits is set, else the nat function is disabled. for some special applications, the user can re set the port comparison enable bits to ignore port comparison and do only ip address comparison. the entry count field, cntx, is read by s/w to determine when to change ei ther entry data without miss hit packet processing. if s/w program wants to change some entry data, s/w program has to disable the selected entry and monitor corresponding cntx till the value is 0, then it is acceptable to change new entry data. otherwise there may be an error condition occurred, for example, when s/w program has changed entry data, but the previous hit packet is being processed, and cannot find replacement data. register address r/w description reset value natcfg0 | natcfg63 0x7ff06100 | 0x7ff061fc r/w | r/w nat entry 0 configuration register | nat entry 63 configuration register 0x0000.0000 | 0x0000.0000 w90n740cd/W90N740CDG - 108 - 31 30 29 28 27 26 25 24 ehcntx 23 22 21 20 19 18 17 16 ehcntx 15 14 13 12 11 10 9 8 reserved cntx 7 6 5 4 3 2 1 0 nop discard inverse pxre axre pxce axce exen 7.6.2.5. ehcntx [31:16]: counter of packets hit with entry x default value: 0 the register is read-only, to indica te that how many packets are hit with entry x. when a new packet is hit with entry x, the corresponding ehcntx, will incr ease. the value can be reset to zero by writing one to corresponding clrehx in natcclr register. 7.6.2.6. cntx [10:8]: number of entry x hit packets to be processed default value: 0x0 the register is read-only, to indica te that how many packet is hit wi th entry x and still not processed by nat. when a new packet is hit with entry x, the corresponding entry counter, cntx, will increase. on the other hand, when a packet hit with entry x is process, the corresponding cntx will be decrease. nop [7]: packet nop bit default value: 0 set this bit to receive current hit packet as us ual. the rx descriptor will be updated for this packet and set the nop bit in descriptor. this bit will be valid while discard[6]=0. discard [6]: packet discard bit default value: 0 set this bit to automatically discard current hi t packet. the rx descriptor will not be updated for this packet. it is applicable for ip filter. inverse [5]: inverse comparison and replacement bit default value: 0 set this bit to change comparison and replacement fi eld in packets. for example, at the wan port, destination address and port {da, dp} is compared for in verse bit (i bit) clear. if i bit is set, source address and port {sa, sp} is compared instead of {da, dp}. it is applicable for ip filter. pxre [4]: port number replacement enable at entry x default value: 0 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 109 - revision a6 set the bits to selectively enable port number replacem ent at the entry location. this bit is valid when exen is set. axre [3]: ip address replacement enable at entry x default value: 0 set the bits to selectively enable ip address replacem ent at the entry location. this bit is valid when exen is set. pxce [2]: port number comparison enable at entry x default value: 0 set the bits to selectively enable port number comparis on at the entry location. this bit is valid when exen is set. axce [1]: ip address comparison enable at entry x default value: 0 set the bits to selectively enable ip address comparis on at the entry location. this bit is valid when exen is set. exen [0]: entry x comparison enable bit default value: 0 set the bits to selectively enable entry location co mparison. to disable an entry location, clear the appropriate bit. if s/w wants to change some entry data, it has to disabl e the selected entry and monitor corresponding cntx till the value is 0, t hen it is acceptable to change new entry data. nat entry configuration register (natcfgx) application note: ma: masquerading ip address mp: masquerading port number la: local mapping ip address lp: local mapping port number sa: (ip) address at source field sp: port number at source field da: (ip) address at destination field dp: port number at destination field data content in the nata table field 0 field 1 field 2 field 3 entry 0 ma 0 mp 0 la 0 lp 0 entry 1 ma 0 mp 0 la 0 lp 0 ?. ?. ?. ?. ?. entry 15 ma 15 mp 15 la 15 lp 15 w90n740cd/W90N740CDG - 110 - nata comparison and replacement table at different port inverse bit is reset inverse bit is set comparison replacement comparison replacement da with ma (if axce set) da with la (if axre set) sa with ma (if axce set) sa with la (if axre set) wan port (for receiving external packets) dp with mp (if pxce set) dp with lp (if pxre set) sp with mp (if pxce set) sp with lp (if pxre set) sa with la (if axce set) sa with ma (if axre set) da with la (if axce set) da with ma (if axre set) lan port (for receiving local station packets) sp with lp (if pxce set) sp with mp (if pxre set) dp with lp (if pxce set) dp with mp (if pxre set) 7.6.2.7. possible settings for differe nt applications, only for reference axce pxce axre pxre i bit description nat with port comparison 1 1 1 1 0 comparison ip address and port number nat without port comparison 1 0 1 0 0 comparison ip address ip filter 1 1 0 0 1 the s/w program can discard the hit packets for filtering there are still some restrictions of configur ation table above. it cannot be replaced the address or port without compare them first. mac address registers (exmacm, exmacl, inmacm, inmacl, lsmacxm, lsmacxl, rsmacxm, rsmacxl) the mac address registers are to store the mac address of each emc port. when the nata is enabled and corresponding entry is hit, the mac address trans lation from one port to another port must be done by hardwire, instead of by softwar e. thus the user must set the mac address of each port for nat to translate. {exmacm, exmacl (inmacm, inmacl)}: mac address (6 bytes), with 2 bytes in exmacl (inmacl) and 4 bytes in exmacm (inmacm) {lsmacxm, lsmacxl (rsmacxm, rsmacxl)}: mac address (6 bytes), with 2 bytes in lsmacxl (rsmacxl) and 4 bytes in lsmacxm (rsmacxm) for example, if the external mac address is desired to store 12- 34-56-78-90-13, then the content of exmacm is 12-34-56-78, and the cont ent of exmacl is 90-13-00-00. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 111 - revision a6 7.6.2.8. exmacm, inmacm, lsmacxm, rsmacxm 31 30 29 28 27 26 25 24 address byte 6 (most significant byte) 23 22 21 20 19 18 17 16 address byte 5 15 14 13 12 11 10 9 8 address byte 4 7 6 5 4 3 2 1 0 address byte 3 exmacl, inmacl, lsmacxl, rsmacxl 31 30 29 28 27 26 25 24 destination address byte 2 23 22 21 20 19 18 17 16 destination address byte 1 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved nat masquerading ip address registers (masadx) (x : 15 ~ 0) nat masquerading port number registers (maspnx) (x : 15 ~ 0) local station ip address registers (lsadx) (x : 15 ~ 0) local station port number registers (lspnx) (x : 15 ~ 0) the {masadx, maspnx} is represented for the outside ip address and the port number. the {lsadx, lspnx} is represented for the internal ip address and the port number. a private network is set up with its own public ip address (masadx) and port number (maspnx) for external access. it means that when a local st ation wants to sent a packet outside via the nat module, the packet is transmitted to external mac port with its source address and source port number replaced by masadx and maspnx. on the other hand, when the external mac rece ive packet, its destination address and destination port number is compared. if the result is hit, then its destination address and destination port number are be replaced by lsadx and lspnx, and t he packet is transmitted to local mac. w90n740cd/W90N740CDG - 112 - 7.6.2.9. masadx, lsadx 31 30 29 28 27 26 25 24 ip address byte 4 (most significant byte) 23 22 21 20 19 18 17 16 ip address byte 3 15 14 13 12 11 10 9 8 ip address byte 2 7 6 5 4 3 2 1 0 ip address byte 1 maspnx, lspnx 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 port number 7 6 5 4 3 2 1 0 port number for example, if the masquerading address is 140.112.2.100 and the masquerading port number is 7500, then the value in masad is 8c-70-02-64, and the value in maspn is 00-00-1d-4c. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 113 - revision a6 7.7 gdma controller the gdma controller of w90n740 is a two-channel general dma controller. the two-channel gdma performs the following data transfers without the cpu intervention: ? memory-to-memory (memory to/from memory) ? memory ?to ? io ? io- to -memory the gdma can be started by the software or exte rnal dma request nxdreq1/2/3. software can also be used to restart the gdma operation after it has been stopped. the cpu can recognize the completion of a gdma operation by software polling or when it re ceives an internal gdma interrupt. the w90n740 gdma controller can increase source or destinati on address, decrease them as well, and conduct 8-bit (byte), 16-bit (half-word), or 32-bit (word) data transfers. the features of the gdma ? 2 channel gdma for memory-to-memory data transfers without cpu intervention ? increase or decrease source / destination addr ess in 8-bit, 16-bit, or 32-bit data transfers ? supports 4-data burst mode to boost performance ? support external gdma request by through bank 3 7.7.1 gdma function description the gdma directly transfers data between source and destination. the gdma starts to transfer data after it receives service requests from nxdreq1/2 /3 signal or software. when the entire data have been transferred completely, the gdma becomes idle. ne vertheless, if another tr ansfer is needed, then the gdma must be programmed again. there are three transfer modes: ? single mode single mode requires a gdma request for each data transfer. a gdma request (nxdreq1/2/3 or software) causes one byte, one half-word, or one wo rd to transfer if the 4-data burst mode is disabled, or four times of transfer wi dth is the 4-data burst mode is enabled. ? block mode the assertion of a single gdma request causes all of the data to be transferred in a single operation. the gdma transfer is completed when t he current transfer count register reaches zero. ? demand mode the gdma continues transferring data until t he gdma request input nxdreq1/2/3 becomes inactive. w90n740cd/W90N740CDG - 114 - 7.7.2 gdma registers map register address r/w description reset value gdma_ctl0 0xfff0.4000 r/w channel 0 control register 0x0000.0000 gdma_srcb0 0xfff0.4004 r/w channel 0 source base address register 0x0000.0000 gdma_dstb0 0xfff0.4008 r/w channel 0 destination base address register 0x0000.0000 gdma_tcnt0 0xfff0.400c r/w channel 0 transfer count register 0x0000.0000 gdma_csrc0 0xfff0.4010 r channel 0 current source address register 0x0000.0000 gdma_cdst0 0xfff0.4014 r channel 0 current destination address register 0x0000.0000 gdma_ctcnt0 0xfff0.4018 r channel 0 current transfer count register 0x0000.0000 gdma_ctl1 0xfff0.4020 r/w channel 1 control register 0x0000.0000 gdma_srcb1 0xfff0.4024 r/w channel 1 source base address register 0x0000.0000 gdma_dstb1 0xfff0.4028 r/w channel 1 destination base address register 0x0000.0000 gdma_tcnt1 0xfff0.402c r/w channel 1 transfer count register 0x0000.0000 gdma_csrc1 0xfff0.4030 r channel 1 current source address register 0x0000.0000 gdma_cdst1 0xfff0.4034 r channel 1 current destination address register 0x0000.0000 gdma_ctcnt1 0xfff0.4038 r channel 1 current transfer count register 0x0000.0000 r: read only ; w: write only ; r/w: both read and write channel 0/1 control register (gdma_ctl0, gdma_ctl1) register address r/w description reset value gdma_ctl0 0xfff0.4000 r/w channel 0 control register 0x0000.0000 gdma_ctl1 0xfff0.4020 r/w channel 1 control register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved sabnderr dabnderr gdmaerr autoien tc block softreq 15 14 13 12 11 10 9 8 dm reserved tws sbms reserved bme sien 7 6 5 4 3 2 1 0 safix dafix sadir dadir gdmams reserved gdmaen w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 115 - revision a6 sabnderr [22]: source address bounda ry alignment error flag if tws [13:12]=10, gdma_srcb [1:0] should be 00 if tws [13:12]=01, gdma_srcb [0] should be 0 the address boundary alignment should be depended on tws [13:12]. 0 = the gdma_srcb is on the boundary alignment. 1 = the gdma_srcb not on the boundary alignment the sabnderr register bits just can be read only. dabnderr [21]: destination address b oundary alignment error flag if tws [13:12]=10, gdma_dstb [1:0] should be 00 if tws [13:12]=01, gdma_dstb [0] should be 0 the address boundary alignment should be depended on tws [13:12]. 0 = the gdma_dstb is on the boundary alignment. 1 = the gdma_dstb not on the boundary alignment the dabnderr register bits just can be read only. gdmaterr [20]: gdma transfer error o = no error occurs 1 = hardware sets this bit on a gdma transfer failure transfer error will generate gdma interrupt autoien [19]: auto initialization enable 0 = disables auto initialization 1 = enables auto initialization, the gdma_cs rc0/1,gdma_cdst0/1,and gdma_ctcnt0/1 registers are updated by the gdma_src0/1,gdma_dst0/1, and gdma_tcnt0/1 regist ers automatically when transfer is complete. tc [18]: terminal count 0 = channel does not expire 1 = channel expires; this bit is set only by gdma hardware, and clear by software to write logic 0. tc [18] is the gdma interrupt flag. tc [18] or gdmaterr[20] will generate interrupt block [17]: bus lock 0 = unlocks the bus during the period of transfer 1 = locks the bus during the period of transfer softreq [16]: software triggered gdma request software can request the gdma transfer service by se tting this bit to 1. this bit is automatically cleared by hardware when the transfer is completed. this bit is available only while gdmams [3:2] register bits are set on software mode (memory to memory). w90n740cd/W90N740CDG - 116 - dm [15]: demand mode 0 = normal external gdma mode 1 = when this bit is set to 1, the external gdma operation is speeded up. when external gdma device is operating in the demand m ode, the gdma transfers data as long as the external gdma request signal nxdreq1/2/3 is active. the am ount of data transferred depends on how long the nxdreq1/2/3 is active. when the nxdreq1/2/3 is active and gdma gets the bus in demand mode, dma holds the system bus until the nxdreq1/2/3 signal becomes non-active. therefore, the period of the active nxdreq1/2/3 signal should be carefully tuned such that the entire operation does not exceed an acceptable interval (for example, in a dram refresh operation). tws [13:12]: transfer width select 00 = one byte (8 bits) is trans ferred for every gdma operation 01 = one half-word (16 bits) is tr ansferred for every gdma operation 10 = one word (32 bits) is transferred for every gdma operation 11 = reserved the gdma_scrb and gdma_dstb should be alignment under the tws selection sbms [11]: single/block mode select 0 = selects single mode. it requires an external gdma request for every incurring gdma operation. 1 = selects block mode. it requires a single ex ternal gdma request during the atomic gdma operation. an atomic gdma operation is defi ned as the sequence of gdma operations until the transfer count register reaches zero. 7.7.2.1. bme [9]: burst mode enable 0 = disables the 4-data burst mode 1 = enables the 4-data burst mode ff there are 16 words to be transferred, and bme [9]=1, the gdma_tcnt should be 0x04; however, if bme [9]=0, the gdma_tcnt should be 0x10. sien [8]: stop interrupt enable 0 = do not generate an interrupt when the gdma operation is stopped 1 = interrupt is generated when the gdma operation is stopped safix [7]: source address fixed 0 = source address is changed during the gdma operation 1 = do not change the destination address during t he gdma operation. this feature can be used when data were transferred from a singl e source to multiple destinations. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 117 - revision a6 dafix [6]: destination address fixed 0 = destination address is changed during the gdma operation 1 = do not change the destination address during t he gdma operation. this feature can be used when data were transferred from multiple sources to a single destination. dadir [5]: source address direction 0 = source address is incremented successively 1 = source address is decremented successively dadir [4]: destination address direction 0 = destination address is incremented successively 1 = destination address is decremented successively gdmams [3:2]: gdma mode select 00 = software mode (memory-to-memory) 01 = external nxdreq1/2/3 mode for external device 10 = reserved 11 = reserved gdmaen [0]: gdma enable 0 = disables the gdma operation 1 = enables the gdma operation; this bit will be cl ear automatically when the transfer is complete on autoien [19] register bit is on disable mode. channel 0/1 source base address register (gdma_srcb0, gdma_srcb1) the gdma channel starts reading its data from the source address as defined in this source base address register. register address r/w description reset value gdma_srcb0 0xfff0.4004 r/w channel 0 source base address register 0x0000. 0000 gdma_srcb1 0xfff0.4024 r/w channel 1 source base address register 0x0000. 0000 31 30 29 28 27 26 25 24 src_base_addr [31:24] 23 22 21 20 19 18 17 16 src_base_addr [23:16] 15 14 13 12 11 10 9 8 src_base_addr [15:8] 7 6 5 4 3 2 1 0 src_base_addr [7:0] w90n740cd/W90N740CDG - 118 - src_base_addr [31:0]: 32-bit source base address channel 0/1 destination base address register (gdma_dstb0, gdma_dstb1) the gdma channel starts writing its data to the des tination address as defined in this destination base address register. during a block transfer, the gd ma determines successive destination addresses by adding to or subtracting from the destination base address. register address r/w description reset value gdma_dstb0 0xfff0.4008 r/w channel 0 dest ination base address register 0x0000. 0000 gdma_dstb1 0xfff0.4028 r/w channel 1 dest ination base address register 0x0000. 0000 31 30 29 28 27 26 25 24 dst_base_addr [31:24] 23 22 21 20 19 18 17 16 dst_base_addr [23:16] 15 14 13 12 11 10 9 8 dst_base_addr [15:8] 7 6 5 4 3 2 1 0 dst_base_addr [7:0] dst_base_addr [31:0]: 32-bit destination base address channel 0/1 transfer count register (gdma_tcnt0, gdma_tcnt1) register address r/w description reset value gdma_tcnt0 0xfff0.400c r/w channel 0 transfer count register 0x0000. 0000 gdma_tcnt1 0xfff0.402c r/w channel 1 transfer count register 0x0000. 0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 tfr_cnt [23:16] 15 14 13 12 11 10 9 8 tfr_cnt [15:8] 7 6 5 4 3 2 1 0 tfr_cnt [7:0] tfr_cnt [23:0]: 24-bit transfer count the tfr_cnt represents the required number of gd ma transfers. the maximum transfer count is 16m ?1. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 119 - revision a6 channel 0/1 current source register (gdma_csrc0, gdma_csrc1) register address r/w description reset value gdma_csrc0 0xfff0.4010 r channel 0 current source address register 0x0000. 0000 gdma_csrc1 0xfff0.4030 r channel 1 current source address register 0x0000. 0000 31 30 29 28 27 26 25 24 current_src_addr [31:24] 23 22 21 20 19 18 17 16 current_src_addr [23:16] 15 14 13 12 11 10 9 8 current_src_addr [15:8] 7 6 5 4 3 2 1 0 current_src_addr [7:0] current_src_addr [31:0]: 32-bit current source address the current_src_addr indicates the source address where the gdma transfer is just occurring. during a block transfer, the gdma determines t he successive source addresses by adding to or subtracting from the source base address. depending on the settings you make to the control register, the current source address will remain the same or will be incremented or decremented. channel 0/1 current destination register (gdma_cdst0, gdma_cdst1) register address r/w description reset value gdma_cdst0 0xfff0.4014 r channel 0 current destination address register 0x0000.0000 gdma_cdst1 0xfff0.4034 r channel 1 current destination address register 0x0000.0000 31 30 29 28 27 26 25 24 current_dst_addr [31:24] 23 22 21 20 19 18 17 16 current_dst_addr [23:16] 15 14 13 12 11 10 9 8 current_dst_addr [15:8] 7 6 5 4 3 2 1 0 current_dst_addr [7:0] current_dst_addr [31:0]: 32-bit current destination address the current_dst_addr indicates the destination address where the gdma transfer is just occurring. during a block transfer, the gdma det ermines the successive destination addresses by adding to or subtracting from the destination base address. depending on the settings you make to the control register, the current destination address will remain the same or will be incremented or decremented. w90n740cd/W90N740CDG - 120 - channel 0/1 current transfer count register (gdma_ctcnt0, gdma_ctcnt1) the current transfer count register indica tes the number of transfer being performed. register address r/w description reset value gdma_ctcnt0 0xfff0.4018 r channel 0 current transfer count register 0x 0000.0000 gdma_ctcnt1 0xfff0.4038 r channel 1 current transfer count register 0x 0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 curent_tfr_cnt [23:16] 15 14 13 12 11 10 9 8 current_tfr_cnt [15:8] 7 6 5 4 3 2 1 0 current_tfr_cnt [7:0] current_tfr_cnt [23:0]: current transfer count w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 121 - revision a6 7.8 usb host controller the universal serial bus (usb) is a low-cost, low-to-middle speed peripheral interface standard intended for modem, printer, scanner, pda, keyboard, mouse, and other devices that do not require a high-bandwidth parallel interface. the usb is a 4-wi re serial cable bus that supports serial data exchange between a host controller and a peripheral device. the attached peripherals share usb bandwidth through a host-scheduled, token-based protoc ol. peripherals may be attached, configured, used, and detached, while the host and other peri pherals continue operation (i.e. hot plug and unplug is supported). it allows user to setup a flexible, plug-and-play networks of usb devices. and in the usb network, there is only one usb host, but there can be many usb devices and usb hubs. the features of the usb host controller: ? usb 1.1 compatible ? open host controller interface (ohci) 1.1 compatible. ? supports both low-speed (1.5 mbps ) and full-speed (12mbps) usb devices. ? built-in dma for real-time data transfer ? option for on-chip usb transceiver or external usb transceiver w90n740cd/W90N740CDG - 122 - 7.8.1 usb host controller registers map register address r/w description reset value openhci registers hcrevision 0xfff0.5000 r host controller revision register 0x0000.0010 hccontrol 0xfff0.5004 r/w host controller control register 0x0000.0000 hccommandstatus 0xfff0.5008 r/w host controller command status register 0x0000.0000 hcinterruptstatus 0xfff0.500c r/w host controller interrupt status register 0x0000.0000 hcinterruptenable 0xfff0.5010 r/w host controller interrupt enable register 0x0000.0000 hclnterruptdisable 0xfff0.5014 r/w host controller interrupt disable register 0x0000.0000 hchcca 0xfff0.5018 r/w host controller communication area register 0x0000.0000 hcperiodcurrented 0xfff0.501c r/w host controller period current ed register 0x0000.0000 hccontrolheaded 0xfff0.5020 r/w host controller control head ed register 0x0000.0000 hccontrolcurrented 0xfff0.5024 r/w host controller control current ed register 0x0000.0000 hcbulkheaded 0xfff0.5028 r/w host controller bulk head ed register 0x0000.0000 hcbulkcurrented 0xfff0.502c r/w host controller bulk current ed register 0x0000.0000 hcdonehead 0xfff0.5030 r/w host controller done head register 0x0000.0000 hcfminterval 0xfff0.5034 r/w host controller frame in terval register 0x0000.2edf hcframeremaining 0xfff0.5038 r host controller frame remaining register 0x0000.0000 hcfmnumber 0xfff0.503c r host controller frame number register 0x0000.0000 hcperiodicstart 0xfff0.5040 r/w host controller periodic start register 0x0000.0000 hclsthreshold 0xfff0.5044 r/w host controller low speed threshold register 0x0000.0628 hcrhdescriptora 0xfff0.5048 r/w host controller root hub descriptor a register 0x0100.0002 hcrhdescriptorb 0xfff0.504c r/w host controller root hub descriptor b register 0x0000.0000 hcrhstatus 0xfff0.5050 r/w host controller root h ub status register 0x0000.0000 hcrhportstatus [1] 0xfff0.5054 r/w host controller root hub port status [1] 0x0000.0000 hcrhportstatus [2] 0xfff0.5058 r/w host controller root hub port status [2] 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 123 - revision a6 host controller revision register (hcrevision) register address r/w description reset value hcrevision 0xfff0.5000 r host controller revision register 0x0000.0010 register: hcrevision bits reset r/w description 7-0 10h r revision indicates the open hci specificat ion revision number implemented by the hardware. host controlle r supports 1.1 specification. (x.y = xyh) 31-8 0h - reserved. read/write 0's host controller control register (hccontrol) register address r/w description reset value hccontrol 0xfff0.5004 r/w host controller control register 0x0000.0000 register: hccontrol bits reset r/w description 1-0 00b r/w controlbulkserviceratio specifies the number of control endpoints serviced for every bulk endpoint. encoding is n-1 where n is the number of control endpoints (i.e. ?00? = 1 control endpoint; ?11? = 3 control endpoints) 2 0b r/w periodiclistenable when set, this bit enables processi ng of the periodic (interrupt and isochronous) list. the host controller checks this bit prior to attempting any periodic transfers in a frame. 3 0b r/w isochronousenable when clear, this bit disables the is ochronous list when the periodic list is enabled (so interrupt eds may be serviced). while processing the periodic list, the host controller will check this bit when it finds an isochronous ed. 4 0b r/w controllistenable when set this bit enables processing of the control list. 5 0b r/w bulklistenable when set this bit enables processing of the bulk list. w90n740cd/W90N740CDG - 124 - continued. register: hccontrol bits reset r/w description 7-6 00b r/w hostcontrollerfunctionalstate this field sets the host controlle r state. the controller may force a state change from u sb s uspend to u sb r esume after detecting resume signaling from a downstream port. states are: 00: u sb r eset 01: u sb r esume 10: u sb o perational 11: u sb s uspend 8 0b r/w interruptrouting this bit is used for interrupt routing: 0: interrupts routed to normal interrupt mechanism (int). 1: interrupts routed to smi. 9 0b r remotewakeupconnected this bit indicated whether the hc supports a remote wakeup signal. this implementation does not support any such signal. the bit is hard- coded to ?0.? 10 0b r/w remotewakeupconnectedenable if a remote wakeup signal is supported, this bit enables that operation. since there is no remote wakeup signal supported, this bit is ignored. 31-11 0h - reserved. read/write 0's w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 125 - revision a6 host controller command status register (hccommandstatus) register address r/w description reset value hccommandstatus 0xfff0.5008 r/w host controller command status register 0x0000.0000 register: hccommandstatus bits reset r/w description 0 0b r/w hostcontrollerreset this bit is set to initiate the software reset. this bit is cleared by the host controller, upon complet ed of the reset operation. 1 0b r/w controllistfilled set to indicate there is an active ed on the control list. it may be set by either software or the host controller and cleared by the host controller each time it begins proc essing the head of the control list. 2 0b r/w bulklistfilled set to indicate there is an active ed on the bulk list. the bit may be set by either software or the host controller and cleared by the host controller each time it begins proc essing the head of the bulk list. 3 0b r/w ownershipchangerequest when set by software, this bit sets the ownershipchange field in hcinterruptstatus . the bit is cleared by software. 15-4 0h - reserved. read/write 0's 17-16 00b scheduleoverruncount this field is increment every time the schedulingoverrun bit in hcinterruptstatus is set. the count wraps from ?11? to ?00.? 31-18 0h - reserved. read/write 0's w90n740cd/W90N740CDG - 126 - host controller interrupt status register (hcinterruptstatus) all bits are set by hardware and cleared by software. register address r/w description reset value hcinterruptstatus 0xfff0.500c r/w host controller interrupt status register 0x0000.0000 register: hcinterruptstatus bits reset r/w description 0 0b r/w schedulingoverrun set when the list processor determines a schedule overrun has occurred. 1 0b r/w writebackdonehead set after the host controller has written hcdonehead to hccadonehead . 2 0b r/w startofframe set when the frame management blo ck signals a ?start of frame? event. 3 0b r/w resumedetected set when host controller detects resume signaling on a downstream port. 4 0b r unrecoverableerror this event is not implemented and is hard-coded to ?0.? writes are ignored. 5 0b r/w framenumberoverflow set when bit 15 of framenumber changes value. 6 0b r/w roothubstatuschange this bit is set when the content of hcrhstatus or the content of any hcrhportstatus register has changed. 29-7 0h - reserved. read/write 0's 30 0b r/w ownershipchange this bit is set when the ownershipchangerequest bit of hccommandstatus is set. 31 0h - reserved. read/write 0's w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 127 - revision a6 host controller interrupt enable register (hcinterruptenable) writing a ?1? to a bit in this register sets the corresponding bit, while writing a ?0? leaves the bit unchanged. register address r/w description reset value hcinterruptenable 0xfff0.5010 r/w host controller interrupt enable register 0x0000.0000 register: hcinterruptenable bits reset r/w description 0 0b r/w schedulingoverrunenable 0: ignore 1: enable interrupt generati on due to scheduling overrun. 1 0b r/w writebackdoneheadenable 0: ignore 1: enable interrupt generation due to write-back done head. 2 0b r/w startofframeenable 0: ignore 1: enable interrupt generati on due to start of frame. 3 0b r/w resumedetectedenable 0: ignore 1: enable interrupt generati on due to resume detected. 4 0b r/w unrecoverableerrorenable this event is not implemented. a ll writes to this bit are ignored. 5 0b r/w framenumberoverflowenable 0: ignore 1: enable interrupt generation due to frame number overflow. 6 0b r/w roothubstatuschangeenable 0: ignore 1: enable interrupt generation due to root hub status change. 29-7 0h - reserved. read/write 0's 30 0b r/w ownershipchangeenable 0: ignore 1: enable interrupt generation due to ownership change. 31 0b r/w masterinterruptenable this bit is a global interrupt enable. a write of ?1? allows interrupts to be enabled via the specific enable bits listed above. w90n740cd/W90N740CDG - 128 - host controller interrupt disable register (hcinterruptdisable) writing a ?1? to a bit in this register clears the corre sponding bit, while writing a ?0? to a bit leaves the bit nchanged. register address r/w description reset value hcinterrputdisable 0xfff0.5014 r/w host controller interrupt disable register 0x0000.0000 register: hcinterruptstatus bits reset r/w description 0 0b r/w schedulingoverrunenable 0: ignore 1: disable interrupt generati on due to scheduling overrun. 1 0b r/w writebackdoneheadenable 0: ignore 1: disable interrupt generation due to write-back done head. 2 0b r/w startofframeenable 0: ignore 1: disable interrupt generati on due to start of frame. 3 0b r/w resumedetectedenable 0: ignore 1: disable interrupt generati on due to resume detected. 4 0b r/w unrecoverableerrorenable this event is not implemented. all writes to this bit will be ignored. 5 0b r/w framenumberoverflowenable 0: ignore 1: disable interrupt generation due to frame number overflow. 6 0b r/w roothubstatuschangeenable 0: ignore 1: disable interrupt generation due to root hub status change. 29-7 0h - reserved. read/write 0's 30 0b r/w ownershipchangeenable 0: ignore 1: disable interrupt generati on due to ownership change. 31 0b r/w masterinterruptenable global interrupt disable. a write of ?1? disables all interrupts. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 129 - revision a6 host controller communication area register (hchcca) register address r/w description reset value hchcca 0xfff0.5018 r/w host controller communication area register 0x0000.0000 register: hchcca bits reset r/w description 31-8 0h r/w hcca pointer to hcca base address. host controller period current ed register (hcperiodcurrented) register address r/w description reset value hcperiodcurrented 0xfff0.501c r/w host controller period current ed register 0x0000.0000 register: hcperiodcurrented bits reset r/w description 3-0 0h - reserved. read/write 0's 31-4 0h r/w periodcurrented pointer to the current periodic list ed. host controller control head ed register (hccontrolheaded) register address r/w description reset value hccontrolheaded 0xfff0.5020 r/w host controller control head ed register 0x0000.0000 register: hccontrolheaded bits reset r/w description 3-0 0h - reserved. read/write 0's 31-4 0h r/w controlheaded pointer to the control list head ed. w90n740cd/W90N740CDG - 130 - host controller control current ed register (hccontrolcurrented) register address r/w description reset value hccontrolcurrented 0xfff0.5024 r/w host controller control current ed register 0x0000.0000 register: hccontrolcurrented bits reset r/w description 3-0 0h - reserved. read/write 0's 31-4 0h r/w controlcurrented pointer to the current control list ed. host controller bulk head ed register (hcbulkheaded) register address r/w description reset value hcbulkheaded 0xfff0.5028 r/w host controller bulk head ed register 0x0000.0000 register: hcbulkheaded bits reset r/w description 3-0 0h - reserved. read/write 0's 31-4 0h r/w bulkheaded pointer to the bulk list head ed. host controller bulk current ed register (hcbulkcurrented) register address r/w description reset value hcbulkcurrented 0xfff0.502c r/w host controller bulk current ed register 0x0000.0000 register: hcbulkcurrented bits reset r/w description 3-0 0h - reserved. read/write 0's 31-4 0h r/w bulkcurrented pointer to the current bulk list ed. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 131 - revision a6 host controller done head register (hcdonehead) register address r/w description reset value hcdonehead 0xfff0.5030 r/w host controller done head register 0x0000.0000 register: hcdonehead bits reset r/w description 3-0 0h - reserved. read/write 0's 31-4 0h r/w donehead pointer to the current done list head ed. host controller frame interval register (hcfminterval) register address r/w description reset value hcfminterval 0xfff0.5034 r/w host controller frame in terval register 0x0000.2edf register: hcfminterval bits reset r/w description 13-0 2edfh r/w frameinterval this field specifies the length of a fr ame as (bit times - 1). for 12,000 bit times in a frame, a val ue of 11,999 is stored here. 15-14 0h - reserved. read/write 0's 30-16 fslargestdatapacket this field specifies a value that is loaded into the largest data packet counter at the beginni ng of each frame. 31 frameintervaltoggle this bit is toggled by hcd when it loads a new value into frameinterval . w90n740cd/W90N740CDG - 132 - host controller frame remaining register (hcframeremaining) register address r/w description reset value hcframeremaining 0xfff0.5038 r host controller frame remaining register 0x0000.0000 register: hcframeremaining bits reset r/w+ description 13-0 0b r frameremaining when the host controller is in the u sb o perational state, this 14-bit field decrements each 12 mhz clock period. when the count reac hes 0, (end of frame) the counter reloads with frameinterval . in addition, the counter loads when the host controller transitions into u sb o perational . 30-14 0h - reserved. read/write 0's 31 0b r frameremainingtoggle loaded with frameintervaltoggle when frameremaining is loaded. host controller frame number register (hcfmnumber) register address r/w description reset value hcfmnumber 0xfff0.503c r host controller frame number register 0x0000.0000 register: hcfmnumber bits reset r/w description 15-0 0b r framenumber this 16-bit incrementing counter fiel d is incremented coincident with the loading of frameremaining . the count rolls over from ?ffffh? to ?0h.? 31-16 0h - reserved. read/write 0's w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 133 - revision a6 host controller periodic start register (hcperiodicstart) register address r/w description reset value hcperiodicstart 0xfff0.5040 r/w host controller periodic start register 0x0000.0000 register: hcperiodicstart bits reset r/w description 13-0 0b r/w periodicstart this field contains a value used by t he list processor to determine where in a frame the periodic list processing must begin. 31-14 0h - reserved. read/write 0's host controller low speed threshold register (hclsthreshold) register address r/w description reset value hclsthreshold 0xfff0.5044 r/w host controller low speed threshold register 0x0000.0628 register: hclsthreshold bits reset r/w description 11-0 628h r/w lsthreshold this field contains a value used by the frame management block to determine whether or not a low speed transaction can be started in the current frame. 31-12 0h - reserved. read/write 0's w90n740cd/W90N740CDG - 134 - host controller root hub descrip tor a register (hcrhdescriptora) this register is only reset by a power-on reset. it is written during system init ialization to configure the root hub. this bit should not be written during normal operation. register address r/w description reset value hcrhdescriptora 0xfff0.5048 r/w host controller root hub descriptor a register 0x0100.0002 register: hcrhdescriptora bits reset r/w description 7-0 02h r numberdownstreamports table of none-4 supports two downstream ports. 8 0 r/w powerswitchingmode global power switching mode implemented in hydra-2. this bit is only valid when nopowerswitching is cleared. this bit should be written '0'. 0 = global switching 1 = individual switching 9 0 r/w nopowerswitching global power switching implemented in hydra-2. this bit should be written to support the external system port power switching implementation. 0 = ports are power switched. 1 = ports are always powered on. 10 0 r devicetype table of none-4is not a compound device. 11 0 r/w overcurrentprotectionmode global over-current reporting implement ed in hydra-2. this bit should be written 0 and is only valid when noovercurrentprotection is cleared. 0 = global over-current 1 = individual over-current 12 0 r/w noovercurrentprotection global over-current reporting implem ented in hydra-2. this bit should be written to support the external system port over-current implementation. 0 = over-current status is reported 1 = over-current status is not reported 23-13 0h - reserved. read/write 0's 31-24 01h r/w powerontopowergoodtime this field value is represented as t he number of 2 ms intervals, which ensuring that the power switching is effe ctive within 2 ms. only bits [25:24] are implemented as r/w. the remaining bits are read only as ?0?. it is not expected that these bits be written to anything other than 1h, but limited adjustment is provided. this fiel d should be written to support system implementation. this field should al ways be written to a non-zero value. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 135 - revision a6 host controller root hub descrip tor b register (hcrhdescriptorb) this register is only reset by a power-on reset. it is written during system init ialization to configure the root hub. these bits should not be written during normal operation. register address r/w description reset value hcrhdescriptorb 0xfff0.504c r/w host controller root hub descriptor b register 0x0000.0000 register: hcrhdescriptorb bits reset r/w description 15-0 0000h r/w deviceremoveable table of none-4 ports default to removable devices. 0 = device not removable 1 = device removable port bit relationship 0 : reserved 1 : port 1 2 : port 2 ... 15 : port 15 unimplemented ports are re served, read/write '0'. 31-16 0000h r/w portpowercontrolmask global-power switching. this field is only valid if nopowerswitching is cleared and powerswitchingmode is set (individual port switching). when set, the port only responds to individual port power switching commands ( set / clearportpower ). when cleared, the port only responds to global power switching commands ( set / clearglobalpower ). 0 = device not removable 1 = global-power mask port bit relationship - unimplemented ports are reserved, read/write '0'. 0 : reserved 1 : port 1 2 : port 2 ... 15 : port 15 w90n740cd/W90N740CDG - 136 - host controller root hub stat us register (hcrhstatus) this register is reset by the u sb r eset state. register address r/w description reset value hcrhstatus 0xfff0.5050 r/w host controller root h ub status register 0x0000.0000 register: hcrhstatus bits reset r/w description 0 0 r/w (read) localpowerstatus not supported. always read '0'. (write) clearglobalpower writing a '1' issues a clearglobalpower command to the ports. writing a '0' has no effect. 1 - r overcurrentindicator this bit reflects the state of the ov rcur pin. this field is only valid if noovercurrentprotection and overcurrentprotectionmode are cleared. 0 = no over-current condition 1 = over-current condition 14-2 0h - reserved. read/write 0's 15 0 r/w (read) deviceremotewakeupenable this bit enables ports' connectstatuschange as a remote wakeup event. 0 = disabled 1 = enabled (write) setremotewakeupenable writing a '1' sets deviceremotewakeupenable . writing a '0' has no effect. 16 0 r/w (read) localpowerstatuschange not supported. always read '0'. (write) setglobalpower write a '1' issues a setglobalpower command to the ports. writing a '0' has no effect. 17 0 r/w overcurrentindicatorchange this bit is set when overcurrentindicator changes. writing a '1' clears this bit. writing a '0' has no effect. 30-18 0h - reserved. read/write 0's 31 0 w (write) clearremotewakeupenable writing a '1' to this bit clears deviceremotewakeupenable . writing a '1' has no effect. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 137 - revision a6 host controller root hub port status (hcrhportstatus [1:2]) this register is reset by the u sb r eset state. register address r/w description reset value hcrhportstatus [1] 0xfff0.5054 r/w host controller root hub port status [1] 0x0000.0000 hcrhportstatus [2] 0xfff0.5058 r/w host controller root hub port status [2] 0x0000.0000 register: hcrhportstatus[1:2] bits reset r/w description 0 0 r/w (read) currentconnectstatus 0 = no device connected. 1 = device connected. note: if deviceremoveable is set (not removable) this bit is always '1'. (write) clearportenable writing '1' a clears portenablestatus . writing a '0' has no effect. 1 0 r/w (read) portenablestatus 0 = port disabled. 1 = port enabled. (write) setportenable writing a '1' sets portenablestatus . writing a '0' has no effect. 2 0 r/w (read) portsuspendstatus 0 = port is not suspended 1 = port is selectively suspended (write) setportsuspend writing a '1' sets portsuspendstatus . writing a '0' has no effect. 3 0 r/w (read) portovercurrentindicator table of none-2 supports global over-curr ent reporting. this bit reflects the state of the ovrcur pin dedicated to this port. this field is only valid if noovercurrentprotection is cleared and overcurrentprotectionmode is set. 0 = no over-current condition 1 = over-current condition (write) clearportsuspend writing a '1' initiates the selective resume sequence for the port. writing a '0' has no effect. 4 0 r/w (read) portresetstatus 0 = port reset signal is not active. 1 = port reset signal is active. (write) setportreset writing a '1' sets portresetstatus . writing a '0' has no effect. w90n740cd/W90N740CDG - 138 - continued . register: hcrhportstatus[1:2] bits reset r/w description 7-5 0h - reserved. read/write 0's 8 0 r/w (read) portpowerstatus this bit reflects the power state of the port regardless of the power switching mode. 0 = port power is off. 1 = port power is on. note: if nopowerswitching is set, this bit is always read as '1'. (write) setportpower writing a '1' sets portpowerstatus . writing a '0' has no effect. 9 0 r/w (read) lowspeeddeviceattached this bit defines the speed (and bud idle) of the attached device. it is only valid when currentconnectstatus is set. 0 = full speed device 1 = low speed device (write) clearportpower writing a '1' clears portpowerstatus . writing a '0' has no effect 15-10 0h - reserved. read/write 0's 16 0 r/w connectstatuschange this bit indicates a connect or disconnect event has been detected. writing a '1' clears this bit. writing a '0' has no effect. 0 = no connect/disconnect event. 1 = hardware detection of connect/disconnect event. note: if deviceremoveable is se t, this bit resets to '1'. 17 0 r/w portenablestatuschange this bit indicates that the port has been disabled due to a hardware event (cleared portenablestatus ). 0 = port has not been disabled. 1 = portenablestatus has been cleared. 18 0 r/w portsuspendstatuschange this bit indicates the completion of the selective resume sequence for the port. 0 = port is not resumed. 1 = port resume is complete. 19 0 r/w portovercurrentindicatorchange this bit is set when overcurrentindicator changes. writing a '1' clears this bit. writing a '0' has no effect. 20 0 r/w portresetstatuschange this bit indicates that the por t reset signal has completed. 0 = port reset is not complete. 1 = port reset is complete. 31-21 0h - reserved. read/write 0's w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 139 - revision a6 7.9 uart controller the universal asynchronous receiver/transmitter (uart) performs a serial-to-parallel conversion on data characters received from the peripheral such as modem, and a parallel-to-serial conversion on data characters received from the cpu. there are five types of interrupts, i.e., line status interrupt, transmitter fifo empty interrupt, receiver threshold level reaching interrupt, time out interrupt, and modem status interrupt. one 16-byte transmitter fifo (tx_fifo) and one 16-byte (plus 3-bit of erro r data per byte) receiver fifo (rx_fifo) has been built in to reduce the number of interrupts presented to the cpu. the cpu can completely read the status of the uart at any t ime during the operation. the report ed status information includes the type and condition of the transfer operations being performed by the uart, as well as any error conditions (parity, overrun, framing, or break interrupt) found. the uart includes a programmable baud rate generator that is capable of dividing crystal cl ock input by divisors to produce the clock that transmitter and receiver needed. the equation is baudout = crystal clock / 16 * [divisor + 2]. the features of the uart: ? transmitter and receiver are buffered with a 16-byte fifo each to reduce the number of interrupts. ? full set of modem control functions (cts, rts, dsr, dtr, ri and dcd) ? fully programmable serial-i nterface characteristics: -- 5-, 6-, 7-, or 8-bit character -- even, odd, or no-parity bit generation and detection -- 1-, 1&1/2, or 2-stop bit generation -- baud rate generation ? break generation and detection ? false start bit detection ? parity, overrun, and framing error detection ? full prioritized interrupt system controls w90n740cd/W90N740CDG - 140 - 7.9.1 uart control registers map r : read only, w : write only, r/w : both read and write, c : only value 0 can be written register address r/w description reset value rbr 0xfff8.0000 r receive buffer register (dlab = 0) undefined thr 0xfff8.0000 w transmit holding register (dlab = 0) undefined ier 0xfff8.0004 r/w interrupt enable register (dlab = 0) 0x 0000.0000 dll 0xfff8.0000 r/w divisor latch register (ls) (dlab = 1) 0x0000.0000 dlm 0xfff8.0004 r/w divisor latch register (ms) (dlab = 1) 0x0000.0000 iir 0xfff8.0008 r interrupt identification register 0x 8181.8181 fcr 0xfff8.0008 w fifo control register undefined lcr 0xfff8.000c r/w line control register 0x0000.0000 mcr 0xfff8.0010 r/w modem control register 0x 0000.0000 lsr 0xfff8.0014 r line status register 0x6060.6060 msr 0xfff8.0018 r modem status register 0x0000.0000 tor 0xfff8.001c r/w time out register 0x0000.0000 receive buffer register (rbr) register address r/w description reset value rbr 0xfff8.0000 r receive buffer register (dlab = 0) undefined 7 6 5 4 3 2 1 0 8-bit received data 8-bit received data [7:0] by reading this register, the uart will return an 8-bit data received from sin pin (lsb first). w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 141 - revision a6 transmit holding register (thr) register address r/w description reset value thr 0xfff8.0000 w transmit holding register (dlab = 0) undefined 7 6 5 4 3 2 1 0 8-bit transmitted data 8-bit transmitted data [7:0] by writing to this register, the uart will send out an 8-bit data through the sout pin (lsb first). interrupt enable register (ier) register address r/w description reset value ier 0xfff8.0004 r/w interrupt enable register (dlab = 0) 0x0000.0000 7 6 5 4 3 2 1 0 reserved ndbgack_en msie rlsie threie rdaie ndbgack_en [4]: ice debug mode acknowledge enable 0 = when dbgack is high, the uart receiver time-out clock will be held 1 = no matter what dbgack is high or not, the uart receiver timer-out clock will not be held msie [3]: modem status interrupt (irpt_mos) enable 0 = mask off irpt_mos 1 = enable irpt_mos rlsie [2]: receive line status interrupt (irpt_rls) enable 0 = mask off irpt_rls 1 = enable irpt_rls threie [1]: transmit holding register empty interrupt (irpt_thre) enable 0 = mask off irpt_thre 1 = enable irpt_thre w90n740cd/W90N740CDG - 142 - rdaie [0]: r eceive d ata a vailable i nterrupt (irpt_rda) e nable and time-out interrupt (irpt_tout) enable 0 = mask off irpt_rda and irpt_tout 1 = enable irpt_rda and irpt_tout divider latch (low byte) register (dll) register address r/w description reset value dll 0xfff8.0000 r/w divisor latch register (ls) (dlab = 1) 0x0000.0000 7 6 5 4 3 2 1 0 baud rate divider (low byte) baud rate divisor (low byte) [7:0] the low byte of the baud rate divider divisor latch (high byte) register (dlm) register address r/w description reset value dlm 0xfff8.0004 r/w divisor latch register (ms) (dlab = 1) 0x0000.0000 7 6 5 4 3 2 1 0 baud rate divider (high byte) baud rate divisor (high byte) [7:0] the high byte of th e baud rate divider this 16-bit divider {dlm, d ll} is used to determine the baud rate as follows baud rate = crystal clock / {16 * [divisor + 2]} note: this definition is different from 16550 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 143 - revision a6 interrupt identification register (iir) register address r/w description reset value iir 0xfff8.0008 r interrupt i dentification register 0x 8181.8181 7 6 5 4 3 2 1 0 fmes rftls dms iid nip fmes [7]: fifo mode enable status this bit indicates whether the fifo mode is enabl ed or not. since the fifo mode is always enable, this bit always shows the logical 1 when cpu is reading this register. rftls [6:5]: rx fifo threshold level status these bits show the current setting of receiver fi fo threshold level (rtho). the meaning of rtho is defined in the following fcr description. dms [4]: dma mode select the dma function is not implemented in this vers ion. when reading iir, the dms is always returned 0. iid [3:1]: interrupt identification the iid together with nip indicates t he current interrupt request from uart. nip [0]: no interrupt pending there is no pending interrupt. table 7.9.1 interrupt control functions iir [3:0] priority interrupt type interrupt source interrupt reset control - - - 1 -- none none -- 0110 highest receiver line status (irpt_rls) overrun error, parity error, framing error, or break interrupt reading the lsr 0100 second received data available (irpt_rda) receiver fifo threshold level is reached receiver fifo drops below the threshold level 1100 second receiver fifo time- out (irpt_tout) receiver fifo is non-empty and no activities are occurred in the receiver fifo during the tor defined time duration reading the rbr 0010 third transmitter holing register empty (irpt_thre) transmitter holding register empty reading the iir (if source of interrupt is irpt_thre) or writing into the thr 0000 fourth modem status (irpt_mos) the cts, dsr, or dcd bits are changing state or the ri bit is changing from high to low. reading the msr note: these definitions of bit 7, bit 6, bi t 5, bit 4 are different from the 16550. w90n740cd/W90N740CDG - 144 - fifo control register (fcr) register address r/w description reset value fcr 0xfff8.0008 w fifo control register undefined 7 6 5 4 3 2 1 0 rfitl reserved dms tfr rfr fme rfitl [7:6]: rx fifo interrupt (irpt_rda) trigger level rfitl [7:6] irpt_rda trigger level (bytes) 00 01 01 04 10 08 11 14 dms [3]: dma mode select the dma function is not implemented in this version. tfr [2]: tx fifo reset setting this bit will generate an osc cycle reset pulse to reset tx fifo. the tx fifo becomes empty (tx pointer is reset to 0) after such reset. this bit is returned to 0 automatically after the reset pulse is generated. rfr [1]: rx fifo reset setting this bit will generate an osc cycle reset pul se to reset rx fifo. the rx fifo becomes empty (rx pointer is reset to 0) after such reset. th is bit is returned to 0 automatically after the reset pulse is generated. fme [0]: fifo mode enable because uart is always operating in the fifo m ode, writing this bit has no effect while reading always gets logical one. this bit must be 1 when other fcr bits are written to; otherwise, they will not be programmed. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 145 - revision a6 line control register (lcr) register address r/w description reset value lcr 0xfff8.000c r/w line control register 0x0000.0000 7 6 5 4 3 2 1 0 dlab bcb spe epe pbe nsb wls dlab [7]: divider latch access bit 0 = it is used to access rbr, thr or ier. 1 = it is used to access divisor latch registers {dll, dlm}. bcb [6]: break control bit when this bit is set to logic 1, the serial data output (sout) is forced to the spacing state (logic 0). this bit acts only on sout and has no effect on the transmitter logic. spe [5]: stick parity enable 0 = disable stick parity 1 = parity bit is transmitted and checked as a logic 1 if bit 4 is 0 (odd parity), or as a logic 0 if bit 4 is 1 (even parity). this bit has effect onl y when bit 3 (parity bit enable) is set. epe [4]: even parity enable 0 = odd number of logic 1?s are transmitted or checked in the data word and parity bits. 1 = even number of logic 1?s are transmitted or checked in the data word and parity bits. this bit has effect only when bi t 3 (parity bit enable) is set. pbe [3]: parity bit enable 0 = parity bit is not generated (transmit data) or checked (receive data) during transfer. 1 = parity bit is generated or checked between the "last data word bit" and "stop bit" of the serial data. nsb [2]: number of ?stop bit? 0 = one ? stop bit? is generated in the transmitted data 1 = one and a half ? stop bit? is generated in the tr ansmitted data when 5-bit word length is selected; two ? stop bit? is generated when 6-, 7- and 8-bit word length is selected. w90n740cd/W90N740CDG - 146 - wls [1:0]: word length select wls[1:0] character length 00 5 bits 01 6 bits 10 7 bits 11 8 bits modem control register (mcr) register address r/w description reset value mcr 0xfff8.0010 r/w modem control register 0x 0000.0000 7 6 5 4 3 2 1 0 reserved lbme out2# out1# rts# dtr# lbme [4]: loop-back mode enable 0 = disable 1 = when the loop-back mode is enabled, the following signals are connected internally: sout connected to sin and sout pin fixed at logic 1 dtr# connected to dsr# and dtr# pin fixed at logic 1 rts# connected to cts# and rts# pin fixed at logic 1 out1# connected to ri# and out1# pin fixed at logic 1 out2# connected to dcd# and out2# pin fixed logic 1 out2#[3]: complement version of out2# (user-designated output) signal out1#[2]: complement version of out1# (user-designated output) signal rts#[1]: complement version of rts# (request-to-send) signal dtr#[0]: complement version of dtr# (data-terminal-ready) signal writing 0x00 to mcr, the dtr#, rts#, nout1# and out2# bit are set to logic 1?s; writing 0x0f to mcr, the dtr#, rts#, nout1# and out2# bit are reset to logic 0?s. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 147 - revision a6 line status control register (lsr) register address r/w description reset value lsr 0xfff8.0014 r line status register 0x 6060.6060 7 6 5 4 3 2 1 0 err_rx te thre bii fei pei oei rfdr err_rx [7]: rx fifo error 0 = rx fifo works normally 1 = there is at least one parity error (pe), framing error (fe), or break indication (bi) in the fifo. err_rx is cleared when cpu reads the lsr and if there are no subsequent errors in the rx fifo. te [6]: transmitter empty 0 = either transmitter holding register ( thr - tx fifo) or transmitter shift register ( tsr ) are not empty. 1 = both thr and tsr are empty. thre [5]: transmitter holding register empty 0 = thre is not empty. 1 = thre is empty. thre is set when the last data word of tx fifo is transferred to transmitter shift register (tsr). the cpu resets this bit when the thr (or tx fifo) is loaded. this bit also causes the uart to issue an interrupt (irpt_thre) to the cpu when ier [1]=1. bii [4]: break interrupt indicator this bit is set to a logic 1 whenever the received dat a input is held in the "spac ing state" (logic 0) for longer than a full word transmission time (that is, the total time of "start bit" + dat a bits + parity + stop bits) and is reset whenever the cpu r eads the contents of the lsr . fei [3]: framing error indicator this bit is set to logic 1 whenever the received charac ter does not have a valid "st op bit" (that is, the stop bit following the last data bit or parity bit is detected as a logic 0), and is reset whenever the cpu reads the contents of the lsr . w90n740cd/W90N740CDG - 148 - pei [2]: parity error indicator this bit is set to logic 1 whenever the received char acter does not have a valid "parity bit", and is reset whenever the cpu reads t he contents of the lsr . oei [1]: overrun error indicator an overrun error will occur only after the rx fifo is full and the next character has been completely received in the shift register. the character in the shift register is overwritten, but it is not transferred to the rx fifo. oe is indicated to the cpu as s oon as it happens and is reset whenever the cpu reads the contents of the lsr. rfdr [0]: rx fifo data ready 0 = rx fifo is empty 1 = rx fifo contains at least 1 received data word. lsr [4:2] (bii, fei, pei) are revealed to the cpu when it s associated character is at the top of the rx fifo. these three error indicators are reset w henever the cpu reads the contents of the lsr. lsr [4:1] (bii, fei, pei, oei) are the error conditions that produce a "receiver line status interrupt" (irpt_rls) when ier [2]=1. reading lsr clears irpt_rls. writing lsr is a null operation (not suggested). modem status register (msr) register address r/w description reset value msr 0xfff8.0018 r modem status register 0x 0000.0000 7 6 5 4 3 2 1 0 dcd# ri# dsr# cts# ddcd teri ddsr dcts dcd#[7]: complement version of data carrier detect (ndcd#) input ri#[6]: complement version of ring indicator (ri#) input dsr#[5]: complement version of data set ready (dsr#) input cts#[4]: complement version of clear to send (cts#) input ddcd [3]: dcd# state change this bit is set whenever dcd# input has changed state, and it will be reset if the cpu reads the msr. teri [2]: tailing edge of ri# this bit is set whenever ri# input has changed from hi gh to low, and it will be reset if the cpu reads the msr. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 149 - revision a6 ddsr [1]: dsr# state change this bit is set whenever dsr# input has changed stat e, and it will be reset if the cpu reads the msr. dcts [0]: cts# state change this bit is set whenever cts# input has changed stat e, and it will be reset if the cpu reads the msr. whenever any of msr [3:0] is set to logic 1, a m odem status interrupt is generated if ier[3]=1. writing msr is a null operation (not suggested). time out register (tor) register address r/w description reset value tor 0xfff8.001c r/w time out register 0x0000.0000 7 6 5 4 3 2 1 0 toie toic toie [7]: time out interrupt enable the feature of receiver time out interrupt is enabled only when tor [7] = ier[0] = 1. toic [6:0]: time out interrupt comparator the time out counter resets and starts counting (t he counting clock = baud rate) whenever the rx fifo receives a new data word. once the content of time out counter (tout_ cnt) is equal to that of time out interrupt comparator (toic), a receiver time out in terrupt (irpt_tout) is generated if tor [7] = ier [0] = 1. a new incoming data word or rx fifo empty clears irpt_tout. w90n740cd/W90N740CDG - 150 - 7.10 timer controller 7.10.1 general timer controller the timer module has two channels, timer0 and ti mer1, which allow you to easily implement a counting scheme for use. the timer can perform f unctions like frequency measur ement, event counting, interval measurement, pulse generation, delay timing, and so on. the timer possesses features such as adjustable resolution, programmable counting period, and detailed information. the timer can generate an interrupt signal upon timeout, or provide t he current value of count during operation. the features of the timer controller ? two programmable 24-bit timers with 8-bit pre-scalar ? one programmable 24-bit watch-dog timer ? independent clock source for each channel ? one-short mode, period mode or toggle mode operation ? maximum uninterrupted time = (1 / 15 mhz) * (255) * (2^24 - 1), if tclk = 15 mhz 7.10.2 watch dog timer the purpose of watchdog timer is to perform a system restart after the software running into a problem. this prevents system from hanging for an indefinite period of time. it is a free running timer with programmable time-out intervals. when the specifi ed time internal expires, a system reset can be generated. if the watchdog timer reset function is enabled and the watchdog timer is not being reset before timing out, then the watchdog rest is activated after 512 wdt clocks. setting wte in the register wtcr enables the watchdog timer. the wtr should be set before making use of watchdog timer. this ensures that the watchdog timer restarts from a know state. the watchdog timer will st art counting and time-out after a specified period of time. the time-out interval is selected by two bits, wtis1 and wtis0. the wtr is self-clearing, i.e., after setting it, the hardware will automatically reset it. w hen time-out occurs, the watchdog timer interrupt flag is set. the watchdog timer waits for an additional 512 clo cks before issuing a reset signal, if the wtre is set. the reset signal will last for two clocks long and the wtrf will be set. when used as a simple timer, the interrupt and reset functions are disabled. the wa tchdog timer will set the wtif each time a time-out occurs. the wtif can be polled to check the status , and software can restart the timer by setting the wtr. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 151 - revision a6 7.10.3 timer control registers map r : read only, w : write only, r/w : both read and write, c : only value 0 can be written register address r/w/c description reset value tcr0 0xfff8.1000 r/w timer cont rol register 0 0x0000.0005 tcr1 0xfff8.1004 r/w timer cont rol register 1 0x0000.0005 ticr0 0xfff8.1008 r/w timer initial c ontrol register 0 0x0000.00ff ticr1 0xfff8.100c r/w timer initial control register 1 0x0000.00ff tdr0 0xfff8.1010 r timer data register 0 0x 0000.00ff tdr1 0xfff8.1014 r timer data register 1 0x 0000.00ff tisr 0xfff8.1018 r/c timer interrupt status register 0x 0000.0000 wtcr 0xfff8.101c r/w watchdog timer control register 0x 0000.0000 timer control register 0 (tcr0) timer control register 1 (tcr1) register address r/w/c description reset value tcr0 0xfff8.1000 r/w timer cont rol register 0 0x0000.0005 tcr1 0xfff8.1004 r/w timer cont rol register 1 0x0000.0005 31 30 29 28 27 26 25 24 ndbgack_en ce ie mode reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 prescale ndbgack_en [31]: ice debug mode acknowledge enable 0 = when dbgack is high, the timer clock will be held 1 = no matter what dbgack is high or not, the timer clock will not be held ce [30]: counter enable 0 = stops counting 1 = starts counting ie [29]: interrupt enable 0 = disables timer interrupt 1 = enables timer interrupt. if timer interrupt is enabl ed, the timer asserts its interrupt signal when the associated counter decrements to zero. w90n740cd/W90N740CDG - 152 - mode [28:27]: timer operating mode mode [28:27] timer operating mode 00 the timer is operating in the one-shot m ode. the associated interrupt signal is generated once (if ie is enabled) and ce is automatically cleared then. 01 the timer is operating in the periodic m ode. the associated interrupt signal is generated periodically (if ie is enabled). 10 the timer is operating in the toggle m ode. the associated interrupt signal is changing back and forth (if ie is enabled) with 50% duty cycle. 11 reserved for further use prescale [7:0] clock input is divided by prescale + 1 before it is fed to the counter (her e prescale is considered as a decimal number). if prescale = 0, then there is no scaling. timer initial count register 0 (ticr0) timer initial count register 1 (ticr1) register address r/w/c description reset value ticr0 0xfff8.1008 r/w timer initial control register 0 0x0000.00ff ticr1 0xfff8.100c r/w timer initial control register 1 0x0000.00ff 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 tic [23:16] 15 14 13 12 11 10 9 8 tic [15:8] 7 6 5 4 3 2 1 0 tic [7:0] tic [23:0]: timer initial count this is a 24-bit value representing the initial count. timer will reload th is value whenever the counter is decremented to zero. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 153 - revision a6 timer data register 0 (tdr0) timer data register 1 (tdr1) register address r/w/c description reset value tdr0 0xfff8.1010 r timer data register 0 0x0000.00ff tdr1 0xfff8.1014 r timer data register 1 0x0000.00ff 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 tdr [23:16] 15 14 13 12 11 10 9 8 tdr [15:8] 7 6 5 4 3 2 1 0 tdr [7:0] tdr [23:0]: timer data register the current count is registered in this 24-bit value. timer interrupt status register (tisr) register address r/w/c description reset value tisr 0xfff8.1018 r/c timer interrupt status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved tif1 tif0 w90n740cd/W90N740CDG - 154 - tif1 [1]: timer interrupt flag 1 it indicates the interrupt status of the timer 1. 0 = it indicates that the timer 1 does not count down to zero yet. software can reset this bit after the timer interrupt 1 had occurred. 1 = it indicates that the counter of timer 1 is decrem ented to zero; the timer interrupt 1 is generated if it was enabled. tif1 [0]: timer interrupt flag 0 it indicates the interrupt status of the timer 0. 0 = it indicates that the timer 0 does not count down to zero yet. software can reset this bit after the timer interrupt 0 had occurred. 1 = it indicates that the counter of timer 0 is decrem ented to zero; the timer interrupt 0 is generated if it was enabled. watchdog timer control register (wtcr) register address r/w/c description reset value wtcr 0xfff8.101c r/w watchdog timer control register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved ndbgack_en reserved 7 6 5 4 3 2 1 0 wte wtie wtis wtif wtrf wtre wtr ndbgack_en [9]: ice debug mode acknowledge enable 0 = when dbgack is high, the timer clock will be held 1 = no matter what dbgack is high or not, the timer clock will not be held reserved [8]: 0 = put the watchdog time in the normal operating mode w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 155 - revision a6 wte [7]: watchdog timer enable 0 = disable the watchdog timer 1 = enable the watchdog timer wtie [6]: watchdog timer interrupt enable 0 = disable the watchdog timer interrupt 1 = enable the watchdog timer interrupt wtis [5:4]: w atchdog t imer i nterval s elect these two bits select the interval for the watchdog t imer. no matter which interval is chosen, the reset time-out is always occurred 512 clocks later than the interrupt time-out. wtis [5:4] interrupt time-out reset time-out 00 2 21 clocks 2 21 + 512 clocks 01 2 22 clocks 2 22 + 512 clocks 10 2 23 clocks 2 23 + 512 clocks 11 2 24 clocks 2 24 + 512 clocks wtif [3]: watchdog timer interrupt flag if the watchdog interrupt is enabled, then the hardware will set this bit to indicate that the watchdog interrupt has occurred. if the watchdog interrupt is not enabled, then this bit indicates that a time-out period has elapsed. 0 = watchdog timer interrupt does not occur 1 = watchdog timer interrupt occurs wtrf [2]: watchdog timer reset flag when the watchdog timer initiates a reset, the hardware will set this bit. this flag can be read by software to determine the source of reset. software is responsible to clear it up manually. if wtre is disabled, then the watchdog timer has no effect on this bit. 0 = watchdog timer reset does not occur 1 = watchdog timer reset occurs wtre [1]: watchdog timer reset enable setting this bit will enable the watchdog timer reset function. 0 = disable watchdog timer reset function 1 = enable watchdog timer reset function w90n740cd/W90N740CDG - 156 - wtr [0]: watchdog timer reset this bit brings the watchdog timer into a known st ate. it helps reset the watchdog timer before a time- out situation occurring. failing to set wtr before time-out will initiates an interrupt if wtie is set. if wtre is set, a watchdog timer reset will occur 512 clocks after time-out. this bit is self-clearing. 1 = reset the contents of the watchdog timer 0 = do not reset the contents of the watchdog timer 7.11 advanced interrupt controller (aic) an interrupt temporarily changes the sequence of pr ogram execution to react to a particular event such as power failure, watchdog timer timeou t, transmit/receive reques t from ethernet mac controller, and so on. the arm7tdmi proce ssor provides two modes of interrupt, the fast interrupt (fiq) mode for critical session and the interrupt (irq) mode for general purpose. the irq exception is occurred when the nirq input is asserted. simila rly, the fiq exception is occurred when the nfiq input is asserted. the fiq has privilege over t he irq and can preempt an ongoing irq. it is possible to ignore the fiq and the irq by setting the f and i bits in the current program status register (cpsr) . the w90n740 incorporates the advanced interrupt controller (aic) that is capable of dealing with the interrupt requests from a total of 32 different sources. currently, only 18 interrupt sources are defined. each interrupt source is uniquely a ssigned to an interrupt channel. for example, the watchdog timer interrupt is assigned to channel 1 and the general-purpose direct-access memory access (gdma) interrupt 0 to channel 17. the aic implements a proprietary eight-level priority scheme that differentiates the available 18 interrupt s ources into eight priority levels. interrupt sources within the priority level 0 have the highest priority and the priority level 7 has the lowest. to work this scheme properly, you must specify a certain priority level to each interrupt source during power-on initialization; otherwise, the syst em shall behave unexpectedly. within each priority level, interrupt source that is positioned in a lower channel has a hi gher priority. interrupt s ource that is active, enabled, and positioned in the lowest channel within t he priority level 0 is promoted to the fiq. interrupt sources within the priority levels ot her than 0 can petition for the irq. the irq can be preempted by the occurrence of the fiq. interrupt nesting is performed automatically by the aic. though interrupt sources originated from the w90n740 it self are intrinsically high-level sensitive, the aic can be configured as either low-level sensitiv e, high-level sensitive, negative-edge triggered, or positive-edge triggered to each interrupt source. the features of the aic ( advanced interrupt controller): y 18 interrupt sources, including 4 external interrupt sources y programmable normal or fast interrupt mode (irq, fiq) y programmable as either edge-triggered or level- sensitive for 4 external interrupt sources y programmable as either low-active or hi gh-active for 4 external interrupt sources y priority methodology is encoded to allow for interrupt daisy-chaining y automatically mask out the lower priority interrupt during interrupt nesting y automatically clear the interrupt flag when the interrupt source is programmed to be edge- triggered w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 157 - revision a6 7.11.1 interrupt sources the table as shown below lists all the interrupt sources originated from internal peripherals and external devices. please be careful that interr upt channel 0 and all that beyond 18 are undefined in this implementation. table 7.11.1 w90n740 interrupt sources channel name priority mode source highest 1 wdtint positive level watch dog timer interrupt 2 nirq0 programmable external interrupt 0 3 nirq1 programmable external interrupt 1 4 nirq2 programmable external interrupt 2 5 nirq3 programmable external interrupt 3 6 uartint positive level uart interrupt 7 tint0 positive level timer interrupt 0 8 tint1 positive level timer interrupt 1 9 usbint0 positive level usb interrupt 0 10 usbint1 positive level usb interrupt 1 11 reserved reserved reserved 12 reserved reserved reserved 13 emctxint0 positive level emc tx interrupt 0 14 emctxint1 positive level emc tx interrupt 1 15 emcrxint0 positive level emc rx interrupt 0 16 emcrxint1 positive level emc rx interrupt 1 17 gdmaint0 positive level gdma channel interrupt 0 18 gdmaint1 positive level gdma channel interrupt 1 19 ~ 31 - lowest - reserved for further use w90n740cd/W90N740CDG - 158 - 7.11.2 aic registers map register address r/w description reset value aic_scr1 0xfff8.2004 r/w source cont rol register 1 0x0000.0047 aic_scr2 0xfff8.2008 r/w source cont rol register 2 0x0000.0047 aic_scr3 0xfff8.200c r/w source c ontrol register 3 0x0000.0047 aic_scr4 0xfff8.2010 r/w source cont rol register 4 0x0000.0047 aic_scr5 0xfff8.2014 r/w source cont rol register 5 0x0000.0047 aic_scr6 0xfff8.2018 r/w source cont rol register 6 0x0000.0047 aic_scr7 0xfff8.201c r/w source c ontrol register 7 0x0000.0047 aic_scr8 0xfff8.2020 r/w source cont rol register 8 0x0000.0047 aic_scr9 0xfff8.2024 r/w source cont rol register 9 0x0000.0047 aic_scr10 0xfff8.2028 r/w source cont rol register 10 0x0000.0047 aic_scr11 0xfff8.202c r/w source c ontrol register 11 0x0000.0047 aic_scr12 0xfff8.2030 r/w source cont rol register 12 0x0000.0047 aic_scr13 0xfff8.2034 r/w source cont rol register 13 0x0000.0047 aic_scr14 0xfff8.2038 r/w source cont rol register 14 0x0000.0047 aic_scr15 0xfff8.203c r/w source c ontrol register 15 0x0000.0047 aic_scr16 0xfff8.2040 r/w source cont rol register 16 0x0000.0000 aic_scr17 0xfff8.2044 r/w source cont rol register 17 0x0000.0000 aic_scr18 0xfff8.2048 r/w source cont rol register 18 0x0000.0000 aic_irsr 0xfff8.2100 r interrupt raw status register 0x0000.0000 aic_iasr 0xfff8.2104 r interrupt active status register 0x0000.0000 aic_isr 0xfff8.2108 r interrupt st atus register 0x0000.0000 aic_iper 0xfff8.210c r interrupt priori ty encoding register 0x0000.0000 aic_isnr 0xfff8.2110 r interrupt source number register 0x0000.0000 aic_imr 0xfff8.2114 r interrupt mask register 0x0000.0000 aic_oisr 0xfff8.2118 r output interrupt status register 0x0000.0000 aic_mecr 0xfff8.2120 w mask enable command register u ndefined aic_mdcr 0xfff8.2124 w mask disable command register u ndefined aic_sscr 0xfff8.2128 w source set command register u ndefined aic_sccr 0xfff8.212c w source clear command register u ndefined aic_eoscr 0xfff8.2130 w end of service command register u ndefined w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 159 - revision a6 aic source control registers (aic_scr1 ~ aic_scr18) register address r/w description reset value aic_scr1 0xfff8.2004 r/w source control register 1 0x0000.0047 aic_scr2 0xfff8.2008 r/w source control register 2 0x0000.0047 y y y y y y y y y y y y y y y aic_scr17 0xfff8.2044 r/w source control register 17 0x0000.0047 aic_scr18 0xfff8.2048 r/w source control register 18 0x0000.0047 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 srctype reserved priority srctype [7:6]: interrupt source type whether an interrupt source is considered active or not by the aic is subject to the settings of this field. srctype [7:6] interrupt source type 0 0 low-level sensitive 0 1 high-level sensitive 1 0 negative-edge triggered 1 1 positive-edge triggered priority [2:0]: priority level every interrupt source must be assigned a priority le vel during initiation. among them, priority level 0 has the highest priority and priority level 7 the lowe st. interrupt sources with priority level 0 are promoted to fiq. interrupt sources with priority le vel other than 0 belong to irq. for interrupt sources of the same priority level, that located in the lower channel number has higher priority. w90n740cd/W90N740CDG - 160 - aic interrupt raw status register (aic_irsr) register address r/w description reset value aic_irsr 0xfff8.2100 r interrupt raw status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved irs18 irs17 irs16 15 14 13 12 11 10 9 8 irs15 irs14 irs13 irs12 irs11 irs10 irs9 irs8 7 6 5 4 3 2 1 0 irs7 irs6 irs5 irs4 irs3 irs2 irs1 reserved this register records the intrinsic state within each interrupt channel. irs x : interrupt status indicate the intrinsic status of the corresponding interrupt source 0 = interrupt channel is in the voltage level 0 1 = interrupt channel is in the voltage level 1 aic interrupt active status register (aic_iasr) register address r/w description reset value aic_iasr 0xfff8.2104 r interrupt active status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved ias18 ias17 ias16 15 14 13 12 11 10 9 8 ias15 ias14 ias13 ias12 ias11 ias10 ias9 ias8 7 6 5 4 3 2 1 0 ias7 ias6 ias5 ias4 ias3 ias2 ias1 reserved this register indicates the status of each interrupt channel in considerat ion of the interrupt source type as defined in the corresponding source control r egister, but regardless of its mask setting. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 161 - revision a6 ias x : interrupt active status indicate the status of the corresponding interrupt source 0 = corresponding interrupt channel is inactive 1 = corresponding interrupt channel is active aic interrupt status register (aic_isr) register address r/w description reset value aic_isr 0xfff8.2108 r interrupt status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved is18 is17 is16 15 14 13 12 11 10 9 8 is15 is14 is13 is12 is11 is10 is9 is8 7 6 5 4 3 2 1 0 is7 is6 is5 is4 is3 is2 is1 reserved this register identifies those interrupt channels whose are both active and enabled. is x : interrupt status indicates the status of corresponding interrupt channel 0 = two possibilities: (1) the corresponding interrupt channel is inactive no matter whether it is enabled or disabled; (2) it is active but not enabled 1 = corresponding interrupt channel is both active and enabled (can assert an interrupt) w90n740cd/W90N740CDG - 162 - aic irq priority encoding register (aic_iper) register address r/w description reset value aic_iper 0xfff8.210c r interrupt priority encoding register 0x0000.0000 31 30 29 28 27 26 25 24 0 0 0 0 0 0 0 0 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 reserved vector 0 0 when the aic generates the interrupt, vector represents the interrupt channel number that is active, enabled, and has the highest priority. if the representi ng interrupt channel possesses a priority level 0, then the interrupt asserted is fiq; ot herwise, it is irq. the value of vector is copied to the register aic_isnr thereafter by the aic. this register was restored a value 0 after it was read by the interrupt handler . this register can help indexing into a branch t able to quickly jump to the corresponding interrupt service routine. vector [6:2]: interrupt vector 0 = no interrupt occurs 1 ~ 31 = representing the interrupt channel that is active, enabled, and having the highest priority w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 163 - revision a6 aic interrupt source number register (aic_isnr) register address r/w description reset value aic_isnr 0xfff8.2110 r interrupt source number register 0x0000.0000 31 30 29 28 27 26 25 24 0 0 0 0 0 0 0 0 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 irqid the purpose of this register is to record the inte rrupt channel number that is active, enabled, and has the highest priority. irqid [4:0]: irq identification stands for the interrupt channel number aic interrupt mask register (aic_imr) register address r/w description reset value aic_imr 0xfff8.2114 r interrupt mask register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved im18 im17 im16 15 14 13 12 11 10 9 8 im15 im14 im13 im12 im11 im10 im9 im8 7 6 5 4 3 2 1 0 im7 im6 im5 im4 im3 im2 im1 reserved im x : interrupt mask this bit determines whether the corresponding in terrupt channel is enabled or disabled. every interrupt channel can be active no matter whether it is enabled or disabled. if an interrupt channel is enabled, it does not definitely mean it is active. every interrupt channel can be authorized by the aic only when it is both active and enabled. w90n740cd/W90N740CDG - 164 - 0 = corresponding interrupt channel is disabled 1 = corresponding interrupt channel is enabled aic output interrupt status register (aic_oisr) register address r/w description reset value aic_oisr 0xfff8.2118 r output interrupt status register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved irq fiq the aic classifies the interrupt into fiq and irq. this register indicates whether the asserted interrupt is fiq or irq. if both irq and fiq are equal to 0, it means there is no interrupt occurred. irq [1]: interrupt request 0 = nirq line is inactive. 1 = nirq line is active. fiq [0]: fast interrupt request 0 = nfiq line is inactive. 1 = nfiq line is active w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 165 - revision a6 aic mask enable command register (aic_mecr) register address r/w description reset value aic_mecr 0xfff8.2120 w mask enable command register undefined 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved mec18 mec17 mec16 15 14 13 12 11 10 9 8 mec15 mec14 mec13 mec12 mec11 mec10 mec9 mec8 7 6 5 4 3 2 1 0 mec7 mec6 mec5 mec4 mec3 mec2 mec1 reserved mec x : mask enable command 0 = no effect 1 = enables the corresponding interrupt channel aic mask disable command register (aic_mdcr) register address r/w description reset value aic_mdcr 0xfff8.2124 w mask disable command register u ndefined 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved mdc18 mdc17 mdc16 15 14 13 12 11 10 9 8 mdc15 mdc14 mdc13 mdc12 mdc11 mdc10 mdc9 mdc8 7 6 5 4 3 2 1 0 mdc7 mdc6 mdc5 mdc4 mdc3 mdc2 mdc1 reserved mdc x : mask disable command 0 = no effect 1 = disables the corresponding interrupt channel w90n740cd/W90N740CDG - 166 - aic source set command register (aic_sscr) register address r/w description reset value aic_sscr 0xfff8.2128 w source set command register u ndefined 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved ssc18 ssc17 ssc16 15 14 13 12 11 10 9 8 ssc15 ssc14 ssc13 ssc12 ssc11 ssc10 ssc9 ssc8 7 6 5 4 3 2 1 0 ssc7 ssc7 ssc6 ssc4 ssc3 ssc2 ssc1 reserved when the w90n740 is under debugging or verification , software can activate any interrupt channel by setting the corresponding bit in this register. this feature is useful in hardware verification or software debugging. ssc x : source set command 0 = no effect. 1 = activates the corresponding interrupt channel aic source clear command register (aic_sccr) register address r/w description reset value aic_sccr 0xfff8.212c w source clear command register undefined 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved scc18 scc17 scc16 15 14 13 12 11 10 9 8 scc15 scc14 scc13 scc12 scc11 scc10 scc9 scc8 7 6 5 4 3 2 1 0 scc7 scc7 scc6 scc4 scc3 scc2 scc1 reserved w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 167 - revision a6 when the w90n740 is under debugging or verification , software can deactivate any interrupt channel by setting the corresponding bit in this register. this feature is useful in hardware verification or software debugging. scc x : source clear command 0 = no effect. 1 = deactivates the corresponding interrupt channels aic end of service command register (aic_eoscr) register address r/w description reset value aic_eoscr 0xfff8.2130 w end of service command register u ndefined 31 30 29 28 27 26 25 24 --- --- --- --- --- --- --- --- 23 22 21 20 19 18 17 16 --- --- --- --- --- --- --- --- 15 14 13 12 11 10 9 8 --- --- --- --- --- --- --- --- 7 6 5 4 3 2 1 0 --- --- --- --- --- --- --- --- this register is used by the interrupt service routine to indicate that it is completely served. thus, the interrupt handler can write any value to this register to indicate the end of its interrupt service. 7.12 general-purpose input/output controller (gpio) the general-purpose input/output (gpio) module possesses 21 pins and serves multiple purposes. the features of the gpio controller: ? programmable as an input or output pin ? includes de-bouncer circuits on gpio20, gp io19, gpio18, and gpio17 which can be turned off if not requir for example, gpio20 ~ gpio17 can be programmed as external interrupt input pins, gpio16 ~ gpio15 for external dma function, gpio14 ~ gpio13 for timer tone output, gpio12 as the watchdog timeout flag, gpio11 ~ gpio10 used for uart console moni tor, gpio9 ~ gpio4 for modem. the table as shown below is a summary. w90n740cd/W90N740CDG - 168 - table 7.12.1 gpio pin assignment of multi-function general-purpose i/o multi-function 1 multi-function 2 (usb io port) gpio name type name type name type gpio20 gp20 io nirq3 i - - gpio19 gp19 io nirq2 i - - gpio18 gp18 io nirq1 i ovrcur i gpio17 gp17 io nirq0 i - - gpio16 gp16 io nxdreq3 i - - gpio15 gp15 io nxdack o - - gpio14 gp14 io timer1 o speed o gpio13 gp13 io timer0 o stdby o gpio12 gp12 io nwdog o pwrenx o gpio11 gp11 io rxd i - - gpio10 gp10 io txd o - - gpio9 gp9 iou ndsr iu ntoe o gpio8 gp8 iou ndtr o fse0 o gpio7 gp7 iou ncd iu vo o gpio6 gp6 iou ncts iu vm iu gpio5 gp5 iou nrts o vp iu gpio4 gp4 iou nri iu rcv iu gpio3 gp3 iou nxdreq2 iu - - gpio2 gp2 iou nxdreq1 iu - - gpio1 gp1 iou nwtc o - - gpio0 gp0 iou nrtc o - - note : u means internal weak pull-up. 7.12.1 gpio controller registers map register address r/w description reset value gpio_cfg 0xfff8.3000 r/w gpio configuration register 0x0000.0000 gpio_dir 0xfff8.3004 r/w gpio direction register 0x0000.0000 gpio_dataout 0xfff8.3008 r/w gpio data output register 0x0000.0000 gpio_datain 0xfff8.300c r gpio data input register undefi ned debnce_ctrl 0xfff8.3010 r/w de-bounce control register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 169 - revision a6 gpio configuration register (gpio_cfg) register address r/w description reset value gpio_cfg 0xfff8.3000 r/w gpio configuration register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 gpiocfg20 gpiocfg19 gpiocfg18 15 14 13 12 11 10 9 8 gpiocfg17 gpiocfg16_15 gpiocfg14 gpiocfg13 7 6 5 4 3 2 1 0 gpiocfg12 gpiocfg11_10 gpiocfg9_4 gpiocfg3_0 gpiocfg20 [21:20]: operating mode for gpio20 11 10 01 00 gpiocfg20 name type name type name type name type gpio20 reserved i reserved nirq3 i gp20 io nirq3 is one of the external interrupt input pins. gpiocfg19 [19:18]: operating mode for gpio19 11 10 01 00 gpiocfg19 name type name type name type name type gpio19 reserved i reserved nirq2 i gp19 io nirq2 is one of the external interrupt input pins. gpiocfg18 [17:16]: operating mode for gpio18 11 10 01 00 gpiocfg18 name type name type name type name type gpio18 reserved i ovrcu r i nirq1 i gp18 io ovrcur is used as over current indicator if this field set to 10. nirq1 is one of the external interrupt input pins. w90n740cd/W90N740CDG - 170 - gpiocfg17 [15:14]: operating mode for gpio17 11 10 01 00 gpiocfg17 name type name type name type name type gpio17 reserved reserved nirq0 i gp17 io nirq0 is one of the external interrupt input pins. gpiocfg16_15 [13:12]: operating mode for gpio16 and gpio15 11 10 01 00 gpiocfg16_15 name type name type name type name type gpio16 reserved o reserved nxdreq3 i gp16 i/o gpio15 reserved o reserved nxdack o gp15 i/o nxdreq3 is the external dma request signal pin. nxdack is the external dma granted signal pin. gpiocfg14 [11:10]: operating mode for gpio14 11 10 01 00 gpiocfg14 name type name type name type name type gpio14 reserved o speed o timer1 o gp14 io speed is a usb io port, which controls t he external usb transceiver speed mode. timer1 is the tone output of timer1. gpiocfg13 [9:8]: operating mode for gpio13 11 10 01 00 gpiocfg13 name type name type name type name type gpio13 reserved o stdby o timer0 o gp13 io stdby is a usb io port, which controls the ex ternal usb transceiver power-down mode. timer0 is the tone output of timer0. gpiocfg12 [7:6]: operating mode for gpio12 11 10 01 00 gpiocfg12 name type name type name type name type gpio12 reserved io pwren io nwdog o gp12 io nwdog is the timeout output of watch-dog timer. w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 171 - revision a6 gpiocfg11_10 [5:4]: operating mode for gpio11 and gpio10 11 10 01 00 gpiocfg11_10 name type name type name type name type gpio11 o rxd i gp11 io gpio10 reserved o reserved txd o gp10 io rxd and txd are used for the uart console. gpiocfg9_4 [3:2]: operating mode for gpio9, gpio8, gpio7, gpio6, gpio5, and gpio4 11 10 01 00 gpiocfg9_4 name type name type name type name type gpio9 ntoe o ndsr iu gp9 iou gpio8 fse0 o ndtr o gp8 iou gpio7 vo o ncd iu gp7 iou gpio6 vm iu ncts iu gp6 iou gpio5 vp iu nrts o gp5 iou gpio4 reserved rcv iu nri iu gp4 iou ntoe, fse0, vo, vm, vp, and rcv are the usb io signal pins, which connected to the external usb transceiver to control the data in/out. ndsr, ndtr, ncd, nc ts, nrts and nri are the uart modem signal pins. gpiocfg3_0 [1:0]: operating mode for gpio3, gpio2, gpio1, and gpio0 11 10 01 00 gpiocfg3_0 name type name type name type name type gpio3 nxdreq2 iu gp3 i/o gpio2 nxdreq1 iu gp2 i/o gpio1 nwtc o gp1 i/o gpio0 reserved reserved nrtc o gp0 i/o gpio direction register (gpio_dir) register address r/w description reset value gpio_dir 0xfff8.3004 r/w gpio direction register 0x0000.0000 w90n740cd/W90N740CDG - 172 - 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved gpiod20 gpiod19 gpiod18 gpiod17 gpiod16 15 14 13 12 11 10 9 8 gpiod15 gpiod14 gpiod13 gpiod12 gpiod11 gpiod10 gpiod9 gpiod8 7 6 5 4 3 2 1 0 gpiod7 gpiod6 gpiod5 gpiod4 gpiod3 gpiod2 gpiod1 gpiod0 gpiod x : gpiox direction the gpiod x is used to set the direction of gpio x if it is used as a regular input/output pin ( gpx ). 0 = gpio x is an input pin 1 = gpio x is an output pin gpio data output register (gpio_dataout) register address r/w description reset value gpio_dataout 0xfff8.3008 r/w gpio data output register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved gpiodo20 gpiodo19 gpiod o18 gpiodo17 gpiodo16 15 14 13 12 11 10 9 8 gpiodo15 gpiodo14 gpiodo13 gpiodo12 g piodo11 gpiodo10 g piodo9 gpiodo8 7 6 5 4 3 2 1 0 gpiodo7 gpiodo6 gpiod o5 gpiodo4 gpiodo3 gp iodo2 gpiodo1 gpiodo0 gpiodo x : gpio output corresponding to bit x if the gpio x is used as a general-purpose output pin, then the corresponding gpiodo x specifies the value to output from this pin. gpio data input register (gpio_datain) register address r/w description reset value gpio_datain 0xfff8.3008 r gpio data input register u ndefined w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 173 - revision a6 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved gpiodi20 gpiodi19 gpiod i18 gpiodi17 gpiodi16 15 14 13 12 11 10 9 8 gpiodi15 gpiodi14 gpiodi13 gpiodi12 g piodi11 gpiodi10 g piodi9 gpiodi8 7 6 5 4 3 2 1 0 gpiodi7 gpiodi6 gpiodi5 gpiodi4 gpiodi3 gpiod i2 gpiodi1 gpiodi0 gpiodi x : gpio status corresponding to bit x the gpiodi x indicates the status of each gpio pin regardless of its operation mode. debounce control register (debnce_ctrl) register address r/w description reset value debnce_ctrl 0xfff8.3010 r/w de-bounce control register 0x0000.0000 31 30 29 28 27 26 25 24 reserved 23 22 21 20 19 18 17 16 reserved 15 14 13 12 11 10 9 8 reserved 7 6 5 4 3 2 1 0 reserved dbclksel dbe3 dbe2 dbe1 dbe0 dbclksel [6:4]: de-bounce clock rate selector these three bits are used to select the clock ra te for de-bouncer circuit. the relationship between the system clock hclk and the de-bounce clock tclk_bun is as follows: tclk_bun = hclk / 2 dbclksel dbe3 [3]: de-bouncer circuit enable for gpio20 0 = de-bounce function is disabled 1 = de-bounce function is enabled w90n740cd/W90N740CDG - 174 - dbe2 [2]: de-bouncer circuit enable for gpio19 0 = de-bounce function is disabled 1 = de-bounce function is enabled dbe1 [1]: de-bouncer circuit enable for gpio18 0 = de-bounce function is disabled 1 = de-bounce function is enabled dbe0 [0]: de-bouncer circuit enable for gpio17 0 = de-bounce function is disabled 1 = de-bounce function is enabled 8. electrical characteristics 8.1 absolute maximum ratings ambient temper ature...............................?????............................ 0 c ~ 70 c storage temper ature ..................................................??.................... -40 c ~ 125 c voltage on any pin ...............................................................??.......... -0 .5v ~ 6v power supply voltage (core logi c) .............................?...........???.. 1. 62v ~ 1.96v power supply voltage (io bu ffer) ...............................?...........???.. 3 .0v ~ 3.6v injection current (latch -up testing) ..............................................???. 100 ma crystal frequency .............................................?...........???..??? 3 mhz ~ 30 mhz w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 175 - revision a6 8.2 dc characteristics (normal test conditions: vdd33/usbvdd = 3.3v +/- 0.3v, vdd18/dvdd18/avdd18 = 1.8v+/- 0.18v t a = 0 c ~ 70 c unless otherwise specified) symbol parameter condition min. max. unit vdd33/ usbvdd power supply 3.00 3.60 v vdd18/ dvdd18/ avdd18 power supply 1.62 1.98 v v il input low voltage -0.3 0.8 v v ih input high voltage 2.0 5.5 v vt+ schmitt trigger positive-going threshold 1.47 1.5 v vt- schmitt trigger negative-going threshold 0.89 0.95 v v ol output low voltage depend on driving 0.4 v v oh output high voltage depend on driving 2.4 v i cc1 supply current (vdd33) f cpu = 80mhz 90 ma i cc2 supply current (vdd18) f cpu = 80mhz 40 ma i ih input high current v in = 2.4 v -1 1 a i il input low current v in = 0.4 v -1 1 a i ihp input high current (pull-up) v in = 2.4 v -15 -10 a i ilp input low current (pull-up) v in = 0.4 v -55 -25 a i ihd input high current (pull-down) v in = 2.4 v 25 60 a i ild input low current (pull-down) v in = 0.4 v 5 10 a 8.2.1 usb transceiver dc characteristics symbol parameter conditions min. max. unit v di differential input sensitivity ? dp ? dm ? 0.2 v v cm differential common mode range includes v di range 0.8 2.5 v v se single ended receiver threshold 0.8 2.0 v v ol static output low voltage rl of 1.5 k to 3.6 v 0.3 v v oh static output high voltage rl of 15 k to v ss 2.8 3.6 v v crs output signal crossover voltage 1.3 2.0 v z drv driver output resistanc e steady state drive 28 43 w90n740cd/W90N740CDG - 176 - 8.3 ac characteristics 8.3.1 ebi/sdram interface ac characteristics mclk d[31:0] input valid 1.5v 1.5v 1.5v t dsu t dh mclk output delay output valid 1.5v 1.5v t do sym. parameter min. max. unit t dsu d [31:0] setup time 2 ns t dh d [31:0] hold time 3 ns t do d [31:0], a [24:0], nscs [1:0], sdqm [3 :0], cke, nswe, nsras, nscas 2 7 ns 8.3.2 ebi/external master interface ac characteristics mclk t emsu emreq emack t emao t emh t emao w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 177 - revision a6 sym. description min. max. unit t emsu emreq setup time 2 ns t emh emreq hold time 3 ns t emao emack output delay time 4 7 ns 8.3.3 ebi/(rom/sram/external i/o) ac characteristics address valid r data write data vaild mclk t do necs[3:0] a[24:0] noe d[31:0] nwait nwbe[3:0] d[31:0] t necso t necso t addo t noeo t noeo t dsu t dh t nwah t nwbo t nwbo t nwasu w90n740cd/W90N740CDG - 178 - symbol description min. max. unit t addo address output delay time 2 7 ns t ncso rom/sram/flash or external i/o chip select delay time 2 7 ns t noeo rom/sram or external i/o bank output enable delay 2 7 ns t nwbo rom/sram or external i/o bank write byte enable delay 2 7 ns t dh read data hold time 7 ns t dsu read data setup time 0 ns t do write data output delay time (sram or external i/o) 2 7 ns t nwasu external wait setup time 3 ns t nwah external wait hold time 1 ns 8.3.4 usb transceiver ac characteristics low speed: 75ns at c l = 50pf, 300ns at c l = 350pf full speed: 4 to 20ns at c l = 50pf differential data lines 1 0% rise time 90% fall time t f t r 1 0% 90% c l c l data signal rise and fall time usb transceiver ac characteristics sym. description conditions min. max. unit t r rise time (full speed) cl = 50 pf 4 20 ns t f fall time (full speed cl = 50 pf 4 20 ns t rfm rise/fall time matching (full speed) 90 112 % t drate full speed data rate average bit rate (12 mb/s 0.25%) 11.97 12.03 mbps w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 179 - revision a6 8.3.5 emc mii ac characteristics the signal timing characteristics conforms to the guidelines specified in ieee std. 802.3. tx_clk tx_d [3:0] tx_en tx_err t txo valid transmit signal timing re lationships at mii rx_clk rx_d [3:0] rx_dv rx_err valid input t rxh t rxsu receive signal timing re lationships at mii symbol description min. max. unit t txo transmit output delay time 3 15 ns t rxsu receive setup time 5 ns t rxh receive hold time 5 ns mdc mdio valid input t mdh t mdsu mdio read from phy timing w90n740cd/W90N740CDG - 180 - mdc mdio t mdo valid mdio write to phy timing symbol description min. max. unit t mdo mdio output delay time 0 5 ns t mdsu mdio setup time 5 ns t mdh mdio hold time 5 ns w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 181 - revision a6 9. package dimensions 176-pin lqfp (note that the value in inches may have so me inaccuracy as it is translated from the value in millimeter) w90n740cd/W90N740CDG - 182 - 10. w90n740 registers mapping table r : read only, w : write only, r/w : both read and write, c : only value 0 can be written system manager control registers map register address r/w description reset value pdid 0xfff0.0000 r product ident ifier register 0xx090.0740 arbcon 0xfff0.0004 r/w arbitrati on control register 0x0000.0000 pllcon 0xfff0.0008 r/w pll c ontrol register 0x0000.2f01 clksel 0xfff0.000c r/w clock se lect register 0x0000.3fx8 ebi control registers map register address r/w description reset value ebicon 0xfff0.1000 r/w ebi c ontrol register 0x0001.0000 romcon 0xfff0.1004 r/w rom/flash control register 0x0000.0xfc sdconf0 0xfff0.1008 r/w sdram bank 0 configuration register 0x0000.0800 sdconf1 0xfff0.100c r/w sdram bank 1 configuration register 0x0000.0800 sdtime0 0xfff0.1010 r/w sdram bank 0 timing control register 0x0000.0000 sdtime1 0xfff0.1014 r/w sdram bank 1 timing control register 0x0000.0000 ext0con 0xfff0.1018 r/w external i/o 0 control register 0x0000.0000 ext1con 0xfff0.101c r/w external i/o 1 control register 0x0000.0000 ext2con 0xfff0.1020 r/w external i/o 2 control register 0x0000.0000 ext3con 0xfff0.1024 r/w external i/o 3 control register 0x0000.0000 ckskew 0xfff0.1f00 r/w clock skew control register 0xxxxx.0038 cache control registers map register address r/w description reset value cahcnf 0xfff0.2000 r/w cache conf iguration register 0x0000.0000 cahcon 0xfff0.2004 r/w cache control register 0x0000.0000 cahadr 0xfff0.2008 r/w cache address register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 183 - revision a6 emc 0 control registers map register address r/w description reset value cam registers camcmr_0 0xfff0.3000 r/w cam command register 0x0000.0000 camen_0 0xfff0.3004 r/w ca m enable register 0x0000.0000 cam1m_0 0xfff0.3008 r/w cam1 most si gnificant word register 0x0000.0000 cam1l_0 0xfff0.300c r/w cam1 least si gnificant word register 0x0000.0000 cam2m_0 0xfff0.3010 r/w cam2 most si gnificant word register 0x0000.0000 cam2l_0 0xfff0.3014 r/w cam2 least signi ficant word register 0x0000.0000 cam3m_0 0xfff0.3018 r/w cam3 most si gnificant word register 0x0000.0000 cam3l_0 0xfff0.301c r/w cam3 least si gnificant word register 0x0000.0000 cam4m_0 0xfff0.3020 r/w cam4 most si gnificant word register 0x0000.0000 cam4l_0 0xfff0.3024 r/w cam4 least signi ficant word register 0x0000.0000 cam5m_0 0xfff0.3028 r/w cam5 most si gnificant word register 0x0000.0000 cam5l_0 0xfff0.302c r/w cam5 least si gnificant word register 0x0000.0000 cam6m_0 0xfff0.3030 r/w cam6 most si gnificant word register 0x0000.0000 cam6l_0 0xfff0.3034 r/w cam6 least signi ficant word register 0x0000.0000 cam7m_0 0xfff0.3038 r/w cam7 most si gnificant word register 0x0000.0000 cam7l_0 0xfff0.303c r/w cam7 least si gnificant word register 0x0000.0000 cam8m_0 0xfff0.3040 r/w cam8 most si gnificant word register 0x0000.0000 cam8l_0 0xfff0.3044 r/w cam8 least signi ficant word register 0x0000.0000 cam9m_0 0xfff0.3048 r/w cam9 most si gnificant word register 0x0000.0000 cam9l_0 0xfff0.304c r/w cam9 least si gnificant word register 0x0000.0000 cam10m_0 0xfff0.3050 r/w cam10 most si gnificant word register 0x0000.0000 cam10l_0 0xfff0.3054 r/w cam10 least signi ficant word register 0x0000.0000 cam11m_0 0xfff0.3058 r/w cam11 most si gnificant word register 0x0000.0000 cam11l_0 0xfff0.305c r/w cam11 least si gnificant word register 0x0000.0000 cam12m_0 0xfff0.3060 r/w cam12 most si gnificant word register 0x0000.0000 cam12l_0 0xfff0.3064 r/w cam12 least signi ficant word register 0x0000.0000 cam13m_0 0xfff0.3068 r/w cam13 most si gnificant word register 0x0000.0000 cam13l_0 0xfff0.306c r/w cam13 least si gnificant word register 0x0000.0000 cam14m_0 0xfff0.3070 r/w cam14 most si gnificant word register 0x0000.0000 cam14l_0 0xfff0.3074 r/w cam14 least signi ficant word register 0x0000.0000 w90n740cd/W90N740CDG - 184 - emc 0 control registers map, continued register address r/w description reset value cam registers cam15m_0 0xfff0.3078 r/w cam15 most si gnificant word register 0x0000.0000 cam15l_0 0xfff0.307c r/w cam15 least signi ficant word register 0x0000.0000 cam16m_0 0xfff0.3080 r/w cam16 most si gnificant word register 0x0000.0000 cam16l_0 0xfff0.3084 r/w cam16 least signi ficant word register 0x0000.0000 mac registers mien_0 0xfff0.3088 r/w mac interr upt enable register 0x0000.0000 mcmdr_0 0xfff0.308c r/w mac command register 0x0000.0000 miid_0 0xfff0.3090 r/w mii management data register 0x0000.0000 miida_0 0xfff0.3094 r/w mii management data control and address register 0x0090.0000 mpcnt_0 0xfff0.3098 r/w missed packe t counter register 0x0000.7fff dma registers txdlsa_0 0xfff0.309c r/w transmit descriptor link list start address register 0xffff.fffc rxdlsa_0 0xfff0.30a0 r/w receive descriptor link list start address register 0xffff.fffc dmarfc_0 0xfff0.30a4 r/w dma receiv e frame control register 0x0000.0800 tsdr_0 0xfff0.30a8 w transmit st art demand register undefined rsdr_0 0xfff0.30ac w receive st art demand register undefined fifothd_0 0xfff0.30b0 r/w fifo thres hold adjustment register 0x0000.0101 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 185 - revision a6 emc 0 status registers register address r/w description reset value mac registers mista_0 0xfff0.30b4 r/w mac inte rrupt status register 0x0000.0000 mgsta_0 0xfff0.30b8 r/w mac gener al status register 0x0000.0000 mrpc_0 0xfff0.30bc r mac receive pause count register 0x0000.0000 mrpcc_0 0xfff0.30c0 r mac receive p ause current count register 0x0000.0000 mrepc_0 0xfff0.30c4 r mac remote pause count register 0x0000.0000 dma registers dmarfs_0 0xfff0.30c8 r/w dma receiv e frame status register 0x0000.0000 ctxdsa_0 0xfff0.30cc r current transmit descriptor start address register 0x0000.0000 ctxbsa_0 0xfff0.30d0 r current transmit bu ffer start address register 0x0000.0000 crxdsa_0 0xfff0.30d4 r current receive de scriptor start address register 0x0000.0000 crxbsa_0 0xfff0.30d8 r current receive bu ffer start address register 0x0000.0000 w90n740cd/W90N740CDG - 186 - emc 1 control registers register address r/w description reset value cam registers camcmr_1 0xfff0.3800 r/w cam command register 0x0000.0000 camen_1 0xfff0.3804 r/w cam enable register 0x0000.0000 cam1m_1 0xfff0.3808 r/w cam1 most si gnificant word register 0x0000.0000 cam1l_1 0xfff0.380c r/w cam1 least signi ficant word register 0x0000.0000 cam2m_1 0xfff0.3810 r/w cam2 most si gnificant word register 0x0000.0000 cam2l_1 0xfff0.3814 r/w cam2 least signi ficant word register 0x0000.0000 cam3m_1 0xfff0.3818 r/w cam3 most si gnificant word register 0x0000.0000 cam3l_1 0xfff0.381c r/w cam3 least signi ficant word register 0x0000.0000 cam4m_1 0xfff0.3820 r/w cam4 most si gnificant word register 0x0000.0000 cam4l_1 0xfff0.3824 r/w cam4 least signi ficant word register 0x0000.0000 cam5m_1 0xfff0.3828 r/w cam5 most si gnificant word register 0x0000.0000 cam5l_1 0xfff0.382c r/w cam5 least signi ficant word register 0x0000.0000 cam6m_1 0xfff0.3830 r/w cam6 most si gnificant word register 0x0000.0000 cam6l_1 0xfff0.3834 r/w cam6 least signi ficant word register 0x0000.0000 cam7m_1 0xfff0.3838 r/w cam7 most si gnificant word register 0x0000.0000 cam7l_1 0xfff0.383c r/w cam7 least signi ficant word register 0x0000.0000 cam8m_1 0xfff0.3840 r/w cam8 most si gnificant word register 0x0000.0000 cam8l_1 0xfff0.3844 r/w cam8 least signi ficant word register 0x0000.0000 cam9m_1 0xfff0.3848 r/w cam9 most si gnificant word register 0x0000.0000 cam9l_1 0xfff0.384c r/w cam9 least signi ficant word register 0x0000.0000 cam10m_1 0xfff0.3850 r/w cam10 most si gnificant word register 0x0000.0000 cam10l_1 0xfff0.3854 r/w cam10 least signi ficant word register 0x0000.0000 cam11m_1 0xfff0.3858 r/w cam11 most si gnificant word register 0x0000.0000 cam11l_1 0xfff0.385c r/w cam11 least signi ficant word register 0x0000.0000 cam12m_1 0xfff0.3860 r/w cam12 most si gnificant word register 0x0000.0000 cam12l_1 0xfff0.3864 r/w cam12 least signi ficant word register 0x0000.0000 cam13m_1 0xfff0.3868 r/w cam13 most si gnificant word register 0x0000.0000 cam13l_1 0xfff0.386c r/w cam13 least signi ficant word register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 187 - revision a6 emc 1 control registers, continued. register address r/w description reset value cam registers cam14m_1 0xfff0.3870 r/w cam14 most si gnificant word register 0x0000.0000 cam14l_1 0xfff0.3874 r/w cam14 least signi ficant word register 0x0000.0000 cam15m_1 0xfff0.3878 r/w cam15 most si gnificant word register 0x0000.0000 cam15l_1 0xfff0.387c r/w cam15 least signi ficant word register 0x0000.0000 cam16m_1 0xfff0.3880 r/w cam16 most si gnificant word register 0x0000.0000 cam16l_1 0xfff0.3884 r/w cam16 least signi ficant word register 0x0000.0000 mac registers mien_1 0xfff0.3888 r/w mac interr upt enable register 0x0000.0000 mcmdr_1 0xfff0.388c r/w mac command register 0x0000.0000 miid_1 0xfff0.3890 r/w mii management data register 0x0000.0000 miida_1 0xfff0.3894 r/w mii management data control and address register 0x0090.0000 mpcnt_1 0xfff0.3898 r/w missed packe t counter register 0x0000.7fff dma registers txdlsa_1 0xfff0.389c r/w transmit descriptor link list start address register 0xffff.fffc rxdlsa_1 0xfff0.38a0 r/w receive descriptor link list start address register 0xffff.fffc dmarfc_1 0xfff0.38a4 r/w dma receiv e frame control register 0x0000.0800 tsdr_1 0xfff0.38a8 w transmit st art demand register undefined rsdr_1 0xfff0.38ac w receive st art demand register undefined fifothd_1 0xfff0.38b0 r/w fifo thres hold adjustment register 0x0000.0101 w90n740cd/W90N740CDG - 188 - emc 1 status registers register address r/w description reset value mac registers mista_1 0xfff0.38b4 r/w mac inte rrupt status register 0x0000.0000 mgsta_1 0xfff0.38b8 r/w mac gener al status register 0x0000.0000 mrpc_1 0xfff0.38bc r mac receive pause count register 0x0000.0000 mrpcc_1 0xfff0.38c0 r mac receive p ause current count register 0x0000.0000 mrepc_1 0xfff0.38c4 r mac remote pause count register 0x0000.0000 dma registers dmarfs_1 0xfff0.38c8 r/w dma receiv e frame status register 0x0000.0000 ctxdsa_1 0xfff0.38cc r current transmit descriptor start address register 0x0000.0000 ctxbsa_1 0xfff0.38d0 r current transmit bu ffer start address register 0x0000.0000 crxdsa_1 0xfff0.38d4 r current receive descriptor start address register 0x0000.0000 crxbsa_1 0xfff0.38d8 r current receive bu ffer start address register 0x0000.0000 gdma registers map register address r/w description reset value gdma_ctl0 0xfff0.4000 r/w channel 0 control register 0x0000.0000 gdma_srcb0 0xfff0.4004 r/w channel 0 source base address register 0x0000.0000 gdma_dstb0 0xfff0.4008 r/w channel 0 destination base address register 0x0000.0000 gdma_tcnt0 0xfff0.400c r/w channel 0 transfer count register 0x0000.0000 gdma_csrc0 0xfff0.4010 r channel 0 current source address register 0x0000.0000 gdma_cdst0 0xfff0.4014 r channel 0 current destination address register 0x0000.0000 gdma_ctcnt0 0xfff0.4018 r channel 0 current transfer count register 0x0000.0000 gdma_ctl1 0xfff0.4020 r/w channel 1 control register 0x0000.0000 gdma_srcb1 0xfff0.4024 r/w channel 1 source base address register 0x0000.0000 gdma_dstb1 0xfff0.4028 r/w channel 1 destination base address register 0x0000.0000 gdma_tcnt1 0xfff0.402c r/w channel 1 transfer count register 0x0000.0000 gdma_csrc1 0xfff0.4030 r channel 1 current source address register 0x0000.0000 gdma_cdst1 0xfff0.4034 r channel 1 current destination address register 0x0000.0000 gdma_ctcnt1 0xfff0.4038 r channel 1 current transfer count register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 189 - revision a6 usb host controller registers map register address r/w description reset value openhci registers hcrevision 0xfff0.5000 r host controller revision register 0x0000.0010 hccontrol 0xfff0.5004 r/w host controller control register 0x0000.0000 hccommandstatus 0xfff0.5008 r/w host controller command status register 0x0000.0000 hcinterruptstatus 0xfff0.500c r/w host controller interrupt status register 0x0000.0000 hcinterruptenable 0xfff0.5010 r/w host controller interrupt enable register 0x0000.0000 hcinterruptdisable 0xfff0.5014 r/w host controller interrupt disable register 0x0000.0000 hchcca 0xfff0.5018 r/w host controller communication area register 0x0000.0000 hcperiodcurrented 0xfff0.501c r/w host controller period current ed register 0x0000.0000 hccontrolheaded 0xfff0.5020 r/w host controller control head ed register 0x0000.0000 hccontrolcurrented 0xfff0.5024 r/w host controller control current ed register 0x0000.0000 hcbulkheaded 0xfff0.5028 r/w host controller bulk head ed register 0x0000.0000 hcbulkcurrented 0xfff0.502c r/w host controller bulk current ed register 0x0000.0000 hcdonehead 0xfff0.5030 r/w host controller done head register 0x0000.0000 hcfminterval 0xfff0.5034 r/w host controller frame in terval register 0x0000.2edf hcframeremaining 0xfff0.5038 r host controller frame remaining register 0x0000.0000 hcfmnumber 0xfff0.503c r host controller frame number register 0x0000.0000 hcperiodicstart 0xfff0.5040 r/w host controller periodic start register 0x0000.0000 hclsthreshold 0xfff0.5044 r/w host controller low speed threshold register 0x0000.0628 hcrhdescriptora 0xfff0.5048 r/w host controller root hub descriptor a register 0x0100.0002 hcrhdescriptorb 0xfff0.504c r/w host controller root hub descriptor b register 0x0000.0000 hcrhstatus 0xfff0.5050 r/w host controller root h ub status register 0x0000.0000 hcrhportstatus [1] 0xfff0.5054 r/w host controller root hub port status [1] 0x0000.0000 hcrhportstatus [2] 0xfff0.5058 r/w host controller root hub port status [2] 0x0000.0000 w90n740cd/W90N740CDG - 190 - nata registers map register offset r/w description reset value nata control and status registers natcmd 0xfff0.6000 r/w nat command register 0x0000.0000 natcclr0 0xfff0.6010 w nat count er 0 clear register 0x0000.0000 natcclr1 0xfff0.6014 w nat count er 1 clear register 0x0000.0000 natcclr2 0xfff0.6018 w nat count er 2 clear register 0x0000.0000 natcclr3 0xfff0.601c w nat count er 3 clear register 0x0000.0000 natcfg0 0xfff0.6100 r/w nat entry 0 configuration register 0x0000.0000 natcfg1 0xfff0.6104 r/w nat entry 1 configuration register 0x0000.0000 . . . . . . . . . . . . . . . natcfg63 0xfff0.61fc r/w nat entry 63 configuration register 0x0000.0000 exmacm 0xfff0.6200 r/w external mac address most significant word register 0x0000.0000 exmacl 0xfff0.6204 r/w external mac address least significant word register 0x0000.0000 inmacm 0xfff0.6208 r/w internal mac address most significant word register 0x0000.0000 inmacl 0xfff0.620c r/w internal mac address least significant word register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 191 - revision a6 register offset r/w description reset value address lookup and replacement registers masad0 0xfff0.6800 r/w nat masquerading ip address entry 0 0x0000.0000 maspn0 0xfff0.6804 r/w nat masquerading port number entry 0 0x0000.0000 lsad0 0xfff0.6808 r/w local stati on ip address entry 0 0x0000.0000 lspn0 0xfff0.680c r/w local stati on port number entry 0 0x0000.0000 lsmac0m 0xfff0.6810 r/w local station mac address most significant word register for entry 0 0x0000.0000 lsmac0l 0xfff0.6814 r/w local station mac address least significant word register for entry 0 0x0000.0000 rsmac0m 0xfff0.6818 r/w remote station mac address most significant word register for entry 0 0x0000.0000 rsmac0l 0xfff0.681c r/w remote station mac address least significant word register for entry 0 0x0000.0000 masad1 0xfff0.6820 r/w nat masquerading ip address entry 1 0x0000.0000 maspn1 0xfff0.6824 r/w nat masquerading port number entry 1 0x0000.0000 lsad1 0xfff0.6828 r/w local stati on ip address entry 1 0x0000.0000 lspn1 0xfff0.682c r/w local stati on port number entry 1 0x0000.0000 lsmac1m 0xfff0.6830 r/w local station mac address most significant word register for entry 1 0x0000.0000 lsmac1l 0xfff0.6834 r/w local station mac address least significant word register for entry 1 0x0000.0000 rsmac1m 0xfff0.6838 r/w remote station mac address most significant word register for entry 1 0x0000.0000 rsmac1l 0xfff0.683c r/w remote station mac address least significant word register for entry 1 0x0000.0000 ? ? ? ? ? masad63 0xfff0.6fe0 r/w nat masquerading ip address entry 63 0x0000.0000 maspn63 0xfff0.6fe4 r/w nat masquerading port number entry 63 0x0000.0000 lsad63 0xfff0.6fe8 r/w local stat ion ip address entry 63 0x0000.0000 lspn63 0xfff0.6fec r/w local stati on port number entry 63 0x0000.0000 lsmac63m 0xfff0.6ff0 r/w local station mac address most significant word register for entry 63 0x0000.0000 lsmac63l 0xfff0.6ff4 r/w local station mac address least significant word register for entry 63 0x0000.0000 rsmac63m 0xfff0.6ff8 r/w remote station mac address most significant word register for entry 63 0x0000.0000 rsmac63l 0xfff0.6ffc r/w remote station mac address least significant word register for entry 63 0x0000.0000 w90n740cd/W90N740CDG - 192 - uart control registers map register address r/w description reset value rbr 0xfff8.0000 r receive buffer r egister (dlab = 0) undefined thr 0xfff8.0000 w transmit holding register (dlab = 0) undefined ier 0xfff8.0004 r/w interrupt enabl e register (dlab = 0) 0x0000.0000 dll 0xfff8.0000 r/w divisor latch register (ls) (dlab = 1) 0x0000.0000 dlm 0xfff8.0004 r/w divisor latch register (ms) (dlab = 1) 0x0000.0000 iir 0xfff8.0008 r interrupt ident ification register 0x8181.8181 fcr 0xfff8.0008 w fifo cont rol register undefined lcr 0xfff8.000c r/w line c ontrol register 0x0000.0000 mcr 0xfff8.0010 r/w modem c ontrol register 0x0000.0000 lsr 0xfff8.0014 r line stat us register 0x6060.6060 msr 0xfff8.0018 r modem st atus register 0x0000.0000 tor 0xfff8.001c r time out register 0x0000.0000 timer control registers map register address r/w description reset value tcr0 0xfff8.1000 r/w timer control register 0 0x0000.0005 tcr1 0xfff8.1004 r/w timer control register 1 0x0000.0005 ticr0 0xfff8.1008 r/w timer initia l control register 0 0x0000.00ff ticr1 0xfff8.100c r/w timer init ial control register 1 0x0000.00ff tdr0 0xfff8.1010 r timer data register 0 0x0000.0000 tdr1 0xfff8.1014 r timer data register 1 0x0000.0000 tisr 0xfff8.1018 r/c timer inte rrupt status register 0x0000.0000 wtcr 0xfff8.101c r/w watchdog t imer control register 0x0000.0000 gpio controller registers map register address r/w description reset value gpio_cfg 0xfff8.3000 r/w gpio c onfiguration register 0x0000.0000 gpio_dir 0xfff8.3004 r/w gpio direction register 0x0000.0000 gpio_dataout 0xfff8.3008 r/w gpio data output register 0x0000.0000 gpio_datain 0xfff8.300c r gpio data input register u ndefined debnce_ctrl 0xfff8.3010 r/w de- bounce control register 0x0000.0000 w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 193 - revision a6 aic registers map register address r/w description reset value aic_scr1 0xfff8.2004 r/w sour ce control register 1 0x 0000.0047 aic_scr2 0xfff8.2008 r/w sour ce control register 2 0x 0000.0047 aic_scr3 0xfff8.200c r/w sour ce control register 3 0x 0000.0047 aic_scr4 0xfff8.2010 r/w sour ce control register 4 0x 0000.0047 aic_scr5 0xfff8.2014 r/w sour ce control register 5 0x 0000.0047 aic_scr6 0xfff8.2018 r/w sour ce control register 6 0x 0000.0047 aic_scr7 0xfff8.201c r/w sour ce control register 7 0x 0000.0047 aic_scr8 0xfff8.2020 r/w sour ce control register 8 0x 0000.0047 aic_scr9 0xfff8.2024 r/w sour ce control register 9 0x 0000.0047 aic_scr10 0xfff8.2028 r/w sour ce control register 10 0x 0000.0047 aic_scr11 0xfff8.202c r/w sour ce control register 11 0x 0000.0047 aic_scr12 0xfff8.2030 r/w sour ce control register 12 0x 0000.0047 aic_scr13 0xfff8.2034 r/w sour ce control register 13 0x 0000.0047 aic_scr14 0xfff8.2038 r/w sour ce control register 14 0x 0000.0047 aic_scr15 0xfff8.203c r/w sour ce control register 15 0x 0000.0047 aic_scr16 0xfff8.2040 r/w source control register 16 0x0000.0000 aic_scr17 0xfff8.2044 r/w source control register 17 0x0000.0000 aic_scr18 0xfff8.2048 r/w source control register 18 0x0000.0000 aic_irsr 0xfff8.2100 r interrupt raw status register 0x0000.0000 aic_iasr 0xfff8.2104 r interrupt active status register 0x0000.0000 aic_isr 0xfff8.2108 r interrupt status register 0x0000.0000 aic_iper 0xfff8.210c r interrupt priority encoding register 0x0000.0000 aic_isnr 0xfff8.2110 r interrupt s ource number register 0x0000.0000 aic_imr 0xfff8.2114 r interr upt mask register 0x0000.0000 aic_oisr 0xfff8.2118 r output in terrupt status register 0x0000.0000 aic_mecr 0xfff8.2120 w mask enabl e command register undefined aic_mdcr 0xfff8.2124 w mask dis able command register undefined aic_sscr 0xfff8.2128 w source set command register undefined aic_sccr 0xfff8.212c w source clear command register undefined aic_eoscr 0xfff8.2130 w end of servic e command register undefined w90n740cd/W90N740CDG - 194 - 11. ordering information part number name package description w90n740cd lqfp176 176 leads, body 22 x 22 x 1.4 mm W90N740CDG lqfp176 176 leads, body 22 x 22 x 1.4 mm, lead free package 12. revision history version date page description a1 jan 15, 2003 - initial issued a2 may 27, 2003 - add dc specifications in 8.2 a3 sep. 3, 2004 change pin description page 54 change tcoh description page 56 remove fig. 7.3.7 page 57 address change from 0x7ff71f00 to 0xfff71f00 page 127 add description in external gdma a4 nov. 26, 2004 page 215 add lead free package item a5 april 19, 2005 page 216 add important notice page 155 change the clock order page 3 change ohci 1.0 to ohci 1.1 page 121 section 7.8 change ohci 1.0 to ohci 1.1 page 123 change ohci 1.0 to ohci 1.1 a6 aug. 18, 2005 page 114 section 7.7.2 change the gdma_ctl0 describe and content w90n740cd/W90N740CDG publication release date: aug. 18, 2005 - 195 - revision a6 important notice winbond products are not designed, intended, authorized or warranted for use as components in systems or equipment intended for surgi cal implantation, atomic energy control instruments, airplane or spaceship instrument s, transportation instruments, traffic signal instruments, combustion control instruments, or for other applications intended to support or sustain life. further more, winbond products are not intended for applications wherein failure of winbond products could result or lead to a situation wherein personal injury, death or severe property or environmental damage could occur. winbond customers using or selling these products for use in such applications do so at their own risk and agree to fully indemnify winbond for any damages resulting from such improper use or sales. |
Price & Availability of W90N740CDG |
|
|
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] |