summaryrefslogtreecommitdiff
path: root/firmware/target/arm/crt0.S
AgeCommit message (Collapse)Author
2017-10-29Add boot data to MOST AS3525 DevicesWilliam Wilgus
Adds boot data to as3525 devices Sansa C200v2 E200v2 Clip Clipv2 Clip+ ClipZip fuze, fuzev2 m200v4 Adds boot_data to features.txt default arm crt0.s now had boot data if HAVE_BOOTDATA is defined Change-Id: I614a556696540511a69fc12a4520b01c268bf8a9
2012-04-06arm: factor all exception handlers out of the crt0.S filesAmaury Pouly
Remove the implementations of all exceptions handlers from the various crt0.S files and have a single implementation in system-arm.h The new implementation is weak so that it can be overwritten by some specific code (like the unwinder) Change-Id: Ib3e041ed6037376bbe0e79286057e1051640dd90 Reviewed-on: http://gerrit.rockbox.org/205 Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2012-01-08AS3525v1/2: Enable nested handling of interruptsMichael Sevakis
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
2011-10-11Switch to SYS mode on arm FS#12322 by meMarcin Bukat
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30741 a1c6a512-1295-4272-9138-f99709370657
2010-06-18arm/crt0.S: comment why the reset vector doesn't use absolute addressingRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26929 a1c6a512-1295-4272-9138-f99709370657
2010-06-18as3525*: enable MMU in bootloaderRafaël Carré
Reserve 1MB of DRAM for loading rockbox and use the rest as BSS Write sdram setup in assembler and move it to a separate file, together with MMU init code git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26926 a1c6a512-1295-4272-9138-f99709370657
2010-06-12Sansa AMS: call the exception handler with the correct address when the ↵Rafaël Carré
exception happened in Thumb state git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26818 a1c6a512-1295-4272-9138-f99709370657
2010-06-08arm/crt0.S: s58l* don't use this file, no need for 'DFUC' stringRafaël Carré
adjust vectors offsets git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26709 a1c6a512-1295-4272-9138-f99709370657
2010-03-17as3525: Fix previous commit, IRAM_ORIG can not be represented as an ↵Rafaël Carré
immediate value on targets with 2MB of ram git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25230 a1c6a512-1295-4272-9138-f99709370657
2010-03-17as3525*: revert r25198 and inline memory_init in crt0.SRafaël Carré
We do not need a stack pointer at this step, and we are sure to not use memory not initialized yet (like bss) Fixes FS#11114 (tested on Fuze) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25229 a1c6a512-1295-4272-9138-f99709370657
2010-03-15as3525* : make sure sp is setup in bootloaderRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25199 a1c6a512-1295-4272-9138-f99709370657
2010-03-15as3525*: setup stack pointer before we use itRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25198 a1c6a512-1295-4272-9138-f99709370657
2010-03-03Really fix bootloaders now.Thomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25017 a1c6a512-1295-4272-9138-f99709370657
2010-03-03FS#10756 - Free unused init codeThomas Martitz
Introduce a new .init section for initialisation code, so that it can be copied to an area which is later overwritten before calling. The stack/bss can then overwrite that code, effectively freeing the code size that the initialisation routines need. Gives a few kB ram usage back. Only implemented for PP and as3525 so far. More targets could be added, as well as more functions. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25013 a1c6a512-1295-4272-9138-f99709370657
2010-02-22crt0: init correctly as3525v2Rafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24853 a1c6a512-1295-4272-9138-f99709370657
2010-01-24ARM: lr addresses the next instruction after the failing one in undefined ↵Rafaël Carré
instruction vector Substract 4 before passing the argument to UIE so the correct address is displayed git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24321 a1c6a512-1295-4272-9138-f99709370657
2009-06-08FS#10048 : enable MMU and data cache on Sansa AMS to give a major speed upRafaël Carré
- cache IRAM and DRAM - map IRAM just next to DRAM to remove the need for -mlong-calls and reduce binsize - tweak delays in Fuze button code - tweak delays in Clip button code (down button sometimes doesn't respond anyway : an alternate driver is being worked on) Before reporting any problem, please check your filesystem or format your player from the OF git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21228 a1c6a512-1295-4272-9138-f99709370657
2008-11-18Sansa AMS: Use IRAM (in app linker script and crt0.S)Rafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19137 a1c6a512-1295-4272-9138-f99709370657
2008-11-09ARM C Runtime : prepare to exception vectors if not in the bootloaderRafaël Carré
For example if running from SDRAM, we need to copy the vectors to offset 0 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19044 a1c6a512-1295-4272-9138-f99709370657
2008-10-11remove dead code from firmware/target/arm/crt0.S, and conditionalise bits of itFrank Gevaerts
make the meizu builds compile with the new crt0.S location git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18776 a1c6a512-1295-4272-9138-f99709370657
2008-10-11Move the S5L8700 (Meizu) crt0.S file up one level - it can be used as a ↵Dave Chapman
generic ARM crt0.S (the uncommitted patch for the Sansa V2s uses it). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18775 a1c6a512-1295-4272-9138-f99709370657
2007-12-23Gigabeat S memory management stuff. Will Robertson
* Moved crt0.S to imx31 subdirectory, as it was the last target using the unified file. * DRAM is now remapped to 0x0, facilitating interrupts (which aren't done yet) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15965 a1c6a512-1295-4272-9138-f99709370657
2007-11-11Seperate the Gigabeat F/X crt0.s, cleanup some #ifdefs in app.lds, add an ↵Karl Kurbjun
extra reg to the debug menu. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15579 a1c6a512-1295-4272-9138-f99709370657
2007-10-26Some small cleanups and code for testingKarl Kurbjun
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15312 a1c6a512-1295-4272-9138-f99709370657
2007-10-06TAB policing - no code changesDave Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15000 a1c6a512-1295-4272-9138-f99709370657
2007-09-22Seperate M:Robe crt0.S, fix the vector tables for the bootloader, and show ↵Karl Kurbjun
touchscreen values on single line. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14814 a1c6a512-1295-4272-9138-f99709370657
2007-09-21Merge the Gigabeat S branch back into trunk. Fingers crossed nothing breaks.Will Robertson
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14805 a1c6a512-1295-4272-9138-f99709370657
2007-09-20Beginning of an M:Robe 500i port. Currently only in the bootloader stage. ↵Karl Kurbjun
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
2007-07-05Gigabeat: Use vectored IRQ mode interrupts and add a trap for unhandled ones.Michael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13792 a1c6a512-1295-4272-9138-f99709370657
2007-05-03Gigabeat: Get rid of the obsolete FIQ wrapper (not used on PP anymore FIY, ↵Michael Sevakis
but no change there). Use the FIQ stack for DMA address and size variables instead of globals. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13309 a1c6a512-1295-4272-9138-f99709370657
2007-03-24PNX0101 changes:Tomasz Malesinski
Make PNX0101-specific system.c and crt0.S. Add new register names from LPC2880 user manual. Add support for timer. Enable CPU frequency changing. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12904 a1c6a512-1295-4272-9138-f99709370657
2006-12-29merge a big part of the unofficial gigabeat cvs back. Includes working ↵Marcoen Hirschberg
bootloader and rockbox with audio. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11850 a1c6a512-1295-4272-9138-f99709370657
2006-08-31Clean up crt0.S and move it to the target treeDaniel Ankers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10830 a1c6a512-1295-4272-9138-f99709370657