Changes between Version 72 and Version 73 of library_stdio


Ignore:
Timestamp:
Apr 12, 2015, 2:32:52 PM (9 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • library_stdio

    v72 v73  
    5050
    5151The '''vci_mwmr_dma''' component implements two transfer modes that can be configured by the user application through dedicate system calls.
    52 The user application must use the ''giet_coproc_alloc()'' system call to get a private hardware coprocessor. Then it must use the ''giet_coproc_channel_init() system call to configure the TO_COPROC/FROM_COPROC channels.
    53  * In '''MODE_MWMR''', each channel FSM  implements the 7 steps MWMR protocol. It is activated by writing a non-zero value in the CHANNEL_RUNNING register, and transfer an "infinite" data stream, between one coprocessor port and a MWMR software FIFO in memory. There is no transfer completion signaling, as the synchronisation is done through the MWMR FIFOs. The MWR IRQ is only asserted if a VCI error is reported in memory access.
    54  * In '''MODE_DMA_IRQ''' or '''MODE_DMA_NO_IRQ''', each channel FSM transfers a single buffer between one 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()'' system call is not blocking, and the user task must use the ''giet_coproc_completed()'' system call to detect transfer completion (by polling the coprocessor registers).
     52The user application must use the ''giet_coproc_alloc()'' system call to get a private hardware coprocessor. Then it must use the ''giet_coproc_channel_init()'' system call to configure the TO_COPROC/FROM_COPROC channels.
     53The coprocessor and the communication channels are activated / deactivated by the ''get_coproc_run()'' system call.
     54 * In '''MODE_MWMR''', each channel FSM  implements the 7 steps MWMR protocol, and transfer an "infinite" data stream, between one coprocessor port and a MWMR software FIFO in memory. The There is no transfer completion signaling, as the synchronisation is done through the MWMR FIFOs. The MWR IRQ is only asserted if a VCI error is reported in memory access.
     55 * In '''MODE_DMA_IRQ''' or '''MODE_DMA_NO_IRQ''', each channel FSM transfers a single buffer between one coprocessor port and the memory. When transfer is completed, the channel FSM keep blocked until it is re-activated. In '''MODE_DMA_IRQ''', the calling task is descheduled, after coprocessor activation, in the ''giet_coproc_run()'' 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()'' system call is not blocking, and the user task must use the ''giet_coproc_completed()'' system call to detect transfer completion (by polling the coprocessor registers).
    5556
    5657'''WARNING''': For a given coprocessor, all channels must be running in the same mode. If this is not the case, the result is unpredictable.
     
    101102This function exit when at least one channel status register indicates a  bus error (illegal memory access).
    102103
    103  === 5) void '''giet_coproc_stop'''( unsigned int index ) ===
    104 This function desactivates all communication channels and the allocated coprocessor itself.
    105 * '''index''' : coprocessor register index to be written for desactivation.
    106 
    107  === 6) void '''giet_coproc_release'''( unsigned int index ) ===
     104 === 5) void '''giet_coproc_release'''( unsigned int index ) ===
    108105 This function releases the coprocessor allocated to the calling task, after desactivation.
    109106 * '''index''' : coprocessor register index to be written for desactivation.