|
82801CA Datasheet, PDF (201/521 Pages) Intel Corporation – I/O Controller Hub 3-S (ICH3-S) | |||
|
◁ |
Functional Description
Table 5-85. Process Call Protocol with PEC
Bit
1
2â8
9
10
11â18
19
20â27
28
29â36
37
38
39â45
46
47
48â55
56
57â64
65
66â73
74
75
Description
Start
Slave Addressâ7 bits
Write
Acknowledge from Slave
Command codeâ8 bits
Acknowledge from slave
Data byte Lowâ8 bits
Acknowledge from slave
Data Byte Highâ8 bits
Acknowledge from slave
Repeated Start
Slave Addressâ7 bits
Read
Acknowledge from slave
Data Byte Low from slaveâ8 bits
Acknowledge
Data Byte High from slaveâ8 bits
Acknowledge
PEC from slave
NOT acknowledge
Stop
Block Read/Write
The Block Write begins with a slave address and a write condition. After the command code, the
ICH3 issues a byte count which describes how many more bytes will follow in the message. If a
slave had 20 bytes to send, the first byte would be the number 20 (14h), followed by the 20 bytes of
data. The byte count may not be 0.
Note that, unlike the PIIX4, which implements 32-byte buffer for Block Read/Write command, the
ICH3 implements the block data byte register (D31:F3, I/O offset 07h) for Block Read/Write
command.
When programmed for a Block Write command, the Transmit Slave Address, Host Command, and
Data 0 (count) Registers are sent. Data is then sent from the block data byte register. After the byte
has been sent, the ICH3 will set the BYTE_DONE_STS bit in the Host Status Register. If there are
more bytes to send, the software will write the next byte to the block data byte register and will also
clear the BYTE_DONE_STS bit. The ICH3 will then send the next byte. When doing a block
write, first poll the BYTE_DONE_STS Register until it is set, then write the next byte, then clear
the BYTE_DONE_STS Register.
On block read commands, after the byte count is stored in the Data 0 Register, the first data byte
goes in the block data byte register; the ICH3 will then set the BYTE_DONE_STS bit and generate
an SMI# or interrupt. The SMI# or interrupt handler will read the byte and then clear the
BYTE_DONE_STS bit to allow the next byte to be read into the block data byte register. Note that
Intel® 82801CA ICH3-S Datasheet
201
|
▷ |