LAN9118 Family Programmer Reference Guide
SMSC AN 12.12 31 Revision 1.0 (12-14-09)
APPLICATION NOTE
Keep in mind that this example is running in a Little Endian environment. To begin the transfer
sequence, write the two command words as DWORDs, followed by the packet data. Since the transfer
is aligned on 4-byte boundaries, the data transfer start address must begin from 0xb4002010 and
continue up to and including 0xb4002060. Table6.5, "Single Buffer Single Packet Data Transfer
Sequence" shows the sequence of data transferred from Tabl e 6.2 : Transmit Packet Example’s
memory into the TX_DATA_FIFO. To read the Table6.5, start from the upper left portion, and fol lowing
the Host Source Address (light grey) headings down, then zigzag back up and down through the
middle, and then the right-hand columns, so that the transfer appears thus:
The second example will demonstrate how to chain transfers together into a single packet. We will
re-use the sample packet shown in Tabl e 6. 2 , and instead of a single transfer, we will make 3 separate
transfers; 29 bytes to start, then 32 bytes, then the remaining 17 bytes. Visually the chained transfer
appears like this:
Table6.4 Transmit Command Words
TX_CMD_B
Packet Tag 15 14 13 12 11 Packet Length
0x1234 0x4e
Table6.5 Single Buffer Single Packet Data Transfer Sequence
HOST
SOURCE
ADDRESS
TX_DATA_FIFO
DATA
TRANSFER 1
HOST
SOURCE
ADDRESS
TX_DATA_FIFO
TRANSFER
CONT.
HOST
SOURCE
ADDRESS
TX_DATA_FIFO
TRANSFER
CONT.
TX_CMD_A 0x0003304e 0xb4002028 0xf0068000 0xb4002048 0x726f6600
TX_CMD_B 0x1234004e 0xb400202c 0x5081aa6a 0xb400204c 0x43534d53
0xb4002010 0x00XXXXXX 0xb4002030 0x5381aa76 0xb4002050 0x44202e4d
0xb4002014 0xdea0830e 0xb4002034 0x01e70496 0xb4002054 0x64697662
0xb4002018 0x0f8000ff 0xb4002038 0x384aa9bd 0xb4002058 0x4c654720
0xb400201c 0x08715571 0xb400203c 0x7cd60a0d 0xb400205c 0x6e616d62
0xb4002020 0x00004500 0xb4002040 0xff10506c 0xb4002060 0xYYYYYY21
0xb4002024 0x40561128 0xb4002044 0x0029f9ff