Parent Directory
|
Revision Log
| Links to HEAD: | (view) (download) (as text) (annotate) |
| Sticky Revision: |
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
remove leftover debug stuff
initial Meizu M6SL port (take 2)
Make sure the linker considers crt0*.o before all files specified on the command line by using STARTUP() instead of INPUT() in the .lds. Using INPUT() makes the linker process crt0*.o after all files specified on the command line, making linking fail if there are librockbox.a members which are only referenced by crt0*.o. Remove the hackaround that was needed for building the gigabeat S bootloader before (aka UIE() problem).
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).
Gigabeat S: Interrupt enabled bootloader. Miscellaneous integration changes.
Finally, out goes struct spinlock for anything but mutiprocessor targets where it becomes a reenterable corelock.
Fixed warnings when logf is enabled.
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.
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.
Add divide-by-zero trap for ARM instead of just silently ignoring them.
Fix build errors.
Move PortalPlayer system.c code into the target tree.
Fix some very probable typo's. CPU_INT_STAT is at 0x60004000, not 0x64004000. CPU_HI_INT_STAT is at 0x60004100, not 0x64004100. Fix wrong IRQ CLR addresses being used by system_init().
PP5020/PP5024: Add ASM optimized inline current_core.
Moved SH1 system code to target tree. * First shot at hwcompat cleanup.
Now charcell displays require lcd_update() for updating the main lcd content like bitmap displays.
Fixed compilation problems with boostctrl_mtx.
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).
PNX0101 changes: Make PNX0101-specific system.c and crt0.S. Add new register names from LPC2880 user manual. Add support for timer. Enable CPU frequency changing.
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.
Replace some inl/outl with register #define's instead. Also tidy up pp5020.h so that it's in increasing address order.
Remap flash ROM to 0x20000000 on the ipods and H10s, and implement dbg_save_roms() in the debug menu for those targets to dump the content to a file.
Simple cpu boost tracker for LOGF builds. Shows the last 64 cpu_boost() calls from the debug menu
Prepare core support for the iriver bootloader supporting ROM images
Move system specific reboot
merge a big part of the unofficial gigabeat cvs back. Includes working bootloader and rockbox with audio.
Removed the cpu boost tracking debug feature for now because of different kind of problems. Better implementation can be done later.
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
Removed the Gmini 120 and Gmini SP code. These ports are dead, unfortunately.
Use HAVE_FLASHED_ROCKBOX when target is flashable. Currenly only used by the H100 series.
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.
Moved coldfire code in system.c and system.h into target tree.
move the iriver h1x0/h3x0 targets to the target tree
Logf output on the serial port for h100 targets
UIE(), panicf(): Make reboot with ON react immediately on targets with real LED (archos recorders, player).
coldfire: set INTBASE and SPURVEC at startup, fixed typo in GPI0 int name
Add CPU boost tracker to see where boosts are coming from
Detect charger connected on H10. No need to sleep(HZ) when powering off. More sensible USB support for H10: plugging in puts it into USB charging mode and leaves Rockbox usable, holding 'O' while pluggin in the USB cable will reboot the H10 (continuing to hold 'O' starts it up in UMS mode), holding any other button brings up the USB screen as previously. Implement system_reboot() for all PP5020 devices.
Initial commit of work for port to the Tatung Elio TPJ-1022 - yet another PortalPlayer PP5020 target.
Enable CPU boosting on H10 models.
Threading changes in preparation for multiple core support
Fix errors when building H10 Normal build.
update the gigabeat code and move to target_tree
Properly handle early USB mode, dircache and tagcache state files with flashed rockbox.
Initial support and use for EEPROM memory on H120 & H140 players when Rockbox firmware has been flashed over original firmware (not yet possible to do). Dircache & tagcache serialization for fast bootup without the need to scan disk when Rockbox is in flash.
Implement frequency scaling on iPod 3Gs - FS #5686
Iriver: Faster ata timing.
H300: Rudimentary driver for the ISP1362 USB on-the-go controller. For now it just sends the chip to sleep, solving the poor battery runtime issue.
Oops, correctly calculate the interrupt number in UIE().
Fix red bootbox builds with gcc 4.x and -Os. Save a bit of code by not including the never called UIE0..UIE3.
Ooops. Fix red bootbox builds.
SH1: Moved exception vector table generation and weak aliasing into an asm block. Allows building with gcc 4.x
Ooops.
H300: Optimised PCF50606 driver, significantly reduces CPU power drain from the button tick (with both main & remote buttons: 50%->13% at 11MHz, 12%->6% at 45MHz): * Delay is adapted to the current CPU clock, aiming at constant 400kHz i2c clock. * Reduced number of port accesses (accessing GPIO is very slow, especially with the atomic boolean instructions) by implementing an open-collector-like behaviour. * Time-critical functions implemented in assembler.
New crossfeed complete with no volume reducing bugs. Feedback on all the new options is appreciated. Thanks to Dan Everton for the settings/GUI code.
Coldfire: More appropriate condition for the refresh timings.
iPod: Enable dynamic CPU frequency changing on the 4G (both greyscale and colour) and the first generation mini
iPod mini 2G: Use iPod 4G button driver instead of special minin 1G code. Buttons working now, rockbox no longer hangs at boot.
Better sound quality on the iAudio X5 using the correct MCLK frequency
iAudio: working PLL settings
More sane define checking. To disable cpu boosting on ipods, just commenting out the HAVE_ADJUSTABLE_CPU_FREQ line in the config-ipodxxxx.h file will work now.
We need to allow set_cpu_frequency in the bootloader for adjustable CPU freq targets. Fixes red build.
Remove tabs...
CPU boosting support for ipod nano and video. The rest of the targets are either untested or do not work with the current code.
Remove tabs...
Add timer.c module support for ipods. Remove uneeded SIMULATOR check. Introduce TIMER_FREQ define.
Patch #3060 from Andrew Scott - iPod mini button driver
iPod 3G - initial (completely untested) attempt at audio support
More iPod 3G work from Seven Le Mesle
Further iPod 3G work from Seven Le Mesle
Added empty fiq routine for iFP.
Oops - fix red iPod bootloader build
iPod: Fix the detection of lcd type for the iPod Photo - this should fix problems with that LCD. Affected users also need to install a new bootloader - available from the iPod Installation wiki page.
made UIE for iPod common to all ARM targets
Removed PP5020_ prefix from register defines and added/renamed some defines.
UIE handler for ARM/iPod. Currently does not support interrupts. Will probably also work for other ARM based targets, like iFP.
Work-in-progress iriver iFP-7xx port by Tomasz Malesinski
iPod: Fix the bootloader so it can load and run the original Apple firmware again. The Rockbox firmware was doing too much to the hardware so we remove most of the initialisation.
New target - iPod Video.
Raise iPod CPU frequency and enable cache and add function needed for button driver.
Button and click wheel driver for iPod 4g and Nano.
Add interrupt handler for iPod. Add timer tick support. Remove temporary thread sleep solution. Remove temporary iPod current_tick solution.
H300 max CPU frequency is now back to 124MHz
Temporarily set the max CPU frequency to 90MHz on the H300
More iPod changes
iPod: Code cleanup - the bootloader now compiles with zero warnings
SH1: Changed UIE() to use the same reset method as on coldfire, using the watchdog timer. Should be more reliable this way. Disabled LED handling and added reboot-with-on for Ondio. * All: #ifdef cleanup in panicf(), added reboot-with-on for Ondio.
Initial commit of work-in-progress iPod port
System reboot from UIE() now works in all cases, even from a debug interrupt (memory guard).
Coldfire: The memory guard configuration routine didn't correctly return the old mode when setting a new one.
Coldfire: Properly handle the SDRAM refresh timing on CPU frequency changes. For >= 92 MHz operation, tRC needs to be 6 clocks, otherwise 3 clocks are sufficient.
Removed unused variable.
Coldfire: (1) Keep the correct CRSEL and CLSEL values in the PLLCR register for CPUFREQ_DEFAULT. Fixes non-working treble & bass controls in radio screen. (2) Save a bit more power by powering down the PLL at CPUFREQ_DEFAULT.
Iriver: No write protection for flash ROM area, correct number of waitstates.
Ported the memory guard debug feature to coldfire, using the breakpoint logic. There are 3 shortcomings compared to SH1: (1) While the setting itself survives RoLo, it cannot be read back because the debug module programming model is write only. (2) system_reboot() from a 'Debug' exception doesn't work because the CPU enters emulation mode, and the only way leaving this mode is via an rte instruction. (3) (fixable) Catching write accesses to the flash doesn't actually do anything because the flash memory area is set write protected in CSMR2, so a write attempt stalls the bus. * Cosmetic changes in system.c
Coldfire: New timer handling on CPU frequency change, adjusting the prescaler on the fly, for both tick and user timer. Precondition is that the higher frequencies are integer multiples of the base: now NORMAL is 45 MHz and MAX is 124 MHz. Removes the need for applications with longer timer periods (>= 10 ms) to boost the CPU all the time, e.g. the grayscale lib. Timer counts are now always based on the base frequency (CPU_FREQ). * Adjusted the RAM refresh timers to the new frequencies (all frequencies for H100) * All: Fixed the tick timer count being off by one.
Moved the system_reboot() call to the correct place
Call system_reboot() instead of rolo_load() in the UIE handler
iriver: Moved the I2C prescaler setting to i2c_init(), and removed it from set_cpu_frequency(). The Coldfire I2C controller can't handle on-the-fly prescaler changes. Also removed the unnecessary slave address setting in i2c_init.
Added CPU_COLDFIRE define - one step closer to iAudio-port
iriver: Reduced LCD write cycle length to 65ns, almost halving the execution time for lcd_update, from 1.8ms to 1ms in 120MHz
iriver: Adjusted to optimal I2C bit rates
Removed an extra semicolon
Adjusted refresh timer for H110
(1) Set cpu to 11 Mhz when we "crash" to prevent overheating. (2) Bind the ON button to reboot when we are in the crashed state.
New power-conserving CPU idle mode
Initial support for iriver backlight dimming. Unfortunately dimming remote control's EL-backlight is not possible.
ColdFire: DCR is a 16-bit register
Added system_reboot() for iRiver
Wrong setting of AUDIOSEL caused double pitch 120MHz playback
I2C clock settings and ATA timing for iRiver
Dedicated CPU frequency debug screen for CPU's with PLL
iRiver: Increased the max CPU frequency to 120MHz
gmini: variable CPU frequency
Added new coldfire assembly LPC decoder routine to libFLAC. Added clear accumulator policy.
Adjustable CPU frequency for iRiver
fixed setup of the gmini GPIO
Gmini SMSC chip improvements
Gmini * advances in the handling of the smsc chip * moved stuff to where it belongs
Gmini work: * Better USB * Better comments * Better coding style
better PLL support & slight fix (probably in keepalive handling)
Variants for gmini dma transfers
provide system_memory_guard() and system_reboot() dummies for coldfire target
Some more gmini hw support
Button driver overhaul: (1) Unified the button driver functions as much as possible (2) Proper #defines for FM recorder button ADC channels (3) Got rid of old port B #defines only valid for recorder (4) button filtering for all models (5) RoLo with ON after panic should now work for FM/V2
Correct handling of unhandled exceptions for coldfire
Coldfire: the timers can only be autovectored, let's put the tick timer at level 3
Ported interrupt vector handling to Coldfire
Bus controller inits are valid for all models. Corrected WCR1 init according to the datasheet (dontcare bits shall be written as 1)
Properly initialize the bus controller for Ondio as well. Fixes coldstart from flash on Ondio SP, both classic and RomBox