- 28 Nov, 2009 1 commit
-
-
Jeffrey Lee authored
Detail: DMA.s, in DMAForceActivate: Support for the NoInitIRQ flag for interrupt-driven buffer-type channels (API 1+) DMA.s, 'testloop': Fix handling of interrupt-driven buffer-type channels so DMAManager doesn't immediately crash or malfunction DMA.s, 'overrun', 'earlyoverrun', 'nooverrun': Fix handling of interrupt-driven buffer-type channels so IRQ state is cleared before the next stage of the transfer is programmed (to avoid missing IRQs) DMA.s, 'finished': Fix handling of interrupt-driven buffer-type channels so R8 is loaded with the logical channel block ptr, as expected by subsequent function calls. Front.s: Make dmaq_Trampoline larger to allow it to contain the HAL device ptr GetAll.s: Add Hdr:HALEntries to GET list, as required by 'ClaimVectors' fix in ModHead.s ModHead.s: Update controller handling code to cope with API versions 0.1 (TestIRQ2) & 1 ('Deallocate' passed channel device ptr) ModHead.s: Fix 'ClaimVectors' to call HAL_IRQEnable to enable IRQs for the detected channels/controllers. ModHead.s: Fix IRQ handler trampolines so that they call HALDevice_TestIRQ on the channel instead of branching to a random address in memory SWI.s: Support for controller API 1 (pass channel device ptr to 'Deallocate' in R2) hdr/DMADevice: Extra flags & entries for new DMA controller & buffer API versions Admin: Tested on rev C2 beagleboard with the incoming HAL DMA driver. API revisions are documented in more detail on the ROOL wiki. Version 0.18. Tagged as 'DMA-0_18'
-
- 11 Jun, 2009 1 commit
-
-
Ben Avison authored
Detail: Uses suffixed file extensions for compatiblity with both objasm and asasm. Admin: Supplied by Peter Naulls, tested at ROOL Version 0.17. Not tagged
-
- 07 Feb, 2003 1 commit
-
-
Ben Avison authored
Detail: * Service_PagesSafe handler would abort if the restarting transfer had more than one entry in its scatter list * Logical channels remained linked into the chain during mass deregistration in module finalisation, allowing new transfers to be queued * Logical channel (RMA) block wasn't freed in DMA_DeregisterChannel Admin: Tested on Tungsten with UDMA ADFS, pscramble and the Task Manager. Version 0.17. Not tagged
-
- 04 Feb, 2003 1 commit
-
-
Ben Avison authored
No longer complains if last scatter list entry isn't a multiple of the transfer unit size, as long as we're using a unit-multiple subpart of the entry. Needed by ADFS. Version 0.17. Not tagged
-
- 30 Jan, 2003 1 commit
-
-
Ben Avison authored
Detail: Features: * Supports physical channels using a new type of HAL device (&303) where the hardware takes a pointer to a scatter list up front to effect the entire transfer, and which may report hardware errors at any time. For full details, see Doc.HAL_DMAAPI. * Page tables are no longer generated when using a bounce-buffer, since they aren't actually any use except in determining if unsafe pages intersect with the transfer. Instead, bounce-buffer transfers are halted whenever any page becomes unsafe, and no new bounce-buffer transfers can be started while any pages are unsafe. * For both bounce-buffer and list-type devices, the Activate entry is now called after the transfer is programmed (with SetCurrentTransfer or SetListTransfer), since this is likely to be more useful for these types of devices. Note that for interrupt-driven buffer devices, it is still assumed that the default state of the device is to be in an underrun interrupt state, so the transfer is not programmed until the first time the interrupt routine is entered. * Now ensures that scatter list start addresses and lengths are all multiples of the transfer unit size (this check is done during page table construction, so will be returned via the Completed callback, rather than directly from DMA_QueueTransfer like the total length check). * When there is no interrupt associated with a physical channel (both for buffer- or list-type devices), if the polling of the hardware within SWI DMA_ExamineTransfer detects that the transfer has completed, then the transfer is shut down in the same was as though an interrupt had happened (ie the Completed callback is called without an error). * Added SWI DMA_AllocateLogicalChannels to act as a centralised allocator for session-unique logical DMA channels. Primarily a service to third-party authors of "HAL" devices. Bugfixes: * Now handles Service_MessageFileClosed to allow safe MessageTrans lookups in the background. * If a controller device was removed before its constituent channel devices, removing the channel device would abort. * Interrupt trampoline construction was wrong, the address of the interrupt handler code wasn't relocated. Also, non-vectored interrupts weren't correctly handled. * Transfers suspended by Service_PagesUnsafe weren't blocking the logical channel, so you could queue another transfer on the same channel and it would start immediately (although transfers already queued before the service call wouldn't have been started). * Transfers which had completed within Service_PagesUnsafe handler weren't being delinked from the queue. * Service_PagesSafe wasn't handled properly, meaning that none of the transfers that were halted by Service_PagesUnsafe were restarted! This was due to the use of routines in common with DMA_SuspendTransfer and DMA_ResumeTransfer which started with the first HALised version - these suspend a logical channel, unlike the original IOMD code which effectively suspends a physical channel. Thus the code to search for transfers to restart needs to be quite different, since the physical channel may be idle, or occupied with another logical channel, and each physical channel may have multiple associated logical channels that were on unsafe transfers! * When you deregistered a logical channel (including during module death) the Completed callback was called for all queued transfers, incorrectly including those that had not yet had the matching Start callback called. * There was a stack imbalance in the buffer device interrupt handler because the retained part of the old code assumed Hdr:Proc stack management, which the new code doesn't use (it's entered with the return address on the stack). Admin: Tested with UDMA test harnesses on Tungsten (ADFS not yet complete). Version 0.17. Tagged as 'DMA-0_17'
-
- 13 Dec, 2002 1 commit
-
-
Ben Avison authored
Version 0.16. Tagged as 'DMA-0_16'
-
- 11 Apr, 2001 1 commit
-
-
Ben Avison authored
Detail: Also * added Ursula service call table (not even the Phoebe version had one!) * fixed a bug: the Service_PagesUnsafe handler was returning with IRQs still disabled Admin: Not tested. Version 0.15. Tagged as 'DMA-0_15'
-
- 16 Mar, 2001 1 commit
-
-
Stewart Brodie authored
Updated to build using objasm instead of aasm. Sources changed to be objasm-compatible. Admin: Requires Library 0.71 or later. Requires BuildSys 3.06 or later. Requires Env 0.65 or later. Version 0.14. Tagged as 'DMA-0_14'
-
- 12 Nov, 1999 2 commits
-
-
David Cotton authored
Detail: A change in Version 0.52 of HdrSrc meant that this component would not build. This has now been fixed. Makefile now uses strdepend in the clean phase to remove all the dynamic dependencies. Placed under srccommit control. Admin: Built. Version 0.13. Tagged as 'DMA-0_13'
-
David Cotton authored
-
- 21 Jan, 1997 1 commit
-
-
Neil Turton authored
-
- 21 Nov, 1996 1 commit
-
-
Neil Turton authored
-
- 06 Nov, 1996 2 commits
-
-
Neil Turton authored
-
Neil Turton authored
-
- 05 Nov, 1996 1 commit
-
-
Neil Turton authored
-