English
Language : 

82801FB Datasheet, PDF (125/786 Pages) Intel Corporation – Intel I/O Controller Hub 6 (ICH6) Family
Functional Description
5.7.2
5.7.3
Abandoning DMA Requests
DMA Requests can be de-asserted in two fashions: on error conditions by sending an LDRQ#
message with the ‘ACT’ bit set to 0, or normally through a SYNC field during the DMA transfer.
This section describes boundary conditions where the DMA request needs to be removed prior to a
data transfer.
There may be some special cases where the peripheral desires to abandon a DMA transfer. The
most likely case of this occurring is due to a floppy disk controller which has overrun or underrun
its FIFO, or software stopping a device prematurely.
In these cases, the peripheral wishes to stop further DMA activity. It may do so by sending an
LDRQ# message with the ACT bit as 0. However, since the DMA request was seen by the ICH6,
there is no guarantee that the cycle has not been granted and will shortly run on LPC. Therefore,
peripherals must take into account that a DMA cycle may still occur. The peripheral can choose not
to respond to this cycle, in which case the host will abort it, or it can choose to complete the cycle
normally with any random data.
This method of DMA de-assertion should be prevented whenever possible, to limit boundary
conditions both on the ICH6 and the peripheral.
General Flow of DMA Transfers
Arbitration for DMA channels is performed through the 8237 within the host. Once the host has
won arbitration on behalf of a DMA channel assigned to LPC, it asserts LFRAME# on the LPC I/F
and begins the DMA transfer. The general flow for a basic DMA transfer is as follows:
1. ICH6 starts transfer by asserting 0000b on LAD[3:0] with LFRAME# asserted.
2. ICH6 asserts ‘cycle type’ of DMA, direction based on DMA transfer direction.
3. ICH6 asserts channel number and, if applicable, terminal count.
4. ICH6 indicates the size of the transfer: 8 or 16 bits.
5. If a DMA read…
— The ICH6 drives the first 8 bits of data and turns the bus around.
— The peripheral acknowledges the data with a valid SYNC.
— If a 16-bit transfer, the process is repeated for the next 8 bits.
6. If a DMA write…
— The ICH6 turns the bus around and waits for data.
— The peripheral indicates data ready through SYNC and transfers the first byte.
— If a 16-bit transfer, the peripheral indicates data ready and transfers the next byte.
7. The peripheral turns around the bus.
Intel® I/O Controller Hub 6 (ICH6) Family Datasheet
125