- 16 Jan, 2015 1 commit
-
-
Jeffrey Lee authored
Detail: s/ModHead - Escape some dollars contained in strings to avoid warnings from objasm Admin: Resulting binary unchanged Version 0.21. Retagged as 'DMA-0_21'
-
- 18 Oct, 2014 1 commit
-
-
Jeffrey Lee authored
Detail: s/DMA - Fixed sync callback logic of list-type channels to match that used by buffer-type channels. Old logic would result in too many sync callbacks being made at the start of a transfer, followed by dmar_Gap becoming negative and (potentially) no sync callbacks being made for the remainder of the transfer. s/Front, s/ModHead, s/SWI - Make SWI handler refuse to service any SWI following Service_PreReset. This helps avoid bad things happening should a client try to access DMA channels/transfers after we've reset everything during PreReset (although really it's our own fault for not telling the clients about the controller reset) Resources/UK/Messages, s/Errors - Define the error that we return when called following Service_PreReset. Admin: Tested on Raspberry Pi Version 0.21. Tagged as 'DMA-0_21'
-
- 27 Jan, 2013 1 commit
-
-
Robert Sprowson authored
Confusing wording with double negatives reworded to read more easily. Retagged as DMA-0_20.
-
- 20 Jan, 2013 1 commit
-
-
Robert Sprowson authored
ModHead.s: Allow list type channels to specify NoInitIRQ. Respect the flag when deciding whether or not to unmask the IRQ at the HAL level DMA.s: Use the cached device flags rather than incurring a function call, refactor the call to DMASetListTransfer to use the CallHAL macro SWI.s: The transfer unit size check was against the wrong register hdr/DMADevice: Comment updated to reflect wider flag use Tested with IOMD HAL, no longer aborts on module init because the channel interrupt fires before any lists have been prepared (it does have an initial IRQ), with various transfer sizes. Version 0.20. Tagged as 'DMA-0_20'
-
- 07 Jul, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: s/DMA - In DMActivate, the DMASetOptionsFlag_Circular flag was being set to the inverse of the required value. s/DMA - Fixed stack imbalance in DMAInterruptList; the 'finished' routines which are shared with DMAInterruptCommon expect r12 to be on the stack, but DMAInterruptList was failing to place it there. Admin: Tested in BCM2835 ROM Version 0.19. Tagged as 'DMA-0_19'
-
- 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
-