Commit graph

28 commits

Author SHA1 Message Date
Rafaël Carré
0ea7905395 ARM: use BX when branch to an address in register
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26432 a1c6a512-1295-4272-9138-f99709370657
2010-05-31 15:14:26 +00:00
Thomas Martitz
05c082267d Fix ipodvideo64mb by making the branch to main a long call.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25019 a1c6a512-1295-4272-9138-f99709370657
2010-03-04 00:24:28 +00:00
Thomas Martitz
9b810734f8 Really fix bootloaders now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25017 a1c6a512-1295-4272-9138-f99709370657
2010-03-03 23:52:36 +00:00
Thomas Martitz
f8edc32589 FS#10756 - Free unused init code
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-03-03 23:20:32 +00:00
Rafaël Carré
b2323be33b ARM: lr addresses the next instruction after the failing one in undefined 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
2010-01-24 15:04:21 +00:00
Dave Chapman
49fccaf2d9 FS#9730 by Torne Wuff - support installing Rockbox in the firmware partition in place of the main Apple firmware. This image is only loaded if no rockbox.ipod is found so does not affect current behaviour. The advantage is a small increase in boottime. This patch also adds documentation to bootloader/ipod.c in the form of a comment describing the booting behaviour.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20921 a1c6a512-1295-4272-9138-f99709370657
2009-05-12 20:41:44 +00:00
Michael Sevakis
ec67912b63 Reclaim .iram areas in DRAM by overlapping their load addresses with the uninitialized data sections. I did what I could test out-- not any flash image linker scripts or other target processors. Move any .iram copies in crt0.S's to be the first operation even if not _strictly_ necessary to be emphatic (aka. 'beware').
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20061 a1c6a512-1295-4272-9138-f99709370657
2009-02-20 02:33:40 +00:00
Michael Sevakis
73f2d001fd PortalPlayer: Implement irq_handler() directly in C code rather than dispatching to irq() from crt0-pp.S. Remove unneeded STUB macros.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19801 a1c6a512-1295-4272-9138-f99709370657
2009-01-20 16:11:59 +00:00
Michael Sevakis
2e8266df12 Fix a PortalPlayer PCM bug that made keyclick malfunction. Should fix FS#8836. Move FIQ banked register init out of crt0-pp.S and into pcm-pp.c to keep setups local to PCM driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19388 a1c6a512-1295-4272-9138-f99709370657
2008-12-11 01:48:31 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
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
2008-06-28 18:10:04 +00:00
Jens Arnold
0e73b8a0a9 Remove wrong usage of '.global'. These symbols are imported, not exported.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17290 a1c6a512-1295-4272-9138-f99709370657
2008-04-29 06:47:34 +00:00
Michael Sevakis
a8b388fb86 Enable dualcore for the pp5002 processor by adding the needed cache handling and sleep/wakeup sync to the kernel. Refine some handling of fw/bl startup for all.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15827 a1c6a512-1295-4272-9138-f99709370657
2007-11-27 01:20:26 +00:00
Michael Sevakis
6077e5b7c8 Unify PCM interface just above the hardware driver level for all targets 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
2007-10-06 22:27:27 +00:00
Michael Sevakis
940e8990b5 PP502x: Make RAM physical addresses uncached. Cache the flash ROM on targets with one. Kill all the now unneeded cache flushing and i2s tweaking on e200 so clicking is no worry. Write the driver framebuffer at uncached addresses. Recording monitoring may be a little noisy in the left channel for the moment when not boosted and will be addressed. All seems to work as advertised including flash ROM dump.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14976 a1c6a512-1295-4272-9138-f99709370657
2007-10-04 04:53:01 +00:00
Michael Sevakis
da55251a35 Compile Portal Player bootloaders as single core. Cleanup the startup code for bootloaders. Remove cop stack entirely and keep IRAM use down on all relevant targets - just use the 128-byte idle stack. Use the inline asm version of current_core for pp5002 as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14898 a1c6a512-1295-4272-9138-f99709370657
2007-09-29 06:17:33 +00:00
Michael Sevakis
7914e90738 Commit a subset of the dual core changes that have to do with cache handling, stacks, firmware startup and thread startup. Tested on e200, H10-20GB, iPod Color and 5.5G. Thread function return implemented for all targets. Some changes to plugins to follow shortly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14879 a1c6a512-1295-4272-9138-f99709370657
2007-09-28 10:20:02 +00:00
Mark Arigo
dbc6b4e39a Sansa c200 port. Rockbox works with sound. Several features are disabled including some lcd options, FM radio, recording, and all plugins. Loading the OF from the Rockbox bootloader does not work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14625 a1c6a512-1295-4272-9138-f99709370657
2007-09-06 03:28:58 +00:00
Michael Sevakis
4aaded5c76 PP50xx: COP was left in undefined mode after init. Switch it to supervisor mode before entering cop_main.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14124 a1c6a512-1295-4272-9138-f99709370657
2007-08-01 20:59:27 +00:00
Michael Sevakis
e1c52e7fbe PP50xx: Allow FIQ during IRQ to always be able to service FIFOs. I've got a diff handy for quick revert if there's a problem.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14123 a1c6a512-1295-4272-9138-f99709370657
2007-08-01 20:26:04 +00:00
Daniel Stenberg
cca0e3d8f8 FS#5472 add a memory size prompt to configure to allow ipod video builds for
64 MB ram


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13408 a1c6a512-1295-4272-9138-f99709370657
2007-05-19 14:35:11 +00:00
Barry Wardell
ddf83009a1 Switch to mi4 format for Rockbox binary on H10 and Sansa. This means we now only have one binary format to deal with on this target. Users with bootloaders older than 20 March 2007 will have to update. Up to date ones are already on download.rockbox.org since that date.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13134 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 21:07:35 +00:00
Barry Wardell
3bf7f29312 Oops, shouldn't have committed this just yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12866 a1c6a512-1295-4272-9138-f99709370657
2007-03-20 22:19:30 +00:00
Barry Wardell
7cd559dde0 Oops, the mi4 magic was being looked for in the wrong place when decrypting. Also decrease verbosity of PP bootloader a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12865 a1c6a512-1295-4272-9138-f99709370657
2007-03-20 22:18:35 +00:00
Daniel Ankers
82f9056988 Dual core support for PP502x players (iPod G4 and later, iriver h10, Sansa - iPod G3 will be coming soon.) This allows threads to be run on either core provided that all communications between the cores is done using uncached memory. There should be no significant change in battery life from doing this. Documentation (on the RockboxKernel wiki page) will follow shortly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12601 a1c6a512-1295-4272-9138-f99709370657
2007-03-04 20:06:41 +00:00
Barry Wardell
8b061252c4 Replace some inl/outl with register #define's instead. Also tidy up pp5020.h so that it's in increasing address order.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12574 a1c6a512-1295-4272-9138-f99709370657
2007-03-03 17:25:20 +00:00
Barry Wardell
2f16d4f1b3 Add working dual-boot bootloaders for H10 and Sansa, which allow booting the OF and Rockbox. Rolo also works.
Changes made:

Combine bootloader/h10.c and bootloader/e200.c into a common bootloader file (bootloader/main-pp.c) to be used by all mi4 based PortalPlayer targets. The file bootloader/main-pp.c is based off the old bootloader/h10.c with some minor changes to allow it to work on the Sansa too. This effectively adds a Sansa bootloader.

Define MODEL_NAME string in config-*.h for use in bootloader.

Split crt0-pp.S into separate files for bootloader and normal builds. Bootloader code is now in crt0-pp-bl.S while normal build code stays in crt0-pp.S.

Improvements to crt0-pp.S and crt0-pp-bl.S (mostly to make it more multiprocessor safe):
* Leave space in bootloader at 0xe0-0xeb since scramble writes over there when it creates the mi4 file (don't leave space for iPods since it's not needed and all code in crt0-pp-bl.S needs to fit before the boot_table at 0x100).
* Remove unused DEBUG and STUB code from crt0-pp.S.
* Make CPU wait for COP to be sleeping when we put the COP to sleep.
* Invalidate COP cache when COP wakes
* Flush CPU cache before waking COP
* Make sure only the CPU clears the BSS (not the COP)
* Make sure only the CPU sets up its own stack (not the COP)

Rolo works on H10, so enable it.

Make Sansa e200 use rockbox.e200 rather than PP5022.mi4 for 'Normal' builds. This makes updating rockbox simpler as we don't need to go through the firmware update procedure, but rather just put a new rockbox.e200 on the device. rockbox.e200 uses a simple 'add' checksum.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11815 a1c6a512-1295-4272-9138-f99709370657
2006-12-19 11:33:53 +00:00
Daniel Ankers
43e2c01065 Sansa doesn't use a Wolfson codec. Various other changes to allow Sansa to compile correctly with a normal build. Based on FS#6336 by Pavel Gnelitsa
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11570 a1c6a512-1295-4272-9138-f99709370657
2006-11-22 00:49:16 +00:00
Daniel Ankers
41997d3d89 Clean up crt0.S and move it to the target tree
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10830 a1c6a512-1295-4272-9138-f99709370657
2006-08-31 19:45:05 +00:00