Chapter 9: DMA Controller
TX7901 User’s Manual (Rev. 6.30T – Nov, 2001)
9-6
9.1.6 Chain
Mode
In the Chain mode, the DMA Descriptor list located in the local main memory contains all the
necessary information for each DMA transfer. Each Descriptor consists of a Source
Address, Destination Address, Byte Count, and Next Record Pointer. The Descriptor must
be aligned to a 16-byte boundary. All four words in the Descriptor are required and must be
kept in the right order. The Descriptor is only located in the local main memory.
A Descriptor list must be constructed before the chained DMA is started. The Next Record
Pointer of the first Descriptor points to the address of the second Descriptor and so on until
the last Descriptor, in which the Next Record Pointer points to NULL. A Descriptor list is
shown in Figure 9-6.
After creating the Descriptor list, the CPU must set the corresponding channel’s Next
Record Pointer in the DMAC with the address of the first Descriptor. Then, the CPU sets up
the corresponding fields in the channel control register. Chained DMAs only work with the
Block Transfer mode. Finally, the CPU can start the DMA by setting the EN and STRT bits in
the Control Register. The last step can be at the same time as setting up the other fields of
the Control Register.
When a Chained DMA is started, the DMAC first fetched the Descriptor from local main
memory and writes into the corresponding control registers in the DMAC. Then, the DMAC
tries to fetch the data from the source memory pointed to by the source address register and
puts it into the destination memory pointed to by the destination address register. After
completion of the data transfer, the DMAC fetches the subsequent Descriptor if the Next
Record Pointer does not contain the NULL value. The DMAC will repeat the operation until
the Next Record Pointer contains the NULL value. A Completion interrupt will then be issued
at that time.
9.1.7
Appending to The End of a Chain
It is possible for the application software to append a chain Descriptor when a DMA channel
is active. The software first has to construct a new Descriptor in the local main memory.
Then, it changes the Next Record Pointer of the current last Descriptor in the Descriptor list
to point to the next Descriptor. After that, the software has to check the ACT bit of the
Channel Status Register. If it is reset (not active), the software can set the Next Record
Pointer and enable the DMA. If this bit is set (Active) and the Next Record Pointer is NULL,
the software has to wait for the completion interrupt signals and then set the Next Record
Pointer and enable the DMA.
9.1.8 Bus
Error
When a bus error occurs on the C790 bus or the G-Bus, the DMAC will record the bus error
and generate an interrupt. It then tries to finish the pending DMA read/write cycles and abort
any further cycles. After this is done, the DMAC waits for the interrupt routine to service the
bus error condition.
Summary of Contents for TMPR7901
Page 1: ...TX System RISC TX79 Family TMPR7901 Symmetric 2 way superscalar 64 bit CPU ...
Page 14: ...Handling Precautions ...
Page 15: ......
Page 17: ...1 Using Toshiba Semiconductors Safely 1 2 ...
Page 41: ...4 Precautions and Usage Considerations 4 2 ...
Page 42: ...TX7901 User s Manual Rev 6 30T November 2001 DOCUMENT NUMBER M 99 00004 07 ...
Page 43: ......
Page 259: ...Chapter 13 Removed TX7901 User s Manual Rev 6 30T Nov 2001 13 1 13 Removed ...
Page 260: ...Chapter 13 Removed TX7901 User s Manual Rev 6 30T Nov 2001 13 2 ...