summaryrefslogtreecommitdiff
path: root/firmware/target/arm/system-arm.h (follow)
Commit message (Collapse)AuthorAge
* Add CPU mode asserts to kernel on blocking functions.Michael Sevakis2017-01-21
| | | | | | | | | This scourge finds it's way back in far too often. Right now, only defined for ARM. Have fun! Change-Id: Ib21be09ebf71dec10dc652a7a664779251f49644
* Create fimrware/asm directory for assembly optimized stuff.Thomas Martitz2012-01-22
| | | | | | | | | | | | | | | | This dir is suitable for stuff that doesn't fit the target tree, e.g. because it also builds on hosted or otherwise. It also has a generic subfolder for fallback C implementations so that not all archs need to provide asm files. SOURCES should only contain "foo.c" where foo.c includes the specific <arch>/foo.c files from the subdirs using the preprocessor. This way automatic selection of asm versions or generic C verion is possible. For the start, the thread support files are moved, since ASM threads can be used on hosted platforms as well. Since core_sleep() remains platform specific it's moved to the corresponding system.h headers. Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9
* AS3525v1/2: Enable nested handling of interruptsMichael Sevakis2012-01-08
| | | | | | | | | | | | | | | | | | | | Mostly for the sake of reducing latency for audio servicing where other service routines can take a long time to complete, leading to occasional drops of a few samples, especially in recording, where they are fairly frequent. One mystery that remains is GPIOA IRQ being interrupted causes strange undefined instruction exceptions, most easily produced on my Fuze V2 with a scrollwheel. Making GPIOA the top ISR for now, thus not interruptible, cures it. SVC mode is used during the actual calls. Hopefully the SVC stack size is sufficient. Prologue and epilogue code only uses the IRQ stack and is large enough. Any routine code that should not be interrupted should disable IRQ itself from here on in. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31642 a1c6a512-1295-4272-9138-f99709370657
* Merge functionality of wakeups and semaphores-- fewer APIs and object types. ↵Michael Sevakis2011-03-02
| | | | | | semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
* Byteswap routines don't really need 'asm volatile', just 'asm' since it ↵Michael Sevakis2011-02-25
| | | | | | should be safe to move them for optimizing. Clean up the line endings for ARM. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29394 a1c6a512-1295-4272-9138-f99709370657
* Use thumb-compatible byte swap routines when building with -mthumb.Michael Sevakis2011-02-24
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29391 a1c6a512-1295-4272-9138-f99709370657
* Use __builtin_constant_p() to select the best byteswapping method: constant ↵Michael Sevakis2011-01-30
| | | | | | or target optimized. Same macro can then be used for constant values and inits as well as non-constant. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29171 a1c6a512-1295-4272-9138-f99709370657
* Change "r" back to "i" (i is for immediate, so no syntax error) and reclaim ↵Thomas Martitz2009-11-15
| | | | | | a bit binsize. Live with that those function don't build with -O0 since they rely on inlining. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23641 a1c6a512-1295-4272-9138-f99709370657
* Fix a few possible problems discovered in -O0 / eabi experiments.Thomas Martitz2009-11-15
| | | | | | | - two essential parts of Sansa AMS drivers are optimzed away in newer gcc, so mark them volatile. - use "r" instead of "i" (which is apparently invalid syntax) for the input list in some inline assembly git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23634 a1c6a512-1295-4272-9138-f99709370657
* ARMv6: Optimize interrupt enable/disable with cpsie and cpsid. Section off ↵Michael Sevakis2009-02-02
| | | | | | system-arm.h by ARM_ARCH rather than checking within each implementation. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19905 a1c6a512-1295-4272-9138-f99709370657
* Include divide-by-zero handling within plugins and codecs for ARM processors.Michael Sevakis2009-01-24
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19834 a1c6a512-1295-4272-9138-f99709370657
* Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg2008-06-28
| | | | | | | | | later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
* Optimized byte-swapping macros for ARMv6.Michael Sevakis2008-04-16
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17148 a1c6a512-1295-4272-9138-f99709370657
* Wow. Fix those irq #defines for ARM and use the right one in ↵Michael Sevakis2008-04-07
| | | | | | power-c200_e200.c. How'd that happen? git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17010 a1c6a512-1295-4272-9138-f99709370657
* Do core interrupt masking in a less general fashion and save some ↵Michael Sevakis2008-03-26
| | | | | | instructions to decrease size and speed things up a little bit. Small fix to a few places where interrupts would get enabled again where they shouldn't have been (context switching calls when disabled). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16811 a1c6a512-1295-4272-9138-f99709370657
* Unify PCM interface just above the hardware driver level for all targets ↵Michael Sevakis2007-10-06
| | | | | | including the sims. Perform lockout of audio callback when changing states. Weird new playback or recording trouble? Check before and after this revision first though things seem quite sound. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15006 a1c6a512-1295-4272-9138-f99709370657
* Hopefully fix all the errors/warningsJonathan Gordon2007-09-20
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14764 a1c6a512-1295-4272-9138-f99709370657
* Beginning of an M:Robe 500i port. Currently only in the bootloader stage. ↵Karl Kurbjun2007-09-20
| | | | | | Needs another piece of code to start the boot process - will be in the wiki. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14763 a1c6a512-1295-4272-9138-f99709370657
* Clean up PP502x CPU clock setup code and use the full 80MHz when boosted.Jens Arnold2007-07-26
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14004 a1c6a512-1295-4272-9138-f99709370657
* Gigabeat: Add timer functionality. Rework tick timer setup to be exactly ↵Michael Sevakis2007-07-06
| | | | | | 100Hz. Metronome should work now but some pcm changes are needed to have faster tocks work correctly (in the works). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13806 a1c6a512-1295-4272-9138-f99709370657
* More PP502x clock setup rework. This should fix the freezes on PP5020 once ↵Jens Arnold2007-07-03
| | | | | | and for all. Enabled clock scaling for H10. * CPUFREQ_MAX changed to 78MHz * To be cleaned up soon. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13767 a1c6a512-1295-4272-9138-f99709370657
* Gigabeat: Separate driver for audio codec. Tweak pcm driver to comply with ↵Michael Sevakis2007-05-02
| | | | | | intended interface. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13307 a1c6a512-1295-4272-9138-f99709370657
* This is how it should have been done.Michael Sevakis2007-04-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13292 a1c6a512-1295-4272-9138-f99709370657
* ARM/PP: more optimized set_irq_level()Michael Sevakis2007-04-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13291 a1c6a512-1295-4272-9138-f99709370657
* Do the target shuffle again a better way by including from higher levelsMichael Sevakis2007-04-14
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13151 a1c6a512-1295-4272-9138-f99709370657