- 2acc0ac Updated our source code header to explicitly mention that we are GPL v2 or by Daniel Stenberg · 16 years ago
- 606d9d0 Reinstate the awful ATA hack that has no proper reason to exist for iPod 5.5g 60GB and/or 80GB. by Michael Sevakis · 16 years ago
- d587247 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. by Michael Sevakis · 16 years ago
- 2481941 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. by Michael Sevakis · 16 years ago
- e15f8a2 Made source files #include the header file that they implement to make sure they are in sync. Made some local functions static. by Bertrik Sikken · 16 years ago
- 95167e0 Commit whole Creative Zen Vision:M target tree + all related firmware/ changes. by Maurus Cuelenaere · 16 years ago
- cea07eb 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. by Jens Arnold · 16 years ago
- 97e6119 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. by Michael Sevakis · 17 years ago
- 9ba80c9 Get device-specific code out of init_threads and add core_thread_init to be implemented for multicore devices. by Michael Sevakis · 17 years ago
- 4ab52c3 Shorten the uncontended (expected) corelock_(try_)lock return path. Squeeze down corelock_try_lock by a couple instructions. by Michael Sevakis · 17 years ago
- 0509914 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). by Michael Sevakis · 17 years ago
- 5878728 Go back to the ata lock hack for 5g until whatever is going on there is discovered and fixed. by Michael Sevakis · 17 years ago
- af395f4 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). by Michael Sevakis · 17 years ago
- 27cf677 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. by Michael Sevakis · 17 years ago
- 1836971 Implement core_sleep() for TCC780x (single core). by Rob Purchase · 17 years ago
- cb57bf8 Fix the PP5002 crash bug affecting iPod 1st, 2nd and 3rd Gen. Yet another of those PP5002 quirks... by Jens Arnold · 17 years ago
- bbe3f1f 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. by Michael Sevakis · 17 years ago
- 5ded48d Oops. Dump some testing stuff that got left in. by Michael Sevakis · 17 years ago
- 1f021af 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. by Michael Sevakis · 17 years ago
- 537b78b 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. by Michael Sevakis · 17 years ago
- 608c547 Fix warnings. Remove a now unneeded parameter macro from run_blocking_ops. by Michael Sevakis · 17 years ago
- 32a531b 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. by Michael Sevakis · 17 years ago
- a8b388f 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. by Michael Sevakis · 17 years ago
- 68a98a0 Fix warnings. by Michael Sevakis · 17 years ago
- fadbf0a Make threads responsible for explicit cancellation of their own boosted status. Sleeping and timeouts will no longer cancel it. by Michael Sevakis · 17 years ago
- 28f6ae4 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. by Dave Chapman · 17 years ago
- a4058aa The interrupt disable is only relevant on multicore targets. by Michael Sevakis · 17 years ago
- afcfa1f Don't keep interrupts disabled when waking a frozen thread. Fixes frozen UI on H10 while dircache scan is running in the background. by Jens Arnold · 17 years ago
- d332601 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. ;) by Michael Sevakis · 17 years ago
- 26b3a74 Reverse some logic with Peterson's algorithm and cut an instruction. Make C-reference reflect it. by Michael Sevakis · 17 years ago
- a443614 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. by Michael Sevakis · 17 years ago
- f6bc191 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 by Karl Kurbjun · 17 years ago
- 1cc852c Fix core_sleep for targets that have not implemented it yet by Karl Kurbjun · 17 years ago
- 84f5c5c Take out some NOCACHEBSS_ATTR's that were accidentally left. Put some threading code in IRAM that should be there on PP502x. by Michael Sevakis · 17 years ago
- a9b2fb5 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. by Michael Sevakis · 17 years ago
- 18e87ff 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). by Michael Sevakis · 17 years ago
- ea47ee6 Watch out for uninitialized threads[] in init_threads() which can cause big headaches later in unrelated places. by Catalin Patulea · 17 years ago
- da55251 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. by Michael Sevakis · 17 years ago
- 869de4d Oops. Can't wait for COP init in the bootloader because it is kept asleep until the firmware is ready to be run. by Michael Sevakis · 17 years ago
- a13a1d5 Anti-red: No need for COP initialization in the bootloaders nor idle stacks. by Michael Sevakis · 17 years ago
- 7914e90 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. by Michael Sevakis · 17 years ago
- 7b97fe2 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. by Karl Kurbjun · 17 years ago
- 1ea6daf Perform writeback before starting thread on another core or stack munging may not be coherent. by Michael Sevakis · 17 years ago
- a690ebb Trim a little bulk off the scheduler for dual core. Shouldn't change bin size on single except for a small function call avoidance. by Michael Sevakis · 17 years ago
- 57aa674 Apply FS#7183. Also change to use documented ways to avoid inlining of functions. by Magnus Holmgren · 17 years ago
- bfb281f 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. by Michael Sevakis · 17 years ago
- bd6cb34 Hrmph. Forgot the other instance of cache hacking. by Michael Sevakis · 17 years ago
- d95c390 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. by Michael Sevakis · 17 years ago
- 4954bdf Accidentally enabled core locking mechanism. Now disabled again because it still causes problems on some players. by Miika Pekkarinen · 18 years ago
- 28b061d remove_thread(NULL) contained a null pointer bug causing a crash. by Miika Pekkarinen · 18 years ago
- 02a4802 A temporary fix to crashing on some dual core targets. by Miika Pekkarinen · 18 years ago
- 66258a3 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). by Miika Pekkarinen · 18 years ago
- 165f62d Fix a hole in the scheduler where collisions between waking blocked threads in mutexes with interrupts waking blocked threads in message queues can occur. Queue posts will put the threads on a separate list that is then added to the running list with IRQs disabled on the next task switch or CPU wakeup. Basically no overhead for other operations. Seems a likely cause of my occasional observation of the backlight fade causing playback threads to stop running and a recently reported blocking violation upon USB plugging. Time will tell but banging the backlight on and off frequently hasn't hiccuped again for me on H120. by Michael Sevakis · 18 years ago
- dee43ec Put an end to priority inversion in the ata driver. Gave up trying to have fully atomic dual use mutexes so just replaced the ata driver locking with spins. Maybe I'll have better luck later. Things should run smoothly with database updates and such happening in the background. by Michael Sevakis · 18 years ago
- b425de7 Fix problem with recording screen creep and bag a bigfoot. Voice clips aren't long enough now to untrigger the thread boost that was supposed to be applied to the codec thread. The voice thread was needlessly boosting the codec thread and leaving it boosted which explains the encoders' ability to flood the output buffer when everything else was stopped in its tracks. Check which thread is calling pcmbuf_under_watermark and only initiate the boost when it's the codec thread. Always return the codec thread to its usual priority in pcmbuf_play_stop. by Michael Sevakis · 18 years ago
- 82f9056 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. by Daniel Ankers · 18 years ago
- 1915c10 Turns out I don't have a magic DAP. :( I didn't get the problem because I RoLod it. Clean the useless macros from thread_init and leave it for spawned threads. by Michael Sevakis · 18 years ago
- 2c9cbc1 Add CPU-model-specific init to newborn threads. Add default %macsr for each thread created on coldfire (EMAC_FRACTIONAL | EMAC_SATURATE). by Michael Sevakis · 18 years ago
- 6d15996 add missing variable declaration by Marcoen Hirschberg · 18 years ago
- 6a6c2dc fix idle mode for the gigabeat by Marcoen Hirschberg · 18 years ago
- 43c1592 Add queue_send synchronous message sending. Right now only for SWCODEC. Actual usage to be added to playback and recording shortly in upcoming commits. by Michael Sevakis · 18 years ago
- 58e7547 Fix my warnings with explicit blocking on platforms w/o cpu_boost() by Brandon Low · 18 years ago
- 8a82892 Thread API enhancements. by Brandon Low · 18 years ago
- 780f79e Removed the Gmini 120 and Gmini SP code. These ports are dead, unfortunately. by Jens Arnold · 18 years ago
- 0f5cb94 Big Patch adds primarily: Samplerate and format selection to recording for SWCODEC. Supprort for samplerates changing in playback (just goes with the recording part inseparably). Samplerates to all encoders. Encoders can be configured individually on a menu specific to the encoder in the recording menu. File creation is delayed until flush time to reduce spinups when splitting. Misc: statusbar icons for numbers are individual digits to display any number. Audio buffer was rearranged to maximize memory available to recording and properly reinitialized when trashed. ColdFire PCM stuff moved to target tree to avoid a complicated mess when adding samplerate switching. Some needed API changes and to neaten up growing gap between hardware and software codecs. by Michael Sevakis · 18 years ago
- 7058752 Removed ugly boosting solutions from playback code and let scheduler by Miika Pekkarinen · 18 years ago
- 13f3c5b Fix profiling builds. by Magnus Holmgren · 18 years ago
- 92ae915 Don't remove the thread twice. by Miika Pekkarinen · 18 years ago
- a85044b New scheduler, with priorities for swcodec platforms. Frequent task by Miika Pekkarinen · 18 years ago
- 3686228 Cleanup threads.c by moving declarations inside structs. by Miika Pekkarinen · 18 years ago
- 67ddef9 Fix profile builds by Daniel Ankers · 18 years ago
- 0aec12f Threading changes in preparation for multiple core support by Daniel Ankers · 18 years ago
- dd75488 update the gigabeat code and move to target_tree by Marcoen Hirschberg · 18 years ago
- 0a95251 Sleep PP5020 CPU on idle. by Thom Johansen · 19 years ago
- 023936d ARM: r12 is scratch, so don't save it. by Thom Johansen · 19 years ago
- 05dccc3 Profiling support, tools and documentation. by Brandon Low · 19 years ago
- d83e929 Work-in-progress iriver iFP-7xx port by Tomasz Malesinski by Dave Chapman · 19 years ago
- 544b03c Add interrupt handler for iPod. Add timer tick support. Remove temporary thread sleep solution. Remove temporary iPod current_tick solution. by Thom Johansen · 19 years ago
- 27cd6ca Make threading code for iPod compile on all ARM CPUs, comment out sleep loop until we have iPod interrupts. by Thom Johansen · 19 years ago
- 391f6af Shave off an instruction by use of conditionals. by Thom Johansen · 19 years ago
- 52e91de First attempt at iPod threading. by Thom Johansen · 19 years ago
- d31a32c iPod: Code cleanup - the bootloader now compiles with zero warnings by Dave Chapman · 19 years ago
- 77372d1 Initial commit of work-in-progress iPod port by Dave Chapman · 19 years ago
- abd9f83 Two new sections for IRAM usage: .irodata (selectable with the ICONST_ATTR attribute macro), allowing to put 'const' data into IRAM without causing a section type conflict, and .ibss (selectable with the IBSS_ATTR attribute macro) for uninitialised data. * Rockbox core: Adjusted the linker scripts and init code to not include the .ibss section in the binary, it is cleared instead. Saves ~500 bytes on archos and ~30KB on iriver. Codecs and plugins don't handle .ibss in a special way yet. * The init code properly handles empty sections now (except .stack, which should never be empty). * Unified the init code for SH1 and coldfire a bit. by Jens Arnold · 19 years ago
- 904f7fd Coldfire: Made the MACSR register part of the thread context to allow easier handling in the codecs. by Jens Arnold · 19 years ago
- 6d54d6c SH1: Tiny optimisation of the thread scheduler. by Jens Arnold · 19 years ago
- c6ff1f5 Added CPU_COLDFIRE define - one step closer to iAudio-port by Christian Gmeiner · 19 years ago
- a19acbd Removed picky warnings by Linus Nielsen Feltzing · 19 years ago
- a4aa508 Thread scheduler reworked to be less dependent on compiler behaviour. Stack overflow check is now possible on coldfire, enabled it. Unified code as much as possible. by Jens Arnold · 19 years ago
- 8779802 Make sure the context functions are always inlined, independent of optimisation level. by Jens Arnold · 19 years ago
- 8ec0577 Gmini work: * Better USB * Better comments * Better coding style by Jean-Philippe Bernardy · 20 years ago
- 9dcb575 Feature conditional compilation policy by Jean-Philippe Bernardy · 20 years ago
- a1eb3d9 Feature conditional compilation policy by Jean-Philippe Bernardy · 20 years ago
- 7e8914d more int -> long by Jean-Philippe Bernardy · 20 years ago
- 1265d031 Oops, deadbeef is unsigned by Jean-Philippe Bernardy · 20 years ago
- a61d985 Gmini threading by Jean-Philippe Bernardy · 20 years ago
- 7b91ec6 Threading ported to Coldfire by Linus Nielsen Feltzing · 20 years ago
- 5e54aa9 MACH, MACL and SR are no longer part of the SH1 thread context by Linus Nielsen Feltzing · 20 years ago
- c76c568 Const policed pointer arguments to functions, part 1 by Jens Arnold · 20 years ago
- 9478cc6 More const policeing step 4 by Jens Arnold · 20 years ago