TM1100 Preliminary Data Book
Philips Semiconductors
10-14
PRELIMINARY INFORMATION
File: pci.fm5, modified 7/23/99
1. Wait until BIU_STATUS io_cycle.Busy and
cong_cycle.Busy are both de-asserted
2. Write IO address to IO_ADR, and (in case of a write
operation) writedata to IO_DATA.
3. Write to IO_CTL to start the read or write.This action
sets io_cycle.Busy.
4. Wait (polling or interrupt based) until io_cycle.Done is
asserted by the hardware.
5. Retrieve the requested data in IO_DATA (in case of a
read)
6. Clear io_cycle.Done by writing a ‘1’ to it.
Following are descriptions of the fields of IO_CTL and a
discussion of how a DSPCPU write to IO_CTL triggers I/
O cycles.
BE (Byte Enables). The BE field (the four least-signifi-
cant bits of IO_CTL) determines the state of PCI’s four-
line c/be# bus during the data phase of an I/O cycle.
Since the c/be# bus signals are active low, a zero in a BE
field bit means “byte participates;” a one in a BE field bit
the correspondence between BE bits and bytes on the
PCI bus
assuming little-endian byte order.
RW (Read/Write). The RW field (bit 4 of IO_CTL) deter-
mines whether the I/O cycle will be a read or a write.
write,
1
read).
A write by the DSPCPU to the IO_CTL register starts an
I/O cycle on the PCI bus. The IO_DATA (for a write) and
IO_ADR registers must be set up before writing to
IO_CTL.
During an I/O read, the PCI interface drives the PCI bus
with the address from IO_ADR and the BE field from
IO_CTL. The returned data is buffered in IO_DATA.
When the data is returned, the PCI interface will gener-
ate a DSPCPU interrupt if the appropriate IntE bit is set
in BIU_CTL. Alternatively, DSPCPU software can poll
the appropriate “done” status bin in BIU_STATUS. Final-
ly, DSPCPU software reads the IO_DATA register in
MMIO space to access the data returned from the I/O cy-
cle.
A write operation proceeds as for a read, except that PCI
data is driven from IO_DATA during the transaction and
no data is returned in IO_DATA.
10.7.14 SRC_ADR Register
The 32-bit SRC_ADR register is used to set the source
address for a block transfer DMA operation. The address
in SRC_ADR must be word (4 byte) aligned, i.e. the 2
LSB’s have to be zero. The content of this register during
or after DMA is not defined, hence it can not be used to
track progress or verify completion of a DMA transaction.
10.7.15 DEST_ADR Register
The 32-bit DEST_ADR register is used to set the desti-
nation address for a block transfer DMA operation. The
address is DEST_ADR must be word (4 byte) aligned,
i.e. the 2 LSB’s have to be zero. The content of this reg-
ister during or after DMA is not defined, hence it can not
be used to track progress or verify completion of a DMA
transaction.
10.7.16 DMA_CTL Register
A write by the DSPCPU to the DMA_CTL register starts
a DMA block transfer on the PCI bus. The SRC_ADR
and DEST_ADR registers must be set up before writing
to DMA_CTL.
The steps involved in a DMA transfer are:
1. Wait until BIU_STATUS dma_cycle.Busy is de-assert-
ed
2. Write to SRC_ADR and DEST_ADR as described
above.
3. Write to DMA_CTL to start the dma transaction.This
action sets dma_cycle.Busy.
4. Wait (polling or interrupt based) until dma_cycle.Done
is asserted by the hardware.
5. Clear dma_cycle.Done by writing a ‘1’ to it.
The fields of DMA_CTL are described below.
TL (Transfer Length). The TL field (bits 0..25 of
DMA_CTL) specifies the number of data bytes to be
transferred during the DMA operation. It must be a mul-
tiple of 4 bytes. The maximum length of a DMA operation
is limited to 64M, the maximum amount of SDRAM sup-
ported by TM1100. The content of this field during or af-
ter a DMA transaction is not defined.
D (DMA Direction). The D field (bit 26 of DMA_CTL) de-
termines the direction of data movement during the block
transfer.
Table 10-17 (shows the interpretation of the D
field.
T (DMA Transaction Type). The T field (bit 27 of
DMA_CTL) determines the transaction type of a write, as
described below.
TM1100 generates memory write-and-invalidate PCI
transactions if all conditions below are satisfied, other-
wise it generates regular memory write transactions:
The MWI bit in the Command Register is set.
The Cache Line Size register is set to 4,8 or 16 32-bit
words.
The DMA source address is 64 byte aligned.
Table 10-17. D Interpretation
D
Data Movement Direction
0
SDRAM
→ PCI memory space (DMA write)
1
PCI memory space
→ SDRAM (DMA read)
Table 10-18. T interpretation
T
DMA Write transaction type
0
memory write
1
memory write-and-invalidate