Michael Sevakis
|
d587247ebd
|
Actually remove the ata lock hack code for that had been used for iPod Video 60/80. It has been disabled for awhile anyway and the problem that nescessitated it really appears resolved.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17558 a1c6a512-1295-4272-9138-f99709370657
|
2008-05-17 16:19:58 +00:00 |
|
Michael Sevakis
|
248194164d
|
Disable the ata locking hack since a recent test strongly suggests it has been resolved as of r17426. Leave the code for now just in case.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17468 a1c6a512-1295-4272-9138-f99709370657
|
2008-05-11 20:56:27 +00:00 |
|
Bertrik Sikken
|
e15f8a21a9
|
Made source files #include the header file that they implement to make sure they are in sync. Made some local functions static.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17312 a1c6a512-1295-4272-9138-f99709370657
|
2008-05-03 08:35:14 +00:00 |
|
Maurus Cuelenaere
|
95167e0177
|
Commit whole Creative Zen Vision:M target tree + all related firmware/
changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17241 a1c6a512-1295-4272-9138-f99709370657
|
2008-04-24 20:08:28 +00:00 |
|
Jens Arnold
|
cea07eb2a4
|
Fix freezing of some builds on PP5002. The PP5002 needs the not-sleep-at 0xNNNNNNN0-addresses fix everywhere when caching is enabled, not only in core_sleep(). Introduced a pair of inline functions to sleep and wake cores on PP for consistency.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17192 a1c6a512-1295-4272-9138-f99709370657
|
2008-04-20 17:53:05 +00:00 |
|
Michael Sevakis
|
97e61198a5
|
iPod Video 30Gig doesn't seem to need the ata locking hack so we'll just attempt to remove it for this one. Works for me on 5.5g.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17071 a1c6a512-1295-4272-9138-f99709370657
|
2008-04-11 10:39:24 +00:00 |
|
Michael Sevakis
|
9ba80c9641
|
Get device-specific code out of init_threads and add core_thread_init to be implemented for multicore devices.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17000 a1c6a512-1295-4272-9138-f99709370657
|
2008-04-06 22:08:36 +00:00 |
|
Michael Sevakis
|
4ab52c3456
|
Shorten the uncontended (expected) corelock_(try_)lock return path. Squeeze down corelock_try_lock by a couple instructions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16983 a1c6a512-1295-4272-9138-f99709370657
|
2008-04-06 08:48:31 +00:00 |
|
Michael Sevakis
|
05099149f1
|
Enable nocache sections using the linker. PP5022/4 must use SW_CORELOCK now with shared variables in DRAM (it seems swp(b) is at least partially broken on all PP or I'm doing something very wrong here :\). For core-shared data use SHAREDBSS/DATA_ATTR. NOCACHEBSS/DATA_ATTR is available whether or not single core is forced for static peripheral-DMA buffer allocation without use of the UNCACHED_ADDR macro in code and is likely useful on a non-PP target with a data cache (although not actually enabled in config.h and the .lds's in this commit).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16981 a1c6a512-1295-4272-9138-f99709370657
|
2008-04-06 04:34:57 +00:00 |
|
Michael Sevakis
|
58787280b8
|
Go back to the ata lock hack for 5g until whatever is going on there is discovered and fixed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16870 a1c6a512-1295-4272-9138-f99709370657
|
2008-03-28 23:39:28 +00:00 |
|
Michael Sevakis
|
af395f4db6
|
Do core interrupt masking in a less general fashion and save some 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
|
2008-03-26 01:50:41 +00:00 |
|
Michael Sevakis
|
27cf677339
|
Add a complete priority inheritance implementation to the scheduler (all mutex ownership and queue_send calls are inheritable). Priorities are differential so that dispatch depends on the runnable range of priorities. Codec priority can therefore be raised in small steps (pcmbuf updated to enable). Simplify the kernel functions to ease implementation and use the same kernel.c for both sim and target (I'm tired of maintaining two ;_). 1) Not sure if a minor audio break at first buffering issue will exist on large-sector disks (the main mutex speed issue was genuinely resolved earlier). At this point it's best dealt with at the buffering level. It seems a larger filechunk could be used again. 2) Perhaps 64-bit sims will have some minor issues (finicky) but a backroll of the code of concern there is a 5-minute job. All kernel objects become incompatible so a full rebuild and update is needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16791 a1c6a512-1295-4272-9138-f99709370657
|
2008-03-25 02:34:12 +00:00 |
|
Rob Purchase
|
1836971d51
|
Implement core_sleep() for TCC780x (single core).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16740 a1c6a512-1295-4272-9138-f99709370657
|
2008-03-22 13:18:47 +00:00 |
|
Jens Arnold
|
cb57bf863a
|
Fix the PP5002 crash bug affecting iPod 1st, 2nd and 3rd Gen. Yet another of those PP5002 quirks...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16547 a1c6a512-1295-4272-9138-f99709370657
|
2008-03-07 23:44:46 +00:00 |
|
Michael Sevakis
|
bbe3f1f61c
|
Fix a very subtle bug that would cause a yielding thread to be scheduled twice in a row even if others were woken and one of them should be selected. Evaluate next thread _after_ waking checks to keep fairness.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16444 a1c6a512-1295-4272-9138-f99709370657
|
2008-02-28 17:40:18 +00:00 |
|
Michael Sevakis
|
5ded48dbea
|
Oops. Dump some testing stuff that got left in.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16217 a1c6a512-1295-4272-9138-f99709370657
|
2008-02-05 04:53:05 +00:00 |
|
Michael Sevakis
|
1f021af60c
|
Gigabeat S mixer: Make some progress. Get the tick and core sleep working using the AVIC. Redo the startup code to remap from IRAM and not include the lcd driver frambuffer in the remapping (until it can be moved). Clean up LCD driver. For other misc. changes, see the diffs. Now it progresses to ATA init and fails with -11 but without crashing or hanging. Replace all bootloaders.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16216 a1c6a512-1295-4272-9138-f99709370657
|
2008-02-05 04:43:19 +00:00 |
|
Michael Sevakis
|
537b78b216
|
Fix a minor ;) problem that would keep other threads from running during priority_yield calls unless they had aged too much. Basically it operates in the manner of the original implementation. _May_ help 5.5g buffering problems so do test that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16197 a1c6a512-1295-4272-9138-f99709370657
|
2008-02-02 03:00:34 +00:00 |
|
Michael Sevakis
|
608c547aa1
|
Fix warnings. Remove a now unneeded parameter macro from run_blocking_ops.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16109 a1c6a512-1295-4272-9138-f99709370657
|
2008-01-19 13:47:26 +00:00 |
|
Michael Sevakis
|
32a531b09b
|
Do some simplification in switch_thread regarding interrupt enabling which simplifies kernel objects as well. Simply doing unconditional disable/enable should be fine in the firmware. Not sure about the case in the bootloader for all targets and so will evaluate but that should be fine too if everything is masked.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16107 a1c6a512-1295-4272-9138-f99709370657
|
2008-01-19 13:27:47 +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
|
68a98a0287
|
Fix warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15710 a1c6a512-1295-4272-9138-f99709370657
|
2007-11-20 04:07:33 +00:00 |
|
Michael Sevakis
|
fadbf0a6f7
|
Make threads responsible for explicit cancellation of their own boosted status. Sleeping and timeouts will no longer cancel it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15709 a1c6a512-1295-4272-9138-f99709370657
|
2007-11-20 03:44:25 +00:00 |
|
Dave Chapman
|
28f6ae49ec
|
Initial work on a port to the Logik DAX 1GB MP3/DAB player. The bootloader build compiles and runs (but only displays some debugging info), and the LCD and ADC drivers are working. Two different bootloader builds are possible: 1) The default build is just a test application for uploading to the device via tcctool; 2) Adding -DTCCBOOT to EXTRA_DEFINES in the build directory Makefile will compile the bootloader so that it can be appended to the end of the original firmware and installed on the device, dual-booting. This commit also includes some work by Hein-Pieter van Braam on a port to the iAudio 7, but that doesn't build yet. A large part of these ports will be generic to all TCC77x devices - see the TelechipsInfo wiki page for some other devices with this CPU. NOTE: Compiling these builds requires an arm-elf-gcc with armv5 support - the current version of rockboxdev.sh compiles such a gcc.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15339 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-28 11:08:10 +00:00 |
|
Michael Sevakis
|
a4058aa94e
|
The interrupt disable is only relevant on multicore targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15241 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-21 09:43:28 +00:00 |
|
Jens Arnold
|
afcfa1f669
|
Don't keep interrupts disabled when waking a frozen thread. Fixes frozen UI on H10 while dircache scan is running in the background.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15239 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-21 09:23:08 +00:00 |
|
Michael Sevakis
|
d332601135
|
Save a little space and only initialize the minimum for initial threads at startup. The BSS sections should already be zereod and if they're mistakenly not, be sure to crash ASAP. ;)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15204 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-19 11:51:45 +00:00 |
|
Michael Sevakis
|
26b3a7405d
|
Reverse some logic with Peterson's algorithm and cut an instruction. Make C-reference reflect it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15199 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-19 06:19:06 +00:00 |
|
Michael Sevakis
|
a443614dd2
|
PP502x: Get switch_thread back out of IRAM and devise a better core wakeup system that's not timing dependant. Hopefully something simpler will be found or devised eventually that meets all requirements. Rename mailbox-related registers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15179 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-18 01:26:50 +00:00 |
|
Karl Kurbjun
|
f6bc19158e
|
Turns out you can boot the main build by copying apps/rockbox.bin to /rockbox.mrboot. Something is wrong with the rockbox bootloader, but at least now we can work with the main build. Added in a warning for the core_sleep function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15162 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-17 05:19:20 +00:00 |
|
Karl Kurbjun
|
1cc852c346
|
Fix core_sleep for targets that have not implemented it yet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15159 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-17 03:44:13 +00:00 |
|
Michael Sevakis
|
84f5c5c3e3
|
Take out some NOCACHEBSS_ATTR's that were accidentally left. Put some threading code in IRAM that should be there on PP502x.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15155 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-16 22:00:51 +00:00 |
|
Michael Sevakis
|
a9b2fb5ee3
|
Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-16 01:25:17 +00:00 |
|
Michael Sevakis
|
18e87ff1c0
|
Stabilize PP5020 targets - tested on H10 5/20GB and iPod Color. Use no interrupts on COP but pulse it through the control interface. Don't mess with LCD clocking during clock changes. Give a reset register a name (DEV_OFF_MASK).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14998 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-05 23:24:46 +00:00 |
|
Catalin Patulea
|
ea47ee64f0
|
Watch out for uninitialized threads[] in init_threads() which can cause big headaches later in unrelated places.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14934 a1c6a512-1295-4272-9138-f99709370657
|
2007-10-01 04:13:17 +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
|
869de4d10a
|
Oops. Can't wait for COP init in the bootloader because it is kept asleep until the firmware is ready to be run.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14888 a1c6a512-1295-4272-9138-f99709370657
|
2007-09-28 17:24:29 +00:00 |
|
Michael Sevakis
|
a13a1d5492
|
Anti-red: No need for COP initialization in the bootloaders nor idle stacks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14880 a1c6a512-1295-4272-9138-f99709370657
|
2007-09-28 10:54:27 +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 |
|
Karl Kurbjun
|
7b97fe21c0
|
Beginning of an M:Robe 500i port. Currently only in the bootloader stage. 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-09-20 04:46:41 +00:00 |
|
Michael Sevakis
|
1ea6daf01e
|
Perform writeback before starting thread on another core or stack munging may not be coherent.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14194 a1c6a512-1295-4272-9138-f99709370657
|
2007-08-05 12:32:34 +00:00 |
|
Michael Sevakis
|
a690ebb1d1
|
Trim a little bulk off the scheduler for dual core. Shouldn't change bin size on single except for a small function call avoidance.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14075 a1c6a512-1295-4272-9138-f99709370657
|
2007-07-30 16:44:36 +00:00 |
|
Magnus Holmgren
|
57aa67468a
|
Apply FS#7183. Also change to use documented ways to avoid inlining of functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13564 a1c6a512-1295-4272-9138-f99709370657
|
2007-06-05 19:10:54 +00:00 |
|
Michael Sevakis
|
bfb281ff63
|
Messages queues must be guarded on both ends or else it's a race between detecting a message present and missing a wakeup on thread about to wait. Keeping IRQs from interacting with the scheduler would be preferable but this should do at the moment. Add more detailed panic info regarding blocking violations so we know who. Make panicf function well enough on Gigabeat and PortalPlayer targets. Move the core sleep instructions into a CPU-specific inline to keep thing organized.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13374 a1c6a512-1295-4272-9138-f99709370657
|
2007-05-12 05:20:04 +00:00 |
|
Michael Sevakis
|
bd6cb34f48
|
Hrmph. Forgot the other instance of cache hacking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13146 a1c6a512-1295-4272-9138-f99709370657
|
2007-04-13 21:25:07 +00:00 |
|
Michael Sevakis
|
d95c39072a
|
Portal Player: Add invalidate_icache and flush_icache. Flush the cache on the core for newborn threads. In doing so, move more ARM stuff to the target tree and organize it to make a clean job of it. If anything isn't appropriate for some particular device give a hollar or even just fix it by some added #ifdefing. I was informed that the PP targets are register compatible so I'm going off that advice. The Sansa likes it though.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13144 a1c6a512-1295-4272-9138-f99709370657
|
2007-04-13 20:55:48 +00:00 |
|
Miika Pekkarinen
|
4954bdf6d3
|
Accidentally enabled core locking mechanism. Now disabled again because it still causes problems on some players.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12989 a1c6a512-1295-4272-9138-f99709370657
|
2007-04-01 11:47:58 +00:00 |
|
Miika Pekkarinen
|
28b061d1e3
|
remove_thread(NULL) contained a null pointer bug causing a crash.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12988 a1c6a512-1295-4272-9138-f99709370657
|
2007-04-01 11:33:33 +00:00 |
|
Miika Pekkarinen
|
02a4802d3e
|
A temporary fix to crashing on some dual core targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12941 a1c6a512-1295-4272-9138-f99709370657
|
2007-03-27 20:41:10 +00:00 |
|
Miika Pekkarinen
|
66258a30a4
|
Make scheduler functions thread safe core wise. A big step towards playback running on COP (not yet possible because more protection on file system level is necessary).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12926 a1c6a512-1295-4272-9138-f99709370657
|
2007-03-26 16:55:17 +00:00 |
|