Parent Directory
|
Revision Log
| Links to HEAD: | (view) (download) (annotate) |
| Sticky Revision: |
Move Clip specific power management stuff (specifically the battery discarge curve) to powermgmt-clip.c
Move tcc77x/usb-tcc77x.c to usb-tcc.c as it is more general than just tcc77x (even usb-tcc is too specific, but I don't know anything better) Add #if0ed USB defines to config-cowond2.h, so experimenting with USB is easy Add dummy set_serial_descriptor() implementation to usb_core.c. This one doesn't generate a unique serial, so it must never be used for non-testing purposes. When usaed, a compiler warning will be generated
Sansa Clip: grey lib support (not calibrated yet) Declare HAVE_LCD_INVERT Put the framebuffer into IRAM
Add software backlight fading for E100/H300/X5/D2, by Thomas Martitz and others - see FS#6800 for credits.
Sansa AMS: Use DMA for SD transfers (read and write)
Add more driver stubs to make the Fuze and e200v2 main builds compile; Correct the memory definition for the Fuze (8MB)
make the meizu bootloaders compile again with the new storage infrastructure
Sansa AMS: use the AS3514 ADC driver Move the ADC defines to as3514.h, and make adc-target.h only include as3514.h Implement the missing API (ascodec_readbytes, ascodec_(un)lock) Revert the changes to the PP-specific arm/ascodec-target.h in r19073, use a AS3525 specific ascodec-target.h while moving the AS3514 specific code in export/as3514.h
AMS Sansa (formerly 'V2') use the as3514 RTC
Fix Clip firmware building by adding missing symbols Implement some of the new functions Use as3514 rtc Add AS3525 case in rolo.c Copy card_get_info_target() from ata-sd-pp.c , and use the correct 32bits words order
"mv m200v2 m200v4"
AS3525: use kernel_init() in bootloader This way creation of scrolling thread doesn't risk crashing the system
Onda VX747: * Commit (premature) SD, USB & audio drivers * Fix ramdisk.c mistake * Add battery readout
Add ramdisk storage driver. It will be useful for developing multi-driver storage
put stubs in the proper place
add proper dummy storage implementation for sims
implement single-driver storage layer with macros instead of inlines
Unify the e200v2 and Fuze backlight/buttonlight code - it is identical.
Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do that, it also introduces sd_*, nand_*, and mmc_*. This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD).
Add Sansa Fuze to the build system, including a first (untested) attempt at an LCD driver. Lots of things are just copied from the e200v2, so this code needs testing, and then drivers properly merged if they prove to be the same.
Clip: add backlight and buttonlight code Revive lcd_enable() as well, and use it in _backlight_on/off() Don't update the lcd framebuffer if the display is off
cleanup storage defines
Abstract the PortalPlayer AS3514 handling with an "ascodec" API - inspired by the wmcodec API used with the Wolfson codecs. The intention is to implement this API for the AS3525 and then share code with the Sansa V2 ports.
Embryo of a SD driver for Sansav2 Debug code included, needed until the bootloader is ready
Move kernel tick initialization and handling to the target tree for ones remaining in kernel.c
e200v2: implement the backlight handling (copy/paste from the c200v1/e200v1 code - this should probably be unified, along with other upcoming v2 code), plus clean up the lcd init by calling lcd_init() directly in the bootloader, instead of lcd_init_device().
FS#9503 - Sansa v2 audio/PMU communication driver (for the AS3525 SoC)
Add e200v2 and m200v2 targets. Move the telechips lcd-ssd1815.c (currently used by Logik DAX and m200v1 ports) driver up in the target tree and share with the m200v2 - as2525 parts contributed by Rafael Carre. Includes the start (but is still very incomplete) of an LCD driver for the e200v2. m200v2 is not yet fully supported by mkamsboot - that will come soon. Also some minor cleanups for the Clip.
Make the meizu m3 load from flash, so interrupts work. More work is needed to get the m6sl "working" again (patch by Denes Balatoni, FS#9499)
Split id3.c/h into metadata.c/h and metadata/mp3.c. Updated all references. Moved mp3data.c/h from firmware to apps.
Moved pcm_record from firmware to apps. Cleaned up some. Now all code using struct mp3entry is in apps.
Rename the clip directory to sansa-clip to be consistent with the first (PortalPlayer) Sansa ports
Commit FS#9467 - initial work on port to Sansa Clip by Rafaël Carré and François Dinel. A few cosmetic changes were made by me prior to committing: 1) TAB policing in button-clip.c; 2) Add François Dinel to CREDITS; 3) Add François Dinel as (C) holder in button-target.h (it was previously blank); 4) Add Rockbox header to bootloader/sansa_as3525.c with Rafaël Carré as (C) holder; 5) Change target_id to 50 (next available number) in tools/configure and fixed indentation; 6) Change MODEL_NUMBER in config-clip.h to 50 (next available number); 7) Remove unused in/out macros from system-target.h
Move the S5L8700 (Meizu) crt0.S file up one level - it can be used as a generic ARM crt0.S (the uncommitted patch for the Sansa V2s uses it).
Moved id3.c, mpeg.c and replaygain.c from firmware/ to apps/. This is the first step in separating the generic metadata code and the id3-specific code.
Trivial changes to make the main Rockbox builds for the Sansa m200 and Logik DAX ports compile. Note that some codecs are currently disabled (due to lowmem on these targets), but that needs more work and analysis to decide how much RAM we want to allocate to codecs.
add Meizu M6SP and M3 ports
Make Ondio builds without multivolume and hotswap support compile again (only relevant for testing purposes).
* move qt1106 specific things to their own files * use CHANGE pin
Initial commit of iaudio 7 port by Vitja Makarov (FS#9245). Port is at quite an advanced stage, but is troubled by the lack of a reliable NAND driver (similar to the Cowon D2 port) and is not yet suitable for non-developers.
Add Onda VX767 target
Onda VX747: * Overall cleanup (still needs work) * Add preliminary USB support * Add power off support * Add preliminary MMU handling
* Get interrupts working (but crashes after 10-30secs) * Make current_tick increase * Convert button driver into SADC driver * Make touchscreen handling work better (still needs good calibration routine)
* Add interrupt handling (but still not working) * Clean up linker script and bootup routines
Update the Telechips NAND driver to use the nand_identify() function introduced in r18052.
Onda VX747: 1) Improve touchscreen handling 2) Add RTC driver 4) Add NAND Flash ID scanning 3) Other minor fixes Nand_ID: Add a generic NAND ID database (currently only containg Samsung chips)
Add preliminary support for the Onda VX747 (MIPS target)
Make the TCC780x NAND driver also build for 77x targets. This is work-in-progress stuff and does not yet work fully on 77x, but it's a step in the right direction. Also replace some magic numbers with #defines.
initial Meizu M6SL port (take 2)
My Devcon 2008 contribution: port for Philips GoGear HDD1630 (PP5022-based). Current status is that the bootloader works to load Rockbox, but dual boot does not work: it freezes after decrypting the OF. When Rockbox boots, it freezes somewhere between showing the logo and the main menu. And there's no driver for the touchpad. So lots of work left.
Initial D2 sound playback support (known issues to follow on the CowonD2Info wiki page).
Add the Sansa c100 as a build target with basic drivers.
Gigabeat S:
1) Rework event handling and static registration mechanism. No target-
specific code in mc13783 driver. GPIO event driver interfaces more
cleanly.
2) Somewhat related - enable thread priority for bootloader which is
desireable here (ffs is used for GPIO event enabling anyway and that
goes along with priority).
Philips GoGear SA9200 port. Working bootloader and normal builds, including sound. No touchpad now, buttons limited to using vol+/vol-/power for up/down/select. Rockbox USB is enabled since the OF is MTP only...read the warnings on the PortalPlayerUsb wiki page.
1) Use a separate config-<target>.h for Zen Vision(:M) (60GB) 2) Other unrelated cleanups
Preparing for the Philips SA9200 part 1. Move the Sansa ADC & ATA drivers up one level.
Gigabeat S RoLo: Properly execute firmware copy from an IRAM stub because the currently running image was being overwritten in place. Minor tweak to rolo.c based on imx31 errata sheet about not masking FIQ without masking IRQ which is fine to use on all ARM anyway.
Split up DMA and ATA, but don't enable it (yet).
1) add support for ata-as-arm 2) remove obsolete audio-creativezvm.c 3) fix registers in i2c-dm320.c
Add the Sansa M200 (v1) as a target - it's extremely similar to the Logik DAX (the LCD driver worked unchanged). Plus various tcc77x work, including a working tick interrupt (enabled in the bootloader). Rockbox itself builds for the M200 (there are no keymaps yet for the DAX), but doesn't progress very far due to the lack of an ATA (NAND flash) driver.
get rid of the last mr500 yellow (again :p )
add more registers for the tsc2100 hopefully working volume control, mute definatly works.
Gigabeat S: Implement i2c driver - transmit works but no testing of receiving which will get a chance later. Add some seeds for codec driver. Correct a few #defines.
Move the Telechips TCC77x SSD1815 LCD driver up a level in the target tree - it isn't specific to the DAX.
- change the usb class driver framework to allow for device classes with more than one interface or more than one endpoint pair - move the charging-only dummy driver out of usb_core
Commit whole Creative Zen Vision:M target tree + all related firmware/ changes.
Add a PMIC-based RTC driver for Gigabeat S.
A few preparations for the D2 PCM driver: move driver up to TCC780x level, move FIQ handler into PCM driver, add some new register defines, and remove those goddamn warnings.
UMS for the Gigabeat S. Bootloader USB mode. Has a couple quirks 1) First plug has problems if cold. Replug if it doesn't connect or not at high speed 2) Linux doesn't like the odd bootable flag value used in the partitions so it won't mount but Windows works. Fix minor OTG driver bugs and clean up device memory handling. Generic name for ARC controller driver.
Add GPIO manager. Get the PMIC interrupt handling working (along with power button and HP detect). Add some reg field defined instead of using raw numbers. Add PMIC info to debug ports screen. Refine PMIC driver ops a little bit.
Add a "View I/O Ports" screen for imx31. Show all GPIO contents.
Serial driver for imx31. Perhaps not 100% but maybe 80-90% (future developments will tell). Factor-out the mc13783 stuff and make that driver a layer above the SPI. TODO: start processing PMIC interrupts. Start a clkctl API for imx31 (we'll see if this sticks around but it seems reasonable here). Misc. stuff for convenience/neatness.
Make the greyscale library work on the m:robe 100. Testing on target done by Robert Kukla & Dominik Riebeling.
Iriver remote LCD driver: * Split out assembler parts. * Reintroduced the 2 transfer routine variants (low/high CPU clock), and made the version for high CPU clock a little slower because there were problems reported. The function can be slowed down more if there are still problems.
D2: Adjustable backlight brightness (sometimes fails when boosted, suggests I2C timing needs adjustment). Tweak lcd_enable() to behave more like other targets.
Split out the PCF5060x register defines into a common header and create a generic pcf50606.c using standard i2c read/writes.
Fix red and clean up meg-fx firmware sources. Remove an unused file.
Revert "initial Meizu M6SL port" This reverts commit b7bd17ce1715c3a8acbf74a63694c28b6075da5b.
cleanup some ifdefs
initial Meizu M6SL port
use HAVE_ATA to decide if ata.c should be compiled
Back-ported the iAudio remote LCD driver optimisations to X5 and M5.
iAudio M3: Optimised LCD driver, with more/better assembly code. Speedup is ~80% when boosted, ~15% when unboosted. Also implemented grey phase blitting. * Adapted the greyscale library, and the plugins using it. * Fixed a bug in greyscale scroll down for vertically packed pixels.
Revert accidental tree commit. /me needs a smaller enter key...
Cabbiev2 gigabeat background: reduce WPS backdrop filesize by storing it as 24 bit BMP instead of unnecessary 32 bit.
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.
D2: Implement LCD driver framebuffer as per E200/Gigabeat F. Kill a few warnings.
iAudio M3: ADC driver, making buttons and battery voltage reading work. * Disable the multi-colour LED for now to save power. Proper handling will be added later. * Make reboot on button press work on iAudio X5, M5, M3 in panicf(), and on M3 in UIE().
Implement the playback event handling as a system-wide multi-purpose event system. Unified mpeg.c and playback.c audio event handling. Converted ata_idle_notify to use the new event handling system also.
More iAudio M3 work. Target build compiles, but same problem regarding plugins as the simulator. Boots to the menu, but it can't be used yet because only main & remote Play button work. USB works.
Make ATA work on M3.
More iAudio M3 work. Bootloader compiles, but doesn't work yet.
Move some sh specific assembler files into the target tree
remove usb_benchmark. Its usefulness is extremely limited, and the usb stack around it is moving fast, so it's likely to suffer from bit rot very soon.
move the ifp7xx usb serial driver files to more specific names, to make the "usb_serial" name available for more general usb class driver use
revert done
FS#8611: move hw_info for pp targets into target tree
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.
mrobe 100: real time clock (if anybody recognises the RTC chip let me know)
H10 20GB: Assembly YUV blitting and dithering.
Initial Cowon D2 commit: * bootloader test program (basic LCD & button drivers, reads touchscreen) * work-in-progress stubs for main build
- share adc reading code between h10 and mrobe100 - battery voltage calibrated and used for mrobe100
Greyscale ipod lcd driver: * Assembler optimised low level functions. PP5002 targets benefit most (lcd_update() speedup >50%, and the greyscale overlay no longer makes mp3 playback skip). * Consistent brace placement style.
Initial commit for the Olympus m:robe 100 port (PP5020). The LCD driver works. The ADC driver was copied from the H10 port (they can probably be combined later), but the battery readings aren't right and it shuts down. The touch pad buttons do not work. Install the bootloader and rockbox the H10 way. Still lots of work to do.
Gigabeat S memory management stuff. * 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)
Gigabeat S now uses the shared ARM MMU code rather than the (mostly duplicated) private code. No functional change.
Add a working serial driver to usb stack. At the moment it simply echos back what it gets. You can test it on linux by 0) change relevant defines in usb_core.c 1) modprobe usbserial vendor=0x0781 product=0x7421 debug=1 2) picocom /dev/ttyUSB0 3) look at your logf screen if you build with logf support and enabled LOGF_ENABLE define in usb_serial.c I also modified usb_core so that storage and serial both can make use the the 'usb_core'-thread. More will come :)
Removed a little too much.
New USB stack
* dont compile audio codec drivers for bootloader, as we dont need them -> saves time * dont include uda1380 in bootloaders * fix to get rid of a nasty humming sound during is not uda1380 specific but iriver specific and so put the fix into the bootloader. An other option was to put audiohw_reset() into target tree... but i want to get rid of audiohw_reset
m:robe 500i: Add DSP code to SOURCES
Make speex the new voice format for SWCODEC targets (non-Archos). Remove codec swapping and build speex voice decoding directly into the core binary.
Seperate the Gigabeat F/X crt0.s, cleanup some #ifdefs in app.lds, add an extra reg to the debug menu.
FS#8046: H10 FM tuner support. Thanks to Przemyslaw Holubowski for doing the hard work in figuring out how to communicate with the tuner.
Fix the Gigabeat red and move it's hw specific code into the target tree
Change the way the UART recieves data and how buttons pressed are processed. Also move some of the debug menu into the target tree and allow rockblox to build when the screen is rotated.
Split radio i2c drivers into target tree where they belong. No changes to binaries produced.
Button driver for Logik DAX, plus some changes to the debug info displayed in the bootloader build.
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.
Unify the Gigabeat F/X and M:Robe MMU code while enabling it for the M:Robe
Assembler optimised lcd_yuv_blit() for iPod Video (Fs #7951 by Andree Buschmann, adapted and separated into an .S file by me).
More M:Robe work including a fix to lcd-as-memframe for larger screens thanks to Michael Sevakis. Also fixes simulator builds.
c200: First implemention of lcd_yuv_blit(). mpegplayer works now, but speed can be optimized more and dithering is not yet implemented.
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.
Split wm8731 and wm8721 drivers. wm8721 can be much simpler since it has no recording. Provide reg bit definitions for those. Add some temporary hacks pcm-pp to prevent crashing when playing after recording. Make playback start after recording on pp5020. Get wm8731 to monitor recording but plans are to do that digitally.
spi is shared between the rtc and tsc2100 adds the very begining of the rtc driver (only reads the time currently
Move some more files
Move some more files around and get the main build compiling
I got bullied in IRC by linuxstb and markun...
Anti-red?
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.
Dithering option for mpegplayer on gigabeat-f/x and e200. Assembly IDCT for ARm just to make it all work more nicely. Move UI simulator YUV code to its core to adapt it.
start of the tsc2100 driver.
Seperate M:Robe crt0.S, fix the vector tables for the bootloader, and show touchscreen values on single line.
A few minor cleanups for the Gigabeat S
Merge the Gigabeat S branch back into trunk. Fingers crossed nothing breaks.
m:robe 500i port: Add primitives for the SPI bus and start moving toward new-style register definitions.
uart driver (which the buttons need) and button test code in the bootloader
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.
* implement strstr * clean up usb_arcotg_dcd_enable
Accept patch in FS#7751 by Catalin Patulea, move ifp port specific pcm code to a new file