53 | | * In '''MODE_DMA_IRQ''' or '''MODE_DMA_NO_IRQ, each channel FSM transfer a single buffer between the coprocessor port and the memory. It is activated by writing a non-zero value in the CHANNEL_RUNNING register. When transfer is completed, the channel FSM keep blocked until a zero value is written in the CHANNEL_RUNNING register. In MODE_DMA_IRQ, the calling task is descheduled after coprocessor activation in the ''giet_coproc_start()'' system call. The transfer completion is signaled by the WMR IRQ that updates the ''_coproc_done'' / ''_coproc_status'' variables, deactivate the coprocessor, and resume the calling task. In '''MODE_DMA_NO_IRQ''', the ''giet_coproc_start()'' is not blocking, and the user task must use the ''giet_coproc_completed()'' system call to detect transfer completion (by polling the coprocessor registers). |
54 | | |
55 | | '''WARNING''' : For all channels, the memory buffer address and size must be multiple of the hardware burst size. |
56 | | |
57 | | '''WARNING''': If all channels are not running in the same mode, the result is unpredictable. |
| 53 | * In '''MODE_DMA_IRQ''' or '''MODE_DMA_NO_IRQ''', each channel FSM transfers a single buffer between the coprocessor port and the memory. It is activated by writing a non-zero value in the CHANNEL_RUNNING register. When transfer is completed, the channel FSM keep blocked until a zero value is written in the CHANNEL_RUNNING register. In MODE_DMA_IRQ, the calling task is descheduled after coprocessor activation in the ''giet_coproc_start()'' system call. The transfer completion is signaled by the MWR IRQ that updates the ''_coproc_done'' / ''_coproc_status'' variables, deactivates the coprocessor, and resumes the calling task. In '''MODE_DMA_NO_IRQ''', the ''giet_coproc_start()'' is not blocking, and the user task must use the ''giet_coproc_completed()'' system call to detect transfer completion (by polling the coprocessor registers). |
| 54 | |
| 55 | '''WARNING''': For a given coprocessor, all channels must be running in the same mode. If this is not the case, the result is unpredictable. |
| 56 | |
| 57 | '''WARNING''' : For all channels, the memory buffer base address and size must be multiple of the hardware burst size. |