TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 D D D D D D D D Provides up to 8K-Address Matching System Provides Glueless External-Address Match (EAM) Interface to the TNETX3150/TNETX3150A/TNETX3100 Uses Standard Off-the-Shelf 15-ns SRAMs EEPROM Interface for Auto-Configuration, No CPU Needed Automatic Aging Through User-Selectable Aging (AGE) Threshold Fabricated in 3.3-V Low-Voltage Technology Requires 3.3-V and 5-V Power Supplies 5-V Tolerant I/Os D Provides Direct Input/Output (DIO) Interface for Management Access and Control (MAC) of the Address-Lookup Table Address Lookups, Adds, and Deletes Are Automatically Performed in Hardware User-Selectable Interrupts Simplify the Management Operations Secure Addresses From Changing Ports MII Data I/O (MDIO) PHY Management Interface Management Access to Statistic Registers JTAG Compliant Packaged in 144-Terminal Plastic Quad Flatpack D D D D D D D description The TNETX15AE performs the address-lookup function for either the TNETX3150/TNETX3150A or the TNETX3100 Ethernet switch. The TNETX15AE device determines the addresses to use and match from the TNETX3150/TNETX3150A/TNETX3100 DRAM bus. The address-lookup table is maintained in external SRAM. The frame-matching and routing information is given to the TNETX3150/TNETX3150A/TNETX3100 through the external address-matching (EAM) interface. The TNETX15AE is designed to work in either unmanaged or managed mode. Unmanaged operation is accomplished through EEPROM support. Startup options are auto-loaded into the TNETX15AE registers using the EEPROM interface. If the TNETX15AE is initialized by automatic loading from the EEPROM, it begins operation automatically. All functions of this device are fully controllable by management through a direct input/output (DIO) interface. In addition, this device can interrupt the external management processor with user-selectable interrupts. This device also provides support for easy management control of IEEE Std 802.3u media-independent interface (MII) managed devices. A typical application is shown in Figure 1. MII-Managed Devices (Optional) EINT MDIO Microprocessor (Optional) DIO SRAM Address-Lookup Device TNETX15AE EAM EEPROM DD35–DD0 DRAS DRAM ThunderSWITCH TNETX3150/ TNETX3150A/ TNETX3100 DCAS DWE Figure 1. TNETX15AE Typical Application Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet. TI and ThunderSWITCH are trademarks of Texas Instruments Incorporated. Ethernet is a trademark of Xerox Corporation. Copyright 1997, Texas Instruments Incorporated PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments standard warranty. Production processing does not necessarily include testing of all parameters. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 1 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 ESCS SAD1 SAD0 SRNW GND SDATA7 SDATA6 SDATA5 SDATA4 VCC SDATA3 SDATA2 SDATA1 SDATA0 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 RESET VCC EAM15 EAM14 EAM13 EAM12 EAM11 EAM10 GND EAM9 EAM8 EAM7 EAM6 EAM5 EAM4 EAM3 VCC EAM2 EAM1 EAM0 SRDY VCC(5V) PGE PACKAGE (TOP VIEW) 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 EA0 EA1 EA2 VCC EA3 EA4 EA5 EA6 EA7 EA8 GND EA9 EA10 EA11 EA12 EA13 EA14 VCC EA15 EA16 EA17 EA18 EA19 EA20 GND DWE DRAS DD0 DD1 VCC(5V) DD2 DD3 DD4 DD5 DD6 DD7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 MDIO EDIO GND EINT MDCLK MRESET ECLK VCC(5V) ED0 ED1 ED2 ED3 ED4 VCC ED5 ED6 ED7 ED8 ED9 ED10 GND ED11 ED12 ED13 ED14 ED15 VCC EOE EWE VCC(5V) TDI TCLK TMS TRST GND TDO 2 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 OSCIN DD35 DD34 DD33 GND DD32 DD31 DD30 DD29 VCC(5V) DD28 DD27 DD26 DD25 VCC DD24 DD23 DD22 DD21 DD20 DD19 DD18 DD17 GND DD16 DD15 DCAS DD14 VCC(5V) DD13 DD12 DD11 DD10 VCC DD9 DD8 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Table of Contents DIO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 DIO Write Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 DIO Read Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus Watcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Host (Access) Register Space . . . . . . . . . . . . . . . . . . . . . . . . . . . DIO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Internal Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EEPROM Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 TNETX3150/TNETX3150A/TNETX3100 Initialization . . . . SRAM Address/Data Multiplexer (MUX) . . . . . . . . . . . . . . . . 5 Resetting the TNETX15AE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TNETX15AE Logic Operations . . . . . . . . . . . . . . . . . . . . . . . . 5 Hardware Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IEEE Std 1149.1 Test Port (JTAG) . . . . . . . . . . . . . . . . . . . . . 5 Software Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminal Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 EEPROM Initialization/Automatic Loading (LOAD) . . . . . . . . . Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 TNETX15AE Operational Modes . . . . . . . . . . . . . . . . . . . . . . . . General Notation Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 NAUTO mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Node Address Format (Ethernet Native Data Format) . . . . 11 NCRC mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIO Register Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 NRLN0 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIO Address Register DIOADR . . . . . . . . . . . . . . . . . . . . . . 12 Lookup Table SRAM Initialization (START) . . . . . . . . . . . . . . . . DIO Data Register DIODATA . . . . . . . . . . . . . . . . . . . . . . . . . 12 Frame-Forwarding LKUP Logic Operation . . . . . . . . . . . . . . . . DIO Address Auto-Increment Register . . . . . . . . . . . . . . . . . 12 Management-Based Lookups (FIND) . . . . . . . . . . . . . . . . . . . . . Internal Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 FIND, FINDFIRST, and FINDNEXT Commands . . . . . . . . . . . . Default Register Values at Reset . . . . . . . . . . . . . . . . . . . . . 14 Summary of FIND Operations Supported . . . . . . . . . . . . . . EEPROM Auto-Configuration Adding an Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . From an External x24C02 EEPROM . . . . . . . . . . . . . . . . . . 14 Interrupts Available to Support Both Wire ADDs Internal Register Descriptions . . . . . . . . . . . . . . . . . . . . . . . . 17 and Host ADDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Management Address Adding . . . . . . . . . . . . . . . . . . . . . . . . . . . SRAM Size-Select Register . . . . . . . . . . . . . . . . . . . . . . . 17 Adding Unicast and Multicast Addresses . . . . . . . . . . . . . . . Age-Deletion Time-Select Register . . . . . . . . . . . . . . . . . 18 Deleting an Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknown Unicast Port-Routing Register . . . . . . . . . . . . 18 Aging (AGE Logic Operation) . . . . . . . . . . . . . . . . . . . . . . . . Unknown Multicast Port-Routing Register . . . . . . . . . . . 19 DEL Logic Operation (Management Address Deletions) . . Mode Control Status Register . . . . . . . . . . . . . . . . . . . . . 19 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial Interface I/O Register . . . . . . . . . . . . . . . . . . . . . . . 21 Masking Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Management-Table Lookup Interface . . . . . . . . . . . . . . . 22 Test Interrupts (INT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lookup-Node Address Register . . . . . . . . . . . . . . . . . . . 22 ADD Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lookup Routing-Code Register . . . . . . . . . . . . . . . . . . . . 23 Aging Interrupts (AGE, AGEM) . . . . . . . . . . . . . . . . . . . . . . . Node Age-Stamp Register . . . . . . . . . . . . . . . . . . . . . . . . 24 Statistic Interrupt (STAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lookup Table Search Control Register . . . . . . . . . . . . . . 24 IEEE Std 1149.1 Test-Access Port (JTAG) . . . . . . . . . . . . . . . . . . Statistics Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRAM Address Register . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Recommended Operating Conditions . . . . . . . . . . . . . . . . . . . . . Manufacturing Test Register . . . . . . . . . . . . . . . . . . . . . . 26 Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRAM Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Timing Requirements, External SRAM Read Cycle . . . . . . . . . Interrupt Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Operating Characteristics, External SRAM Read Cycle . . . . . Interrupt Masking Register . . . . . . . . . . . . . . . . . . . . . . . . 28 Timing Requirements, External SRAM Write Cycle . . . . . . . . . New-Add Aged-Del Register Set . . . . . . . . . . . . . . . . . . . . . . 29 Operating Characteristics, External SRAM Write Cycle . . . . . New-Node/Port-Change/Security-Violation Operating Characteristics, EAM Routing Code . . . . . . . . . . . . . Interrupt Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Timing Requirements, DRAM Interface . . . . . . . . . . . . . . . . . . . . Agednode Interrupt Interface Group . . . . . . . . . . . . . . . . 30 Timing Requirements, DIO Read Cycle . . . . . . . . . . . . . . . . . . . . Management Add/Edit Address Interface Group . . . . . 31 Operating Characteristics, DIO Read Cycle . . . . . . . . . . . . . . . . Management Delete Address Interface Group . . . . . . . 33 Timing Requirements, DIO Write Cycle . . . . . . . . . . . . . . . . . . . . Uplink Routing Register . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Operating Characteristics, DIO Write cycle . . . . . . . . . . . . . . . . Principles of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Timing Requirements, OSCIN clock . . . . . . . . . . . . . . . . . . . . . . . Internal Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Timing Requirements, Power-On Reset . . . . . . . . . . . . . . . . . . . EAM Codings and In-Order Broadcasts (IOB) . . . . . . . . . . 34 Timing Requirements, RESET (Software) Timing . . . . . . . . . . . TNETX15AE DRAM and EAM Interface . . . . . . . . . . . . . . . 35 Operating Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decoding the Destination Address (DA) EEPROM and MDIO (MII) Interfaces . . . . . . . . . . . . . . . . . . . . . and Source Address (SA) From the DRAM Bus . . . . . . . . . 36 EEPROM Interface Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Checking and Valid Frames . . . . . . . . . . . . . . . . . . . . . 37 Parameter Measurement Information . . . . . . . . . . . . . . . . . . . . . . Operating Logic Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Test Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lookup Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Graphical Example of the Lookup Algorithm . . . . . . . 40 TNETX15AE/TNETX3150/TNETX3150A SRAM Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Stand-Alone Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lookup Table SRAM Allocation . . . . . . . . . . . . . . . . . . . . 42 Unmanaged Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAMsize and Number of Nodes Supported . . . . . . . . . . . . 44 Managed Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Register Spaces/External Devices Mechanical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessible Through the TNETX15AE . . . . . . . . . . . . . . . . . 44 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 45 46 47 47 49 50 50 50 50 51 51 53 53 53 53 54 54 54 55 56 56 56 57 58 58 58 60 60 61 61 61 62 62 63 64 64 65 65 65 66 66 67 68 69 69 70 70 71 71 72 73 73 73 74 74 75 75 75 75 77 3 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 functional block diagram DD35–DD0 DRAS DCAS DWE EAM15–EAM0 DRAM Bus Watcher 48 16 Logic Arbiter Grants Requests SDATA7–SDATA0 SAD1–SAD0 SRNW SRDY ESCS EINT Data Routing Logic Operations DIO Interface LOOKUP (Wire Address Lookups) MDIO MDCLK MRESET EDIO ECLK OSCIN RESET TRST TMS TCLK TDI TDO 4 DELETE (AGE and Management Deletes) EEPROM Interface ADD (Wire and Management Adds) Control Logic EA20–EA0 MUX EOE EWE FIND (Management-Address Lookups) IEEE Std 1149.1 (JTAG) AGE (Deletes Due to Inactivity) 16 State Machines POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 ED15–ED0 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 general description bus watcher The bus watcher interfaces to the TNETX3150/TNETX3150A/TNETX3100 DRAM interface and extracts destination, source addresses, and the originating port number. The bus watcher is responsible for identifying the frame’s start-of-frame and end-of-frame tags. It also interfaces to the arbiter and the TNETX15AE logic to perform off-the-wire address LOOKUPs and ADDs. DIO interface The DIO interface enables an attached microprocessor to access the TNETX15AE internal registers. The DIO interface is used to select control modes, read statistics, receive interrupts, read/write to attached MII devices, read/write to an attached EEPROM, and perform management LOOKUPs, ADDs, and DELETEs. EEPROM interface The EEPROM interface allows accesses to the EEPROM. It also interfaces with the EEPROM for automatic loading of selected registers from the EEPROM at startup or reset. arbiter The arbiter manages the SRAM access for the TNETX15AE logic operations by assigning priorities to the logic operations. Wire lookups have the highest priority, followed by DELETEs, ADDs, management LOOKUPs, and AGEs. The individual logic operations request the bus by asserting a request signal. The arbiter grants the SRAM bus by controlling the SRAM-bus address/data multiplexer. SRAM address/data multiplexer (MUX) The address/data MUX is controlled by the arbiter and selects the logic operation that has ownership of the SRAM bus. TNETX15AE logic operations The TNETX15AE logic operations consist of LOOKUP, DELETE, ADD, FIND, and AGE operations. Each logic operation is assigned a priority on the SRAM bus and is controlled by the arbiter. The LOOKUP operation has the highest priority and is responsible for wire lookups. The DELETE operation is responsible for either deletes from the AGE operation or for management-delete requests. The ADD operation is responsible for wire adds as well as for management-add requests. The FIND operation is responsible for management searches of the lookup table. The AGE operation is responsible for deleting addresses that have no activity in a fixed time period. IEEE Std 1149.1 test port (JTAG) The test-access port is composed of five terminals that are used to interface serially with the device and the board on which it is installed for boundary-scan testing. The TNETX15AE is fully JTAG compliant, with the exception of requiring external pullup resistors on terminals TDI, TMS, and TRST. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 5 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Terminal Functions EAM interface TERMINAL NAME NO. I/O DESCRIPTION External address match single-/multiple-port routing code select. When EAM15 is high, the EAM-interface terminals contain a single-port routing code. When EAM15 is low, the EAM-interface terminals contain a multiple-port routing code. External address match port routing code select. When EAM15 is high, the EAM14–EAM0 terminals are placed in the single-port mode. In this mode EAM14–EAM0 terminals encode a single port to which the frame is routed. EAM14–EAM5 are don’t-care bits and are set to 0. The single-port codes (EAM15–EAM0 terminals) are shown in the following: TNETX3150/TNETX3100 EAM15† EAM14 EAM13 EAM12 EAM11 EAM10 EAM09 EAM08 EAM07 EAM06 EAM05 EAM04 EAM03 EAM02 EAM01 EAM00‡ 106 105 104 103 102 101 99 98 97 96 95 94 93 91 90 89 O Port 00 (uplink) Port 01 Port 02 Port 03 Port 04 Port 05 Port 06 Port 07 Port 08 Port 09 Port 10 Port 11 Port 12 Port 13 Port 14 Reserved No-operation code 15 14 13 12 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 x x x 11 10 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x EAM15–EAM0 8 7 6 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x x 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 x 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 x 2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 x 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 x b b b b b b b b b b b b b b b b b The no-operation code signals that the EAM device does not take part in forwarding decisions on this packet. The TNETX15AE does not put out this code in normal operations. To successfully disable the TNETX15AE, it is reset and not started. This causes the EAM interface to float, and external pullup resistors on EAM15 and EAM04 (minimally) to supply the no-operation code to the TNETX3150/TNETX3150A/TNETX3100 device. Erratic operation occurs if the TNETX3150/TNETX3150A/TNETX3100 address matching is not enabled when the TNETX15AE is disabled. The TNETX15AE, when enabled, overrides the operations of the TNETX3150/TNETX3150A/TNETX3100 matching circuitry; but, it is strongly advised to disable the TNETX3150/TNETX3150A/TNETX3100 address matching if the TNETX15AE is active. This prevents two logic blocks from attempting to control port suspension and other functions. When EAM15 is low, the EAM14–EAM0 terminals encode the multiple ports to which the data frame is routed. Each bit on the EAM14–EAM0 bus is coded as follows: – 1 on the bit signifies that the data frame is routed to that port. – 0 on the bit signifies that the data frame is not routed to that port. Terminal number assignments have a one-to-one correspondence to the port numbers as shown in the following: EAM Bus Bit 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Port Number 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 For example, to multicast a frame to ports 08, 05, 02, and 00 a multiport code of 0000 0001 0010 0101 or 0x0125 is sent. All multicast packets and unknown unicast packets are forwarded by multiport code (EAM15 = 0) even if only one bit is set. To discard a frame, a code of 0x0000 is output (multiple routing code with no ports selected): TNETX3150/TNETX3100 Discard frame EAM14–EAM0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 † Most-significant bit ‡ Least-significant bit 6 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Terminal Functions (Continued) DRAM interface TERMINAL I/O DESCRIPTION NAME NO. DD35† DD34 DD33 DD32 DD31 DD30 DD29 DD28 DD27 DD26 DD25 DD24 DD23 DD22 DD21 DD20 DD19 DD18 DD17 DD16 DD15 DD14 DD13 DD12 DD11 DD10 DD9 DD8 DD7 DD6 DD5 DD4 DD3 DD2 DD1 DD0‡ 71 70 69 67 66 65 64 62 61 60 59 57 56 55 54 53 52 51 50 48 47 45 43 42 41 40 38 37 36 35 34 33 32 31 29 28 I DRAM data bus. Data bus is sourced by the TNETX3150/TNETX3150A or the TNETX3100. DCAS 46 I DRAM column address select. DCAS is sourced by the TNETX3150/TNETX3150A or the TNETX3100. DRAS 27 I DRAM row address select. DRAS is sourced by the TNETX3150/TNETX3150A or the TNETX3100. 26 I DRAM write enable. DWE is sourced by the TNETX3150/TNETX3150A or the TNETX3100. DWE † Most-significant bit ‡ Least-significant bit POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 7 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Terminal Functions (Continued) external SRAM interface TERMINAL DESCRIPTION NO. EA20† EA19 EA18 EA17 EA16 EA15 EA14 EA13 EA12 EA11 EA10 EA9 EA8 EA7 EA6 EA5 EA4 EA3 EA2 EA1 EA0‡ 24 23 22 21 20 19 17 16 15 14 13 12 10 9 8 7 6 5 3 2 1 O External address bus. EA20–EA0 is the external SRAM address bus. ED15† ED14 ED13 ED12 ED11 ED10 ED9 ED8 ED7 ED6 ED5 ED4 ED3 ED2 ED1 ED0‡ 134 133 132 313 130 128 127 126 125 124 123 121 120 119 118 117 I/O External data bus. ED15–ED0 is the external SRAM data bus. EOE 136 O External output enable. EOE is the active-low external SRAM output-enable signal. 137 O External write enable. EWE is the active-low external SRAM write-enable signal. EWE † Most-significant bit ‡ Least-significant bit 8 I/O NAME POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Terminal Functions (Continued) DIO interface-statistics TERMINAL NAME NO. I/O DESCRIPTION EINT 112 0 TNETX15AE interrupt. EINT is an interrupt request from the TNETX15AE to an optional attached microprocessor. Its purpose is to reduce the polling that is required for the processor to be current on the operational states of the TNETX15AE. The interrupt cause is determined by reading the interrupt register (0x28, 0x29). It is not required to acknowledge or act on the interrupts (unmanaged operation). EINT is active high and level sensitive; it is high when any of the interrupt triggers are active. ESCS 86 I TNETX15AE chip select. When ESCS is active (low), a port access is valid for the TNETX15AE device. ESCS must not be tied to any other chip-select signal (such as the TNETX3150/TNETX3150A SCS or the TNETX3100 SCS). DIO address bus. SAD1–SAD0 selects the TNETX15AE host registers. SAD1 SAD0 Description 0 0 DIO address low 0 1 DIO address high 1 0 DIO data 1 1 DIO data auto increment SAD1 SAD0 85 84 I SDATA7† SDATA6 SDATA5 SDATA4 SDATA3 SDATA2 SDATA1 SDATA0‡ 81 80 79 78 76 75 74 73 I/O DIO data bus. SDATA7–SDATA0 is a byte-wide bidirectional DIO bus. SRDY 88 O DIO ready. When SRDY is active low, the following conditions occur: – When SRNW = 1, the interface host is told that data is valid for reading by the host. – When SRNW = 0, the interface host is told that data has been received by the TNETX15AE. When ESCS is inactive high, SRDY is disabled [high-impedance (Z) state]. SRNW 83 I DIO read/not write. SRNW is a read- or write-select signal. – When SRNW is high, the read operation is performed by the host. – When SRNW is low, the write operation is performed by the host. † Most-significant bit ‡ Least-significant bit DIO interface-MII TERMINAL I/O DESCRIPTION 113 O MII management data clock. MDCLK is a clock from the TNETX15AE for the serial MII management data MDIO. MDCLK can be disabled [high-impedance (Z) state] by MDIOEN [a bit in the SIO register at 0x0A (DIO)]. MDIO 109 I/O MII management data input/output. MDIO is the data terminal for serial MII management data. MDIO requires an external pullup resistor for proper operation. MDIO can be disabled [high-impedance (Z) state] by MDIOEN [a bit in the SIO register at 0x0A (DIO)]. MRESET 114 O MII management reset. MRESET is a reset signal for the serial MII management interface. MRESET can be disabled [high-impedance (Z) state] by MDIOEN [a bit in the SIO register at 0x0A (DIO)]. NAME NO. MDCLK POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 9 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Terminal Functions (Continued) DIO interface-EEPROM TERMINAL I/O DESCRIPTION 115 O EEPROM clock. ECLK is the serial EEPROM data clock and is implemented as a 3.3-V totem-pole output cell. Because of the active pullup, and since most EEPROMs use CMOS logic levels, it may be difficult to use 5-V EEPROMs. 110 I/O EEPROM data input/output. EDIO is the serial EEPROM data I/O signal. This terminal requires an external pullup (see EEPROM data sheet) for EEPROM operation. NAME NO. ECLK EDIO control logic interface TERMINAL I/O DESCRIPTION 72 I Oscillator input. OSCIN is the clock input that drives the internal state machines. For no-glue interface to the TNETX3150/TNETX3150A/TNETX3100, OSCIN is connected to the TNETX3150/TNETX3150A/TNETX3100 OSCIN terminal. 108 I Reset. RESET (active low) resets the TNETX15AE. RESET must remain active for at least 25 ms after power and the clocks have stabilized on power up. After the power-up cycle, RESET must remain active for a minimum of 3 µs for recognition. I/O DESCRIPTION NAME NO. OSCIN RESET JTAG interface TERMINAL NAME NO. TCLK 140 I Test clock. TCLK clocks state information and test data into and out of the device during operation of the test port. TDI 139 I Test data input. TDI serially shifts test data and test instructions into the device during operation of the test port. TDO 144 O Test data out. TDO serially shifts test data and test instructions out of the device during operation of the test port. TMS 141 I Test mode select. TMS controls the state of the test-port controller. TRST 142 I Test reset. TRST asynchronously resets the test-port controller when set low. power interface TERMINAL DESCRIPTION NAME NO. GND 11, 25, 49, 68, 82, 100, 111, 129, 143 Ground. GND is the 0-V reference for the device. VCC 4, 18, 39, 58, 77, 92, 107, 122, 135, Supply voltage. VCC = 3.3 ± 0.3 V. VCC is the main-logic power supply. VCC(5V) 30, 44, 63, 87, 116, 138 10 Supply voltage. VCC(5V) = 5 ± 0.5 V. VCC(5V) is the clamp rail voltage on I/O terminals that gives TTL capability. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 register description general notation notes Hexadecimal notation: Leading zero, followed by lower-case x, then hex digits, with space or punctuation delimiters on both ends. A . . . F are equivalent to a . . . f (example: 0x12bc, 0x12BC0 Binary notation: Trailing lower-case b after string composed of only 1 or 0, with space or punctuation delimiters on both ends (example: 101011b). Decimal notation: A number composed of 0 . . . 9 digits with no prefix or suffix, with a space or punctuation delimiters on both ends (example: 23965) The least-significant bit in a register is the lowest number. The least-significant byte of a multibyte value is the lowest number. node address format (Ethernet native data format) The node addresses are kept inside the TNETX15AE in Ethernet native data format. This is the same format used when the address appears in the frame transmitted on the wire. Ethernet first transmits the least-significant bit of a data byte on the wire. This makes the group/specific address appear in bit 40 (least-significant bit of most-significant byte). The TNETX15AE address storage format is shown in the following: BIT BYTE (most-significant byte) 47 42 BYTE 41 40 39 Local/Universal Address Group/Specific Address BYTE 32 31 BYTE 24 23 BYTE 16 15 BYTE 8 7 0 DIO register access There are only four byte-wide DIO registers that are hardware interfaced to the DIO interface. These registers are treated like a pointer structure to locate internal registers, some of which are interfaced to external terminals of the device (see Figure 2). The small number of registers actually on the DIO interface give the TNETX15AE a small I/O map requirement when designing systems; also, it allows additional registers to be defined without requiring the hardware interface to change. TNETX15AE Access Register SAD0–SAD1 2 Address-High Register SRNW Address-Low Register ESCS Data Register SRDY Auto-Increment Register Internal Registers Internal RAM MII Interface EEPROM Interface SRAM Interface Figure 2. DIO Access (Pointer) Registers POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 11 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 DIO register access (continued) To access an internal register, post both halves of the address to the DIO address-low and DIO address-high registers and read or write the DIO data register. The DIO access register code is given in Table 1. If the host performs a read, the internal state machine enables the internal register at the posted address to drive the bus when the read cycle is active. If the host performs a write to a TNETX15AE register, the value written to the data register address is transferred to the posted address in the DIO address-low and DIO address-high registers. SRDY (on a host read) indicates that the internal fetch was accomplished. A delay of up to 60 ns after cycle start is encountered if the resource being requested is currently being used by an internal state machine. There are dedicated cycles for DIO to prevent lockout, but they are allocated as 2 of 5, and DIO is asynchronous to internal processes. SRDY (on a host write) indicates that the value written to the data register is captured and is written to the resource addressed. For maximum throughput, SRDY should be part of the interface; if not, add 60 ns to the minimum DIO cycle times. If a range of consecutive (rising in order) accesses is needed, reading or writing to the DIO data auto-increment register causes a post increment of the DIO address low and DIO address high registers after each access. Reads and writes can be mixed in a string of accesses; the post increment is by one after each cycle. All registers are set to their default values on a hardware reset (setting the RESET terminal low, then high). All registers, except the control register, also are set to their default values on a software reset (setting the RESET bit high in the control register). Table 1. DIO Access Register Code SAD1 SAD0 DESCRIPTION 0 0 DIO address low 0 1 DIO address high 1 0 DIO Data 1 1 DIO data auto-increment DIO address register DIOADR at SAD1–SAD0 = 00b and 01b (host) DIO ADDRESS HIGH 15† 14 13 12 11 DIO ADDRESS LOW 10 9 8 7 6 5 4 3 2 1 0‡ DIOADR † Most-significant bit ‡ Least-significant bit BIT 15–0 NAME FUNCTION DIOADR DIO address. DIOADR contains the internal DIO address used on subsequent accesses to the DIO data or DIO data auto-increment registers. This field auto-increments (by one) on all accesses to the DIO data auto-increment register. DIO data register DIODATA at SAD1–SAD0 = 10b (DIO) The DIO data register address allows indirect access to internal TNETX15AE registers. This is a temporary staging register for data being written through to an internal register (write) or fetched from an internal register (read). DIO address auto-increment register DIOADDRINC at SAD1–SAD0 = 11b (DIO) The DIO address auto-increment register address allows indirect access to internal TNETX15AE registers. This is a temporary staging register for data being written through to an internal register (write) or fetched from an internal register (read). Accesses to this register cause a post increment of the DIO address register. 12 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 internal register map The DIO addresses for the internal registers are shown in Table 2. Table 2. DIO Internal Register Address Map BYTE 3 BYTE 1 BYTE 0 DIO ADDRESS RAMsize (see Note 1) Revision 0x00 BYTE 2 Agingtimer (see Note 1) Unkmultiports (see Note 1) Unkuniports (see Note 1) 0x04 Control (see Note 1) 0x08 SIO Findnode23–Findnode16 Findnode31–Findnode24 Findport SECVIOctr Findnode39–Findnode32 Findnode47–Findnode40 0x0C Findnode7–Findnode0 Findnode15–Findnode8 0x10 Findcontrol Findnodeage Unkmultictr MANtest Unkunictr 0x18 Numnodes 0x1C RAMaddr 0x20 RAMdata 0x24 Int 0x28 Intmask Newnode23–Newnode16 Newnode31–Newnode24 Newport Addnode23–Addnode16 Agednode23–Agednode16 Newnode39–Newnode32 Adddelcontrol 0x2C Newnode47–Newnode40 0x30 0x34 Newnode7–Newnode0 Newnode15–Newnode8 Addnode39–Addnode32 Addnode47–Addnode40 0x38 Addnode7–Addnode0 Addnode15–Addnode8 0x3C Agednode31–Agednode24 Agednode39–Agednode32 Agednode47–Agednode40 0x40 Agedport Agednode7–Agednode0 Agednode15–Agednode8 0x44 Delnode31–Delnode24 Delnode39–Delnode32 Delnode47–Delnode40 0x48 Delnode7–Delnode0 Delnode15–Delnode8 0x4C Addnode31–Addnode24 Addport Delnode23–Delnode16 0x14 Manufacturer test (see Note 1) 0x50 Manufacturer test (see Note 1) 0x54 Manufacturer test (see Note 1) 0x58 Manufacturer test (see Note 1) 0x5C Manufacturer test (see Note 1) 0x60 Manufacturer test (see Note 1) 0x64 Manufacturer test (see Note 1) Uplinkport 0x68 Manufacturer test (see Note 1) 0x6C NOTE 1: These registers are automatically loaded from the attached EEPROM when the LOAD bit in the control register is set, or when the TNETX15AE is hardware reset by deasserting the RESET terminal and an external EEPROM is detected. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 13 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 default register values at reset The reset values for the default registers are shown in Table 3. Table 3. Default Registers Reset Values BYTE 3 BYTE 2 0x0000 BYTE 1 BYTE 0 DIO ADDRESS 0x80 0x10 0x00 0x7FFF 0x7FFF 0x00 MDIO*(0x10) + EDIO*(0x01) 0x00 0x00 0x04 0x0000 0x0000 0x08 0x00 0x00 0x0C 0x00 0x00 0x10 0x0000 0x0000 0x14 0x0000 0x0000 0x18 0x0000 0x1C 0x0000 0x00 0x000000 0x0000 0x20 SRAM data at address 0 0x0000 0x0000 0x0000 0x00 0x00 0x0000 0x00 0x00 0x0000 0x24 0x28 0x00 0x00 0x2C 0x00 0x00 0x30 0x00 0x00 0x34 0x00 0x00 0x38 0x00 0x00 0x3C 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x00 0x00 0x4C 0x00 0x7FFD 0x7FFE 0x50 0x7FF7 0x7FFB 0x54 0x7FDF 0x7FEF 0x58 0x7F7F 0x7FBF 0x5C 0x7DFF 0x7EFF 0x60 0x77FF 0x7BFF 0x64 0x5FFF 0x6FFF 0x68 0x3FFF 0x6C 0x00 EEPROM auto-configuration from an external x24C02 EEPROM The flash EEPROM interface is provided so the system-level manufacturers can provide an optional preconfigured system to their customers. Customers can change or reconfigure their system and retain their preferences between system power downs. The flash EEPROM contains configuration and initialization information, which is accessed infrequently (typically at power up and reset). The TNETX15AE uses the 24C02 serial EEPROM device (2048 bits organized as 256 × 8). This device uses a two-wire serial interface for communications. EEPROM programming can be done while in the system through the TNETX15AE EDIO port using suitable driver software. 14 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 EEPROM auto-configuration from an external x24C02 EEPROM (continued) The organization of the EEPROM data is shown in Table 4. The last register loaded is the control register. This allows a complete initialization by downloading the contents of the EEPROM into the TNETX15AE. During the download, no DIO operations are permitted. The LOAD and RESET bits in the control register cannot be set during a download, preventing a download loop. The TNETX15AE has reserved space in the register map with corresponding reserved space in the EEPROM. This is to support additional features in future revisions of the device with minimal impact on software drivers written for this device. Although the TNETX15AE does not use the values in the reserved EEPROM locations to load the reserved locations in the register map, the auto-loader reads every address from the beginning of the EEPROM to the CRC to calculate the CRC. That is, changing a loaded value or a reserved value requires a new CRC for the EEPROM. The TNETX15AE detects the presence/absence of the EEPROM. If it is not installed, the EDIO terminal should be tied low. For EEPROM operation, the terminal requires an external pullup (see EEPROM data sheet). When no EEPROM is detected, the TNETX15AE assumes default register values at power up and is halted. Downloading a configuration from the EEPROM terminals is disabled when no EEPROM is present. The first bit written to or read from the EEPROM is the most-significant bit of the byte, i.e., data (7). Therefore, writing the address 0xC0 is accomplished by writing a 1 and then 1, 0, 0, 0, 0, 0, 0. For details of reading, writing, or programming a 24C02 device, refer to the device data sheet. The TNETX15AE causes data to be stored in the EEPROM in a specific format. The range from 0x00 to 0x2A in the EEPROM is reserved for use by the adapter. The contents of the remaining bytes are undefined. The EEPROM can be read/written by driver software through the SIO register. A 32-bit CRC value must be calculated from the EEPROM data and placed in the EEPROM in the location following the bytes loaded into the internal registers. The TNETX15AE uses this 32-bit CRC to validate the EEPROM data. If the CRC fails, the TNETX15AE registers are set to their default (hardwired) values. This is the same state the TNETX15AE is in if no EEPROM is present. Without an EEPROM, a management CPU is required to load all the registers and set the start bit to 1 in the upper one-half of the control/status register (0x08). The CRC calculation on the EEPROM bytes is the same as the IEEE Std 802.3u for the packet CRC calculation on a byte-by-byte basis. For reference, the equation is: G(x) +x )x )x )x )x )x )x )x )x )x )x )x )x )x)1 32 26 23 22 16 12 11 10 8 7 5 4 2 (1) The TNETX15AE EEPROM register assignments are shown in Table 4. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 15 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 Table 4. TNETX15AE EEPROM Register Assignments DIO REGISTER ADDRESS 16 EEPROM VALUE EEPROM ADDRESS 0x01 RAMsize 0x00h 0x02 Agingtimer LSB 0x01h 0x03 Agingtimer MSB 0x02h 0x04 Unkuniports LSB 0x03h 0x05 Unkuniports MSB 0x04h 0x06 Unkmultiports LSB 0x05h 0x07 Unkmultiports MSB 0x06h 0x50 Manufacturing test (0xFE) 0x07h 0x51 Manufacturing test (0x7F) 0x08h 0x52 Manufacturing test (0xFD) 0x09h 0x53 Manufacturing test (0x7F) 0x0Ah 0x54 Manufacturing test (0xFB) 0x0Bh 0x55 Manufacturing test (0x7F) 0x0Ch 0x56 Manufacturing test (0xF7) 0x0Dh 0x57 Manufacturing test (0x7F) 0x0Eh 0x58 Manufacturing test (0xEF) 0x0Fh 0x59 Manufacturing test (0x7F) 0x10h 0x5A Manufacturing test (0xDF) 0x11h 0x5B Manufacturing test (0x7F) 0x12h 0x5C Manufacturing test (0xBF) 0x13h 0x5D Manufacturing test (0x7F) 0x14h 0x5E Manufacturing test (0x7F) 0x15h 0x5F Manufacturing test (0x7F) 0x16h 0x60 Manufacturing test (0xFF) 0x17h 0x61 Manufacturing test (0x7E) 0x18h 0x62 Manufacturing test (0xFF) 0x19h 0x63 Manufacturing test (0x7D) 0x1Ah 0x64 Manufacturing test (0xFF) 0x1Bh 0x65 Manufacturing test (0x7B) 0x1Ch 0x66 Manufacturing test (0xFF) 0x1Dh 0x67 Manufacturing test (0x77) 0x1Eh 0x68 Manufacturing test (0xFF) 0x1Fh 0x69 Manufacturing test (0x6F) 0x20h 0x6A Manufacturing test (0xFF) 0x21h 0x6B Manufacturing test (0x5F) 0x22h 0x6C Manufacturing test (0xFF) 0x23h 0x6D Manufacturing test (0x3F) 0x24h 0x08 Control LSB 0x25h 0x09 Control MSB 0x26h CRC byte 3 MSB 0x27h CRC byte 2 0x28h CRC byte 1 0x29h CRC byte 0 LSB 0x2Ah POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 internal register descriptions revision register, revision at 0x00 (DIO) BIT 7 (MOST-SIGNIFICANT BIT) 6 5 4 3 2 1 Product code 0 (LEAST-SIGNIFICANT BIT) Revision Initial values after reset 0 0 0 1 0 0 0 0 This register contains the revision code for the device. The initial revision code is hardwired to 0x10. This register is read only, and writes to it are ignored. SRAM size-select register, RAMsize at 0x01 (DIO) The RAMsize register can be written to only when the START bit in the control register is set to 0. This register is automatically loaded from the EEPROM when the RESET terminal is asserted low, or when LOAD in the control register is set. BIT 7 6 5 4 3 2 Reserved 1 0 0 0 RSIZE Initial values after reset 1 0 BIT NAME 7–4 Reserved 0 0 0 0 FUNCTION Writes to this location are ignored and are read as 0. Ram size select. This field indicates the size of the external SRAM, and has a bearing on the number of addresses that the TNETX15AE supports. The TNETX15AE uses this field to determine how many tables to initialize as part of the reset sequence by indicating how many address lines to use. The TNETX15AE uses external SRAM for tables of pointers used in address decoding and for table end pointers (the two-word address descriptors). This field can be written only when the START bit is 0 and reset is not active. This field also is loaded from the EEPROM interface during auto load. Code values are as follows: 3–0 RSIZE RAMsize REGISTER 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D to 0x0F RAM SIZE 640 × 8 832 × 8 1K × 8 2K × 8 4K × 8 8K × 8 16K × 9 32K × 10 64K × 11 128K × 12 256K × 13 512K × 14 1M × 15 2M × 16 WORST CASE 2 2 3 7 14 28 59 123 251 507 1019 2189 4530 9211 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 17 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 age-deletion time-select register, agingtimer at 0x02–0x03 (DIO) BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 Agingtimer Initial values after reset 0 0 0 0 0 0 0 0 0 The agingtimer register is 16 bits wide and is used to control the aging process. There are two aging modes, and the modes are selected according to the value of this register: D D When agingtimer is 0 or 0xFFFF, the TNETX15AE performs table-full aging. The TNETX15AE ages out the oldest address when the lookup table becomes full. When agingtimer is not 0 or 0xFFFF, the TNETX15AE performs threshold aging. The value in the agingtimer is the time threshold in seconds. All addresses that are older than this time are aged out. Aging does not delete addresses that have been secured, and multicast addresses also are not aged. Aging is disabled when the NAUTO bit in the control register is set. It is management’s responsibility in NAUTO mode to manage the lookup table. All bits in this register are read/writeable and default to 0x0 during reset. This field also is automatically loaded from the EEPROM when the RESET terminal is asserted low or when LOAD in the control register is set to 1. unknown unicast port-routing register, unkuniports at 0x04–0x05 (DIO) BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 Reserved 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 Unkuniports Initial values after reset 0 1 1 1 1 1 1 1 1 The unkuniports register is used to route unicast frames whose destination address is not found within the lookup table. Normally these frames are flooded to all ports except to the port that originated the frame. The TNETX15AE uses the unkuniports register to route these frames to only selected ports. When the TNETX15AE uses the unkuniports register for unicast flooding, it increments the unkunictr counter. The TNETX15AE masks out the originating port when using this register. This prevents the attached switch device from forwarding the frame to its originating port. The bit numbers in this register have a one-to-one correspondence with the attached switch-device port number. This register is readable/writeable and is auto-loaded from the EEPROM when the RESET terminal is asserted low or when LOAD in the control register is set. 18 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 unknown multicast port-routing register, unkmultiports at 0x06–0x07 (DIO) BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 Reserved 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 Unkmultiports Initial values after reset 0 1 1 1 1 1 1 1 1 The unkmultiports register is used to route multicast frames whose multicast address is not found within the lookup table. Normally these frames are flooded to all ports except to the port that originated the frame. The TNETX15AE uses the unkmultiports register to route these frames to only selected ports. When the TNETX15AE uses the unkmultiports register for multicast flooding, it increments the unkmultictr counter. The TNETX15AE masks out the originating port when using this register. This prevents the attached switch from forwarding the frame to its originating port. The bit numbers in this register have a one-to-one correspondence with the attached switch-device port number. This register is readable/writeable and is auto-loaded from the EEPROM when the RESET terminal is asserted low or when LOAD in the control register is set. mode control status register, control at 0x08–0x09 (DIO) BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 RESET LOAD START INITD NEEPM NAUTO 9 8 7 6 5 NLRN0 NCRC 0 0 0 0 0 0 0 0 0 0 0 0 Reserved 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 Reserved Initial values after reset 0 0 0 0 0 0 0 0 0 No EEPROM detected 0 0 0 0 1 0 0 0 Auto loading fails 1 0 0 0 1 0 0 0 The control register is automatically loaded from the EEPROM when the RESET terminal is asserted low, or when the LOAD bit is set. Only selected bits in this register are loaded from the EEPROM. RESET and LOAD bits are not loaded to prevent automatic loading loops. The two status bits, INITD and NEEPM, also are not loadable. If automatic loading fails due to EEPROM malfunction or CRC error, the control register RESET bit is set. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 19 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 mode control status register, control at 0x08–0x09 (DIO) (continued) BIT NAME FUNCTION 15 RESET Reset. Writing a 1 to RESET places the TNETX15AE in a hardware reset state. This function sets all internal logic operations to a known state, and clears all registers (except for control). (All data from the lookup table is lost.) This bit is not automatically loaded from the EEPROM. If EEPROM automatic loading fails, then the RESET bit is set to 1. 14 LOAD Load system. Writing a 1 to LOAD starts the automatic loading of registers from the attached EEPROM. This bit is not automatically loaded from the EEPROM. The EEPROM automatic loader clears this bit to 0 (writing a 0 to this bit has no effect). This is another way to initialize registers besides the auto-load (if EEPROM present) after reset. 13 START Start system. Writing a 1 to START causes the TNETX15AE to begin operation. While the SRAM tables are initialized, no address checking is performed. (Writing a 0 to this bit has no effect.) 12 INITD RAM-initialization-done signal. INITD becomes high when the lookup table SRAM is initialized. The TNETX15AE begins learning/matching addresses after this signal goes high. This is a read-only bit. Expect this to take 40 ns × RAMsize. 11 NEEPM No external EEPROM. NEEPM indicates when an internal EEPROM is detected. If this bit is 1, no EEPROM is present or the TNETX15AE is unable to detect it, or the CRC is wrong. If this bit is set to 0, a properly formatted EEPROM was detected. This is a read-only bit. 10 NAUTO Not automatically add-address mode select. NAUTO selects the manner in which addresses are added to the lookup table. In NAUTO mode, the aging logic operation is disabled. It is management’s responsibility to manage the lookup table in this mode. – When set to 1, the TNETX15AE adds addresses only to the lookup table when a DIO ADD command is given to it. The bus watcher/LKUP state machines are still watching source addresses, and the NEW int is issued if a new address is observed on the wire. – When set to 0, the TNETX15AE automatically adds unknown addresses to its lookup table. 9–7 Reserved 6 NLRN0 Not-learn addresses from port 0. When set, the TNETX15AE does not learn SRC addresses on port 0 (uplink). 5 NCRC No CRC check. NCRC enables/disables the add-on-only-good CRC function. – When set to a 1, the TNETX15AE adds frames immediately after the source address is found on the DRAM bus. A good CRC is not required to add the source address to the table. – When set to a 0, the TNETX15AE waits until the EOB/EOF and a good CRC indication before adding addresses. Only one source address add can be pending at a time. Waiting on a good CRC can force the TNETX15AE to miss adds on other ports. 4–0 Reserved 20 Cleared to 0 on reset. Must always be written with a 0, even via EEPROM load. Writes to these locations are ignored and read as 0. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 serial interface I/O register, SIO at 0x0A (DIO) BIT 7 6 5 4 3 2 1 0 NMRST MCLK MTXEN MDATA MDIOEN ECLOK ETXEN EDATA 0 0 EDIO Initial values after reset 0 0 0 MDIO 0 The SIO register contains the control bits for two serial interfaces to the TNETX15AE. Setting the outbound signals changes the state of the external terminal. Sampling the inbound signals gives the state of the external terminal. The MII to the PHY devices has a serial management portion. This interface can have multiple masters, and allows for two-way data between master and slave. The interface to the EEPROM is simpler because it is a dedicated path between one TNETX15AE and its EEPROM. Although it is also serial and two way, there is only one master. BIT NAME FUNCTION 7 NMRST MII not reset. The state of MNRST directly controls the state of the MRESET line (MII reset) – If NMRST is set to 0, the MRESET line is set to 0. – If NMRST is set to 1, the MRESET line is set to 1. This bit is not self-clearing and must be manually deasserted. It can be set low and then immediately set high. Since every PHY attached to the MII may not have a reset terminal, it may be necessary to toggle NMRST and also individually reset each PHY through MII commands. The default state of this bit is 0 (MII is in reset). The MDIOEN bit must be set to drive MRESET. 6 MCLK 5 MTXEN MII SIO transmit enable. MTXEN is used with the MDATA bit to read/write information from/to the MDIO terminal. The MDIOEN bit must be set to drive MDIO. – When MTXEN is set to 1, the MDIO terminal is driven with the value in the MDATA bit. – When MTXEN is set to 0, MDATA is loaded with the value in the MDIO terminal. MDATA MII SIO data. MDATA is used with MTXEN to read/write information from/to the MDIO terminal. – When MTXEN is set to 1, MDIO is driven with the value in this bit. – When MTXEN is set to 0, this bit is loaded with the value on MDIO. The MDIOEN bit must be set to drive MDIO. The default value of this bit is the value driven on the MDIO terminal. 4 3 MDIOEN MII SIO clock. MCLK controls the state of the MDCLK terminal. The MDIOEN bit must be set to drive MDCLK. – When MCLK is set to 1, MDCLK is set to 1. – When MCLK is set to 0, MDCLK is set to 0. MII SIO data terminal enable. MDIOEN enables the high-Z control of the MDIO, MDCLK, and MRESET terminals. – Setting MDIOEN to 1 enables MII outputs. – Setting MDIOEN to 0 places MII outputs in a high-Z state. The default state of this bit is 0 (MII disabled) 2 ECLOK EEPROM SIO clock. ECLOK controls the state of the ECLK terminal. – When ECLOK is set to 1, ECLK is set to 1. – When ECLOK is set to 0, ECLK is set to 0. 1 ETXEN EEPROM SIO transmit enable. ETXEN controls the direction of the EDIO terminal. – When ETXEN is set to 1, EDIO is driven with the value in the EDATA bit. – When ETXEN is set to 0, EDATA is loaded with the value on the EDIO terminal. EDATA EEPROM SIO data. EDATA is used to read or write the state of the EDIO terminal. – When EXTEN is set to 1, EDIO is driven with the value in this bit. – When EXTEN is set to 0, EDATA is loaded with the value on EDIO. The default value of this bit is the value driven on the EDIO terminal. 0 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 21 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 management-table lookup interface at 0x0B–0x16 (DIO) BYTE 3 Findnode23–Findnode16 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Findnode31–Findnode24 Findnode39–Findnode32 Findnode47–Findnode40 0x0C Findnode7–Findnode0 Findnode15–Findnode8 0x10 Findport Findcontrol Findnodeage 0x14 The management-table lookup registers allow the management entity to find information about the node addresses contained in the table. These registers are part of the address lookup/inspection mechanism supported through the DIO (host) interface. An address is fully described by the six bytes of findnode (0xC to 0x11). Data about an address is returned in findport (0x12). FIND commands are issued through the findcontrol (0x16) register. They are discussed later in more detail in numerical order. To cause a FIND operation to execute, the host writes to the findcontrol register (0x16). To find the first address in the table, execute a FIRST command. The target MAC address is returned in six bytes of findnode registers. If a successive FIND command is executed (findnext), the starting point to continue the search is the six bytes of findnode. The results are returned in the same registers, overwriting the original values. These registers can be read/write between FINDS; a find next picks up with the current values of findnode. If a lookup on an address to check parameters is executed, the data returned corresponds to the value in the six bytes of findnode when the lookup command was given; the address parameters are posted in the findport register (0x12, 0x13). The FIND operation completion is detected when the command bit is written back to 0 (poll). The find register block is discussed later in further detail in numerical order. lookup-node address register, findnode at 0x0C–0x11 (DIO) The findnode registers are used to exchange addresses between the TNETX15AE and the management CPU. The node address in findnode is kept in Ethernet native data format; bit 40 is the group/specific bit. The function of findnode depends on the bits set in findcontrol: D D D On FIRST operations, this register shows the first address in the lookup table. The data in findnode is valid only when the FOUND bit in findcontrol is a 1. On NEXT operations, this register shows the next address in the lookup table. The data in findnode is valid only when the FOUND bit in findcontrol is a 1. On LKUP operations, the lookup logic operation looks up the address stored in this register. If found, the FOUND bit in findcontrol is set to a 1. This register is readable/writeable. While any of the FIND command bits are set, writes to these addresses are ignored. 22 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 lookup routing-code register, findport at 0x12–0x13 (DIO) The findport register is a read-only register, which returns port assignment information for the node address contained in the findnode register after a lookup. The data structure for the findport register depends on the type of address stored in the findnode register. If findnode contains a unicast address, findnode (40) = 0 (bit 40 of the Ethernet adddress is 0), then findport is defined as: BYTE 3 BYTE 2 BIT 15 14 13 12 VALID SECURE LOCKED CUPLNK 0 0 0 0 11 10 9 8 7 6 5 4 PORTCODE 3 2 1 0 0 0 0 Reserved Initial values after reset BIT NAME 15 VALID 0 0 0 0 0 0 0 0 0 FUNCTION Valid address indication. SECURE Secured address indication. SECURE shows the security level for the address contained in the findnode register. Secure addresses are not aged out and cannot move ports. If a station with a secured address moves ports, a security violation interrupt is given to the host, and the address is locked. Since the lookup of the destination address causes the queueing of the packet for transmit, and this happens before the source address is inspected, the packet that causes a security violation is processed through the switch. LOCKED Locked address indication. LOCKED shows the lock status for the address contained in the findnode register. Locked addresses output a discard code on the EAM interface; frames destined for LOCKED addresses are not delivered. Since the destination address lookup, which causes the queueing of the packet for transmission, is independent of checking the source address, locked addresses cannot receive packets (but still can transmit) into the switch attached to TNETX15AE. 12 CUPLNK Copy frames to uplink indication. CUPLINK shows the copy uplink status for the address contained in the findnode register. The address tagged by this bit adds the port specified in the uplinkports register to the routing code output on the EAM bus. This can affect performance of the TNETX3150/TNETX3150A/TNETX3100, as each packet must be linked to two transmit queues. 11–8 PORTCODE 7–0 Reserved 14 13 Current port for node. PORTCODE holds the current port for the unicast address shown in the findnode register. Writes to this location are ignored and read as 0. If findnode is a multicast address, findnode (40) = 1 (bit 40 of the Ethernet address is 1), then findport is defined as: BYTE 3 BYTE 2 BIT 15 14 13 12 11 10 9 8 VALID 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 PORTFLAG Initial values after reset 0 0 0 BIT NAME 15 VALID 14–0 PORTFLAG 0 0 0 0 0 0 FUNCTION Valid address indication. Port-bit vector for multicast. PORTFLAG shows the port-bit vector for the multicast address contained in the findnode register. The bit values in this field correspond one-to-one with the TNETX3150/TNETX3150A/TNETX3100 port assignment. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 23 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 node age-stamp register, findnodeage at 0x14–0x15 (DIO) BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 NODEAGE Initial values after reset 0 0 0 0 0 0 0 0 0 The findnodeage register is a read-only register, which holds the current 16-bit age-time stamp of the address contained in the findnode register after a find command executes. Age units are seconds. The time stamp indicates when this address was last seen. lookup table search control register, findcontrol at 0x16 (DIO) The management logic uses the findcontrol register to scan the lookup table for addresses. Three commands are available: findfirst (FIRST), findnext (NEXT), find (LKUP). Only one command is valid at one time. Example: a findfirst and a findnext command cannot be issued at the same time (0x06). The TNETX15AE ignores all multiple commands. This register is readable/writeable. Further accesses of this register are delayed until the operation is complete; that is, SRDY does not go active until the FIND state machine is done. This can produce a 6.4-µs read or write cycle if this register is accessed right after a FINDNEXT is started on a sparsely loaded table. BIT 7 6 5 FOUND 4 3 Reserved 2 1 0 FIRST NEXT LKUP 0 0 0 Initial values after reset 0 BIT 0 0 0 0 NAME FUNCTION 7 FOUND Address found. If the address contained in the findnode register is found in the table, FOUND is asserted. The data contained in the find interface (findnode, findport, and findnodeage) is valid only when this bit is a 1. This is a read-only bit. 6–3 Reserved 2 FIRST Lookup first address. When FIRST is 1, the TNETX15AE scans the address table for the first valid address. If FOUND is set, the address parts are placed in findnode, findport, and findnodeage. 1 NEXT Lookup next addresses. When asserted, the TNETX15AE scans the address table for the next available address after the address currently in the findnode registers (0xC–0x11). If FOUND is set, the address parts are placed in findnode, findport, and findnodeage. 0 LKUP Address lookup. When asserted, the TNETX15AE scans the address table for the address contained in the findnode register. If found, the FOUND bit reads a 1 and findport and findnodeage are valid; if not found, it reads a 0. 24 Reserved POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 statistics registers at 0x17–0x1D (DIO) BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Secvioctr 0x14 Unkmultictr Unkunictr 0x18 Numnodes 0x1C All registers in this field are read only and their default value after reset is 0. The 16-bit counters in this section must be read by bytes. It is recommended that the bytes be read least-significant byte through most-significant byte (last). An additional stimulus can cause a carry between these two reads. security violation counter, secvioctr at 0x17 (DIO) The secvioctr field contains the number of times that a secured address attempts to move ports. This register generates a stat interrupt (statistics overflow interrupt) when it is one-half full (most-significant bit in the field is a 1). Reading this register automatically clears it and the default value of this register is 0x00. unknown unicasts counter, unkunictr at 0x18–0x19 (DIO) The unkunictr register counts the number of times that the TNETX15AE device floods a frame that has a unicast destination address. These frames are used when the TNETX15AE cannot find the destination address in its lookup table. This register generates a stat interrupt (statistic overflow interrupt) when it is one-half full (most-significant bit in the field is a 1). Reading the most-significant byte of this register automatically clears it and the default value of this register is 0x0000. unknown multicasts counter, unkmultictr at 0x1A–0x1B (DIO) The unkmultictr register counts the number of times that the TNETX15AE device floods a frame that has a multicast destination address. Multicast destination addresses are flooded when the TNETX15AE cannot find the destination address in its lookup table. This register generates a stat interrupt (statistics overflow interrupt) when it is one-half full (most-significant bit in the field is a 1). Reading the most-significant byte of this register automatically clears it and the default value of this register is 0x0000. lookup table node count, numnodes at 0x1C–0x1D (DIO) The numnodes counter register contains the number of addresses currently in the lookup table. This register is read only and its value at reset is 0x0000. SRAM address register, RAMaddr at 0x20–0x22 (DIO) The RAMaddr register is used with the RAMdata (at 0x24, 0x25) register to access the TNETX15AE external SRAM. BYTE 2 BYTE 1 BYTE 0 BIT 23 INC 22 21 20 19 18 17 16 15 14 13 12 11 Reserved 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 RAM ADD Initial values after reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BIT NAME FUNCTION 23 INC Address auto-increment. When INC is 1, this increments the RAM ADD field to access the next location in the SRAM. The address is incremented by one after every read or write is performed on the most-significant byte of the RAMdata register. 22–21 Reserved Writes to this location are ignored and read as 0. 20–0 RAM ADD RAM address. This 21-bit field holds the address of the SRAM location, which is read or written. The data that is to be read or written is placed in the RAMdata register. This interface is read/write at all times except during reset. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 25 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 manufacturing test register, MANtest at 0x23 (DIO) This register is reserved for Texas Instruments (TI) manufacturing test. It is written to 0x0 for normal operation. All reset mechanisms leave 0x0 in this register, and it is not loaded from the EEPROM. It is written to only when the START bit is 0. It contains mechanisms, for example, that increment all the counters at the same time (or run the aging algorithm quicker than usual to decrease the time required to test the part at manufacture). Setting any of these bits results in abnormal operation. To allow improvement to the testing, these functions are subject to change. SRAM data register, RAMdata at 0x24–0x25 (DIO) BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RAMdata after reset Data at SRAM (0x000000) The RAMdata register is used to access the SRAM address held in the RAM ADD field of the RAMaddr register. This field is 16-bits wide. D D D 26 Writes to the RAM are executed when the MS byte of the RAMdata register is written to by the host. When depositing values for transfer to SRAM, write the least-significant byte first. Reads are accomplished by reading the data from either byte in the RAMdata register. The SRAM address to be accessed should be placed in the RAMaddr register. If the INC bit in the RAMaddr register is a 1, the address to be accessed is increased when the most-significant byte of RAMdata is accessed. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 interrupt register, int at 0x28–0x29 (DIO) The int register is used with the intmask register to provide interrupts to the attached CPU. When the TNETX15AE EINT terminal is 1, this register gives the reason for the interrupt. Specific interrupts can be masked out by setting the appropriate bit in the intmask register. This register is read only, with the exception of the int bit. All bits in a byte are automatically cleared when the byte is read, even if more then one was set. BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 7 NEW NEWM CHNG CHNGM SECVIO SECVIOM AGE AGEM INT 6 5 4 3 2 Reserved 1 0 STAT FULL 0 0 Initial values after reset 0 BIT 0 0 0 0 0 0 0 0 0 0 0 0 0 NAME FUNCTION 15 NEW New-node interrupt. NEW indicates that a new node has been added to the lookup table. The node address is given in the newnode register and the node’s port is given in the newport register. 14 NEWM Missed-new-node interrupt indication. NEWM indicates that a new node interrupt was given, but the information previously placed in the newnode registers has not been read by the host CPU. 13 CHNG Node-port change interrupt. CHNG indicates that there has been a change in port assignment for a node that exists in the lookup table. The node address is given in the newnode register and the node’s new port is given in the newport register. 12 CHNGM Missed-node-port change interrupt indication. CHNGM indicates that a node-port change interrupt was issued, but the information previously placed in the newnode registers has not been read by the host CPU. 11 SECVIO Security-violation interrupt. SECVIO indicates that a node (which has been secured) has attempted to move port assignments. The node address is given in the newnode registers. The location where the node attempted to move is contained in the newport register. 10 SECVIOM Missed-security-violation interrupt indication. SECVIOM indicates that a node-port change interrupt was issued, but the information previously placed in the newnode registers has not been read by the host CPU. 9 AGE Age-out interrupt. AGE indicates that a node has been aged-out (deleted from the lookup table). The node address is issued in the agednode register. The node’s assigned port is given in the agedport register. 8 AGEM Missed-age-out interrupt indication. AGEM indicates that an age-out interrupt was issued, but the information previously placed in the agednode registers has not been read by the host CPU. 7 INT 6–2 Reserved 1 STAT Test interrupt request. Asserting INT gives a test interrupt to the attached CPU. Writes to this location are ignored and read as 0. Statistics overflow interrupt. STAT indicates that a counter in the statistics is one-half full (most-significant bit in the counter is a 1). This is an indication to the CPU to read the statistic counters (thereby clearing them). SRAM full interrupt. FULL indicates that a condition existed (or exists) that will prevent the addition of another address to the TNETX15AE address-lookup table. During the next ADD, space for either a pointer table (32 word) or a station descriptor (four bytes) will not be available. 0 FULL If NAUTO (bit 10, control 0x9) is set, the host is responsible for adding addresses. The host-initiated ADD operation did not complete, and the FULL interrupt was asserted. The host must delete addresses until the ADD completes. If NAUTO is not set, the internal state machines have deleted the necessary oldest addresses until the ADD operation completes, even if the ADD was initiated by the host. In this case, the interrupt indicates that the table is operating near peak capacity. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 27 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 interrupt masking register, intmask at 0x2A–0x2B (DIO) The intmask register is used with the int register to select the type of interrupts that should be enabled to the attached CPU. Bit definitions in the intmask register agree one-to-one with the bit definitions in the int register. Only those fields with the bit set to 1 generate an interrupt to the CPU. Clearing the bit for a condition prevents only the external terminal from moving to a logic 1 when the appropriate condition is true. The appropriate bit in the interrupt register is always a 1 if the condition is true, and the bit has not been cleared by being read. This register is read/writeable. BYTE 1 BYTE 0 BIT 15 14 13 12 11 10 9 8 7 NEW NEWM CHNG CHNGM SECVIO SECVIOM AGE AGEM INT 6 5 4 3 2 Reserved 1 0 STAT FULL 0 0 Initial values after reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BIT NAME 15 NEW 14 NEWM Missed-new-node interrupt mask. When NEWM is set, a missed new-node interrupt is posted if the NEWM bit in the int register is set. 13 CHNG Node-port change interrupt mask. When CHNG is set, a node-port change interrupt is posted if the CHNG bit in the int register is set. 12 CHNGM Missed-node-port change interrupt mask. When CHNGM is set, a missed-node-port interrupt is posted if the CHNGM bit in the int register is set. 11 SECVIO Security-violation interrupt mask. When SECVIO is set, a security-violation interrupt is posted if the SECVIO bit in the int register is set. 10 SECVIOM Missed-security-violation interrupt mask. When SECVIOM is set, a missed-security-violation interrupt is posted if the SECVIOM bit in the int register is set. 9 AGE 8 AGEM 7 INT 6–2 Reserved 1 STAT Statistics overflow interrupt mask. When STAT is set, a statistics interrupt is posted if the STATS bit in the int register is set. 0 FULL SRAM full interrupt mask. When FULL is set, a memory-full interrupt is posted if the FULL bit in the int register is set. 28 FUNCTION New-node interrupt mask. When NEW is set, a new-node interrupt is posted if the NEW bit in the int register is set. Age-out interrupt mask. When AGE is set, an age-out interrupt is posted if the AGE bit in the int register is set. Missed-age-out interrupt mask. When AGEM is set, a missed age-out interrupt is posted if the AGEM bit in the int register is set. Test interrupt mask. When INT is set, a test interrupt is posted if the INT bit in the int register is set. Writes to this location are ignored and read as 0. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 new-add aged-del register set The add/delete register set is used by the state machines (logic operations) to report on stations’ addresses that have been added, deleted, or involved in port security violations as executed by the internal state machines, or to request such actions be taken on the specified address on behalf of the host. The newnode and agednode set of registers send status information from the state machines to the host following an interrupt. Addnode and delnode registers are host information/actions to be applied to the TNETX15AE table. The status groups (new, aged) are covered in detail first, followed by the host command groups (add, delete). REGISTER SET AND ADDRESSES BYTE 3 BYTE 0 DIO ADDRESS Adddelcontrol 0x2C Newnode39–Newnode32 Newnode47–Newnode40 0x30 Newnode7–Newnode0 Newnode15–Newnode8 0x34 Addnode39–Addnode32 Addnode47–Addnode40 0x38 BYTE 2 Newnode23–Newnode16 Newnode31–Newnode24 Newport Addnode23–Addnode16 Addnode31–Addnode24 Addport Agednode23–Agednode16 Delnode23–Delnode16 BYTE 1 Addnode7–Addnode0 Addnode15–Addnode8 0x3C Agednode31–Agednode24 Agednode39–Agednode32 Agednode47–Agednode40 0x40 Agedport Agednode7–Agednode0 Agednode15–Agednode8 0x44 Delnode31–Delnode24 Delnode39–Delnode32 Delnode47–Delnode40 0x48 Delnode7–Delnode0 Delnode15–Delnode8 0x4C new-node/port-change/security-violation interrupt interface at 0x30–0x37 (DIO) BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Newnode31–Newnode24 Newnode39–Newnode32 Newnode47–Newnode40 0x30 Newnode7–Newnode0 Newnode15–Newnode8 0x34 BYTE 3 Newnode23–Newnode16 Newport The new-node/port-change/security-violation interrupt interface is used with the int and intmask registers to exchange information relating to new addresses being added or modified in the lookup table following a wire event. This means a new source address was seen, a source address was seen on a new port, or a source address was seen on a port other than the one where it was secured, regardless of the state of the NAUTO bit in the control register. These registers are valid on a NEW, CHNG, or SECVIO interrupt. These registers are read only and default to 0 on reset. With NAUTO = 0, a new address is already added to the table. With NAUTO = 1, the host CPU gets notification of a new address via these registers and must perform the add. To avoid the data in these registers from being changed if another interrupt occurs while reading the current data, the data in these registers is locked until the most-significant byte of the newport register is read. The bit definition follows: new-address register, newnode at 0x30–0x35 (DIO) The newnode registers contain the node address (in Ethernet native data format) for which the interrupt was given. The default value of this register after reset is 0x00.00.00.00.00.00. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 29 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 new-address port register, newport at 0x36–0x37 (DIO) BYTE 3 BYTE 2 BIT 15 14 VALID 13 12 11 Reserved 10 9 8 7 6 PORTCODE 5 4 3 Reserved 2 1 0 OLDPORT Initial values after reset 0 0 BIT 0 0 0 0 0 0 0 NAME 0 0 0 0 0 0 0 FUNCTION 15 VALID 14–12 Reserved Valid address indication. 11–8 PORTCODE 7–4 Reserved Writes to this location are ignored and read as 0. 3–0 OLDPORT Old port for address. When an address moves port locations, OLDPORT contains the old port location for the address. When a security-violation interrupt is asserted by the TNETX15AE, the SECVIO bit is set in the int register, and OLDPORT shows the port where the node attempted to move. Writes to this location are ignored and read as 0. Current port for node. The PORTCODE field holds the assigned port number for the address contained in the newnode register. agednode interrupt interface group at 0x40–0x46 (DIO) BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Agednode23–Agednode16 Agednode31–Agednode24 Agednode39–Agednode32 Agednode47–Agednode40 0x40 Agedport Agednode7–Agednode0 Agednode15–Agednode8 0x44 The agednode interrupt interface is used with the int and intmask registers to pass information to the management agent about addresses that have been deleted from the lookup table due to the internal aging process. The information placed in these registers (written in Ethernet native data format) is valid only when the AGE bit in the int register is set to a 1. These registers are read only and default to 0 after reset. To prevent the data in these registers from being changed if another interrupt occurs while reading the current data, the data in these registers is locked until the agedport register is read. aged-address register, agednode at 0x40–0x45 (DIO) On an age interrupt, the agednode registers contain the address of the node that has been aged out from the lookup table. This is a read-only register and defaults to 0x00.00.00.00.00.00 after reset. A different interrupt is issued if this information remains unread long enough that another node is aged out before the agednode registers are released. 30 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 aged-address port assignment, agedport at 0x46 (DIO), byte 2 BIT 7 6 5 4 3 2 Reserved 1 0 0 0 PORTCODE Initial values after reset 0 0 BIT NAME 7–4 Reserved 3–0 PORTCODE 0 0 0 0 FUNCTION Writes to this location are ignored and read as 0. Agednode port assignment. PORTCODE displays the assigned port for the aged-out address contained in the agednode register. management add/edit address interface group at 0x2C and 0x38–0x3F (DIO) BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Adddelcontrol 0x2C 0x30 0x34 Addnode23–Addnode16 Addnode31–Addnode24 Addport Addnode39–Addnode32 Addnode47–Addnode40 0x38 Addnode7–Addnode0 Addnode15–Addnode8 0x3C The management add/edit address registers are used with the ADD bit in the adddelcontrol register to perform CPU adds and edits to the lookup table. These registers are normally readable/writeable. As long as the ADD bit in the addelcontrol register is high, writes to these bytes are ignored. lookup table add/delete command register, adddelcontrol at 0x2C (DIO), byte 0 BYTE 0 BIT 7 6 5 4 3 2 Reserved 1 0 ADD DEL 0 0 Initial values after reset 0 0 0 0 0 0 BIT NAME 7–2 Reserved FUNCTION 1 ADD Address add. When ADD is asserted, the TNETX15AE uses the information contained in the management add/edit address interface to add or edit an address in the lookup table. ADD remains asserted until the add process is complete. 0 DEL See the delete command bit description and the description of the delnode registers (0x48–0x4f). Writes to this location are ignored and are read as 0. The adddelcontrol register can be read at any time. If the ADD or DEL bit is being written and that bit is already set, the DIO interface will stall and SRDY will be delayed until the current cycle completes. If neither of these two bits is already set during a write, a normal cycle results. add address register, addnode at 0x38–0x3D (DIO) The unicast or multicast address in this register (written in Ethernet native data format) is added to the lookup table when the ADD bit in the adddelcontrol register is set to 1, along with the data in the addport register. The default value of this register after reset is 0x00.00.00.00.00.00. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 31 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 add routing code register, addport at 0x3E–0x3F (DIO) The addport register is used to set or change port and flag assignments for the node address contained in the addnode register. The definition for the addport register depends on whether the address stored in the addnode register is a unicast or multicast address. This interface is used by the host to enter broadcast, multicast, and unicast addresses to the TNETX15AE table. Wire ADDs operate on packet-source addresses, and all of these are forced to unicast addresses. If addnode is a unicast address, (addnode (40) = 0), addport is defined as follows: BYTE 3 BYTE 2 BIT 15 14 13 12 Reserved SECURE LOCKED CUPLNK 0 0 0 0 11 10 9 8 7 6 5 4 PORTCODE 3 2 1 0 0 0 0 Reserved Initial values after reset 0 0 0 0 0 0 0 0 0 BIT NAME 15 Reserved Writes are ignored and read as 0. FUNCTION 14 SECURE Secured address flag. SECURE is used to change the security level for the address contained in the addnode register. 13 LOCKED Locked address flag. LOCKED locks/unlocks the address contained in the addnode register on an add operation. Locked addresses output a discard code on the EAM interface. 12 CUPLINK Copy frames to uplink flag. CUPLINK sets the copy uplink status for the address contained in the addnode register. Addresses tagged by this bit add the port (specified in the uplinkports register) to the routing code. 11–8 PORTCODE Current port code for address. The value in PORTCODE becomes the port to which packets (sent to this address) are forwarded. In addresses that are added automatically to the table, the source port goes to this field. This field is writeable, and can be used to redirect traffic. 7–0 Reserved Writes to this location are ignored and read as 0. If addnode is a multicast address, (addnode (40) = 1), addport is defined as follows: BYTE 3 BYTE 2 BIT 15 14 13 12 11 10 9 8 Reserved 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 PORTFLAG Initial values after reset 0 0 BIT NAME 15 Reserved 14–0 PORTFLAG 32 0 0 0 0 0 0 0 FUNCTION Writes are ignored and read as 0. PORTFLAG for multicast. PORTFLAG is the port assignment for the multicast address contained in the addnode register. The bit values in this field correspond one-to-one with the TNETX3150/TNETX3150A/TNETX3100 port assignment. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 management delete address interface group at 0x2C, 0x48–0x4F (DIO) BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Adddelcontrol 0x2C 0x30 0x34 0x38 0x3C 0x40 0x44 Delnode23–Delnode16 Delnode31–Delnode24 Delnode39–Delnode32 Delnode47–Delnode40 Delnode7–Delnode0 0x48 Delnode15–Delnode8 0x4C The management delete address interface is used with the DEL bits in the adddelcontrol register to perform management deletions from the lookup table. lookup table add/delete command register, adddelcontrol at 0x2C (DIO), byte 0 BYTE 0 BIT 7 6 5 4 3 2 Reserved 1 0 ADD DEL 0 0 Initial values after reset 0 0 0 0 0 0 BIT NAME 7–2 Reserved FUNCTION 1 ADD See the add command-bit description and the description of the addnode registers (0x38–0x3f). 0 DEL Address delete. When DEL is asserted, the TNETX15AE uses the information contained in the management delete address interface to delete an address from the lookup table. DEL remains asserted until the delete process is complete. Writes to this location are ignored and are read as 0. The adddelcontrol register can be read at any time. If the ADD or DEL bit is being written and that bit is already set, the DIO interface will stall and SRDY will be delayed until the current cycle completes. If neither of these two bits is already set during a write, a normal cycle results. delete-node address register, delnode at 0x48–0x4D (DIO) The delnode registers are used with the DEL bit in the adddelcontrol register to allow for management deletion of an address in the lookup table. To delete an address, the address to be deleted is placed in Ethernet native data format in this register, and the DEL bit in the adddelcontrol register is asserted. This register defaults to 0x00.00.00.00.00.00 after reset. These registers are normally read/write except when the DEL bit in the adddelcontrol register is high; then, writes are ignored. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 33 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 uplink routing register, uplinkport at 0x6E (DIO) BIT 7 6 5 4 3 2 Reserved 1 0 0 0 Uplink Initial values after reset 0 0 0 0 0 0 The uplinkport register routes selected packets to a user-selected port. This register is valid only when the destination address being looked up has the CUPLNK bit set. Then the TNETX15AE forwards frames to the port specified in the lookup table and the port specified in this register. The TNETX15AE masks (does not send frames to) the port that originated the frame. PRINCIPLES OF OPERATION The purpose of this section is to assist in the development of management operational code for the TNETX15AE. Management code is drastically simplified when using the TNETX15AE since it is designed to operate without the need for a management CPU. Many of the functions that were performed previously by a CPU are now integrated on the TNETX15AE. This section discusses the following topics: D D D D D A background on the TNETX15AE architecture, including the data-storage algorithm and the arbitration between logic operations How to access the TNETX15AE registers through the DIO interface, and how these registers can be used to access the internal/external SRAM, the EEPROM, and any MII-managed devices How to access the TNETX15AE through the DIO interface from a hardware reset, and do the steps needed to bring the TNETX15AE to an operational state How to use the logic operations to perform management-based lookups, adds, and deletions. How to use the TNETX15AE interrupt support to create event-driven management code. internal operation This section describes the TNETX15AE hardware and how it affects the programmer and the TNETX3150/TNETX3150A/TNETX3100 performance. The functionality described in this section is transparent to the user, but it is included to help the user become familiar with the TNETX15AE architecture and how it interfaces to the TNETX3150/TNETX3150A/TNETX3100 device. Refer to the latest TNETX3150/TNETX3150A/TNETX3100 documentation for additional information. EAM codings and in-order broadcasts (IOB) The TNETX15AE uses two styles of EAM codings – single-port and multiple-port codings. The TNETX3150/TNETX3150A/TNETX3100 treats these two types of coding differently. Single-port codings forward frames to a single port. The TNETX3150/TNETX3150A/TNETX3100 queues these frames to the port queue. Multiple-port codings forward frames to multiple ports. The TNETX3150/TNETX3150A/TNETX3100 creates an IOB list structure to queue this frame to multiple-port queues. IOB lists use more memory bandwidth than a regular list because IOB lists require the use of an extra 64-byte buffer to contain all queue pointers for the ports. If many small frames are sent to multiple ports, IOB structures then can use significant TNETX3150/TNETX3150A/TNETX3100 memory bandwidth. 34 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION EAM codings and in-order broadcasts (IOB) (continued) The TNETX15AE uses single-port codings when possible, to maximize performance. The TNETX15AE inspects all multiple-port codings. If, after removing all ineligible receivers (e.g., source port) only one destination port is left, the TNETX15AE switches to a single-port coding on the EAM bus. For a more complete description of IOB lists, refer to the latest TNETX3150/TNETX3150A/TNETX3100 specification. TNETX15AE DRAM and EAM interface The TNETX15AE takes its frame input through the TNETX3150/TNETX3150A DRAM bus. It must recognize a start-of-frame (SOF) indication on the first flag byte of the frame. After the SOF is found, the TNETX15AE latches the first 32 bits of the destination address on the next DRAM cycle. At this point, it must complete a lookup cycle, choose the appropriate EAM code, and output this code in 440 ns, or less. Figure 3 shows the lookup timing. Check the data set for the TNETX3150/TNETX3150A/TNETX3100 for field definitions beyond those used by the TNETX15AE. The data on each cycle has the following format. 250 ns 0 ns 500 ns 750 ns OSCIN Low DOE DWE DRAS DCAS DA7–DA0, DX2–DX0 DD31– DD0 DD35– DD32 EAM15– EAM0 ÎÎ ÎÎ Cycle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Row Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col Data Data Data Data Data Data Data Data Data Data Data Data FPTR ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ 0PPP Forward Pointer Field (Request Port Code) 01UU CCCC 00UU CCCC 00UU CCCC 00UU CCCC 00UU CCCC 00UU CCCC Data Data ÎÎÎ ÎÎÎ Data Data 00UU CCCC 1BBB 1SSS Least-Significant 16 Bits of DA Latched High Nibble of Start Flag (SOF) 440 ns Most-Significant 32 Bits of DA Latched (Decode May Begin) External Address Match (EAM) Code Valid End-of-Buffer (EOB) End-of-Flag (EOF) Figure 3. Lookup Cycle Timing POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 35 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION TNETX15AE DRAM and EAM interface (continued) The TNETX15AE must determine that the data being written to memory is the first buffer of a data frame and not an IOB index buffer. The buffer contains packet data if the IOB bit is 0. The channel/source port code is latched from bits DD27–DD24 during the forward pointer (FPTR) transfer when TNETX3150/TNETX3150A/TNETX3100 is writing packet data to DRAM. The TNETX15AE must determine the start of frame by looking at the flag in cycle 1. The flag is given in the DD35–DD32 terminals. The SOF is shown in the following table in cycle 1 at bit (35–34) = 01b. CYCLE BIT 35 0 IOB 1 0 2 3 0 • • • 34 33 32 31 28 27 Parity† Tag† Reserved Channel code† 24 23 Most-significant 32 bits of DA Most-significant 16 bits SA Reserved EOB Least-significant 16 bits DA Least-significant 32 bits of SA Flags† N–1 0 Forward pointer† Channel code 1 0 16 15 Data† Valid bytes† Frame status† Data† N EOF † These bits are ignored by the TNETX15AE. CRC The TNETX15AE destination lookup cycle begins when it latches the partial destination address to begin the table lookup in cycle 1, and ends when it outputs an EAM code within the allocated 440 ns after the SOF condition is met. It must pick up the 16 bits at the destination in cycle 2 to complete the decode. The channel-code field in the body of the frame is exactly the same as that in the forward pointer. The TNETX15AE uses the channel code from the forward pointer. decoding the destination address (DA) and source address (SA) from the DRAM bus The TNETX3150/TNETX3150A/TNETX3100 writes data to the DRAM buffers in a specific format (refer to the TNETX3150/TNETX3150A/TNETX3100 data sheet for additional information on this format). The TNETX15AE recognizes this format to determine the correct destination and source addresses. The format for the DA and the SA is shown in the following: CYCLE BIT 31 25 24 16 15 8 7 0 1 DA23–DA16 DA31–DA24 DA39–32 2 SA39–SA32 SA47–SA40 DA7–DA0 DA47–DA40 DA15–DA8 3 SA7–SA0 SA15–SA8 SA23–SA16 SA31–SA24 The TNETX15AE will latch and save the source address, cycles 2 and 3, if it is not already saving one. A source-address lookup will take place when there is no activity (TNETX3150/TNETX3150A/TNETX3100 to DRAM), when the transfer to memory is not the first 64 bytes of a packet, or when the transfer is from memory to an output FIFO. 36 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION decoding the destination address (DA) and source address (SA) from the DRAM bus (continued) The node addresses are transmitted on the DRAM bus in the Ethernet native data format. This is the same format in which the address appears in the frame. Ethernet first transmits the least-significant bit of a data byte on the wire. This makes the specific/group bit appear in bit 40 (least-significant bit of most-significant byte). For example, a destination address of 0x12.34.56.78.9A. BC and a source address of 0xDE.F1.23.45.67.89 is seen on the DD terminals as follows: CYCLE BIT 31 25 24 16 15 8 7 0 1 0x78 0x56 0x34 0x12 2 0xF1 0xDE 0xBC 0x9A 3 0x89 0x67 0x45 0x23 CRC checking and valid frames The TNETX15AE determines the status of the frame when the EOB, followed by an EOF, is detected. CRC checking is determined from the frame-status field. The code for a good CRC is frame status = 000b. All other frame-status codings indicate that the TNETX3150/TNETX3150A/TNETX3100 aborts the frame due to either a CRC error, a FIFO overflow, or a network error. The frame status is checked only when the option of adding addresses to TNETX15AE tables on a good CRC is indicated rather than immediately adding a new address. If a good CRC is required to add an address, the ADD state machine simply waits from source address time to CRC time. It can be interrupted by a lookup for another port, but no ADD/DEL or other lower-priority activity on any other port can take place. This might cause TNETX15AE to miss adding addresses when expected. operating logic arbitration The lookup table is contained in the external SRAM. All of the TNETX15AE logic operations share access to this SRAM. An arbitration scheme is implemented to give all logic operations access to the SRAM while meeting the lookup timing requirements. The TNETX15AE contains seven logic operations that require the use of the SRAM bus. They are the RAM initialization logic operation (INIT), the lookup logic operation (LKUP), the delete logic operation (DEL), the add logic operation (ADD), the management address-lookup logic operation (FIND), the RAM registers RAMaddr and RAMdata (REG), and the aging logic operation (AGE). The arbiter assigns a priority to each logic operation. The highest priority is assigned to the INIT logic operation to initialize the TNETX15AE after a reset. After initialization, LKUP becomes the logic operation with the highest priority because it is the logic operation that is the most time critical. The next priority level is shared by ADD and DEL. Register-based accesses (REG) are followed by the FIND logic operation. AGE becomes the lowest priority. Figure 4 shows the priorities of the TNETX15AE logic operations. The arbiter grants the bus to the logic operation with the highest priority that is currently requesting the bus. Each logic operation requests the bus by asserting its request signal. The arbiter assigns the bus to that logic operation by asserting its grant signal. If no logic operation is requesting the bus, the arbiter grants the bus to AGE for background aging operations. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 37 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION operating logic arbitration (continued) INIT LKUP Decreasing Priority DEL ADD REG FIND AGE Figure 4. Logic-Operation Priorities One logic operation can interrupt a lower-priority logic operation to acquire the bus. For example, an LKUP operation interrupts an ADD operation. For the case of ADD and DEL (with the same priority), the arbiter grants the bus to the first logic operation that requests it. It then grants an uninterruptable bus (unless by a LKUP) to that logic operation until that logic operation is completed. If both ADD and DEL request the bus at the same time, the bus is granted to ADD. This ensures that ADD is not interrupted by a DEL operation and vice versa. This hierarchy explains why a host request for access to RAM completes with some variability — there may be higher-priority operations accessing RAM at that instant. lookup algorithm The TNETX15AE device uses a table-based lookup algorithm to provide deterministic lookups with less than 248 memory words. The tables are hierarchical and are linked to the lower tables by threads. Each table can thread to several different tables in the hierarchy. The lowest table in the hierarchy (leaf) does not point to anything and contains information about the address to be matched. Each level in the hierarchy is assigned to a specific range of bits in the address. The bits in the range are used as an offset within the table at each level. If a thread exists at that offset, the TNETX15AE follows that thread. The TNETX15AE matches an address when it finds a complete thread to a leaf. The thread structure is shown in Figure 5. The first level (root level) has only one table from which it can branch out to 2N possible tables. N is the number of bits compared at a given time. Each additional table in the hierarchy branches down to 2N other possible tables. The second level contains 2N table and 22N threads. The third level contains 22N tables and 23N threads, and so on. Because of this exponential growth, the threads and the amount of possible paths at each level soon overtake the number of addresses required. If this growth were to go unchecked with an N of 5, the third level would contain 1,024 tables and 32,768 threads. If only 1024 addresses are required, there are more tables allocated than needed, and most contain NULL pointers. 38 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION lookup algorithm (continued) Table Table Table 2nd Level : 2N Tables 22N Threads Table Table Table Table 3rd Level : 23N Tables 23N Threads N = Number of bits compared Figure 5. Lookup-Algorithm Table Hierarchy For bit groups of five (gives table sizes of 32), and with five levels of table hierarchy, preassigning all possible tables at initialization requires more RAM than is possible to attach to the TNETX15AE. Therefore, table allocation occurs only when a new table is required as a result of discovering a bit pattern at any of the levels previously unseen. This has several side effects – given the same address set, entering them into the table in a different order yields different SRAM contents as the tables required are allocated from free space in a different order; the pointer values written to the table entries to point to the next level in the hierarchy are dynamically allocated. An address is in the table if there are valid entries at each level in the hierarchy (as each n-bit part of the address is inspected) that continue all the way down to a leaf where the characteristics of that address are stored. An address is not present in the table when there is a null pointer at any level of the decode. Addresses that are sequential share all the intermediate pointers down to the address of the leaf. Addresses with at least one bit different in each N-bit decode group occupy completely different tables. The worst-case rating on the storage capacity of the TNETX15AE SRAM assumes that each address is different from all the others by at least one bit in each decode group. This implies that each card is from a different manufacturer, and the serial number of any card is not within 2N of any other card. Since each table needs to compare 2N possible combinations, it requires 2N pointers. Each table has the format shown in Table 5. Table 5. Lookup-Algorithm Table Format OFFSET N (BITS TO BE COMPARED) POINTERS 0 00000 To table x at next level 1 00001 To table y at next level 2 00010 To table z at next level • • • 2N – 1 • • • 2N – 1 • • • Only the pointers column of Table 5 occupies memory locations. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 39 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION lookup algorithm (continued) Each pointer points to a table in the next level. The TNETX15AE uses N bits in the address as an offset to this table and, if a valid pointer is found, decode proceeds to the next level. A null pointer indicates that the entry was not found (in this case the search fails). The width of the memory word (W) must increase as the memory gets deeper, such that 2N+W – 1 ≥ memory size; the memory address of the next pointer is (contents of current table entry):(next N bits to decode). a graphical example of the lookup algorithm This example uses the following method to look up the number 0xB2 (10.11.00.10b), two bits at a time (N = 2). Graphically, this number is represented in Figure 6. 00 01 10 11 00 01 10 11 00 01 00 10 01 11 10 11 Figure 6. Example of Lookup-Number Algorithm (Matching 0xB2) The first table at offset 0x10b points to the second level (see Figure 6). The pointer at the second level (offset by the second set of bits (0x11b)) points to the third table. This process continues until the last two bits are matched. Matching 0xB2, two bits at a time, uses four tables, with each containing four possible pointers. Not all locations in the tables are used, which potentially can lead to unused memory. Now, add 0xB0 (10.11.00.00b) to the table. Figure 7 illustrates the results. 00 01 10 11 00 01 10 11 00 01 00 10 01 11 10 11 Figure 7. Example of Lookup-Number Algorithm (Adding 0xB0) 0xB0 follows exactly the same thread as 0xB2 and the only difference between the two is in the last table. 0xB0 matches offset 00b while 0xB2 matches offset 10b. There are now two numbers being represented, but there are still four tables allocated. 40 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION a graphical example of the lookup algorithm (continued) Continuing this example, we can add 0xB1 and 0xB2 with the same number of tables allocated. This is called the best-case scenario since the maximum amount of addresses can be stored in the minimum amount of memory. Now add 0x22 (00.10.00.10b) to a lookup table containing only 0xB2. Figure 8 shows the results. 00 00 00 01 10 00 01 10 01 10 11 01 11 10 11 00 01 10 11 00 11 01 00 10 01 11 10 11 Figure 8. Example of Lookup-Number Algorithm (Adding 0x22) Adding 0x22 requires allocating three additional tables. Seven tables are now required to hold two addresses. Compared to numbers that differ in their least-significant bits, numbers that differ in their most-significant bits require more tables. Continuing the example, adding 0x2A requires an additional three tables, as would 0xE2. This is the worst-case scenario of storing addresses with this technique. The TNETX15AE is designed to handle the worst-case address distribution. The worst-case address distribution requires a separate thread per address. A purely random distribution creates multiple threads at the top levels. The most-significant bits of a network card address are the vendor bits. However (in most networks) there are only a couple of vendors used. These cards do not have a purely random address distribution, and they all share a common set of bits that identifies the vendor. This configuration requires fewer pointers for the same number of addresses. In such a network, the tables look more like those in Figure 9. There is a need to allocate for worst case, but since the worst case is not likely to happen in a real system, the opportunity exists to include more addresses than indicated by the worst-case rating. The actual number of addresses supported depends on the nature of the nodes in the network. TNETX15AE devices in networks with nodes from one or a small number of manufacturers can recognize more addresses than those in a purely random-address network. This algorithm has the primary advantage that the lookup time is independent of the number of addresses stored in the lookup table. Whether the number of addresses present is one or a half million, the lookup time depends on the number of table levels required to match the address. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 41 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION a graphical example of the lookup algorithm (continued) Table Table Table Table Table Table Table Figure 9. Address Distribution Table Hierarchy (Worst Case) Another side effect of this algorithm is that the table order is already sorted (smallest to largest). The choice of N (the number of bits to consider each cycle) must be an integer and is a balance of: 1. The size of each table = 2N words; larger means more wasted space per lightly used table, and smaller means less wasted space per lightly used table. 2. The clocks required to process a whole address (in this case 48 IEEE addresses) = 48 ÷ N rounded up to the next integer; considering more bits at a time decodes 48 bits in less time (considering fewer at a time takes more time). The upper limit is 10 or 11 clocks. SRAM data storage lookup table SRAM allocation The TNETX15AE uses a 5-bit version of the lookup algorithm described in the previous section. When a 5-bit version of the lookup algorithm is used, each address requires ten tables to store a 48-bit value. Tables 0 through 9 are used to match the 48 bits involved in the lookup. Table 9 (shown in Figure 10) contains the actual data describing an address. The external SRAM must be a minimum of eight bits wide, so address descriptor information (see findport and findnodeage register definitions) can be stored in four locations as bytes. Starting at 16K, the external SRAM must get wider so that a pointer of installed word width (when five bits are appended) gives a pointer with enough bits to address any memory location. Both address descriptor blocks and pointer tables must be contiguous, and both are allocated dynamically. The table is full when the next structure being allocated does not fit. Several addresses may have to be deleted on a table-full condition to make room for a new address. An allocated (but unused) table entry is set to 0 since zero cannot be a valid address for a table leaf. 42 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION lookup table SRAM allocation (continued) Table 0 (Root) Bits 47–43 Table 1 Bits 42–38 Table 2 Bits 37–33 Table 3 Bits 32–28 Table 4 Bits 27–23 Table 5 Bits 22–18 Table 6 Bits 17–33 Table 7 Bits 12–8 Table 8 Bits 7–3 Bits 2–0 Table Level 9 is 8 Address Descriptor Blocks Figure 10. Address Tables The last level decodes only bits 2–0 of the address, therefore, only eight unique locations are required. Since tables are allocated 32 words at a time, the last table is divided into eight four-word units. The lower eight bits of each word hold one byte of the address descriptor block as shown in Figure 11. BYTE 1 BYTE 2 BYTE 3 BYTE 4 Flags/port code Reserved MSG age stamp LSB age stamp Figure 11. Address Descriptor Block Format Since only the first byte of the address descriptor block is required to make a forwarding decision, an address lookup requires 40 ns to access each of 10 levels for a total 400-ns lookup time plus an internal setup cycle. The total time required (400 ns + 20 ns) gives some margin to generate the EAM code in time for the TNETX3150/TNETX3150A/TNETX3100. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 43 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION RAMsize and number of nodes supported The address capability for the various RAM sizes is given in Table 6 (repeated from RAMsize register definition). Table 6. Address Capability for RAM Sizes RAMsize REGISTER RAM SIZE WORST CASE BEST CASE 0x00 640 × 8 2 88 0x01 832 × 8 2 136 0x02 1K × 8 3 184 0x03 2K × 8 7 432 0x04 4K × 8 14 928 0x05 8K × 8 28 1920 0x06 16K × 9 59 3904 0x07 32K × 10 123 7880 0x08 64K × 11 251 15816 0x09 128K × 12 507 31688 0x0A 256K × 13 1019 63432 0x0B 512K × 14 2189 134 040 0x0C 1M × 15 4530 277 408 0x0D–0x0F 2M × 16 9211 564 144 The data in Table 6 shows a large range between the worst-case performance and the best-case performance. For a 500-address system, 128K × 12 is needed. A 1000 address system requires 256K × 13. A 2000 address system requires 512K × 14, where K = 1024 for binary-sized memories. The difference between the best and worst case at each row depends on the similarity (when viewed in 5-bit groups) of the addresses entered into the table. If addresses are sequential, there is maximal table sharing, and the most addresses fit into the smallest space. If addresses are widely spaced with respect to the 5-bit groups, there is minimal table sharing, because each 32-entry table has only one entry at each level. This requires the most SRAM per address. register spaces/external devices accessible through the TNETX15AE Although the TNETX15AE is designed to work in a CPU-less environment, access to the internal registers is useful for the following reasons: D D D D D D D D 44 Setting/changing port assignments Setting operational modes (startup options) Resetting the device (software reset) Management-based access and control of the lookup table Statistics gathering Diagnostic operations Communicating with attached PHYs through the MII Reading/writing to an external EEPROM POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION register spaces/external devices accessible through the TNETX15AE (continued) Figure 12 shows the various register spaces provided by and accessed through the TNETX15AE. TNETX15AE Access Registers MII I/F Internal DIO Registers MII/PHYs Serial EEPROM Address High DIO EEPROM I/F Address Low SIO Data RAM Addr Data Auto- Increment RAM Data SRAM I/F SRAM (External) Figure 12. Register Spaces Provided and Accessed Through the TNETX15AE DIO interface The DIO interface is asynchronous to allow easy adaptation to a range of microprocessor devices and computer system interfaces. The DIO interface is designed to operate from the same bus as the TNETX3150/TNETX3150A/TNETX3100 DIO interface. Thus, both devices are accessed using the same DIO read and write routines. Each device is selected for DIO reads and writes through independent chip-select signals. Chip select for the TNETX3150/TNETX3150A/TNETX3100 is named SCS, while chip select for the TNETX15AE is named ESCS. Figure 13 shows how the TNETX15AE and the TNETX3150/TNETX3150A/TNETX3100 share the DIO interface. EINT SDATA7–SDATA0 SAD1–SAD0 SRNW Microprocessor SRDY ESCS SCS TNETX15AE TNETX3150/TNETX3150A/ TNETX3100 Figure 13. DIO Interface Bus POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 45 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION DIO write cycle The write cycle waveforms are shown in Figure 14 and described in the following: D D D D D The TNETX15AE host register address (SAD1–SAD0 and SDATA7–SDATA0) is asserted and SRNW goes low. After a setup time, ESCS goes low, initiating a write cycle. The TNETX15AE pulls SRDY low as the data is accepted. SDATA7–SDATA0, SAD1–SAD0, and SRNW signals are deasserted after the hold time has expired. ESCS goes high (by the host) to complete the cycle, causing SRDY to deassert and to go high for one cycle before going into the high-impedance (Z) state. ESCS SRNW ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ SAD1–SAD0 Z Z Figure 14. DIO Write-Cycle Waveforms 46 ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ Data SDATA7–SDATA0 SRDY Host Address POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION DIO read cycle The read-cycle waveforms are shown in Figure 15 and described in the following: D D D D The TNETX15AE host register address SAD1–SAD0 is asserted while SRNW is held high. After a setup time, ESCS goes low, initiating the read cycle. After a delay time, with ESCS low, SDATA7–SDATA0 is released from the high-impedance (Z) state. SDATA7–SDATA0 is driven with valid data and SRDY goes low. The host can access the data. ESCS goes high (by the host) to signal completion of the cycle, causing SRDY to deassert. SRDY goes high for one clock cycle before going into the Z state. SDATA7–SDATA0 also goes to the Z state. ESCS SRNW SAD1–SAD0 ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ Data SDATA7–SDATA0 SRDY ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ Host Address Z Z Figure 15. DIO Read-Cycle Waveforms host (access) register space The TNETX15AE registers, SRAM (internal and external), and EEPROM are indirectly accessed through the access registers. The access registers are written/read to/through the DIO interface. There are four byte-wide access registers. They are individually selected through the SAD bus, as shown in Table 7, and the registers are read/written through the SDATA bus. Table 7. DIO Access Register Code SAD1 SAD0 ACCESS REGISTERS 0 0 DIO address low 0 1 DIO address high 1 0 DIO data 1 1 DIO data auto-increment Two bytes, DIO address low and DIO address high, are used as a pointer to the address (DIOADR) of the internal register being selected. DIO address high is the most-significant byte of DIOADR and DIO address low is the least-significant byte. The DIO address register is byte writeable. The user does not have to write to both DIO address locations for each access to the internal registers. Up to 216 possible internal locations can be accessed through the DIO address registers. Some of these first-level indirect registers are themselves address registers (RAMaddr) for second-level indirect access to even bigger address spaces. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 47 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION host (access) register space (continued) The next two bytes, DIO data and DIO data auto-increment, are used to read and write data to the byte-wide internal register selected in the DIOADR. Both DIO data and DIO data auto-increment can be used effectively to read and write the data, but the DIO data auto-increment register provides additional functionality over DIO data. Access to the DIO data auto-increment register provides a post-increment (by one) to the DIO address register. This is useful for reading/writing to a block of registers. As an example, to access a single-byte-wide register such as the SIO register (DIO address = 0x0A) the operations needed are: D D D Write a 0x00 to DIO address high Write a 0x0A to DIO address low to select DIO address 0x0A Read the SIO register by reading DIO data, or write to the SIO register by writing to DIO data. Multiple-byte registers are accessed by reading/writing to their individual bytes. The control register (DIO address 0x08–0x09) is accessed in the following manner: D D D D D D Write a 0x00 to DIO address high Write a 0x08 to DIO address low to select DIO address 0x08 Read the least-significant byte of the control register by reading DIO data, or write to the least-significant byte of the control register by writing to DIO data. Write a 0x00 to DIO address high Write a 0x09 to DIO address low to select DIO address 0x09 Read the most-significant byte of the control register by reading DIO data, or write to the most-significant byte of the control register by writing to DIO data. Improvement on the preceding steps is obtained by writing a 0x00 to DIO address high and changing only DIO address low. More steps can be eliminated by using the DIO data auto-increment register to read or write to contiguous register bytes. The following shows how to use the auto-incrementing function to access the control register. D D D D Write a 0x00 to DIO address high Write a 0x08 to DIO address low to select DIO address 0x08 Read the least-significant byte of the control register by reading DIO data auto-increment or write to the least-significant byte of the control register by writing to DIO data auto-increment. The address in DIO address auto-increments to 0x0009. Read the most-significant byte of the control register by reading DIO data auto-increment, or write to the most-significant byte of the control register by writing to DIO data auto-increment. The auto-incrementing function is useful when reading or writing to a large number of adjacent registers, such as the 48-bit address registers or when reading the statistics block. 48 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION internal registers The internal registers are used to initialize and/or software-reset the TNETX15AE, select the TNETX15AE startup and routing options, check the number of nodes within the TNETX15AE and statistics, enable management-based operations on the lookup table, and interface with the on-chip or external SRAM, the EEPROM, and any MII-managed devices. The internal registers are described in the detailed internal register section of this document. The following sections provide additional information on the use of internal registers to access the SRAM, MII devices, and EEPROM. lookup-table SRAM access BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS RAMsize 0x00 RAMaddr 0x20 RAMdata 0x24 The TNETX15AE SRAM can be accessed with the RAMaddr and RAMdata registers. The algorithm for reading and writing to the RAM is similar to that for reading and writing to the internal registers; the address of the location to access is placed in the RAMaddr register and the data is read from or written to the RAMdata register. This interface also has an auto-increment function, which is selected from the INC bit in the RAMaddr register. The auto-incrementer increments by one when the most-significant byte of the RAMdata register is read or written to. The DIO state machine must request access to SRAM via the SRAM bus scheduler. A write to SRAM is queued when the most-significant byte of the RAMdata register is written. A read of SRAM is queued when either byte of the RAMdata register is read through the DIO port. serial interface – MII-managed devices BYTE 3 BYTE 2 BYTE 1 BYTE 0 SIO DIO ADDRESS 0x08 The TNETX15AE gives the programmer an easy way to implement a software-controlled bit-serial interface. This interface is most appropriate in implementing an MII management serial interface. MII devices, which implement the management interface, consisting of MDIO and MDCLK, are accessed in this way though the SIO register. In addition (for PHYs that support this) the TNETX15AE implements a MII-management signal, MRESET, to hardware-reset MII PHYs. MDIO requires an external pullup for operation. The I/O direction is controlled by the MTXEN bit, and the external terminal state is set from or read in MDATA. The complete serial interface (MDIO, MDCLK, MRESET) can be placed in a high-Z state through the MDIOEN bit in SIO. The TNETX15AE does not implement any timing or data structure on its serial interface. Appropriate timing and frame format must be assured by the management software by setting or clearing bits at the right time and in the right order. Refer to the IEEE Std 802.3u specification and the data sheet for the MII-managed device for the nature and timing of the MII waveforms. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 49 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION x24C02 EEPROM interface BYTE 3 BYTE 2 BYTE 1 SIO BYTE 0 Control DIO ADDRESS 0x08 The flash EEPROM interface is provided so the system-level manufacturers can provide a preconfigured system to their customers. Customers can change or reconfigure the system and retain preferences between system power downs. The flash EEPROM contains configuration and initialization information that is accessed infrequently (typically at power up and reset). The host can write to the EEPROM through this SIO register interface. The TNETX15AE implements a two-wire serial interface, consisting of EDIO and EDCLK that communicates with the EEPROM. Similar to the MII interface, the TNETX15AE does not implement any timing or data structure on its serial interface. Appropriate timing and frame format must be ensured by the management software by setting or clearing bits at the right times. There are no limits to the size or organization of the EEPROM when the host is driving this interface, but these same terminals are used by an internal state machine to load the contents of the EEPROM into internal registers. This state machine expects a 24C02 (as device 0) on the serial bus. Refer to the manufacturer’s data sheet for a description of the EEPROM waveforms. If an EEPROM is not installed, EDIO should be tied low. For EEPROM operation, EDIO and EDCLK require an external pullup (see EEPROM data sheet). The TNETX15AE detects the presence or absence of the EEPROM and indicates this in the NEEPM bit of the control register. initialization The TNETX15AE can be designed for stand-alone use, with no need for a management CPU. It can be reset and initialized with or without a host CPU. This section discusses the steps necessary to bring the TNETX15AE up to an operating level. TNETX3150/TNETX3150A/TNETX3100 initialization If multiple-port EAM codings are used, then TNETX3150/TNETX3150A/TNETX3100 IOBMOD bit in the systcl register must be set to a 1. If reversed (IOBMOD in TNETX3150/TNETX3150A/TNETX3100 systcl register = 0), the ability to send frames to multiple ports, but not all ports, is lost. Multicasts become broadcasts to all ports, regardless of EAM code. Also, the broadcast is not in order with other traffic on each transmit queue. The user also must disable the TNETX3150/TNETX3150A/TNETX3100 internal-address matching when using the TNETX15AE. This is accomplished by writing a 1 to the ADRDIS bit in the port control register of each port. resetting the TNETX15AE hardware reset The TNETX15AE is hardware reset by asserting RESET low. The TNETX15AE comes out of reset when RESET goes high. During a hardware reset, no access to the internal registers is allowed. A read or write stalls, that is, SRDY does not come true until the hardware state machine is done. All access registers and internal registers are initialized to default values. Hardware reset should complete in a few tens of clock cycles. If an EEPROM is detected (after a hardware reset), the TNETX15AE begins the EEPROM auto-loading process. No DIO operations are allowed during auto-loading. 50 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION software reset The TNETX15AE is software reset by setting the RESET bit to a 1 in the control register (0x00,0x09 DIO). The TNETX15AE remains in the reset state until this bit is cleared. All internal registers are initialized to default values during a software reset, except for the control register, which keeps its current value. Reading the internal registers is allowed during a software reset, but the user cannot write to any register (except for the control register). The EEPROM auto-loading process does not start during a software reset. The user must assert the LOAD bit in the control register for auto-loading to start. EEPROM initialization/automatic loading (LOAD) The TNETX15AE automatically loads selected registers from an attached 24C02 EEPROM after a hardware reset or when the LOAD bit in the control register is set. Up to eight 24C02 EEPROMs can be connected across the same serial interface. They are distinguished by separate addresses that are selectable by pulling address terminals up or down on each EEPROM. The TNETX15AE requires the automatic loading information in device number 0x00, starting at location 0x00. The TNETX15AE determines if the EEPROM device is present. Several conditions cause the TNETX15AE to determine that a device is not present. If EDIO is pulled down, the EEPROM is assumed to be not present. If the EEPROM fails to acknowledge (ACK) on data writes, the EEPROM is not present. If the cyclic redundancy check (CRC) in the EEPROM does not match the internally calculated CRC, the EEPROM is assumed to be not present. When no EEPROM is detected, The TNETX15AE sets the NEEPM bit in the control register to a 1, and the TNETX15AE is placed in a reset state (RESET and NEEPM are set in the control register) while the registers assume their default values. The automatic loader reads the register values from the EEPROM and programs the TNETX15AE accordingly. The last register written is the control register. The automatic loader can initialize and start up the TNETX15AE if the START bit in the control register is programmed in the EEPROM. This allows for initialization and startup without a host CPU. During the automatic loading, no DIO operations are permitted. Both reads and writes stall, that is, SRDY does not come true on a pending operation until the EEPROM load cycle is over. The load cycle should take (bits per word access on the EEPROM) × (words read) × 100 kHz, or 27 × 43 × 100 kHz, or 12 ms. To sense the end, wait for a sample register read to complete, or wait 15 ms. If load is followed by start, then the INITD bit in the control register can be used to indicate when all the setup is done. The download bit, LOAD bit, RESET bit, and any other read only or reserved bits cannot be set during automatic loading. The CRC for the EEPROM is calculated using the information written in the EEPROM although information may not be written to the TNETX15AE. For example; a value of 0x8F or 0xFF in the EEPROM for RAMsize is written as 0x0F in the TNETX15AE since bits 7, 6, 5, and 4 are reserved, but the calculated CRC for the EEPROM for each case is different. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 51 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION EEPROM initialization/automatic loading (LOAD) (continued) The last four bytes read by the automatic loader correspond to a 32-bit CRC value for the information stored in the EEPROM. The CRC value is calculated by using the following callable C routine, which assumes that the data to be examined is loaded into an array eeprom_data [ ]: void ifexeeprom (char *cs) { long crc; int k; crc = 0xffffffffl; for (k=0;k<=38;k++) { crcbyt (eeprom_data[k], &crc); } crc ^= 0xffffffffl; eeprom_data[k++]=(int) eeprom_data[k++]=(int) eeprom_data[k++]=(int) eeprom_data[k++]=(int) } ((crc >> 24) & 0x0ffl); ((crc >> 16) & 0x0ffl); ((crc >> 8) & 0x0ffl); ((crc ) & 0x0ffl); crcbyt (dat,crc) int dat; long *crc; { int i; for (i=0;i<8;i++) { crcbit(dat>>7,crc); dat = dat <<1; } } crcbit (dat,crc) int dat; long *crc; { if ( (((*crc>>31) & 11)^((long)dat & 11)) ==1) { *crc ^= 0x02608edbl; *crc = *crc <<1; *crc |= 0x00000001l; } else { *crc = *crc <<1; *crc &= 0xfffffffel; } } In this example, the values for which the CRC is calculated are placed in the eeprom_data[] array from offset 0 to 38 (0x26). The routine crcbyt is called for each byte. The C routine then places the calculated CRC values in the eeprom_data[] array at locations 39 to 42 (0x27 to 0x2A). 52 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION TNETX15AE operational modes The TNETX15AE operational modes are selected through the control register. They are used to control decision points in the logic operations. The modes available through the control register are NAUTO, NCRC, and NLRN0. All three of these modes can be changed after the START bit is set high. NAUTO mode The not automatically add-address (NAUTO) mode is implemented to give the management CPU complete control of the lookup table. It does so by disabling the two automatic processes that can affect the lookup table, wire additions, and aging. NAUTO to 1 disables adding addresses to the TNETX15VE tables learned from packets passing through the TNETX3150/TNETX3150A. All addresses in the TNETX15VE must be added through the DIO interface (see ADD in internal register section). No interrupt is generated on addresses added through the DIO interface. NEW interrupts in this mode signal that the address-checking state machine has seen an address on the wire that is not in the table. NAUTO also affects the AGE logic operation by disabling it. AGE does not delete nodes from the table even if the table is full. It is the management’s responsibility in this mode to maintain the addresses in the lookup table. Table-full conditions are determined through a FULL interrupt, or when a host-initiated ADD stalls. NCRC mode The no-CRC (NCRC) check mode enables the TNETX15AE to add addresses learned from packets before the CRC is checked. It is a performance-boosting feature for the ADD state machine that allows it to perform more ADD logic operations in the same amount of time. This allows the TNETX15AE to add more efficiently and keep the aging time stamp current on nodes that do not talk frequently on the network, avoiding unnecessary aging. The tradeoff in this mode is the possibility that corrupt addresses could be added to the lookup table. This condition should not become critical unless aging is turned off. NRLN0 mode When NRLN0 is set to 1, no new source address from a packet entering the switch on port 0 is added to the table. This feature, combined with unkuniport and unkmultiport registers, allows the TNETX15AE to be at the edge of a large network and only learn direct-attached station addresses, not the whole network above the uplinked port. aging modes (agingtimer register) The TNETX15AE implements an autonomous aging logic operation. There are two modes of aging and these modes are controlled through the agingtimer register. The two modes are time-threshold aging and table-full aging. Time-threshold aging is set by writing a value between 0x0001 and 0xFFFE to this register. In this mode, the register value gives the time in seconds that is used by the AGE logic operation to delete addresses. This provides an aging range of 1 second to 18 hours. Addresses older than this are deleted. Table-full aging is set by writing 0x0000 or 0xFFFF to the register. In this mode, the AGE logic operation ages out addresses only when the table is full and the ADD logic operation needs to add an address. AGE deletes the oldest address in the table. To identify the oldest address, the time stamp stored in each address descriptor is incremented with each address added instead of each second of time. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 53 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION lookup table SRAM initialization (START) The lookup table is automatically initialized by the TNETX15AE, with no need for an external processor. The steps for initializing are: D D D Write to RAMsize the size of the external SRAM. Writing to RAMsize can be performed by a CPU before START is set or via the EEPROM auto-load operation. Assert the START bit in the control register. This is accomplished either by the CPU or EEPROM. The TNETX15AE indicates the completion of the lookup-table initialization by setting the INITD bit in the control register to 1. The TNETX15AE clears the lookup table by writing 0x0000 to all available locations and then initializes the memory data structures. After these operations are done, the TNETX15AE performs lookups, adding, and aging operations as directed by mode bits. frame-forwarding LKUP logic operation The lookup (LKUP) logic operation is designed for two important tasks: 1) perform time-critical lookups of the wire within the TNETX3150/TNETX3150A/TNETX3100’s allotted time, and 2) forward the frame to the right ports. The LKUP logic operation works independently of all other logic operations. To meet the timing requirements, this logic operation occupies the highest priority on the SRAM bus after SRAM is initialized for looking up destination addresses. LKUP performs a lookup on the destination address found from the DRAM interface. If an address is found, the TNETX15AE uses the information contained in the lookup table for routing. If the address is not found, the TNETX15AE floods the frame to the ports indicated in the unkmultiports or unkuniports register. The LKUP logic is also used to check for the presence of the source address in the table. management-based lookups (FIND) The LKUP logic operation also is called when the DIO interface sets the FIND (LKUP) bit in the findcontrol register. The FIND logic operation is designed to give the programmer a simple way to find addresses within the lookup table. FIND is controlled from the following internal registers: BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Findnode23–Findnode16 Findnode31–Findnode24 Findnode39–Findnode32 Findnode47–Findnode40 0x0C Findnode7–Findnode0 Findnode15–Findnode8 0x10 Findport Findcontrol Findnodeage 0x14 The interface provides a 48-bit read or writeable register findnode in which the address is placed; a 16-bit register findport in which routing information is placed; and a 16-bit register findnodeage, which contains the age time stamp of the node being looked up. 54 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION FIND, FINDFIRST, and FINDNEXT commands There are three find commands supported by the TNETX15AE: FINDFIRST, FINDNEXT, and FIND(LKUP). These are used to interrogate the table that the TNETX15AE built as a result of all ADDS. FIND works on all addresses. FIND indicates completion by clearing its command bits. The findcontrol register keeps the code that the user has written until the process is complete. For example, if the user writes a 0x01 to findcontrol (LKUP) then this register reads 0x01 until the FIND logic operation is finished operating. If an address is found as a result of the command just completed, it is indicated by asserting the FOUND bit in findcontrol. The FOUND bit indicates that the information in the findnode, findport, and findnodeage registers is valid. The FIND command finds a specific user-defined address in the lookup table. The procedure for the FIND command is as follows: D D D D Write the 48-bit address query in the findnode register. Set the LKUP bit in the findcontrol register. The TNETX15AE scans the lookup table for that particular address. Poll the findcontrol register until the LKUP bit is cleared. A single read is necessary as the SRDY is delayed until the operation is complete. Read the findcontrol register. If FOUND is set, the address was found and the node’s information is placed in the registers. If FOUND is not set, the address was not found within the lookup table. The FINDFIRST command finds the first address contained in the lookup table. The procedure for the FINDFIRST command is as follows: D D D Set the FIRST bit in the findcontrol register. No write to findnode or findport is required. The TNETX15AE scans the lookup table for the first address. Poll the findcontrol register until the FIRST bit is cleared. A single read is necessary as the SRDY is delayed until the operation is complete (up to 6.4 µs). Read the findcontrol register. If FOUND is set, an address was found and the node’s address and information is placed in the registers. If FOUND is not set, an address was not found, i.e., the lookup table is empty. The FINDNEXT command finds the next address from that contained in the findnode register. The user can either write a value in findnode and find the next address or keep the current value and continue finding next addresses. The procedure for the FINDNEXT command is as follows: D D D D Write the starting address in findnode (if desired) or keep the currently held address. Set the NEXT bit in findcontrol. The TNETX15AE scans the lookup table for the next address after the one contained in findnode. Poll the findcontrol register until the NEXT bit is cleared. A single read is necessary as the SRDY is delayed until the operation is complete (up to 6.4 µs). Read the findcontrol register. If FOUND is set, and the address was found, the node’s address and information is placed in the registers. If FOUND is not set, and an address was not found, the rest of the lookup table is empty. The commands can be combined sequentially to quickly read the whole address table. All that is required is a FINDFIRST, followed by FINDNEXT commands, until no more addresses are found. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 55 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION summary of FIND operations supported Table 8 summarizes the supported FIND operations, the bits used to select the operation, and the code written to the findcontrol register. Table 8. FIND Operations OPERATION BITS USED FINDCONTROL FIND (LKUP) LKUP 0x01 FINDNEXT NEXT 0x02 FINDFIRST FIRST 0x04 adding an address The ADD logic operation is responsible for new address additions to the lookup table, address port changes, modifying the information stored in the lookup table, and keeping the address time stamp current. The TNETX15AE implements a single ADD logic operation and shares it between automatic adds from the wire and host port additions. The TNETX15AE prioritizes wire adds over management adds. It completes an add request before starting another request. The ADD algorithm is summarized as follows: D D D ADD performs a lookup to determine if the address exists in the table. If the address exists, ADD verifies that the port assignment has not changed. If the port assignment changes, ADD updates the port. In all cases, ADD updates the AGE time stamp. If the address does not exist, ADD adds the address to the table with the current time stamp. Currently, adding an address requires available lookup tables. It is possible that during the ADD operation no more lookup tables are available for address additions. A FULL interrupt is issued to the host, and the ADD operation stalls, pending the resolution of the no-space-available situation. In this situation, the following occurs. D D If the NAUTO bit is set to 1 (host-managing table), the host deletes addresses in the table until enough are deleted to make space for the new address. Depending on the shared tables used by the addresses being deleted, and the tables that are shared by the inbound address, it is possible that many addresses may have to be deleted for the new address to fit. When enough space is available, the ADD operation completes. If the NAUTO bit is set to 0 (TNETX15AE managing table), the TNETX15AE deletes as many addresses as necessary to fit the new address into the table by deleting the oldest addresses, using the AGE function. interrupts available to support both wire ADDs and host ADDs The following interrupts are active, regardless of the state of NAUTO, to support monitoring of addresses added to the table (subject to the bandwidth available to look up source addresses): D D D NEW and NEWM interrupts are indicated when a new address is found. CHNG and CHNGM interrupts are indicated when the address is not new but the port assignment is changed. SECVIO and SECVIOM interrupts are indicated when the address is not new, the port assignment is changed, and the address is secured. The following modes indicate control and other options that affect the ADD logic operation. 56 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION NAUTO mode NAUTO mode is selected by asserting the NAUTO bit in the control register. In NAUTO mode, the ADD logic operation does not add addresses off the wire. The only way addresses are added, moved, or edited is through the register interface. The host processor is assumed to have complete control of the contents of the address table. NLRN0 mode The ADD logic operation cannot add addresses learned from port 0 when this bit is set. The bus watcher does not extract these addresses from the DRAM bus. In this mode, the management CPU can add an address for port 0 (the hardware does not). Since the bus watcher does not provide addresses from these ports to ADD in this mode, ADD does not perform any age process on any addresses in the lookup table assigned to port 0 in this mode; nor, are the NEW, CHNG, or SECVIO interrupts active for port 0 in this mode. NCRC mode The NCRC bit controls whether or not the bus watcher waits for a complete valid (CRC checked) frame before the source address is given to ADD. The TNETX15AE performs additions faster in NCRC mode since it does not have to wait for the good CRC indication on the bus. If the TNETX15AE is waiting for a good CRC, after a bad packet on a seldom-used port, no addresses are being added on any port, although, lookup is functioning normally for destination addresses already in the table. If this bit is set, there is a possibility that addresses from bad (bad or missing CRC) frames are added, but the aging process deletes them eventually. management address adding The ADD logic operation also can add addresses to the table through the DIO interface management add/edit address interface registers as shown in the following: BYTE 3 BYTE 0 DIO ADDRESS Adddelcontrol 0x2C Addnode39–Addnode32 Addnode47–Addnode40 0x38 Addnode7–Addnode0 Addnode15–Addnode8 0x3C BYTE 2 Addnode23–Addnode16 Addnode31–Addnode24 Addport BYTE 1 Management ADDs are used to perform the following functions: D D D D The address flags SECURE, LOCKED, and the copy uplink flag, CUPLINK, can be set or cleared through management adds. DIO ADDs are used to change the address port assignment. DIO ADDs also are the only way multicast addresses are added to the lookup table. DIO ADDs also write the current time to the AGE time stamp for the node. Management add commands are given through the ADD bit in the adddelcontrol register. The steps for adding an address are as follows: D D D Write the node’s address in the addnode registers. If it is a unicast address, write the node’s flag information and port assignment in addport. If it is a multicast address, write the forwarding mask. Set the ADD bit in the adddelcontrol register to 1. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 57 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION management address adding (continued) The ADD logic operation locks the addnode, addVLANID, and addport registers to ensure that they do not change during the address ADD. Reads to these registers are still possible, but writes are ignored. The ADD bit in the adddelcontrol register remains a 1 until the ADD is complete. Having a sticky bit (remains a 1) for ADD gives the programmer the opportunity to set up or perform other register operations without having to wait for the ADD completion. A polling method is used to determine if the ADD is finished. adding unicast and multicast addresses There is no significant change in procedure between adding unicast and multicast addresses. There is one difference that the programmer must observe. The TNETX15AE stores different information for multicast addresses than for unicast addresses. Unicast addresses use a 4-bit code for the port number and three flag bits. Multicast addresses store a 15-bit forwarding mask. Both data formats are added through the addport register. The format for this register changes, depending on bit 40 in the addnode register. If set to 1, the addport data is interpreted as multicast (if not, it is interpreted as unicast). deleting an address The TNETX15AE has two ways to delete addresses from the lookup table – the internal aging algorithm and a host request through the DIO interface. The DEL state machine is responsible for deleting addresses from the lookup table. DEL takes its information from the DIO registers for DIO deletes and from the AGE logic operation for aging deletes. The TNETX15AE implements a 16-bit timer, incrementing every second for the aging process. This timer is used to write the time stamp during ADDs and for comparing ages. aging (AGE logic operation) The AGE logic operation is responsible for automatic address deletes. The TNETX15AE implements two styles of aging: time-threshold aging and table-full aging. The aging style is selected through the agingtimer register. A value of 0x0000 or 0xFFFF in the agingtimer register selects table-full aging. Any other value selects time-threshold aging. The AGE logic operation is disabled when the TNETX15AE is placed in NAUTO mode. The aging algorithm works as shown in Figure 16 and is described in the following. Start Find Oldest Wait for Condition Scan Figure 16. Aging Algorithm Block Diagram 58 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 Delete TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION aging (AGE logic operation) (continued) D D The operation AGE scans the table for the oldest address (state = find oldest state). AGE determines the oldest address by finding the address in the lookup table with the lowest time stamp. If more than one address has the same oldest time stamp, AGE picks the first address. The AGE scanning process omits all multicast addresses. This process also omits unicast addresses that have been secured by setting the SECURE flag. These addresses can be deleted only by a DIO-delete command. Once the oldest address is found, AGE keeps this address, enters a waiting state (state = wait for condition), until one of two conditions occurs: 1. If the address table is changed by either the ADD logic operation performing an address addition/time-stamp update or by deleting (DEL) an address, AGE checks the address that ADD or DEL is working on. If ADD has changed the time stamp for the current oldest address, it must scan the whole table for a new oldest address (state = find oldest). If DEL has deleted the current oldest address, it again must rescan the whole table for a new oldest address (state = find oldest). If neither ADD nor DEL touched the current oldest address, it still remains the oldest address and AGE returns to the wait state (state = wait for condition). 2. The aging condition is met. In this case, AGE calls on the DEL logic operation to delete the node from the table. After a successful deletion, AGE rescans the whole table for the next node to age (state = find oldest) and then gives an interrupt to the host to indicate the previous oldest address was deleted from the table. D During the find-oldest process, and if AGE is in a time-threshold age, AGE deletes all addresses that are over the threshold value and reports them via the interrupt. The aging condition is different for time-threshold aging and table-full aging, and both are described in the following paragraphs. time-threshold aging In time-threshold aging, the aging condition occurs when the address age is larger than the time threshold entered in the agingtimer (0x2) registers. The address age is not the time stamp written in the SRAM but the difference between current time and each time stamp. When this value becomes greater than agingtimer value, the address is deleted. Example: Time threshold value Current timer value Address time-stamp value Address aging time = 192d seconds (0x00C0) = 256d seconds (0x0100) = 80d seconds (0x0050) = 256d – 80d = 176d seconds (0x00B0) Conclusion: The address is not aged yet since the address aging time (176d seconds) is less than the time threshold value (192d seconds) by 16d seconds. It takes an additional 16d seconds (0x0010) for the address aging time to equal the time threshold (192d seconds) (0x00C0) and age (delete) the address. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 59 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION table-full aging Table-full aging is implemented for applications that do not want to use aging based on time, but still require aging. As its name implies, aging in this mode only happens when the lookup table is full and needs additional room to add a new address. The ADD logic operation initiates an aging request when it determines that it does not have enough tables to add the address it is working on. The time behaves differently in this mode. In table-full aging, the age timer does not increment every second, but rather when a new address is added. There must be a time difference between addresses to decide which is oldest, but a single count is sufficient. Since ADD time stamps every time it sees an address come through the bus, nodes that are actively transmitting between adds quickly move up to the same (new) age level. Those nodes that do not transmit remain at the lower age stamps. It is these nodes that are deleted in table-full aging when the table is full. DEL logic operation (management address deletions) BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Adddelcontrol 0x2C Delnode23–Delnode16 Delnode31–Delnode24 Delnode39–Delnode32 Delnode47–Delnode40 Delnode7–Delnode0 Delnode15–Delnode8 0x48 0x4C The DEL logic operation is controlled through the delnode and the adddelcontrol register. Management delete commands are given through the DEL bit in the adddelcontrol register. The steps for deleting a particular address (multicast or unicast) are as follows: D D Writing the node address in the delnode register Asserting the DEL bit in adddelcontrol The DEL logic operation locks the delnode on all delete commands to ensure that they do not change during the deletions. Reads to these registers are still possible. The DEL bit in adddelcontrol remains in the 1 state until the deletion is complete. Much like the management adds, having a sticky bit for DEL gives the programmer the opportunity to set up or perform other register operations without having to wait for the delete completion. A polling method is used to find out if the delete is finished. This involves reading adddelcontrol to determine if the command bit used has returned to 0. interrupts The TNETX15AE implements interrupts to ease the management processor’s tasks. The interrupts are used to indicate changes to the lookup table. It indicates that a new address is added, an address changed ports, an address changed ports and is secure, and an address is deleted due to the aging process. The statistic registers are half full (and the possibility for an overflow is present) and the lookup table is full. The TNETX15AE indicates that interrupts to the CPU exist by setting to 1 its level-sensitive EINT terminal. The EINT terminal is asserted when any of the possible interrupt conditions are met and the condition(s) is(are) enabled. The interrupt register is readable at all times and contains all the current TNETX15AE interrupts. The interrupt register is byte clearable. That is, the interrupt bits in a byte are cleared when that byte is read, whether the int is masked or not. 60 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION masking interrupts The TNETX15AE can mask interrupts. This is accomplished by an interrupt masking register (intmask). The int and intmask registers have a one-to-one correspondence. The only way EINT is asserted is if both the corresponding bits in the int and intmask are in a 1 state. The logic for the interrupt masking is shown in Figure 17. Interrupt Register AND Int Register EINT OR Intmask Register AND Interrupt Mask Register Figure 17. Interrupt Masking Logic test interrupts (INT) Test interrupts are generated by asserting the INT bit in the int register. The INT bit in the intmask register also must be set to a 1 state for the interrupt to take effect. The INT bit is used to give the programmer an easy way to test interrupt detection. This bit is the only bit in the int register that is writeable. ADD interrupts (NEW, NEWM, CHNG, CHNGM, SECVIO, SECVIOM, and FULL) The ADD interrupts generate collateral information in the following registers: BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Newnode31–Newnode24 Newnode39–Newnode32 Newnode47–Newnode40 0x30 Newnode7–Newnode0 Newnode15–Newnode8 0x34 BYTE 3 Newnode23–Newnode16 Newport ADD interrupts are sourced by the ADD logic operation based on information from the wire. ADD indicates a new address by a NEW interrupt, an address is on a new port by a CHNG interrupt, and a security violation by a SECVIO interrupt. The FULL interrupt indicates that ADD needed to start AGE (to free up table space) if NAUTO is 0, or the host needs to delete some addresses if NAUTO = 1. The FULL interrupt indicated that table resources are exhausted to the point where (wire or DIO) ADD cannot take place. If NAUTO = 0, AGE will delete oldest entries when another ADD is requested. IF NAUTO = 1, the host must do some deletes before the next DIO ADD can complete. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 61 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PRINCIPLES OF OPERATION ADD interrupts (NEW, NEWM, CHNG, CHNGM, SECVIO, SECVIOM, and FULL) (continued) The add interrupts are indicated in the interrupt register and the information for the particular interrupt is placed in the newnode and newport registers. Since there is only one set of registers that is shared for these interrupts, and to ensure that the information placed in these registers is not corrupted during reads, ADD locks the newnode and newport registers until the most-significant byte of newport is read. Locking these registers means that ADD does not have a place to put information for new events. If additional events are missed, they are indicated in the int register as missed interrupts (NEWM, CHNGM, and SECVIOM). On a NEW interrupt, the newport register contains information about the port for the new address. On a CHNG interrupt, this register identifies the new port address. On a SECVIO interrupt, the address does not move to the port, but the newport register indicates the port to which it tried to move. aging interrupts (AGE, AGEM) When an address is aged out by the internal AGE logic, it generates an interrupt and reports about that address in the following registers: BYTE 3 BYTE 2 BYTE 1 BYTE 0 DIO ADDRESS Agednode23–Agednode16 Agednode31–Agednode24 Agednode39–Agednode32 Agednode47–Agednode40 0x40 Agedport Agednode7–Agednode0 Agednode15–Agednode8 0x44 AGE indicates an interrupt every time that it ages out a node. It places the information on the node (being aged out) on the agednode register, the node’s port on agedport. These registers are locked when a new interrupt is given to protect the information contained. Missed interrupts due to these registers being locked are indicated as an AGEM interrupt. These registers are unlocked when the agedport register is read. statistic interrupt (STAT) The statistic interrupt is given when one of the statistic registers (except for numnodes) becomes one-half full; the most-significant bit becomes a 1. This is an indication to the management CPU that the statistic registers should be read to avoid counter overrun. Reading the most-significant byte of a statistic counter, except for numnodes, clears it. The host should read least-significant byte, then most-significant byte, and be prepared for a carry between byte reads. If a carry took place between byte needs, the statistic count will appear to have jumped by 255 instead of one count. 62 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 IEEE Std 1149.1 test-access port (JTAG) The test-access port consists of five terminals that are used to interface serially with the TNETX15AE package for boundary-scan testing. The TNETX15AE is fully JTAG compliant, with the exception of requiring external pullup resistors on the following terminals: TDI, TMS, and TRST. The following instructions, with their 4-bit opcodes, are supported by JTAG. INSTRUCTION TYPE NAME JTAG OPCODE Mandatory EXTEST 0000 Mandatory SAMPLE/PRELOAD 0001 Private ATPG 0010 Private SELFEXERCISE 0011 Optional IDCODE 0100 Optional HIGH Z 0101 Private IDDQ 1100 Mandatory BYPASS 1111 The IDCODE for the TNETX15AE is: VARIANT PART NUMBER MANUFACTURER LSB Bit number 31–28 27–12 11–1 0 Binary code 0000b 1011 0001 1010 1110b 000 0001 0111b 1b POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 63 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 absolute maximum ratings over operating case temperature range (unless otherwise noted)† Supply voltage range, VCC (see Notes 2 and 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –0.5 V to 3.6 V Supply voltage range, VCC(5V) (see Notes 2 and 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –0.5 V to 5.5 V Input voltage range, VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –0.5 V to VCC(5 V) + 0.5 V Output voltage range, VO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –0.5 V to VCC Thermal impedance, junction-to-ambient package, airflow = 0, ZθJA . . . . . . . . . . . . . . . . . . . . . . . . . 47.5°C/W Thermal impedance, junction-to-ambient package, airflow = 100 ft/min, ZθJA . . . . . . . . . . . . . . . . . 38.2°C/W Thermal impedance, junction-to-case package, ZθJC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9°C/W Operating case temperature range, TC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0°C to 95°C Storage temperature range, Tstg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . –65°C to 150°C † Stresses beyond those listed under “absolute maximum ratings” can cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated under “recommended operating conditions” is not implied. Exposure to absolute-maximum-rated conditions for extended periods can affect device reliability. NOTES: 2. All voltage values are with respect to GND. 3. Turning power supplies on and off (cycling sequence) within a mixed 5-V/3.3-V system is an important consideration. The designer must observe a few rules to avoid damaging the TNETX15AE. Check with the manufacturers of all components used in the 3.3-V to 5-V interface to ensure that no unique device characteristics exist that would lead to rules more restrictive than the TNETX15AE requires. The optimum solution to power-supply sequencing in a mixed-voltage system is to ramp up the 3.3-V supply first. A power-on reset component operating from this supply forces all 5-V tolerant outputs into the high-impedance state. Then, the 5-V supply is ramped up. On power down, the 5-V rail deenergizes first, followed by the 3.3-V rail. The second-best solution is to ramp both the 3.3-V and 5-V rails at the same time, making sure that no more than 3.6 V exists between these two rails during the ramp up or down. If the 3.3 V is derived from the 5 V, then the 3.3 V rises as the 5 V rises so that the 5-V rail never exceeds the 3.3-V rail by more than 3.6 V. Both the optimum and second-choice algorithms for power up prevent any device damage. If it is impractical to implement ramping, follow these rules: • When turning on the power supply, all 3.3-V and 5-V supplies should start ramping from 0 V and reach 95 percent of their end-point values within 25 ms. All bus contention between the device and external devices is eliminated by the end of 25 ms. • When turning off the power supply, 3.5-V and 5-V supplies should start ramping from steady-state values and reach 5 percent of these values within 25 ms. All bus contention between the device and external devices is eliminated by the end of 25 ms. There is a 250-second lifetime maximum at greater than 3.6 V between the supply rails. Holding this period to 25 ms per power-on/off cycle should not significantly contribute to shifts in mean time between failures (MTBF) during product lifetimes. recommended operating conditions MIN NOM MAX UNIT VCC VCC(5V) Supply voltage 3 3.3 3.6 V Supply voltage 4.5 5 5.5 V VIH High-level input voltage 2 VCC(5V) V VIL IOH Low-level input voltage (see Note 4) 0 0.8 V –4 mA High-level output current IOL Low-level output current 4 mA NOTE 4: The algebraic convention, where the more-negative (less-positive) limit is designated as a minimum, is used for logic-voltage levels only. 64 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 electrical characteristics over recommended operating conditions (unless otherwise noted) PARAMETER VOH VOL TEST CONDITIONS High-level output voltage IOH = rated IOL = rated Low-level output voltage IOZ High impedance state output current High-impedance-state IIH IIL High-level input current ICC ICC(5V) Supply current, 3.3 V MIN TYP MAX V 0.4 VO = VCC VO = 0 20 –20 VI = VI(MAX) VI = GND Low-level input current UNIT VCC–0.6 Supply current, 5 V V µA –20 µA 20 µA 75 mA 2 mA timing requirements over recommended operating conditions (see Figure 18) external SRAM read cycle NO. 1 MIN Cycle time, read 2 tc(R) tsu(ED) 3 th(ED) Hold time, ED15–ED0 valid after OSCIN↑ MAX 40 Setup time, ED15–ED0 valid before OSCIN↑ UNIT ns 10 ns 2 ns operating characteristics over recommended operating conditions (see Figure 18) external SRAM read cycle NO. 4 PARAMETER Delay time, from OSCIN↑ to EA20–EA0 valid 5 td(EA)1 td(EOE)1 6 td(EOE)2 Delay time, from OSCIN↑ to EOE↑ 7 td(EA)2 Delay time, from EOE↑ to EA20–EA0 valid 4+2 MIN MAX 2 17 ns 13 ns 12 ns Delay time, from OSCIN↓ to EOE↓ td(EA)1 + tsu(ED) 2 –2 UNIT ns 24 Delay time, total for same device ns 1 OSCIN (Input) ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ 4 EA20–EA0 (Output) 4 Valid Valid EWE (Output) 5 6 7 EOE (Output) 2 3 Z ED15–ED0 (Input) Z Valid Figure 18. External SRAM Read Cycle POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 65 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 timing requirements (see Figure 19) external SRAM write cycle NO. 1 MIN tc(W) MAX Cycle time, write 40 UNIT ns operating characteristics over recommended operating conditions(see Figure 19) external SRAM write cycle NO. PARAMETER MIN MAX td(EA)1 td(EWE)1 Delay time, from OSCIN↑ to EA20–EA0 valid 2 17 ns 12 ns td(ED)1 td(EWE)2 Delay time, from OSCIN↓ to ED15–ED0 valid 17 ns 5 Delay time, from OSCIN↑ to EWE↑ 2 12 ns 6 td(ED)2 Delay time, from EWE↑ to ED15–ED0 invalid 0 ns 7 td(EA)2 td(ED)3 Delay time, from EWE↑ to EA20–EA0 invalid 0 ns 2 3 4 8 Delay time, from OSCIN↓ to EWE↓ Delay time, from OSCIN↑ to ED15–ED0 invalid 17 1 OSCIN (Input) ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ 2 EA20–EA0 (Output) 2 Valid 3 Valid 5 EWE (Output) 7 EOE (Output) ED15–ED0 (Output) ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ 6 4 Z Z Valid 8 Figure 19. External SRAM Write Cycle 66 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 UNIT ns TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 operating characteristics over recommended operating conditions (see Note 5 and Figure 20) EAM routing code NO. 1 2 PARAMETER td(EAM)1 td(EAM)2 MIN Delay time, from EAM15–EAM0 valid to EAM15–EAM0 invalid MAX UNIT 100 ns Delay time, from OSCIN↑ to EAM15–EAM0 valid 17 ns NOTE 5: The TNETX3150/TNETX3150A/TNETX3100 latches the EAM data (at certain edges) on frames that write the first 64 bytes of frame data to the DRAM. The edges where EAM is valid are shown in Figure 20. At other times, the value in EAM is not valid and is ignored by the TNETX3150/TNETX3150A/TNETX3100. The TNETX15AE outputs the EAM data on the rising edge of OSCIN before the TNETX3150/TNETX3150A/TNETX3100 latches the data and holds the data until the end of the transfer burst. This ensures adequate setup and hold times for TNETX3150/TNETX3150A/TNETX3100s EAM input. The particular frame, where the EAM code is valid, is identified by the start-of-frame (SOF) indicator in the frames flag fields and by the DWE strobe being low. The EAM code is not valid on DRAM reads [DWE = (1)] on refresh cycles or on IOB buffer writes and reads. TNETX3150/TNETX3150A/TNETX3100 Latches the EAM Code Here 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 OSCIN (Input) DWE (Input) DRAS (Input) DCAS (Input) ÎÎ ÎÎ DA7–DA0 DX2–DX0 DD31–DD0 (Input) Row Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col Col ÎÎÎ ÎÎÎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 FPTR Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data Data DD35–DD32 (Input) ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ 2 EAM15– EAM0 (Output) Forward Pointer Access High Nibble of Start Flag (SOF) EOF EAM Code Valid 1 440 ns Figure 20. EAM Bus Timing POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 67 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 timing requirements (see Note 6 and Figure 21) DRAM interface† NO. 1 2 3 4 5 6 7 MIN MAX UNIT tsu(DD) tsu(DWE) Setup time, DD35–DD0 valid before OSCIN↑ 3 ns Setup time, from DWE↓ to OSCIN↑ 4 ns tsu(DRAS) tsu(DCAS) Setup time, from DRAS↓ to OSCIN↑ 4 ns Setup time, from DCAS↓ to OSCIN↑ 5 ns th(DD) th(DWE) Hold time, DD35–DD0 valid after OSCIN↑ 3 ns Hold time, DWE low after OSCIN↑ 3 ns th(DRAS) th(DCAS) Hold time, DRAS low after OSCIN↑ 3 ns 8 Hold time, DCAS low after OSCIN↑ 3 ns † DD35–DD0 data is available for two cycles NOTE 6: The TNETX15AE listens on the DRAM interface to extract frame information. The TNETX15AE extracts information on only the write cycles. The TNETX15AE does not output any signals to the DRAM interface. The only parameters that apply to the TNETX15AE on this interface are delay times, with respect to OSCIN, that translate into the TNETX15AE setup times. TNETX15AE Latches Here OSCIN (Input) 6 2 DWE (Input) 7 3 DRAS (Input) 8 4 DCAS (Input) 1 DD35–DD0 (Input) Z 5 Data Figure 21. DRAM Interface Timing 68 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 Z TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 timing requirements (see Note 7 and Figure 21) DIO read cycle NO. 1 2 MIN tw(ESCSL) tsu(SRNW) Pulse duration, ESCS low Setup time, SRNW high before ESCS↓ MAX UNIT 40 ns 3 ns 3 tsu(SAD) Setup time, SAD1–SAD0 valid before ESCS↓ 3 ns NOTE 7: The DIO interface is a byte-wide, asynchronous interface that is designed for use with a wide variety of CPUs. The interface can be run at any speed; there is no minimum speed requirement. DIO cycle lengths can vary, depending on the type of register accessed. The TNETX15AE withholds the SRDY acknowledge signal on registers until it has gathered the necessary data. operating characteristics over recommended operating conditions (see Note 7 and Figure 22) DIO read cycle NO. 4† 5 6 7 8 9 10† 11† PARAMETER MIN MAX 25 UNIT tw(SRDYH) td(SRNW) Pulse duration, SRDY high ns Delay time, from SRDY↓ to SRNW↓ 0 ns td(SAD) td(SDATA)1 Delay time, from SRDY↓ to SAD1–SAD0 invalid 0 ns Delay time, from SRDY↓ to SDATA7–SDATA0 valid 5 ns td(ESCS) td(SDATA)2 Delay time, from SRDY↓ to ESCS↑ 0 td(SRDY)1 td(SRDY)2 Delay time, from ESCS↓ to SRDY↓ Delay time, from ESCS↑ to SRDY↑ ns Delay time, from ESCS↑ to SDATA7–SDATA0 high-impedance Z 17 ns 40 ‡ ns 0 25 ns † These parameters are specified by design, but not tested. ‡ Max = min + N (internal cycles), where N equals the number of internal cycles required to arbitrate internally to obtain the value being requested. N is equal to a minimum of 1, and can be large during RAM INIT and FINDNEXT operation, since DIO operations will not complete during these operations ( no SRDY true), and both of these operations can read every SRAM location to finish. NOTE 7: The DIO interface is a byte-wide, asynchronous interface that is designed for use with a wide variety of CPUs. The interface can be run at any speed; there is no minimum speed requirement. DIO cycle lengths can vary, depending on the type of register accessed. The TNETX15AE withholds the SRDY acknowledge signal on DIO accesses until it has gathered the necessary data. 9 1 ESCS (Input) 11 2 5 SRNW (Input) ÎÎÎÎÎÎ ÎÎÎÎÎÎ SAD1–SAD0 (Input) 3 6 Host Address 7 ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ Z SDATA7–SDATA0 (Output) Data 10 Z 4 8 SRDY (Output) Z Z Figure 22. DIO Read Cycle POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 69 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 timing requirements (see Note 7 and Figure 23) DIO write cycle NO. 1 2 3 4 MIN tw(ESCSL) tsu(SRNW) Pulse duration, ESCS low tsu(SAD) tsu(SDATA) MAX UNIT 40 ns Setup time, SRNW low before ESCS↓ 3 ns Setup time, SAD1–SAD0 valid before ESCS↓ 3 ns Setup time, SDATA7–SDATA0 valid before ESCS↓ 3 ns NOTE 7: The DIO interface is a byte-wide, asynchronous interface that is designed for use with a wide variety of CPUs. The interface can be run at any speed; there is no minimum speed requirement. DIO cycle lengths can vary, depending on the type of register accessed. The TNETX15AE withholds the SRDY acknowledge signal on registers until it has gathered the necessary data. operating characteristics over recommended operating conditions (see Note 7 and Figure 23) DIO write cycle NO. 5† PARAMETER MIN MAX tw(SRDYH) td(SRNW) Pulse duration, SRDY high Delay time, from SRDY↓ to SRNW↑ 0 ns Delay time, from SRDY↓ to SAD1–SAD0 invalid 0 ns 8 td(SAD) td(SDATA) Delay time, from SRDY↓ to SDATA7–SDATA0 high-impedance Z 0 ns 9 10† td(ESCS) td(SRDY)1 Delay time, from SRDY↓ to ESCS↑ 0 ns Delay time, from ESCS↓ to SRDY↓ 40 6 7 25 UNIT ‡ ns ns 11† td(SRDY)2 Delay time, from ESCS↑ to SRDY↑ 0 25 ns † These parameters are specified by design, but not tested. ‡ Max = min + N (internal cycles), where N equals the number of internal cycles required to arbitrate internally to obtain the value being requested. N is equal to a minimum of 1, and can be large during RAM INIT and FINDNEXT operation, since DIO operations will not complete during these operations ( no SRDY true), and both of these operations can read every SRAM location to finish. NOTE 7: The DIO interface is a byte-wide, asynchronous interface that is designed for use with a wide variety of CPUs. The interface can be run at any speed; there is no minimum speed requirement. DIO cycle lengths can vary, depending on the type of register accessed. The TNETX15AE withholds the SRDY acknowledge signal on registers until it has gathered the necessary data. 1 ESCS (Input) 2 ÎÎÎÎÎ 7 3 SAD1–SAD0 (Input) Host Address 4 SDATA7–SDATA0 (Input) Z ÎÎÎÎÎÎÎÎÎÎÎ 8 Z Data 10 SRDY (Output) Z 9 5 Z Figure 23. DIO Write Cycle 70 11 6 SRNW (Input) POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 timing requirements over recommended operating conditions OSCIN clock MIN tc(OSCIN)† tw(OSCINH) Cycle time, OSCIN Pulse duration, OSCIN high tw(OSCINL) Pulse duration, OSCIN low Frequency drift† NOM MAX UNIT 20 ns 8 10 ns 8 10 ns ±50 ppm † TNETX15AE is designed to use the OSCIN input from the companion TNETX3150/TNETX3150A/TNETX3100 to be able to snoop on the TNETX3150/TNETX3150A/TNETX3100-DRAM bus. The accuracy and drift are constrained by TNETX3150/TNETX3150A/TNETX3100 use of OSCIN for Ethernet state machines. timing requirements over recommended operating conditions (see Figure 24) power-on reset NO. MIN td(OSCIN) td(RESET) Delay time, from VCC↑ to RESET↑ 25 2 Delay time, from OSCIN↑ to RESET↑ 25 3 td(AUTO) Delay time, from RESET↑ to EEPROM autoload over 1 Signals‡ MAX UNIT ms ms 50 ms Valid 3 VCC(5V) (Input) VCC (Input) 1 OSCIN (Input) ÎÎÎÎ ÎÎÎÎ Normal Operation 2 RESET (Input) ‡ A pullup or active logic is required for each input to have known logic levels at all times, especially during reset when an I/O output is disabled. Figure 24. Power-On Reset Timing POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 71 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 timing requirements over recommended operating conditions (see Figure 25) RESET (software) timing NO. 1 MIN MAX UNIT µs Pulse duration, RESET low 2 tw(RESET) tsu(RESET) 3 Setup time, RESET low before OSCIN↑ 10 ns 3 th(RESET) Hold time, RESET low after OSCIN↑ 12 ns Signals† VCC(5V) (Input) VCC (Input) Normal Operation OSCIN (Input) RESET (Input) ÎÎÎÎ ÎÎÎÎ 2 3 1 † A pullup or active logic is required for each input to have known logic levels at all times, especially during reset when an I/O output is disabled. Figure 25. RESET (Software) Timing 72 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 operating characteristics over recommended operating conditions (see Note 8 and Figure 26) EEPROM and MDIO (MII) interfaces When the host is driving the EEPROM interface through the SIO register (0x0A), the output terminals are copies of register bits synchronized by OSCIN rising, and the input register bits are copies of the device terminals synchronized by OSCIN rising. This adds a maximum of 20 ns of delay in each direction, which is negligible in terms of the maximum signal change rate allowed for the EEPROMs (approximately 100 kHz), or the MDIO (MII management). The timing for these interfaces is set at the rate that register bits are set in software. For detailed descriptions of the EEPROM requirements, refer to the data sheet for the part in question. For detailed descriptions of the MII management interface, refer to IEEE Std 802.3. When the TNETX15VE is driving the EEPROM during the automatic register load cycle, the timing on the EEPROM is as shown in Figure 26. EEPROM interface timing (TNETX15AE to EEPROM transfer) (see Note 8) PARAMETER† NO. 1 2 3 4 5 6 7 8 9 MIN MAX 98 UNIT fclock tw(ECLKL)1 Clock frequency, ECLK kHz Pulse duration, ECLK low during start/stop 10.24 µs tw(ECLKH)1 tw(ECLKH)2 Pulse duration, ECLK high during start/stop 10.2 µs Pulse duration, ECLK high during data 5.1 µs tw(ECLKL)2 td(EDIO)1 Pulse duration, ECLK low during data 5.12 µs Delay time, from ECLK↑ to EDIO↓, start condition 5.1 µs td(ECLK)1 td(EDIO)2 Delay time, from EDIO↓ to ECLK↓, start condition 5.1 µs Delay time, from ECLK↓ to EDIO↑, data condition 0 µs td(ECLK)2 td(EDIO)3 Delay time, from EDIO↑ to ECLK↑, data condition 5.1 µs Delay time, from OSCIN to EDIO 18 ns td(ECLK)3 Delay time, from OSCIN to ECLK † These parameters are specified by design, but not tested. NOTE 8: The timing for the EEPROM interface occurs with the ETEST bit set to 0. 18 ns 10 5 6 EDIO (Output) 7 8 Valid 1 2 3 4 ECLK (Output) Figure 26. EEPROM Interface Timing POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 73 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 PARAMETER MEASUREMENT INFORMATION Outputs are driven to a minimum high-logic level of 2.4 V and to a maximum low-logic level of 0.6 V. These levels are compatible with TTL devices. Output transition times are specified as follows: all transition times are measured at the point where the output signal crosses 1.3 V. The rise and fall times are not specified but are assumed to be those of standard TTL devices, which are typically 1.5 ns. 1.3 V test measurement The test-load circuit shown in Figure 27 represents the programmable load of the tester pin electronics that is used to verify timing parameters of the TNETX15VE output signals. IOL Test Point Output Under Test VLOAD CL IOH OUTPUT TEST LOAD Where: IOH = refer to IOH in recommended operating conditions IOL = refer to IOL in recommended operating conditions VLOAD = 1.5 V, typical CL = 25 pF, typical load-circuit capacitance Figure 27. Test and Load Circuit 74 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 APPLICATION INFORMATION TNETX15AE/TNETX3150/TNETX3150A stand-alone applications unmanaged switch The simplest application for the TNETX15AE device is shown in Figure 28. This is an unmanaged multiport switch. The TNETX15AE is responsible for matching addresses, learning addresses, and for eliminating (aging out) old addresses. The TNETX15AE also provides options to the manufacturer through its EEPROM. The manufacturer could program this EEPROM through a parallel-port interface to the TNETX15AE. Options that can be set are SRAM size, the aging time, and where unknown unicast and multicast frames go. This is the lowest-cost solution for an unmanaged multinode-per-port switch. This is the architecture of the TI evaluation module (EVM). Parallel Port DIO PHY SRAM TNETX15AE TNETX3150/ TNETX3150A PHY Multiports PHY EEPROM EEPROM OSC Figure 28. Lowest Cost Unmanaged Multiport Switch managed switch The microprocessor (CPU) interfaces to the TNETX3150/TNETX3150A/TNETX3100 through a common DIO interface. The microprocessor also can manage any PHY through an IEEE Std 802.3u MII interface using the SIO register in the TNETX15AE. The microprocessor’s tasks are minimized mainly because the CPU does not have to participate in frame matching. The microprocessor is used to set TNETX15AE/TNETX3150/TNETX3150A modes, secure addresses so that the node does not move ports (useful for routers, attached switches, and servers), and respond to control MIB requests. The TNETX15AE is designed for easy management of the lookup table. Address-table lookups, adds, edits, and deletes are performed easily through the TNETX15AE registers. Interrupt support in the TNETX15AE also simplifies the management tasks. The TNETX15AE can give an interrupt to the CPU when the lookup table changes due to a wire event. This minimizes code, as the CPU does not have to actively poll a large address table for changes. In-band signaling (see Figure 29) must be done with a MAC device connected to one of the switch ports. There is no access to the data stream via the DIO port on the TNETX3150/TNETX3150A/TNETX3100 or the TNETX15AE. Both devices affect the ability of a port to receive or forward packets; the packet itself is received and transmitted via a regular switch port. POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 75 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 APPLICATION INFORMATION TNETX15AE/TNETX3150/TNETX3150A stand-alone applications (continued) CPU Manager MAC DIO SRAM TNETX3150 TNETX3150A TNETX15AE PHY Multiports PHY EEPROM EEPROM OSC MII Figure 29. In-Band Managed Multiport Switch With access to a port, the CPU can receive frames destined to other nodes. By tagging the CUPLNK bit for that particular address in the address table, the CUPLNK bit copies all frames destined for that address to the ports specified in UPLINKport. By setting UPLINKport to direct these frames to the management CPU, it can receive frames of interest. 76 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 TNETX15AE ADDRESS-LOOKUP DEVICE SPWS041A – AUGUST 1997 – REVISED OCTOBER 1997 MECHANICAL DATA PGE (S-PQFP-G144) PLASTIC QUAD FLATPACK 108 73 109 72 0,27 0,17 0,08 M 0,50 144 0,13 NOM 37 1 36 Gage Plane 17,50 TYP 20,20 SQ 19,80 22,20 SQ 21,80 0,25 0,05 MIN 0°– 7° 0,75 0,45 1,45 1,35 Seating Plane 0,08 1,60 MAX 4040147 / C 11/96 NOTES: A. All linear dimensions are in millimeters. B. This drawing is subject to change without notice. C. Falls within JEDEC MS-026 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 77 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product or service without notice, and advise customers to obtain the latest version of relevant information to verify, before placing orders, that information being relied on is current and complete. All products are sold subject to the terms and conditions of sale supplied at the time of order acknowledgement, including those pertaining to warranty, patent infringement, and limitation of liability. TI warrants performance of its semiconductor products to the specifications applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality control techniques are utilized to the extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements. CERTAIN APPLICATIONS USING SEMICONDUCTOR PRODUCTS MAY INVOLVE POTENTIAL RISKS OF DEATH, PERSONAL INJURY, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE (“CRITICAL APPLICATIONS”). TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, AUTHORIZED, OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS. INCLUSION OF TI PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO BE FULLY AT THE CUSTOMER’S RISK. In order to minimize risks associated with the customer’s applications, adequate design and operating safeguards must be provided by the customer to minimize inherent or procedural hazards. TI assumes no liability for applications assistance or customer product design. TI does not warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other intellectual property right of TI covering or relating to any combination, machine, or process in which such semiconductor products or services might be or are used. TI’s publication of information regarding any third party’s products or services does not constitute TI’s approval, warranty or endorsement thereof. Copyright 1998, Texas Instruments Incorporated