English
Language : 

82598EB Datasheet, PDF (287/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - IODATA (I/O Offset 0x04, RW)
The IODATA register can be written as a byte, word, or Dword access when the register contains a value
for Flash (such as 0x80000-0xFFFFF). In this case, the IODATA value must be properly aligned to the
data value. Additionally, the lower 2 bits of the IODATA PCI-X access must correspond to the byte,
word, or Dword access. The following table lists the supported configurations.
Table 4-2. Supported IODATA Configurations
Access Type
IOADDR Register Bits
[1:0]
Target IODATA Access BE[3:0]# bits in Data
Phase
BYTE (8 bit)
00b
1110b
01b
1101b
10b
1011b
11b
0111b
WORD (16 bit)
00b
1100b
10b
0011b
DWORD (32 bit)
00b
0000b
Software might have to implement non-obvious code to access the Flash at a byte or word at a time.
Example code that reads a Flash byte is shown:
char *IOADDR;
char *IODATA;
IOADDR = IOBASE + 0;
IODATA = IOBASE + 4;
*(IOADDR) = Flash_Byte_Address;
Read_Data = *(IODATA + (Flash_Byte_Address % 4));
Reads to IODATA of any size return a Dword; however, the chipset or CPU might only return a subset of
that Dword.
For software programmers, the IN and OUT instructions must be used to cause I/O cycles to be used on
the PCIe bus. Where 32-bit quantities are required on writes, the source register of OUT must be EAX
(the only 32-bit register supported).
Writes and reads to IODATA when the IOADDR register value is in an undefined range (0x20000-
0x7FFFC) should not be performed. Results cannot be determined.
Note:
There are no special software timing requirements for accesses to IOADDR or IODATA. All
accesses are immediate except when data is not readily available or acceptable. In this case,
the 82598 delays results through normal bus methods (such as split transaction or
transaction retry).
Because a register/memory/Flash read or write takes two I/O cycles, software must
guarantee that the two I/O cycles occur as an atomic operation. Otherwise, results can be
non-deterministic from a software viewpoint.
287