Changes between Version 76 and Version 77 of library_stdio


Ignore:
Timestamp:
Apr 12, 2015, 7:00:51 PM (9 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • library_stdio

    v76 v77  
    5151The '''vci_mwmr_dma''' component implements two transfer modes that can be configured by the user application through dedicate system calls.
    5252The 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 The coprocessor and the communication channels are activated 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.
    56    - 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_status'' / ''_coproc_channel'' variables, deactivates the coprocessor, and resumes the calling task.
    57    - In '''MODE_DMA_NO_IRQ''', the ''giet_coproc_run()'' system call returns after coprocessor activation. The user task must use the blocking ''giet_coproc_completed()'' system call that detect transfer completion by polling the coprocessor registers, and deactivates the coprocessor before returning.
    58 
    59 '''WARNING''': For a given coprocessor, all channels must be running in the same mode. If this is not the case, the result is unpredictable.
     53The coprocessor and the communication channels are activated by the ''giet_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 ''giet_coproc_run()'' system call is non blocking, as the synchronisation is done through the MWMR FIFOs (no transfer completion event). 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, and keep blocked when the transfer is completed. In both DMA modes, the user application must use the ''giet_coproc_completed()'' system call to detect global completion and report the possible addressing errors.
     56   - In '''MODE_DMA_IRQ''', the calling task is descheduled, after coprocessor activation, in the ''giet_coproc_run()'' system call. It is rescheduled by the MWR IRQ signaling the global completion.
     57   - In '''MODE_DMA_NO_IRQ''', the ''giet_coproc_run()'' system call returns after coprocessor activation, and the ''giet_coproc_completed()'' system call uses a polling to detect  completion and report errors.
     58
     59'''WARNING''': For a given coprocessor, all channels must be running in the same mode.
    6060
    6161'''WARNING''' : For all channels, the memory buffer base address and size  must be multiple of the hardware burst size.