summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/imx233/dma-imx233.h
AgeCommit message (Collapse)AuthorFilesLines
2016-05-28imx233: generate register headers using headergen_v2 and update code for itAmaury Pouly1-3/+3
NOTE: this commit does not introduce any change, ideally even the binary should be almost the same. I checked the disassembly by hand and there are only a few differences here and there, mostly the compiler decides to compile very close expressions slightly differently. I tried to run the new code on several targets to make sure and saw no difference. The major syntax changes of the new headers are as follows: - BF_{WR,SET,CLR} are now superpowerful and allows to set several fileds at once: BF_WR(reg, field1(value1), field2(value2), ...) - BF_CS (use like BF_WR) does a write to reg_CLR and then reg_SET instead of RMW - there is no more need for macros like BF_{WR_,SET,CLR}_V, since one can simply BF_WR with field_V(name) - the old BF_SETV macro has no trivial equivalent and is replaced with its its equivalent for BF_WR(reg_SET, ...) I also rename the register headers: "regs/regs-x.h" -> "regs/x.h" to avoid the redundant "regs". Final note: the registers were generated using the following command: ./headergen_v2 -g imx -o ../../firmware/target/arm/imx233/regs/ desc/regs-stmp3{600,700,780}.xml Change-Id: I7485e8b4315a0929a8edb63e7fa1edcaa54b1edc
2014-02-10Fix typoAmaury Pouly1-2/+2
Change-Id: Ib9d569886abf66a23f6569b6b44acf155a65009d
2013-08-21imx233: increase max dma transfer sizeAmaury Pouly1-1/+1
The old max dma transfer size was set to 2^15 because allowing values up to 2^16 would result in overflow of the transfer count in many places. This was a problem with the old register headers because the macros didn't make sure the result is contained in the bitmask of the field. The new macro do so 2^16 will actually end up being 0 which means 2^16 for the hardware. This is kind of hacky but it works and I prefer that this stays a power of two because setting it to 2^16-1 would be extremely weird. Change-Id: I9ce5661c477a79ab52efd5c573948e2353117804
2013-06-17imx233: fix dma for stmp3600 and stmp3700, improve supportAmaury Pouly1-0/+8
Add finer granularity to start command: now commands can be prepared, schedule and semaphore increased independently. Change-Id: Ib1ed1f20f4b46dc61b6dbab6ddec8b54e3d832b9
2013-06-16imx233: rewrite dma using new register headersAmaury Pouly1-115/+59
Change-Id: If73b84d9c9f4a152a54fb9d2dbec895e72d2e753
2013-01-26imx233: add a missing packed attribute for dma !!Amaury Pouly1-1/+1
Change-Id: Iada56b34d0517851859e60f064a2e9032c2f0fe2
2012-12-29Fix copyright headersAmaury Pouly1-4/+1
Change-Id: Ie65920b1192e9b737fcc2554d280fbcedfa39800
2012-08-18imx233: small dma changes, update debug screenAmaury Pouly1-4/+8
Reduce DMA maximum transfer size since transfering 64Kb requires to set a size of 0 and it's not worth adding checks everywhere to handle this special case. Also add statistics about unaligned transfer (wrt to cache). Update debug screen accordingly and simplify it so it can fit smaller screens too. Change-Id: I18391702f5e100a21f6f8d1ebab28d9f2bd8c66f
2012-05-20imx233: make sure dma descriptors are cache friendlyAmaury Pouly1-0/+4
Because DMA descriptors needs to be committed and discarded from the cache, if they are not cache aligned and/or if their size is not a multiple of cache ligne, nasty side effects could occur with adjacents data. The same applies to DMA buffers which are still potentially broken. Add a macro to ensure that these constraints will not break by error in the future. Change-Id: I1dd69a5a9c29796c156d953eaa57c0d281e79846
2012-05-19imx233: add dma channel definesAmaury Pouly1-0/+2
Change-Id: I462cfa338ded85aca4bb00ec91f144bb17136dbe
2011-10-18imx233/fuze+: allow dma info retrieval; wait for end of channel reset before ↵Amaury Pouly1-0/+39
returning; fix typo git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30795 a1c6a512-1295-4272-9138-f99709370657
2011-09-13imx233/fuze+: reset dma block correctly and define maximum transfer sizeAmaury Pouly1-0/+3
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30526 a1c6a512-1295-4272-9138-f99709370657
2011-07-23imx233/fuze+: huge reworkAmaury Pouly1-5/+10
- enable MMU -rework lcd frame buffer - add rtc/adc/power stubs (or not) - fix a few MMC related defines (hopefully) - implement cache handling for DMA - more SD work - add keymap (based on clip) - add virtual buttons - update linker scripts - big step toward apps actually compiling git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30200 a1c6a512-1295-4272-9138-f99709370657
2011-07-03imx233/fuze+: replace software i2c by hardware i2c, make some code more ↵Amaury Pouly1-0/+2
correct, reduce code size of lcd init sequences git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30120 a1c6a512-1295-4272-9138-f99709370657
2011-06-17fuze+: add more clocking code, add dma code, add ssp code, add stub usb ↵Amaury Pouly1-0/+161
code, update storage to SD + MMC, beginning of the driver git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30010 a1c6a512-1295-4272-9138-f99709370657