Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



whenwhatwherewho
12th Feb 20:56 8ff1b6b: Remove FF_CREAT and FF_EXCL flags in from file code.

These flags aren't stored for an open file because they're simply actions for open() to take, corresponding to O_CREAT and O_EXCL. Just pass the oflag argument along to the deeper call, with some minor filtering.
firmware/common/file.c [diff]
firmware/include/file_internal.h [diff]
Michael Sevakis
12th Feb 06:13 dc22522: Tweak a few tagcache things.

* Take out pointless dircache_search; nothing can be reconstructed with the given info in find_entry_ram(); don't even try there. Path AND index id must be known. Work it out later.

* Timed yield must be far more often than once every 1/4 second (?!)

* Do better the memory-remaining checks for ramcache load.

* Root separator mustn't be doubled up when searching files.
apps/tagcache.c [diff]
Michael Sevakis
12th Feb 19:28 0a9f717: xworld: fix several horrendous bugs

- unregisters timer on exit, preventing possible crash
- disables synchronization mechanisms when used from an IRQ
- prevents memory allocations from overflowing the audio buffer (unlikely)
apps/plugins/xworld/sys.c [diff]
Franklin Wei
12th Feb 19:26 e4a04fa: xworld: get rid of annoying warning
apps/plugins/xworld/engine.c [diff]
Franklin Wei
11th Feb 23:15 eaf6aad: Forgot to remove unused RDS buffers from the ipod remote tuner.

Also, use rds_reset() now to clear data on station change since the rds driver internal buffers are used.
firmware/drivers/tuner/ipod_remote_tuner.c [diff]
Michael Sevakis
11th Feb 22:16 523ef4e: Fix warnings and errors from fc9695e

* fmradio.c needs an implementation of tuner_get_rds_info() for the sim (kill all the sims).

* Some macro bitflags shouldn't be seen unless HAVE_RDS_CAP is defined.
firmware/drivers/tuner/si4700.c [diff]
uisimulator/common/fmradio.c [diff]
Michael Sevakis
30th Jan 08:52 fc9695e: Improve radio RDS driver and framework

* Remove unused bits like the radio event and simplify basic radio interface. It can be more self-contained with rds.h only required by radio and tuner code.

* Add post-processing to text a-la Silicon Labs AN243. The chip's error correction can only do so much; additional checks are highly recommended. Simply testing for two identical messages in a row is extremely effective and I've never seen corrupted text since doing that, even with mediocre reception.

Groups segments must arrive in order, not randomly; logic change only accepts them in order, starting at 0.

Time readout was made a bit better but really we'd need to use verbose mode and ensure that no errors were seen during receiving of time and more checks would be need to have a stable PI. The text is the important bit anyway.

* Time out of stale text.

* Text is no longer updated until a complete group has been received, as is specified in the standard. Perhaps go back to scrolling text lines in the radio screen?

* Add proper character conversion to UTF-8. Only the default G0 table for the moment. The other two could be added in.

* Add variants "RDS_CFG_PROCESS" and "RDS_CFG_PUSH" to allow the option for processed RDS data to be pushed to the driver and still do proper post-processing (only text conversion for now for the latter).
apps/debug_menu.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/radio/radio.c [diff]
firmware/drivers/rds.c [diff]
firmware/drivers/tuner/ipod_remote_tuner.c [diff]
firmware/drivers/tuner/si4700.c [diff]
firmware/export/config.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/config/ipod4g.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/ipodcolor.h [diff]
firmware/export/config/ipodmini1g.h [diff]
firmware/export/config/ipodmini2g.h [diff]
firmware/export/config/ipodnano1g.h [diff]
firmware/export/config/ipodnano2g.h [diff]
firmware/export/config/ipodvideo.h [diff]
firmware/export/ipod_remote_tuner.h [diff]
firmware/export/rds.h [diff]
firmware/export/si4700.h [diff]
firmware/export/tuner.h [diff]
firmware/target/arm/as3525/fmradio-i2c-as3525.c [diff]
firmware/target/arm/imx233/sansa-fuzeplus/fmradio-i2c-fuzeplus.c [diff]
firmware/target/arm/imx31/gigabeat-s/fmradio-i2c-gigabeat-s.c [diff]
firmware/target/hosted/samsungypr/radio-ypr.c [diff]
firmware/tuner.c [diff]
Michael Sevakis
10th Feb 19:10 6436c6e: Fix tagtree from blowing up when its buffer moves

I noticed that after booting with the external storage removed, playing from tagtree, inserting the card, forcing dircache to reallocate from the debug screen, and trying to reenter tagtree, it would data abort because the dircache reallaction to a larger size caused the tagtree buffer to move.

Adjustment to at least one pointer (csi) was missed. Since it's non-trivial there to determine when things should be NULL and when they shouldn't, add check for menu too before moving it. As for the rest, who knows.
apps/tagtree.c [diff]
Michael Sevakis
10th Feb 16:11 f483a07: puzzles: fix makefile producing temporary files in the build directory (sorry!)

- thanks to Michael Sevakis for catching this
apps/plugins/puzzles/puzzles.make [diff]
Franklin Wei
10th Feb 04:44 a4dc244: Fix warnings and errors from 7373cf5

dircache.h has to be included no matter what.
apps/tagcache.c [diff]
Michael Sevakis
18th Jan 03:39 7373cf5: Restore dircache hookup in the database ramcache.

Do a few other changes to dircache and file code flags to accomodate its demands.
apps/playlist.c [diff]
apps/tagcache.c [diff]
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/include/dircache.h [diff]
firmware/include/file_internal.h [diff]
Michael Sevakis
9th Feb 21:34 abd75a1: puzzles: fix up makefile
- rewrote a bunch of repetitive rules with a pattern rule
apps/plugins/puzzles/puzzles.make [diff]
Franklin Wei
2016-02-05 882921e: ipod6g: bootloader v1

- dual boot
- USB mode
- battery trap
bootloader/SOURCES [diff]
bootloader/ipod6g.c [new]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/boot.lds [diff]
firmware/target/arm/s5l8702/crt0.S [diff]
Cástor Muñoz
7th Feb 18:25 0d0b163: Slightly increase CVDD1 for Clip Zip
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
7th Feb 01:45 e5042fd: Add some comments about the behavior of a couple path functions.

Critical reminders about the reasons path_dirname() and path_basename() do certain things with a given kind of input and how to interpret them.
firmware/common/pathfuncs.c [diff]
Michael Sevakis
6th Feb 02:20 72dc239: Make sure dircache resolves outstanding references on volume root.

If a volume root was open at the beginning of a build, its dircache reference wouldn't be resolved on an already open volume root directory because the call to do it was simply omitted. Nothing horribly bad unless a root were opened at mount time and kept open long term.
firmware/common/dircache.c [diff]
Michael Sevakis
6th Feb 01:25 29c493d: Fix a bug in disk.c that really wasn't affecting anything.

volume_onmount_internal() was being given the next volume to mount instead of the one just mounted. Only dircache was being notified for now, which always attempts to scan everything that needs to be rebuilt, currently making the volume parameter value immaterial.

Put things in the right place and also set the disk sector multiplier before notifying anybody of the new volume.
firmware/common/disk.c [diff]
Michael Sevakis
15th Jan 23:10 d787191: Fix dangerous casts

On Windows 64-bit, the size of long is 32-bit, thus any pointer to long cast is not valid. In any case, one should use intptr_t and ptrdiff_t when casting to integers. This commit attempts to fix all instances reported by GCC. When relevant, I replaced code by the macros PTR_ADD, ALIGN_UP from system.h
apps/gui/skin_engine/skin_parser.c [diff]
apps/misc.c [diff]
apps/plugins/doom/d_deh.c [diff]
apps/plugins/doom/d_main.c [diff]
apps/plugins/doom/p_saveg.c [diff]
apps/plugins/doom/z_zone.c [diff]
apps/plugins/goban/util.c [diff]
apps/plugins/lib/simple_viewer.c [diff]
apps/plugins/lib/strncpy.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/mikmod/mikmod_internals.h [diff]
apps/plugins/solitaire.c [diff]
apps/plugins/zxbox/snapshot.c [diff]
apps/plugins/zxbox/tapefile.c [diff]
apps/plugins/zxbox/z80.c [diff]
apps/recorder/keyboard.c [diff]
apps/tagcache.c [diff]
firmware/asm/memset16.c [diff]
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/kernel/queue.c [diff]
firmware/target/hosted/filesystem-win32.c [diff]
lib/rbcodec/codecs/liba52/bitstream.c [diff]
lib/rbcodec/codecs/libtremor/codebook.c [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/tlsf/src/tlsf.c [diff]
Amaury Pouly
14th Jan 00:40 1245c5f: Implement speaker enable/disable on jack (un)plug

The implementation is not very complicated but there are a few things worth noting. There was a previous "speaker enable" setting but it was a boolean. I decided to replace it with a choice setting that has 2 options (on, off) if headphones cannot be detect on this target, or 3 options (on, off, auto) if we can detect headphones. This will break the old setting on target that cannot detect jack but it makes the code more uniform and avoid maintaining two settings with more #ifdef. The third option (auto) uses the LANG_AUTO text, which I think is clear enough (disable speaker on jack plug). In order to avoid code duplication (both in apps and firmware), I decided to keep the audiohw_enable_speaker function as-is: it takes a boolean and doesn't care about the speaker policy. I introduced a new audio_enable_speaker that takes directly the mode (which follows the setting encoding): 0=off, 1=on and 2=auto. This way one calls audio_enable_speaker and it changes the speaker once to reflect the request mode. The apps code then uses this function in the places where it makes sense: on setting load, setting change and jack (un)plug event.
apps/audio_path.c [diff]
apps/menus/sound_menu.c [diff]
apps/misc.c [diff]
apps/plugin.h [diff]
apps/recorder/recording.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/audio.h [diff]
Amaury Pouly
28th Jan 16:19 d052f13: nwztools/script: fix dump_rootfs.sh to handle ext4
utils/nwztools/scripts/dump_rootfs.sh [diff]
Amaury Pouly
27th Jan 17:21 2ea0ccb: regtools/qeditor: replace deprecated QStyleOptionViewItemV4

...by QStyleOptionViewItem. Yes Qt got it right, in 5.7 they deprecated QStyleOptionViewItemV4 and recommend using QStyleOptionViewItem which contains less fields except on newer Qt where it contains all fields. Hopefully it still works on Qt>4.x for a large enough value of x.
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
26th Jan 20:54 2a3a6bb: regtools/qeditor: compute RAM size
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
Amaury Pouly
26th Jan 20:31 fa5324b: regtools/qeditor: enable imx233 analysers for imx233

The clock structure is identical, and the EMI are the same. Also fix SSP clock, it was broken on imx233 as well.
utils/regtools/qeditor/std_analysers.cpp [diff]
Amaury Pouly
26th Jan 20:30 fafb770: regtools/soc_desc: fix bug in library

Because a node ref is at root doesn't make it valid, check that soc is valid otherwise we return garbage.
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
26th Jan 14:26 6f0f119: regtools: add new tool list/find/describe registers
utils/regtools/Makefile [diff]
utils/regtools/regtool.cpp [new]
Amaury Pouly
25th Jan 13:33 c156c5f: zen/zenxfi: adjust maximum emi voltage

Running at 130MHz is unsafe since on those targets, we disable memory frequency scaling because it is unstable. That leads to situation where cpu is running at 64MHz and VDD is at 1.050V. But on STMP3700, the EMI uses the VDD rail instead of a dedicated VDDMEM rail as on STMP3780. Thus we are essentially running the EMI at 130MHz at 1.050V when the minimum recommened voltage is 1.2V. This commit runs the EMI at 64MHz all the time on the ZEN and ZEN X-Fi which will lead to reduce performance but hopefully increases stability.
firmware/target/arm/imx233/system-imx233.c [diff]
Amaury Pouly
25th Jan 11:07 baec807: zenmozaic: adjust button voltage

The values were recorded for VDDIO at 3.46V and not 3.5
firmware/target/arm/imx233/creative-zen/button-zen.c [diff]
Amaury Pouly
25th Jan 11:06 501e8a7: imx233: remove weak attribute on some functions

This feature was never used and it is not even working because weak linking doesn't work in-between files in a library.
firmware/target/arm/imx233/audio-imx233.c [diff]
firmware/target/arm/imx233/audio-imx233.h [diff]
firmware/target/arm/imx233/button-imx233.c [diff]
firmware/target/arm/imx233/button-imx233.h [diff]
Amaury Pouly
4th Feb 15:30 96a7603: nano2g: fix dangerous mutex in hold switch

This is a quick patch to solve FS #13104, we can not disable the clickwheel LDO from within interrupt code, so for the moment we leave it enabled all the time, it is unknown how power comsumption is affected when the hold switch is locked.
firmware/target/arm/ipod/button-clickwheel.c [diff]
Cástor Muñoz
25th Jan 18:34 248bff5: Improve code for gmtime_r()

Unlike the current code, it does no looping to count days or do table lookups, which means running time doesn't increase with year or month. A good thing if it's call a lot, especially if the algorithm were asked to compute dates centuries or more from the epoch start.

As a bonus, handles negative time values.
firmware/libc/gmtime.c [diff]
Michael Sevakis
2nd Feb 15:06 4d4b0c5: In queue_wait_w_tmo, guarantee wait duration

It is possible to have a thread awoken and subsequently the message that was placed in the queue has been removed by the time the thread is able to check the queue. Ensure theads that failed to find a message do not return prematurely.

It was at worst imprecise when a timeout is specified. It's entirely incorrect if the function ever returns with SYS_TIMEOUT when using TIMEOUT_BLOCK.
firmware/kernel/queue.c [diff]
firmware/kernel/thread-internal.h [diff]
Michael Sevakis
31th Jan 03:28 1fa7c56: Fix for Chessbox bug FS #10363

Chessbox was overflowing GameList[240] causing the board to flip + crash

GameCnt changed to unsigned char which allows the array to roll over to 0 after 255

define MAX_GAME_CNT 256 and GameList[MAX_GAME_CNT] along with 1 byte GameCnt should fix this issue

dbg save routine left in for now to help identify any other problems

Added bounds checking to prevent second bug found when loading .pgn files
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/chessbox/gnuchess.c [diff]
apps/plugins/chessbox/gnuchess.h [diff]
William Wilgus
31th Jan 00:07 37522ec: Remove Whitespaces from chessbox

Remove 1616 Whitespaces from chessbox
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessbox/gnuchess.c [diff]
apps/plugins/chessbox/gnuchess.h [diff]
apps/plugins/chessbox/opening.c [diff]
William Wilgus
29th Jan 18:50 324ad24: i.MX31: Restore screen clearing in DVFS/DPTC debug screen

Somewhere along the line the screen stopped being cleared prior to writing new text on each frame, which left visible bits of previously-displayed text when it changed.
firmware/target/arm/imx31/debug-imx31.c [diff]
Michael Sevakis
28th Jan 13:43 2220a4b: Improve imx31 interrupt code for PMIC and GPIO

Fix stuff that was bugging me about the way I did it at first.

While messing around I found RDS code wasn't masking its GPIO ISR as it should, which might lead to two different interrupts messing with the static data.
firmware/SOURCES [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/mc13783.h [diff]
firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c [diff]
firmware/target/arm/imx31/gigabeat-s/adc-target.h [diff]
firmware/target/arm/imx31/gigabeat-s/button-gigabeat-s.c [diff]
firmware/target/arm/imx31/gigabeat-s/button-target.h [diff]
firmware/target/arm/imx31/gigabeat-s/fmradio-i2c-gigabeat-s.c [diff]
firmware/target/arm/imx31/gigabeat-s/gpio-gigabeat-s.c [deleted]
firmware/target/arm/imx31/gigabeat-s/gpio-target.h [diff]
firmware/target/arm/imx31/gigabeat-s/headphone-gigabeat-s.c [diff]
firmware/target/arm/imx31/gigabeat-s/mc13783-gigabeat-s.c [deleted]
firmware/target/arm/imx31/gigabeat-s/mc13783-target.h [diff]
firmware/target/arm/imx31/gigabeat-s/power-gigabeat-s.c [diff]
firmware/target/arm/imx31/gigabeat-s/power-gigabeat-s.h [diff]
firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c [diff]
firmware/target/arm/imx31/gpio-imx31.c [diff]
firmware/target/arm/imx31/gpio-imx31.h [diff]
firmware/target/arm/imx31/mc13783-imx31.c [diff]
Michael Sevakis
7th Jan 00:41 d4303ac: sd-as3525v2: simplify logic and cleanup

Remove "low power mode clocking" as we stop clocking by hands after each transfer. Remove CGU_IDE and CGU_MEMSTICK as we don't use them. Simplify logic in sd_transfer_sectors.
firmware/target/arm/as3525/sd-as3525v2.c [diff]
Mihail Zenkov
25th Jan 18:32 58b849c: Move intrinsic RTC implmentation differences to driver files

Some drivers set tm_wday just fine and do not need it coerced to be correct. Others set tm_yday, so don't overwrite what the driver sets; just zero it inside if it can't fill the field. Move calls to set_day_of_week() to the sorts of drivers that presumably required the hammer (FS #11814) in get_time() where the weekday isn't locked to the date.
firmware/common/timefuncs.c [diff]
firmware/drivers/rtc/rtc_d2.c [diff]
firmware/drivers/rtc/rtc_ds1339_ds3231.c [diff]
firmware/drivers/rtc/rtc_e8564.c [diff]
firmware/drivers/rtc/rtc_m41st84w.c [diff]
firmware/drivers/rtc/rtc_mr100.c [diff]
firmware/drivers/rtc/rtc_pcf50605.c [diff]
firmware/drivers/rtc/rtc_pcf50606.c [diff]
firmware/drivers/rtc/rtc_rx5x348ab.c [diff]
firmware/drivers/rtc/rtc_s35380a.c [diff]
firmware/drivers/rtc/rtc_s35390a.c [diff]
firmware/drivers/rtc/rtc_s3c2440.c [diff]
firmware/libc/gmtime.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c [diff]
firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c [diff]
Michael Sevakis
21st Jan 07:04 783c775: AMS: Return ascodec to interrupt-based I2C2 driver

1. Slightly revised and regularized internal interface. Callback is used for read and write to provide completion signal instead of having two mechanisms.

2. Lower overhead for asynchronous or alterate completion callbacks. We now only init what is required by the transfer. A couple unneeded structure members were also nixed.

3. Fixes a bug that would neglect a semaphore wait if pumping the I2C interrupts in a loop when not in thread state or interrupts are masked.

4. Corrects broken initialization order by defining KDEV_INIT, which makes kernel_init() call kernel_device_init() to initialize additional devices _after_ the kernel, threading and synchronization objects are safe to use.

5. Locking set_cpu_frequency has to be done at the highest level in system.c to ensure the boost counter and the frequency are both set in agreement. Reconcile the locking inteface between PP and AMS (the only two currently using locking there) to keep it clean.

Now works fine with voltages in GIT HEAD on my Fuze v2, type 0. Previously, everything crashed and died instantly. action.c calling set_cpu_frequency from a tick was part of it. The rest may have been related to 3. and 4. Honestly, I'm not certain!

Testing by Mihail Zenkov indicates it solves our problems. This will get the developer builds running again after the kernel assert code push.
apps/debug_menu.c [diff]
firmware/drivers/adc-as3514.c [diff]
firmware/export/ascodec.h [diff]
firmware/export/system.h [diff]
firmware/panic.c [diff]
firmware/system.c [diff]
firmware/target/arm/as3525/ascodec-as3525.c [diff]
firmware/target/arm/as3525/debug-as3525.c [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
firmware/target/arm/as3525/system-target.h [diff]
firmware/target/arm/pp/system-pp5002.c [diff]
firmware/target/arm/pp/system-pp502x.c [diff]
firmware/target/arm/pp/system-target.h [diff]
Michael Sevakis
23rd Jan 21:27 a1d1832: hwstub: be more quiet about register description loading failure
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
23rd Jan 13:51 30ac37b: hwstub: fix memory leak in net backend
utils/hwstub/lib/hwstub_net.cpp [diff]
Amaury Pouly
18th Jan 13:46 dd7f834: imx233: remove redundant lines in linker script
firmware/target/arm/imx233/app.lds [diff]
firmware/target/arm/imx233/boot.lds [diff]
Amaury Pouly
18th Jan 13:39 fdb98c2: hwstub/jz4760b: add lua code to probe for ei/di and ext instructions

Add lua code to check whether ei/di and ext instructions are supported. This is unclear since xburst is somewhere between mips32r1 and mips32r2. Details results are below, but in summary: they don't work (ei has no effect, di/ext cause illegal instruction exceptions)

> ./hwstub_shell -q -b -e 'require("jz/misc"); JZ.misc.enable_sram()' \
-f lua/xburst.lua -e "XBURST.test_ext_inst(0xb32d0000)"
[...] Selecting soc jz4760b. Redirecting HW to hwstub.soc.jz4760b data: d7168acf error: lua/xburst.lua:209: call failed trapped exception in call

> ./hwstub_shell -q -b -e 'require("jz/misc"); JZ.misc.enable_sram()' \
-f lua/xburst.lua -e "XBURST.test_ei_di_inst(0xb32d0000)"
[...] Selecting soc jz4760b. Redirecting HW to hwstub.soc.jz4760b Testing ei Test SR Enable interrupts with CP0 SR: 0x1 Disable interrupts with CP0 SR: 0x0 Test ei/di Enable interrupts with ei SR: 0x0 Disable interrupts with di error: lua/xburst.lua:244: call failed trapped exception in call
utils/hwstub/tools/lua/xburst.lua [diff]
Amaury Pouly
18th Jan 13:36 9bb6050: hwstub: rewrite exception catching

Since we can catch exceptions like data aborts on read/write, it takes very little to also catch exceptions in calls. When extending this with the catching of illegal instructions, the call instruction now becomes much more robust and also for address and instruction probing. Since we can catch several types of exception, rename set_data_abort_jmp to set_exception_jmp. At the same time, simplify the logic in read/write request handlers. Also fix a bug in ARM jump code: it was using stmia r1, {..., pc} as if pc would get current pc + 8 but this is actually implementation defined on older ARMs (typically pc + 12) and deprecated on newer ARMs, so rewrite the code avoid that. The set_exception_jmp() function now also reports the exception type.
utils/hwstub/stub/asm/arm/system.S [diff]
utils/hwstub/stub/asm/mips/system.S [diff]
utils/hwstub/stub/atj213x/crt0.S [diff]
utils/hwstub/stub/atj213x/mips-archdefs.h [deleted]
utils/hwstub/stub/atj213x/mips.h [deleted]
utils/hwstub/stub/jz4760b/crt0.S [diff]
utils/hwstub/stub/jz4760b/mips-archdefs.h [deleted]
utils/hwstub/stub/jz4760b/mips.h [deleted]
utils/hwstub/stub/main.c [diff]
utils/hwstub/stub/mips-archdefs.h [new]
utils/hwstub/stub/mips.h [new]
utils/hwstub/stub/system.h [diff]
Amaury Pouly
17th Jan 21:54 f3cce72: hwstub/jz460b: implement exception recovery

Now that we now that jz4760b implements EBASE, we can use it to rebase exceptions to use a k1seg address, that maps to the physical address of the TCSM0. It requires to enable HAB1 to have this translation. This most the most inefficient way to access tighly coupled memory ever, but it works.
utils/hwstub/stub/asm/mips/system.S [diff]
utils/hwstub/stub/jz4760b/crt0.S [diff]
utils/hwstub/stub/jz4760b/hwstub.lds [diff]
utils/hwstub/stub/jz4760b/target-config.h [diff]
Amaury Pouly
17th Jan 11:01 07bc348: hwstub: add tool to dump memory regions (such as ROM, RAM, or peripherals)

Although this case be done with hwstub_shell, this is common enough to deserve its own tool.
utils/hwstub/tools/Makefile [diff]
utils/hwstub/tools/hwstub_dump.cpp [new]
Amaury Pouly
17th Jan 10:58 f4091be: hwstub: small fixes to argument processing and usage()
utils/hwstub/tools/hwstub_load.cpp [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
17th Jan 10:53 9851849: hwstub/jz4760b: build packtools automatically if neeeded
utils/hwstub/stub/jz4760b/Makefile [diff]
Amaury Pouly
17th Jan 10:53 8934169: hwstub: add verbose mode to make

Use make V=1 to print all commands
utils/hwstub/stub/hwstub.make [diff]
Amaury Pouly
17th Jan 10:32 eadba57: hwstub: fix long transfers failing because of control xfer size of libusb

libusb limits control transfer sizes to 4k, see diff for details.
utils/hwstub/include/hwstub_usb.hpp [diff]
utils/hwstub/lib/hwstub_usb.cpp [diff]
Amaury Pouly
17th Jan 10:32 24c2083: hwstub: fix library sending wrong data on long transfers
utils/hwstub/lib/hwstub.cpp [diff]
Amaury Pouly
23rd Oct 19:52 06c5e5f: hwstub: add Fiio X3II IPL/SPL dumping code
utils/hwstub/tools/lua/fiiox3ii.lua [new]
Amaury Pouly
23rd Oct 19:12 3a219ce: hwstub: add Shanling M2 IPL/SPL dumping code
utils/hwstub/tools/lua/shanlingm2.lua [new]
Amaury Pouly
23rd Jan 21:48 8e07d68: hwstub: add various jz stuff and xburst tests

The JZ misc allows to enable and test SRAM. The XBurst code uses the coprocessor interface to analyse the cpu. It also provides a test platform for various features like EBASE and exceptions. I was able to test and confirm that on jz4760b (thus xburst), EBASE works
(but top 2 bits are not controllable and always 01). The processor claims to support vector interrupts but this is untested. The values in ConfigX are not to be trusted blindly, clearly some are wrong. I tried to use the JZ4780 Config7 "ebase gate" to change bit 30 of EBASE but it does not work, which suggests that JZ480 uses a newer version of XBurst. Detailled log below:

> ./hwstub_shell -q -f lua/xburst.lua -e "XBURST.init()"
[...] XBurst: PRId: 0x2ed0024f CPU: JZ4760(B) Config: 0x80000483 Architecture Type: MIPS32 Architecture Level: Release 2 (or more) MMU Type: Standard TLB Config1: 0x3e63318a MMU Size: 32 ICache Sets per way: 128 Ways: 4 Line size: 32 DCache Sets per way: 128 Ways: 4 Line size: 32 FPU: no Config2: 0x80000000 Config3: 0x20 Vectored interrupt: yes Config7: 0x0

> ./hwstub_shell -q -e 'require("jz/misc"); JZ.misc.enable_sram()' \
-f lua/xburst.lua -e "XBURST.test_ebase(0x80000000);XBURST.test_ebase(0xb32d0000)
[...] Testing EBASE... Disable BEV SR value: 0x2000fc00 EBASE value: 0x80000000 Value after writing 0x80000000: 0x80000000 Value after writing 0x80040000: 0x80040000 Test result: EBase seems to work Disable config7 gate: write 0x0 to Config7 Value after writing 0xfffff000: 0xbffff000 Enable config7 gate: write 0x80 to Config7 Value after writing 0xc0000000: 0x80000000 Config7 result: Config7 gate does not work Exception test with EBASE at 0x80000000... Writing instructions to memory Old SR: 0x2000fc00 New SR: 0xfc00 EBASE: 80000000 Before: cafebabe After: deadbeef Exception result: Exception and EBASE are working Testing EBASE... Disable BEV SR value: 0x2000fc00 EBASE value: 0x80000000 Value after writing 0x80000000: 0x80000000 Value after writing 0x80040000: 0x80040000 Test result: EBase seems to work Disable config7 gate: write 0x0 to Config7 Value after writing 0xfffff000: 0xbffff000 Enable config7 gate: write 0x80 to Config7 Value after writing 0xc0000000: 0x80000000 Config7 result: Config7 gate does not work Exception test with EBASE at 0xb32d0000... Writing instructions to memory Old SR: 0x2000fc00 New SR: 0xfc00 EBASE: b32d0000 Before: cafebabe After: deadbeef Exception result: Exception and EBASE are working
utils/hwstub/tools/lua/jz/misc.lua [new]
utils/hwstub/tools/lua/xburst.lua [new]
Amaury Pouly
23rd Jan 21:50 50eaa2d: hwstub: fix bug in jz4760B boot rom backend probe
utils/hwstub/lib/hwstub_usb.cpp [diff]
Amaury Pouly
2016-08-04 8fabbb0: hwstub: add support for coprocessor operations

At the moment the stub only implement them for MIPS.
utils/hwstub/include/hwstub.hpp [diff]
utils/hwstub/include/hwstub_net.hpp [diff]
utils/hwstub/include/hwstub_protocol.h [diff]
utils/hwstub/include/hwstub_usb.hpp [diff]
utils/hwstub/include/hwstub_virtual.hpp [diff]
utils/hwstub/lib/hwstub.cpp [diff]
utils/hwstub/lib/hwstub_net.cpp [diff]
utils/hwstub/lib/hwstub_usb.cpp [diff]
utils/hwstub/lib/hwstub_virtual.cpp [diff]
utils/hwstub/stub/main.c [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
2016-08-02 d91d9f6: jz4760b/regtools: fix/rename some register fields, add clock analyzer to qeditor
utils/regtools/desc/regs-jz4760b.xml [diff]
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
Amaury Pouly
2016-08-02 51cce81: headergen_v2: add two new macros to write a raw write to set/clr variants

These macros are like jz_setf but instead of writing fields, they write a raw value directly: jz_set(REG, value) and jz_clr(REG, value).
utils/regtools/headergen_v2.cpp [diff]
Amaury Pouly
2016-08-02 a36694e: hwstub: implement EXEC command over net

Apparently I completely forgot to implement it so using hwstub over net would just fail all EXEC commands :-s
utils/hwstub/include/hwstub_protocol.h [diff]
utils/hwstub/lib/hwstub_net.cpp [diff]
utils/hwstub/tools/hwstub_load.cpp [diff]
Amaury Pouly
2016-08-02 56340f4: hwstub: add the possibility to flush caches before exec

This is needed on the jz4760b because if some data is loaded to DRAM, then it is cached and a disaster lurks if dcaches/icache are not flushed. Targets that needs this must define CONFIG_FLUSH_CACHES in target-config.h and implement target_flush_caches(). Currently MIPS has some generic code for mips32r1 that requires to define {D,I}CACHE_SIZE and {D,I}CACHE_LINE_SIZE in target-config.h
utils/hwstub/stub/asm/mips/system.S [diff]
utils/hwstub/stub/jz4760b/target-config.h [diff]
utils/hwstub/stub/main.c [diff]
utils/hwstub/stub/target.h [diff]
Amaury Pouly
24th Jan 14:23 83155f3: jz4760b_tools: improve usbboot tool
utils/jz4760_tools/usbboot.c [diff]
Amaury Pouly
24th Jan 14:22 f698b20: hwstub/jz4760b: fix some typos in lua script after register name changes
utils/hwstub/tools/lua/fiiox1.lua [diff]
utils/hwstub/tools/lua/jz/gpio.lua [diff]
Amaury Pouly
24th Jan 14:22 cc2389b: hwstub: add jz4760b stub

The stub is quite versatile: it can be loaded using bootrom or another other means (like factory boot on Fiio X1). It relocates itself to TCSM0 and provides basic functionality (it does not recover from failed read/writes at the moment).
utils/hwstub/stub/SOURCES [diff]
utils/hwstub/stub/config.h [diff]
utils/hwstub/stub/jz4760b/Makefile [new]
utils/hwstub/stub/jz4760b/crt0.S [new]
utils/hwstub/stub/jz4760b/hwstub.lds [new]
utils/hwstub/stub/jz4760b/jz4760b.h [new]
utils/hwstub/stub/jz4760b/mips-archdefs.h [new]
utils/hwstub/stub/jz4760b/mips.h [new]
utils/hwstub/stub/jz4760b/target-config.h [new]
utils/hwstub/stub/jz4760b/target.c [new]
utils/hwstub/stub/jz4760b/usb_drv_jz4760b.c [new]
Amaury Pouly
2016-06-04 d7c71a3: update jz4760b register desc
utils/regtools/desc/regs-jz4760b.xml [diff]
Amaury Pouly
2016-03-19 4fd9400: hwstub/tools/shell: add JZ4760B and Fiio X1 code

The jz code can do several useful things like dumping the IPL and SPL. The Fiio code can play with backlight and has code do dump the IPL and SPL with the correct parameters (extracted by reverse engineering).
utils/hwstub/tools/lua/fiiox1.lua [new]
utils/hwstub/tools/lua/jz.lua [diff]
utils/hwstub/tools/lua/jz/gpio.lua [new]
utils/hwstub/tools/lua/jz/lcd.lua [new]
utils/hwstub/tools/lua/jz/nand.lua [new]
Amaury Pouly
2016-03-19 0b6cbd8: regtools: add JZ4760B description

This is a register description file for the JZ4760B. There are several details worth noticing:
- it was obtained by gathering information from several sources/headers, but since there are inconsistencies between them about the exact differences between JZ4760 and JZ4760B, this file probably contains some errors
- the register names are not the same as the manual ones (which are not the same as the one in the headers anyway): I dropped the "R" suffix on most registers because it's redundant
- Ingenic likes to have read-only registers and then set/clr registers, with very confusing names like DIR/DIRS/DIRC: in the file, the set/clr registers are described as set/clr variants of the original register
- Parts of the description were obtained programmatically, which explains why there are empty nodes or partially undocumented registers
utils/regtools/desc/regs-jz4760b.xml [new]
Amaury Pouly
23rd Jan 15:07 6ef3f7c: regtools: fix normalization procedure

The code was not updated when I added support for list and other stuff, and thus it did not properly sort by addresses.
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
21st Jan 13:55 28bf763: Fix warnings - got to (void) the statement
firmware/export/system.h [diff]
Michael Sevakis
21st Jan 13:18 3e73866: Add CPU mode asserts to kernel on blocking functions.

This scourge finds it's way back in far too often. Right now, only defined for ARM.

Have fun!
firmware/export/system.h [diff]
firmware/kernel/mrsw_lock.c [diff]
firmware/kernel/mutex.c [diff]
firmware/kernel/queue.c [diff]
firmware/kernel/semaphore.c [diff]
firmware/kernel/thread.c [diff]
firmware/target/arm/system-arm.h [diff]
Michael Sevakis
21st Jan 11:16 da46457: Fix dumb typo in button.c.

Forgot to check a non-freq-scaling target. :)
firmware/drivers/button.c [diff]
Michael Sevakis
21st Jan 07:09 c6299b2: action.c must desist in calling set_cpu_frequency from a tick

The function is neither reentrant nor ISR callable. Instead of using a ticked-based timeout, have the button driver provide the unboost after a delay when waiting for a button.

HAVE_GUI_BOOST gets immediate boost after dequeuing any message, otherwise the queue has to have at least three messages waiting for it to trigger a boost-- essentially the behavior that existed but now combined in one place.
apps/action.c [diff]
firmware/drivers/button.c [diff]
firmware/export/config.h [diff]
Michael Sevakis
18th Jan 03:51 15e1f59: Make consitent internal file API flag behvior, FF_PROBE.

FF_PROBE should leave nothing for caller to clean up whether testing only the cache or permitting disk access. Less to worry about.
firmware/common/file_internal.c [diff]
Michael Sevakis
17th Jan 22:50 6103d4d: Selective Backlight Softlock Fix misleading indentation.
apps/action.c [diff]
William Wilgus
22nd Nov 05:21 dc87e9e: Selective Backlight/Advanced Softlock - Selective actions based on context

Selective backlight allows the user to choose actions that will not enable the backlight when pressed.

Advanced softlock allows user to choose actions that will not be blocked by screenlock on devices without a hold button.

Both only occur in FM and WPS Contexts.

Update: Back from the dead
-Cleaned up code, removed unnecessary calls, re-arranged last filter action timeout conditional to work in case last_filtered_action_tick was never set
-Added entries to the manual
-Fixed back button on some menus not activating backlight
-Made menus more intuitive, no actions selected now changes menu item to off.
-Added talk fuctionality.
-Added option to disable selective backlight while on external power.
-Rewrote backlight and softlock handling code to fix issue with scrollwheels
-Menu changed to have toggle(yes/no) and settings
-Optimized selective actions lookup
-Added option to disable notification of 'buttons locked' while softlocked
-Removed uneeded code, consolidated action lookup to single function
-Fixed incorrect name on selective softlock menu
-Added option to disable touch on touchscreen devices
-Fixed backlight on original screenlock without selective screenlock active
-Added text selection in mask_select for when show_icons is off
-Fixed voice in mask_select to speak if voice is defined instead of spelling
-Added more lang defines (play skip seek)
-Added option to disable unknown keys turning on backlight
-Fixed Conditional argument In wrong place causing players without backlight to fail to build
-Fixed Disable Unknown blocking detection of context change
-Fixed canceling menu didn't update new settings
-Added Autolock on backlight off
-Removed backlight_on_force from backlight.c, Now sets ignore next to false and uses backlight_on
-Cleaned up autolock code added strings to lang file
-Fixed issue where rapid presses would bypass softlock
-Removed old softlock code, Cleaned selective actions code
-Changed menu to match existing RB menus
-Fixed Backlight_on_Hold blocked by backlight_ignore_next
-Fixed ignore_next for ipod
-Fixed bug allowing context with softlock to bypass selective backlight
-Changed mask_select to no longer prompt for changes to be saved
-Changed menu names
-Added ignore timeout to allow ipod scroll wheel to work properly and other players to still work properly, removed some previous code including ignore_event
-Increased ignore timeout to prevent sd card accesses from interrupting action code and turning on backlight
-Changed Unknown action to unmapped action in menu, changed handling code
-Removed unneeded logic and variables for handling unfiltered actions
-Reverted unmapped action code to previous functionality
-Added manual entries (thanks JohnB)
-Removed elusive unhandled unicode character from manual, changed formatting slightly

Actions: Volume,Play,Seek,Skip

Extras: Disable unmapped actions Disable selective backlight on external power Disable touch during softlock on touchscreen devices Disable softlock notifications (power button still notifies) Autolock on backlight off

Method: Adds a function to ignore backlight on next call If selected action occurs backlight is forced on, Filter_first_keypress stays intact.

Selective softlock allows selected actions through, bypasses the normal softlock routine.

ToDo: DONE

previous commit (#1) has attribution for folder_select.c which mask_select is based from.
apps/SOURCES [diff]
apps/action.c [diff]
apps/action.h [diff]
apps/gui/mask_select.c [new]
apps/gui/mask_select.h [new]
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
docs/CREDITS [diff]
firmware/backlight.c [diff]
firmware/export/backlight.h [diff]
manual/advanced_topics/main.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
William Wilgus
17th Jan 13:45 16a9f84: Reenable database ramcache and playlist dircache

Playlist dircache references should be back in working order.

Reenabling dircache references in the database ramcache is not yet done as it requires quite a bit of rework. Otherwise, the database in RAM is functional again.

Some buffer compatibility changes have been made for database commit because the dircache buffer can no longer be stolen, only freed by an API call.
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/tagcache.c [diff]
firmware/export/config.h [diff]
Michael Sevakis
8th Jan 16:14 a931c76: Do some debug and preparatory work for ramcache and playlist

The file system rework introduced incompatibility between dircache and the tagcache ramcache and playlist dircache path caching. This update makes changes to filesystem code to reintegrate all that.

It also fixes a couple bugs that were found when vetting all the code. The filestream cache was being reset without regard to the stream even if it was shared in write mode (made work of
.playlist_control). Better handling of unmounting gives files a better go at force-closing them without risk to disk integrity.

Did some miscellaneous pedantic changes. Improved efficiency of testing a file's existence (a little) since the path parser will be shared between file code and parsing for the sake of finding dircache references, not duplicated as before.

This commit doesn't reenable said items just for the sake of keeping changes separate and related.

Plan for the next is to enable dircache again for the playlists
(easy peasy) and reenable tagcache ramcache but *without* the dircache path caching because it's rather substantial to change in itself. The ramcache will still function without dircache.
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/fileobj_mgr.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/dircache.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/include/file_internal.h [diff]
firmware/include/fileobj_mgr.h [diff]
Michael Sevakis
16th Jan 10:38 0056ea8: puzzles: more accurate sin() and cos()

- now uses fp_sincos()
apps/plugins/puzzles/rbwrappers.c [diff]
Franklin Wei
16th Jan 09:38 1b882cb: puzzles: change default optimization to -O2
apps/plugins/puzzles/puzzles.make [diff]
Franklin Wei
16th Jan 09:38 3943430: puzzles: fix copyright year
apps/plugins/sgt-puzzles.c [diff]
Franklin Wei
16th Jan 09:28 2bc5173: puzzles: fix overlay loader (monolithic builds only)
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
Franklin Wei
16th Jan 09:37 fb2da13: puzzles: disable unplayable puzzles (Solo and Loopy)

- accidentally enabled in c200v2 fix
apps/plugins/puzzles/SOURCES.games [diff]
Franklin Wei
14th Jan 17:40 7eaf558: zen/zenxfi: remove obsolete comment
firmware/target/arm/imx233/creative-zen/lcd-zen.c [diff]
Amaury Pouly
11th Jan 16:32 2c45548: Fix typo in configure
tools/configure [diff]
Amaury Pouly
14th Jan 17:11 5d048e0: zen/zenxfi: add remark about pin

Clearly this pin does not control power so don't call it lcd_power.
firmware/target/arm/imx233/creative-zen/lcd-zen.c [diff]
Amaury Pouly
14th Jan 17:10 6b227c5: regtools: convert all reg dumps to v2. keep v1 for reference
utils/regtools/regdumps/bl.txt [deleted]
utils/regtools/regdumps/fuzep_2.36.8_regdump-v1.txt [new]
utils/regtools/regdumps/fuzep_2.36.8_regdump.txt [diff]
utils/regtools/regdumps/rb_imx233_emi-v1.txt [new]
utils/regtools/regdumps/rb_imx233_emi.txt [diff]
utils/regtools/regdumps/sansa_express_bl-v1.txt [new]
utils/regtools/regdumps/sansa_express_bl.txt [diff]
utils/regtools/regdumps/sansa_view_bl-v1.txt [new]
utils/regtools/regdumps/sansa_view_bl.txt [deleted]
utils/regtools/regdumps/sony_nwz_e363_regdump-v1.txt [new]
utils/regtools/regdumps/sony_nwz_e363_regdump.txt [diff]
utils/regtools/regdumps/sony_nwz_e363_regdump2-v1.txt [new]
utils/regtools/regdumps/sony_nwz_e363_regdump2.txt [diff]
utils/regtools/regdumps/sony_nwz_e373_regdump-v1.txt [new]
utils/regtools/regdumps/sony_nwz_e373_regdump.txt [diff]
utils/regtools/regdumps/zen_1.21.03e_regdump-v1.txt [new]
utils/regtools/regdumps/zen_1.21.03e_regdump.txt [diff]
utils/regtools/regdumps/zen_bl_regdump-v1.txt [new]
utils/regtools/regdumps/zen_bl_regdump.txt [diff]
utils/regtools/regdumps/zenmozaic_bl_regdump-v1.txt [new]
utils/regtools/regdumps/zenmozaic_bl_regdump.txt [diff]
utils/regtools/regdumps/zenmx_1.04.01_regdump-v1.txt [new]
utils/regtools/regdumps/zenv_bl_regdump-v1.txt [new]
utils/regtools/regdumps/zenv_bl_regdump.txt [diff]
utils/regtools/regdumps/zenxfi2_1.23.01e_hwinit_regdump-v1.txt [new]
utils/regtools/regdumps/zenxfi2_1.23.01e_hwinit_regdump.txt [diff]
utils/regtools/regdumps/zenxfi2_1.23.01e_nand_regdump-v1.txt [new]
utils/regtools/regdumps/zenxfi2_1.23.01e_nand_regdump.txt [diff]
utils/regtools/regdumps/zenxfi3_1.00.25e_regdump-v1.txt [new]
utils/regtools/regdumps/zenxfi3_1.00.25e_regdump.txt [diff]
...and 2 more files.
Amaury Pouly
11th Jan 15:58 b23b708: imx233: add small framework for LED

It handles GPIO and PWM based LEDs, possibly with several channels (red-green LED for example). The debug allows one to play with the setting. Currently the code supports the ZEN, ZEN X-Fi, and ZEN Mozaic.
firmware/SOURCES [diff]
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/led-imx233.c [new]
firmware/target/arm/imx233/led-imx233.h [new]
firmware/target/arm/imx233/pwm-imx233.c [diff]
firmware/target/arm/imx233/system-imx233.c [diff]
Amaury Pouly
3rd Jan 15:09 759a78e: imxtools/sbtools: switch SHA1 implementation to Crypto++

The current implementation was custom and super slow. Since we use Crypto++ anyway, we might as well get use a good implementation.
rbutil/mkimxboot/Makefile [diff]
utils/imxtools/sbtools/Makefile [diff]
utils/imxtools/sbtools/crypto.cpp [diff]
utils/imxtools/sbtools/crypto.h [diff]
utils/imxtools/sbtools/sha1.c [deleted]
Amaury Pouly
3rd Jan 12:56 8b3f5a8: imxtools/sbtools: switch AES implementation to Crypto++

Instead of having our own copy of the AES code, use a good library to do that. Crypto++ is well-maintained, supports a lot of ciphers, works on many OSes, and is optimized for many architectures.
rbutil/mkimxboot/Makefile [diff]
utils/imxtools/sbtools/Makefile [diff]
utils/imxtools/sbtools/aes128.c [deleted]
utils/imxtools/sbtools/crypto.cpp [diff]
utils/imxtools/sbtools/crypto.h [diff]
Amaury Pouly
1st Jan 18:46 5ff3a3a: imxtools/sbtools: various fixes

Change bug() macro, fix memory leaks, always use -h for help, fix usage(), fix comment, remove useless macro
utils/imxtools/sbtools/elf.c [diff]
utils/imxtools/sbtools/elftosb.c [diff]
utils/imxtools/sbtools/misc.c [diff]
utils/imxtools/sbtools/misc.h [diff]
utils/imxtools/sbtools/sb.c [diff]
utils/imxtools/sbtools/sbtoelf.c [diff]
Amaury Pouly
1st Jan 19:48 2b20026: imxtools/sbtools: rework cryptography

It was a mess, a mix of crypto_* and cbc_mac calls. I made everything call crypto functions, and also separate key setup from cryptographic operations, this will be useful to speed up the code in the upcoming commits. Drop support for "usbotp" key, since the crypto code for that was never mainlined and we can always get the keys from a device as long as we have code execution (using the DCP debug registers).
rbutil/mkimxboot/Makefile [diff]
utils/imxtools/sbtools/Makefile [diff]
utils/imxtools/sbtools/crypto.c [deleted]
utils/imxtools/sbtools/crypto.cpp [new]
utils/imxtools/sbtools/crypto.h [diff]
utils/imxtools/sbtools/misc.c [diff]
utils/imxtools/sbtools/rsrc.h [diff]
utils/imxtools/sbtools/sb.c [diff]
utils/imxtools/sbtools/sb.h [diff]
utils/imxtools/sbtools/sb1.h [diff]
Amaury Pouly
2014-08-31 cb8a98e: imxtools: correctly read unencrypted images in raw mode
utils/imxtools/sbtools/sb.c [diff]
Amaury Pouly
2014-08-31 a5950c6: imxtools: rework key/IV overriding logic

The overriding of the IV and real key should be the exception, there is no need to manually set them to false.
rbutil/mkimxboot/mkimxboot.c [diff]
utils/imxtools/sbtools/sb.c [diff]
utils/imxtools/sbtools/sbtoelf.c [diff]
Amaury Pouly
1st Jan 19:46 2df6b1f: imxtools: rework sb file production

The old code had some annoying way of dealing with padding by adding explicit instructions to the stream, which is 1) ugly 2) not in par with freescale tools. The trick, which this new version implements, is to put the useful length of the section in the section header, and the actual (with padding) length in the boot tag. This way the tools can just ignore padding instruction by reading the section header, and the bootloader can still load the image because it uses the boot tags. Also correctly handle the case where the first section does not start right after the header (there is a bug in freescale tools for this case by the way). There is an ambiguity in the way the padding instructions should be encrypted: the bootloader should logically treat them as regular instruction of the section stream, but it appears the freescale tools do not generate them as part of the stream and instead encrypt them like boot tags, which is stupid because there is no way the bootloader could decrypt them, and anyway we don't care because the bootloader doesn't decrypt them at all.
utils/imxtools/sbtools/sb.c [diff]
utils/imxtools/sbtools/sb.h [diff]
Amaury Pouly
16th Jan 06:23 4f7fea2: Fix path handling snafu for CheckWPS tool

Somehow it got hooked to simulator file functions when it should be (and was) using raw OS functions.

Credit: Frank Gevaerts
firmware/include/dir.h [diff]
firmware/include/file.h [diff]
tools/checkwps/SOURCES [diff]
tools/checkwps/checkwps.c [diff]
tools/database/SOURCES [diff]
Michael Sevakis
15th Jan 16:53 16d1788: Fix codecs in simulator builds on Windows

The mingw linker uses strlen() in some cases, and codeclib.c redefines it, that leads to mingw runtime init to call into our strlen() and then ci->strlen() which of course crashes. Apply the same fix as for malloc and friends: rename the symbol.

The codeclib.h include is necessary for normal builds.
lib/rbcodec/codecs/lib/codeclib.c [diff]
lib/rbcodec/codecs/lib/codeclib.h [diff]
lib/rbcodec/codecs/libasap/asap.c [diff]
Amaury Pouly
15th Jan 12:29 d984725: Renamed defines UNALIGNED to ROCKBOX_UNALIGNED - UNALIGNED is already defined in mingw environments.

Renamed defines of UNALIGNED to ROCKBOX_UNALIGNED so that they don't conflict with definitions in mingw32 cross-compiling environments
(defined in _mingw.h).
apps/plugins/lib/strncpy.c [diff]
firmware/asm/memcpy.c [diff]
firmware/asm/memmove.c [diff]
firmware/asm/memset.c [diff]
firmware/asm/memset16.c [diff]
firmware/asm/strlen.c [diff]
firmware/libc/memchr.c [diff]
firmware/libc/memcmp.c [diff]
firmware/libc/strchr.c [diff]
firmware/libc/strcmp.c [diff]
firmware/libc/strcpy.c [diff]
firmware/libc/strncmp.c [diff]
Matthias Mohr
15th Jan 11:53 955be5b: Fix configure for windows simulator builds in cygwin / mingw cross-compiling environments.

Fixes and Changes to configure the Windows simulator builds mostly for cygwin / mingw cross-compiling environments:
- fix CROSS_COMPILE values including detection for old and newer mingw environments
- fix detection of sdl-config by searching inside CROSS_COMPILE sys-root
- fix call of sdl-config and use correct (found) version
- add possibility to build a 64-bit simulator
- added several -Wno- options to GCCOPTS to prevent annoying compiler warnings
- use cross-compiler as HOST_CC if no "native" HOST_CC is available
tools/configure [diff]
Matthias Mohr
15th Jan 13:32 a724dbb: fix whitespace
apps/plugins/puzzles/SOURCES.games [diff]
Franklin Wei
15th Jan 13:07 0bdb255: puzzles: fix building on c200v2

- disables Solo and Loopy
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/puzzles.make [diff]
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
9th Jan 12:21 d221ca6: puzzles: antialiased line drawing via Wu's algorithm and optional "shortcuts" for undo/redo

- line drawing should eventually be moved to xlcd, but for now it's very unportable code
- also fixes a minor issue with the configuration screens
apps/plugins/puzzles/puzzles.make [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/puzzles/untangle.c [diff]
Franklin Wei
12th Dec 10:31 42e54c5: imx233: workaround hardware dma bug

This bug mostly affects the ZEN and ZEN X-Fi and hangs the lcdif dma randomly on boot.
firmware/target/arm/imx233/dma-imx233.c [diff]
Amaury Pouly
7th Jan 14:29 ed65264: Support using swapxx() and bswap_xx() for byteswaps in rbendian.h

- patch suggested by Massa in http://forums.rockbox.org/index.php/topic,51618.msg238760.html#msg238760
firmware/include/rbendian.h [diff]
Franklin Wei
15th Jan 16:57 793c041: Fix compilation of puzzles on Windows

mingw exports vsscanf and that clashes with rbwrappers' definition.
apps/plugins/puzzles/rbwrappers.c [diff]
Amaury Pouly
14th Jan 11:02 0cabc1f: nwztools/upgtools: add real KAS for NW-ZX100 and fix typo
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
13th Jan 23:20 0a5b0dd: Dircache: Fix a tiny-block reclaim bug

Logic left over from before switching from NULL-terminated to counted strings would prevent a single-byte tiny free block gap from being properly reclaimed into free string bytes.

Due to rarity, not as disasterous to functionality so much as wrong.
firmware/common/dircache.c [diff]
Michael Sevakis
13th Jan 22:52 c1b913b: Revert "puzzles: antialiased line drawing and optional "shortcuts" for undo/redo"

This reverts commit 8e4429853d1ac024ac2b8069636cc210cf5bab1b.
apps/plugins/puzzles/puzzles.make [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/puzzles/untangle.c [diff]
Franklin Wei
13th Jan 22:18 823f726: puzzles: fix configuration menu (again!)
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
13th Jan 18:11 8e44298: puzzles: antialiased line drawing and optional "shortcuts" for undo/redo

- line drawing should eventually be moved to xlcd, but for now it's very nonportable code
- fixes a minor issue with the configuration screens
apps/plugins/puzzles/puzzles.make [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/puzzles/untangle.c [diff]
Franklin Wei
14th Jan 00:12 79e8cd4: imx233: fix audio debug screen on stmp3700

On STMP3700 there is no dedicated speaker amplifier but speaker is always on lineout so it makes sense to report volume and power down of lineout.
firmware/target/arm/imx233/audioout-imx233.c [diff]
Amaury Pouly
14th Jan 00:12 c41a929: imx233: add note about power down bits in audioout
firmware/target/arm/imx233/audioout-imx233.c [diff]
Amaury Pouly
14th Jan 00:01 fd26294: imx233: fix speaker enable/disable code
firmware/target/arm/imx233/audioout-imx233.c [diff]
Amaury Pouly
13th Jan 17:45 637c741: puzzles: enable fallback to audiobuf when smalloc() fails

- upon a failed smalloc(), the audio buffer will be used for further allocations
- should fix things on low-memory targets (c100 and c200v2), but breaks playback
- playback should still be intact on other targets
apps/plugins/puzzles/malloc.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
13th Jan 03:58 954d934: iPod Classic: fix small bug on PCM record

On PCM record initialization, an unknown clockgate is enabled instead of the I2S clockgate. This bug does not produce incorrect functionallity because the right clockgate is already enabled on PCM playback initialization.
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
Cástor Muñoz
9th Jan 21:15 1d7f604: nwztools: add a "reset all settings" message in dest_tool

Users can't read the wiki instructions, hopefully they can read this...
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
9th Jan 20:48 90284b6: nwztools: fix typo (nwz-zx100 -> nw-zx100)

Also now gen_db.py can check for such mismatch
utils/nwztools/database/gen_db.py [diff]
utils/nwztools/database/nvp/nodes-nw-zx100.txt [new]
utils/nwztools/database/nvp/nodes-nwz-zx100.txt [deleted]
utils/nwztools/database/nvp/nw-zx100.txt [new]
utils/nwztools/database/nvp/nwz-zx100.txt [deleted]
utils/nwztools/database/nwz_db.c [diff]
Amaury Pouly
8th Jan 21:28 1d7b37e: nwztools: add various info about S740, S750, S640, E050
utils/nwztools/database/nvp/nw-s640.txt [new]
utils/nwztools/database/nvp/nwz-a840.txt [new]
utils/nwztools/database/nvp/nwz-e050.txt [new]
utils/nwztools/database/nvp/nwz-s740.txt [new]
utils/nwztools/database/nvp/nwz-s750.txt [new]
utils/nwztools/database/nwz_db.c [diff]
utils/nwztools/database/series.txt [diff]
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
8th Jan 21:31 a38e9ba: nwztools: forgot file
utils/nwztools/upgtools/upg.h [new]
Amaury Pouly
8th Jan 15:08 18b4bf2: nwztools/upgtools: add real NW-A20 kas
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
8th Jan 15:08 9b2fab1: Makefile cleanups
utils/nwztools/database/nvp/Makefile [diff]
utils/nwztools/emmctools/Makefile [diff]
utils/nwztools/scsitools/Makefile [diff]
utils/nwztools/upgtools/Makefile [diff]
Amaury Pouly
8th Jan 15:07 1895af8: nwztools/scitool: rework node size, remove relaxed mode

The cool now takes the database as a hint and will not complain if the device returns less data. The tool also supports user provided size and raw node numbers that are not in the database (advanced usage).
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
8th Jan 11:31 26774ec: nwztools: add NW-WM1 kas

Like the NW-A30, we don't know how to use it, but record it anyway.
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
8th Jan 11:30 80d91e0: nwztools: add A35 model and KAS

We don't know the encryption method, the KAS is completely different but it might be useful to record it anyway for future purposes. MID extracted from device, Japanese NW-A35.
utils/nwztools/database/models.txt [diff]
utils/nwztools/database/nwz_db.c [diff]
utils/nwztools/database/nwz_db.h [diff]
utils/nwztools/database/series.txt [diff]
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
8th Jan 11:06 096ae78: nwztool/upgtools: replace NWZ-A10 kas by the real one

Extracted from a target.
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
8th Jan 11:03 1bd8207: nwztools: rename nwz-a20 to nw-a20, that was a typo
utils/nwztools/database/nvp/nodes-nw-a20.txt [new]
utils/nwztools/database/nvp/nodes-nwz-a20.txt [deleted]
utils/nwztools/database/nvp/nw-a20.txt [new]
utils/nwztools/database/nvp/nwz-a20.txt [deleted]
utils/nwztools/database/nwz_db.c [diff]
utils/nwztools/database/series.txt [diff]
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
7th Jan 06:14 077e206: Improve the implementation of a couple linked list routines.

ll_insert_next() and ll_remove_next() can be done more elegantly by adding a level of indirection to reference the 'next' pointer.
firmware/common/linked_list.c [diff]
Michael Sevakis
7th Jan 06:12 5c6ccb4: Fix track formatting problems in playlist.c

Some changes in behavior were made with filesystem code commit for the sake of compatibility that changed expected behavior.

* Restore substitution of drive spec in fully-qualified DOS paths with the playlists's volume spec (or root on univolume targets). Drive-relative paths of the form "c:foo" (no separator after
':') will be treated as purely relative.

* Restore old behavior of preserving leading whitespace in the source path and trimming only trailing tabs and spaces.

* Multivolume: Volume substition on fully-qualified UNIX/RB paths has NOT been reintroduced (and perhaps wasn't intended in the first place). They will not be modified because there is no ambiguity to resolve. Doing so would prevent a playlist on external storage from referencing a file on main storage without qualifying it with "/<0>...".

* Plain relative paths are and always have been interpreted as relative to the location of the playlist.
apps/playlist.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
Michael Sevakis
7th Jan 21:20 5a0a7b8: nwztools: remove NW-ZX2

It is Android based and despite the fact that Sony wrote an NVP driver for it, experiments suggest it is unused because it returns ff all the time...
utils/nwztools/database/nvp/nwz-zx2.txt [deleted]
utils/nwztools/database/nwz_db.c [diff]
utils/nwztools/database/nwz_db.h [diff]
utils/nwztools/database/series.txt [diff]
Amaury Pouly
7th Jan 14:29 2915370: puzzles: add cursor interface to untangle

- makes it playable
- submitted to upstream
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/untangle.c [diff]
Franklin Wei
7th Jan 16:32 be68b6a: nwztools: add NW-WM1A/Z model IDs

Also fix code that was supposed to sort things deterministically and was a massive failure.
utils/nwztools/database/gen_db.py [diff]
utils/nwztools/database/models.txt [diff]
utils/nwztools/database/nwz_db.c [diff]
utils/nwztools/database/nwz_db.h [diff]
utils/nwztools/database/series.txt [diff]
Amaury Pouly
7th Jan 15:31 76c73c7: nwztools/scsitools: use new SCSI library
utils/nwztools/scsitools/Makefile [diff]
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
5th Jan 11:06 86e745a: nwztools/scsitool: add relaxed mode for nvp
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
5th Jan 15:21 456a3fc: imxtools: various fixes for Windows

Don't use colors since the terminal doesn't support it. Also packing is broken on MinGW so use #pragma pack when compiling for windows, this is also supported by MSCV.
utils/imxtools/scsitools/misc.c [diff]
utils/imxtools/scsitools/stmp_scsi.c [diff]
utils/imxtools/scsitools/stmp_scsi.h [diff]
utils/nwztools/scsitools/misc.c [diff]
utils/scsi/rbscsi.c [diff]
utils/scsi/rbscsi.h [diff]
Amaury Pouly
4th Jan 23:25 950f4bd: imxtools: move firmware read/write to library

Split the ugly firmware read/write into a API function and a much simplified code. Also the code can now report progress.
utils/imxtools/scsitools/scsitool.c [diff]
utils/imxtools/scsitools/stmp_scsi.c [diff]
utils/imxtools/scsitools/stmp_scsi.h [diff]
Amaury Pouly
3rd Jan 23:41 0778184: imxtools/scsitools: move stmp scsi api to its own file

No code modification code, just moving code around.
utils/imxtools/scsitools/Makefile [diff]
utils/imxtools/scsitools/scsitool.c [diff]
utils/imxtools/scsitools/stmp_scsi.c [new]
Amaury Pouly
3rd Jan 23:26 7fafbe1: imxtools/scsitools: rework stmp scsi API

Sanitize the whole library by hiding most of the horrible details of the implementation. This means that all logical/drive/table attributes are exported in structures that are internally filled by higher-level API functions. This makes the code much more readable and prepares for a split between scsitool and the stmp scsi library.
utils/imxtools/scsitools/scsitool.c [diff]
utils/imxtools/scsitools/stmp_scsi.h [diff]
Amaury Pouly
3rd Jan 22:06 0fd8694: imxtools/scsitools: use new SCSI library

The function names and prototypes are also normalized so make subsequent reworks easier.
utils/imxtools/scsitools/Makefile [diff]
utils/imxtools/scsitools/scsitool.c [diff]
utils/imxtools/scsitools/stmp_scsi.h [diff]
Amaury Pouly
3rd Jan 21:19 ae84354: Add multiplatform library for raw SCSI commands

Several tools need to perform raw SCSI commands, and we need to support Linux, Windows and Mac OS, without pulling tons of dependencies to build it easily. This very simple library has no dependency and supports Linux.

TODO:
- windows
- mac os
utils/imxtools/scsitools/Makefile [diff]
utils/scsi/Makefile [new]
utils/scsi/rbscsi.c [new]
utils/scsi/rbscsi.h [new]
Amaury Pouly
23rd Sep 15:45 1728565: Midiplay: only boost cpu in sensible code parts
apps/plugins/midi/midiplay.c [diff]
Sebastian Leonhardt
1st Oct 20:58 5279d60: Midi Player: fix premature stopping of audio buffer playback
apps/plugins/midi/midiplay.c [diff]
Sebastian Leonhardt
1st Oct 20:55 69e9738: Midi Player: fix playback of buffer remains when seeking
apps/plugins/midi/midiplay.c [diff]
Sebastian Leonhardt
23rd Sep 15:45 e813c3f: Fix red (midi plugin: action rename)
apps/plugins/midi/midiplay.c [diff]
Sebastian Leonhardt
1st Oct 20:09 e05545b: Midi Player: give button actions meaningful names
apps/plugins/midi/midiplay.c [diff]
Sebastian Leonhardt
2013-06-16 afd482f: midi: Recalculate (and rename) the note frequency table.

gustable[] contained plain note frequencies in milliHertz, but was named and documented to appear like a table of magic numbers. The values also seemed to be slightly inaccurate (up to about 0.01Hz, so probably irrelevant).

This changes the name to freqtable to make the purpose clearer, and uses slightly better values.
apps/plugins/midi/guspat.c [diff]
apps/plugins/midi/guspat.h [diff]
apps/plugins/midi/sequencer.c [diff]
Frank Gevaerts
5th Jan 02:22 bc4c13e: Fix previous errors for targets with no crossfade.
apps/pcmbuf.c [diff]
Michael Sevakis
27th Dec 23:06 6c83739: Playback: Fix problems with crossfade on short tracks.

Addresses issues brought up in this thread: http://forums.rockbox.org/index.php/topic,51605.0.html

While we're at it, improve the quality with a sample-level fader.
apps/pcmbuf.c [diff]
apps/pcmbuf.h [diff]
Michael Sevakis
4th Jan 20:12 dbee727: puzzles: fix a minor bug in the configuration screen

- when an invalid string setting was entered, the string value would continue to be used after being freed
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
3rd Jan 10:26 1464cb9: puzzles: minor polishing touches on the user interface

- the debug menu has been neatly hidden away in the classic Android style ;)
- playback control option added to the pause menu when possible
- also fixes a minor redraw issue
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
4th Jan 19:31 3190728: puzzles: fix a few things

- old acos() function was broken, replaced with a call to atan2(); this fixes "Cube!"
- Makefile extended to support building "unfinished games", but not enabled
- a backdrop issue fixed in rockbox.c
apps/plugins/CATEGORIES [diff]
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/puzzles.make [diff]
apps/plugins/puzzles/rbwrappers.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
4th Jan 16:10 ad2297d: nwztools/scsitool: add option to force/specify series

We cannot auto-detect a device if we don't know its model ID, but we can't know the model ID if we haven't decrypted the upgrade which requires the key. The only way to solve this chicken-and-egg problem is to get the NVP table from kernel, create an empty series in the database (no model ID), then get the key using scsitool and forcing the model (using this commit), then decrypt the upgrade and get the model ID list.
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
4th Jan 15:55 dbeb6db: nwztools: cleanup crypto, switch MD5 to Crypto++

We already use Crypto++ for DES anyway, and using OpenSSL is not great because of its incompatible licence.
utils/nwztools/upgtools/Makefile [diff]
utils/nwztools/upgtools/fwp.c [diff]
utils/nwztools/upgtools/fwp.h [diff]
utils/nwztools/upgtools/md5.cpp [new]
utils/nwztools/upgtools/md5.h [new]
utils/nwztools/upgtools/mg.cpp [diff]
utils/nwztools/upgtools/mg.h [diff]
utils/nwztools/upgtools/upg.c [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
4th Jan 15:36 92ecbd5: nwztools/upg: move upg handling to its own file, completely rework kas handling

This was a huge mess, the new is much cleaner hopefully.
utils/nwztools/upgtools/Makefile [diff]
utils/nwztools/upgtools/fwp.c [diff]
utils/nwztools/upgtools/misc.c [diff]
utils/nwztools/upgtools/misc.h [diff]
utils/nwztools/upgtools/upg.c [new]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
4th Jan 15:35 5cfd4a5: nwztools/upgtools: add more brute force algorithms

Allow to search for hex with upper case and alphanumeric. This is *much* slower of course.
utils/nwztools/upgtools/keysig_search.c [diff]
utils/nwztools/upgtools/keysig_search.h [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
4th Jan 15:30 bfd5704: nwztools: add NW-WM1 nvp table, regenerate database
utils/nwztools/database/nvp/nw-wm1.txt [new]
utils/nwztools/database/nwz_db.c [diff]
utils/nwztools/database/nwz_db.h [diff]
utils/nwztools/database/series.txt [diff]
Amaury Pouly
4th Jan 15:26 3c3e133: nwztools: small fixes

Make sure scripts use bash, make nwz database generator more deterministic
utils/nwztools/database/gen_db.py [diff]
utils/nwztools/database/nvp/parse_all_nvp_headers.sh [diff]
utils/nwztools/database/nvp/parse_all_nvp_nodes.sh [diff]
utils/nwztools/database/nvp/parse_nvp_header.sh [diff]
utils/nwztools/database/nvp/parse_nvp_nodes.sh [diff]
utils/nwztools/emmctools/nvp.c [diff]
Amaury Pouly
2nd Jan 17:12 d7770a1: puzzles: rename bcopy() to bcopy_wrapper() and make static

- fixes a name collision on linux
apps/plugins/puzzles/rbwrappers.c [diff]
Franklin Wei
1st Jan 22:37 e259836: mkimxboot: add NWZ-E380 firmware 1.00.200
rbutil/mkimxboot/mkimxboot.c [diff]
Amaury Pouly
2014-08-31 23ecdeb: mkimxboot: implement firmware unpatching
rbutil/mkimxboot/mkimxboot.c [diff]
Amaury Pouly
1st Jan 20:31 ff946f1: imxtools: completely rework patching logic to prepare unpatching

The old code was working but a mess to maintain. The new code is cleaner and always simpler handling of all the different options. Extraction of the OF is no longer a standalone function but just one particular output type. This commit prepares the ground for firmware "unpatching" (aka OF extraction from patched OF). The patching code itself did not change so this commit should still produce the exact same images as before.
rbutil/mkimxboot/main.c [diff]
rbutil/mkimxboot/mkimxboot.c [diff]
rbutil/mkimxboot/mkimxboot.h [diff]
Amaury Pouly
2014-05-29 782d9c0: mkimxboot: add the concept of soft MD5 sum
rbutil/mkimxboot/main.c [diff]
rbutil/mkimxboot/mkimxboot.c [diff]
rbutil/mkimxboot/mkimxboot.h [diff]
Amaury Pouly
1st Jan 13:57 6e5f287: Fixes and re-sync for puzzles

- Updates to latest upstream (7cae89fb4b22c305b3fd98b4e1be065ad527a9f7).
- Also fixes a bug relating to updating parts of the display.
- Adds some docs.
apps/plugins/puzzles/README.rockbox [new]
apps/plugins/puzzles/cube.c [diff]
apps/plugins/puzzles/gtk.c [diff]
apps/plugins/puzzles/pearl.c [diff]
apps/plugins/puzzles/puzzles.make [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/puzzles/signpost.c [diff]
apps/plugins/puzzles/tracks.c [diff]
apps/plugins/puzzles/unequal.c [diff]
Franklin Wei
2014-08-31 985f6e6: imxtools: fix bug aes128 (did not update cbc-macp)

Although this does bug is never triggered because we never decrypt and use the resulting CBC-MAC, it's a major overlook.
utils/imxtools/sbtools/aes128.c [diff]
Amaury Pouly
2014-08-31 b772782: mkimxboot: don't forget to pass model if given on command line
rbutil/mkimxboot/main.c [diff]
Amaury Pouly
19th Dec 17:32 622088c: zenxfistyle: enable dualboot stub api

The ZEN X-Fi Style doesn't have an updater like the other stmp targets but at least the stub enables rebooting to the OF.
firmware/export/config/creativezenxfistyle.h [diff]
Amaury Pouly
18th Dec 11:51 575bd89: work around little bugs in puzzles
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/misc.c [diff]
Franklin Wei
2015-04-08 90f1370: Add circle drawing/filling to xlcd
apps/plugins/lib/xlcd.h [diff]
apps/plugins/lib/xlcd_draw.c [diff]
Franklin Wei
18th Dec 11:22 c6996ab: add missing file to puzzles
apps/plugins/puzzles/SOURCES.games [new]
Franklin Wei
20th Nov 14:16 1a6a8b5: Port of Simon Tatham's Puzzle Collection

Original revision: 5123b1bf68777ffa86e651f178046b26a87cf2d9

MIT Licensed. Some games still crash and others are unplayable due to issues with controls. Still need a "real" polygon filling algorithm.

Currently builds one plugin per puzzle (about 40 in total, around 100K each on ARM), but can easily be made to build a single monolithic overlay (800K or so on ARM).

The following games are at least partially broken for various reasons, and have been disabled on this commit:

Cube: failed assertion with "Icosahedron" setting Keen: input issues Mines: weird stuff happens on target Palisade: input issues Solo: input issues, occasional crash on target Towers: input issues Undead: input issues Unequal: input and drawing issues (concave polys) Untangle: input issues

Features left to do:
- In-game help system
- Figure out the weird bugs
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/puzzles/Buildscr [new]
apps/plugins/puzzles/CHECKLST.txt [new]
apps/plugins/puzzles/LICENCE [new]
apps/plugins/puzzles/PuzzleApplet.java [new]
apps/plugins/puzzles/README [new]
apps/plugins/puzzles/Recipe [new]
apps/plugins/puzzles/SOURCES [new]
apps/plugins/puzzles/benchmark.pl [new]
apps/plugins/puzzles/benchmark.sh [new]
apps/plugins/puzzles/blackbox.R [new]
apps/plugins/puzzles/blackbox.c [new]
apps/plugins/puzzles/bridges.R [new]
apps/plugins/puzzles/bridges.c [new]
apps/plugins/puzzles/chm.but [new]
apps/plugins/puzzles/chm.css [new]
apps/plugins/puzzles/combi.c [new]
apps/plugins/puzzles/configure.ac [new]
apps/plugins/puzzles/cube.R [new]
apps/plugins/puzzles/cube.c [new]
apps/plugins/puzzles/desktop.pl [new]
apps/plugins/puzzles/devel.but [new]
apps/plugins/puzzles/divvy.c [new]
apps/plugins/puzzles/dominosa.R [new]
apps/plugins/puzzles/dominosa.c [new]
apps/plugins/puzzles/drawing.c [new]
apps/plugins/puzzles/dsf.c [new]
apps/plugins/puzzles/emcc.c [new]
...and 259 more files.
Franklin Wei
16th Dec 20:50 3ee7972: Fix linking with C++ files.

When linking with C++ files the linker also needs to link against the C++ libraries. This is done automatically when invoking the compiler upon linking. Since we don't want C++ dependencies on C-only projects we check if we actually have C++ files and use either the C or C++ compiler.

Rename CFLAGS since it's now used for both C and C++ compiler and add dedicated CFLAGS, CXXFLAGS and LDFLAGS variables.
rbutil/libtools.make [diff]
Dominik Riebeling
16th Dec 18:29 78cb7f0: Support C++ in libtools.make and rewrite dependency handling.

- Change suffix of objects and depencency files to keep the original file suffix. This makes it easy to distinguish between C and C++ files when building and avoids implicit make rules trying to build in a way we don't want to.
- Implicitly handle dependencies instead of having an explicit rule. Simplifies things a bit.
- Support C++ files by adding an explicit rule for them. With keeping the original file suffixes this becomes quite simple. To use C++ files simply add them to SOURCES (or LIBSOURCES).
rbutil/libtools.make [diff]
Dominik Riebeling
16th Dec 18:39 6f4beaa: Don't add LIBSOURCES to SOURCES.

Split source files for library and stand-alone binary and use library as dependency when building the stand-alone binary. This avoids dependencies getting added multiple times.

Remove outdated RBARCH handling, we always create fat binaries on OS X these days.
rbutil/chinachippatcher/Makefile [diff]
rbutil/ipodpatcher/Makefile [diff]
rbutil/libtools.make [diff]
rbutil/mkamsboot/Makefile [diff]
rbutil/mkmpioboot/Makefile [diff]
rbutil/mktccboot/Makefile [diff]
rbutil/mkzenboot/Makefile [diff]
rbutil/sansapatcher/Makefile [diff]
Dominik Riebeling
2016-04-09 efe3775: Create local file URL using QUrl.

Don't construct the local file URL from string. On Windows the URL needs to start with file:/// instead of file://. QUrl handles this.
rbutil/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2016-04-09 14ef607: Fix various unit test compilation.

There's now a dependency on Logger.h, add stub folder to includes to stub it.
rbutil/rbutilqt/test/test-compareversion.pro [diff]
rbutil/rbutilqt/test/test-rockboxinfo.pro [diff]
rbutil/rbutilqt/test/test-serverinfo.pro [diff]
Dominik Riebeling
20th Sep 22:06 ac0fc74: imx233: don't print disabled IRQs in debug screen

There are lot IRQ and most are unused most of the time, this is annoying on devices with small screens.
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-25 17277fa: imx233: add more icoll statistics

Those new statistics give the maximum time an IRQ took and also the total time spent in IRQ, for each IRQ. Hopefully those do not take took much time or space to collect. If this is the case, it can be enabled in debug builds only the future.
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/icoll-imx233.c [diff]
firmware/target/arm/imx233/icoll-imx233.h [diff]
Amaury Pouly
20th Sep 22:09 a523c3f: imx233: fix IRQ handler w.r.t unwinder

The IRQ handler saves registers on the IRQ stack, saves the old PC to imx233 HW_DIGCTL_SCRATCH0 register and switcht to SVC for the actual handling. The old code had a problem in that if the unwinder is called during the IRQ (for example by the watchdog), then __get_sp() will use SPSR_svc to discover the previous mode, switch to it and recover SP. But SPSR_svc is invalid, it should be SPSR_irq but we switch from IRQ to SVC mode. The new code copies SPSR_irq to SPSR_svc in IRQ to fix this problem. It also saves/restore SCRATCH0 in case I one day renable nested interrupts or use SCRATCH0 for other purposes. I also changed the old watchdog code to call UIE directly instead of trying to make the code crash with a SWI.
firmware/target/arm/imx233/icoll-imx233.c [diff]
firmware/target/arm/imx233/system-imx233.c [diff]
Amaury Pouly
20th Sep 22:16 7e0820f: unwinder: in get__sp(), use the more correct "msr cpsr_c, ..." form
lib/unwarminder/get_sp.S [diff]
Amaury Pouly
21st Aug 18:33 89e6189: uda1380: document audiohw setting based on uda1380.c
firmware/export/uda1380.h [diff]
Amaury Pouly
21st Aug 18:33 4304d47: tlv320: document audiohw setting based on tlv320.c
firmware/export/tlv320.h [diff]
Amaury Pouly
21st Aug 18:31 4d526df: wm8975: document audiohw settings
firmware/drivers/audio/wm8975.c [diff]
firmware/export/wm8975.h [diff]
Amaury Pouly
21st Aug 18:30 69ea311: wm8758: document and fix audiohw settings

It looks like a copy and paste error to me, those were completely wrong.
firmware/drivers/audio/wm8758.c [diff]
firmware/export/wm8758.h [diff]
Amaury Pouly
21st Aug 18:28 90a32cc: wm8751: document and fix audiohw settings

Document 3D depth range. Fix mismatch in recording volume: the displayed volume is completely off the chart
firmware/drivers/audio/wm8751.c [diff]
firmware/export/wm8751.h [diff]
Amaury Pouly
21st Aug 18:27 cc031d4: wm8731: document audiohw settings
firmware/drivers/audio/wm8731.c [diff]
firmware/export/wm8731.h [diff]
Amaury Pouly
21st Aug 18:26 b55adf1: as3514: document hardware setting based on as3514.c
firmware/export/as3514.h [diff]
Amaury Pouly
20th Aug 19:31 9ca8bd6: manual: document 3D enhancement

3D "enhancement" is available on all imx233 platform, and also on platforms with the WM8978 codec (gigabeats) and WM8750 codec (MPIO HD 200/300). I used different texts for different codecs because (in theory) they do different
"things".
manual/configure_rockbox/sound_settings.tex [diff]
manual/platform/gigabeats.tex [diff]
manual/platform/mpiohd200.tex [diff]
manual/platform/mpiohd300.tex [diff]
Amaury Pouly
20th Aug 19:28 af81cc4: imx233: slightly rework 3D audio setting

The old code made the setting appear as 0dB, 1.5dB, 3dB and 4.5dB when in fact it is 0dB, 3dB, 4.5dB and 6dB. This commit clarifies the code and also fix this at the same time. This imx233 3D enhancement is complete crap anyway but now you can satisfy yourself with 6 dB of pure crap, clearly an enhancement.
firmware/drivers/audio/imx233-codec.c [diff]
firmware/export/imx233-codec.h [diff]
firmware/target/arm/imx233/audioout-imx233.h [diff]
Amaury Pouly
20th Aug 19:26 bfd3b08: Document AUDIOHW_SETTING

Everytime I use it, I get highly confused because it's complicated and undocumented. The code is spread all over the place and some targets clearly use incorrect values. This is the first step of a series to cleanup audio settings and document it properly.
firmware/export/audiohw.h [diff]
Amaury Pouly
26th Sep 19:24 1c97083: imx233: refactor power off and reboot

There is no reason to use different code paths
firmware/target/arm/imx233/power-imx233.c [diff]
firmware/target/arm/imx233/system-imx233.c [diff]
firmware/target/arm/imx233/system-target.h [diff]
Amaury Pouly
26th Sep 19:23 9aeb6f4: Make it clear that the NWZ-E370 port also handles NWZ-E380
firmware/export/config/sonynwze370.h [diff]
Amaury Pouly
26th Sep 19:22 a983859: imx233: add capability to boot OF or updater instead of Rockbox

This commit adds the necessary code in the dualboot stub (bootloader) to let rockbox control the boot process. In particular, rockbox can now choose if the next boot will be normal (boot rockbox or OF on magic key), to OF or to updater.

The intents (to be added in follow-up commits) are: 1) Let the user more easily reboot to the OF. On some targets it is not trivial, especially in USB mode. 2) Automatically reboot to updater when the user drop firmware.sb at the root of the drive (currently, the user needs to do that in OF USB mode) 3) Document this OF magic
firmware/SOURCES [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/export/config/sonynwze360.h [diff]
firmware/export/config/sonynwze370.h [diff]
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/dualboot-imx233.c [new]
firmware/target/arm/imx233/dualboot-imx233.h [new]
rbutil/mkimxboot/dualboot.c [diff]
rbutil/mkimxboot/dualboot.h [diff]
rbutil/mkimxboot/dualboot/Makefile [diff]
rbutil/mkimxboot/dualboot/config.h [diff]
rbutil/mkimxboot/dualboot/dualboot.c [diff]
Amaury Pouly
7th Nov 09:49 5c50efc: hwstub/tools: always run make for the libraries

This ensures that the libs are always up-to-date hopefully.
utils/hwstub/tools/Makefile [diff]
Amaury Pouly
12th Dec 10:23 8e82839: hwstub: various cleanups

- hwstub load now properly stops reading the log when the device returns a 0 size buffer instead of STALLing
- add debug output option to hwstub_load
- correctly report transfered size on write error
- add some debug error message in usb code so that some errors can be diagnosed more easily
- add a batch mode to hwstub_shell to disable the interactive shell
- increase usb control timeout to 1sec, 100ms was really tight
- cap usb buffer size to ~4000 bytes because libusb has a hardwired limit of 4096 bytes for control transfers
utils/hwstub/lib/hwstub.cpp [diff]
utils/hwstub/lib/hwstub_usb.cpp [diff]
utils/hwstub/tools/hwstub_load.cpp [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
9th Dec 20:30 5b52ff2: Add myself to COMMITTERS
docs/COMMITTERS [diff]
Franklin Wei
2016-06-14 16e22b5: Add tentative new element names, IUPAC approval expected around November
apps/plugins/periodic_table.c [diff]
Franklin Wei
22nd Nov 12:04 906a95c: rockoxdev.sh: fix compilation of ARM toolchain

This will breaks mips but mips is already super hard to build anyway.
tools/rockboxdev.sh [diff]
Amaury Pouly
20th Sep 22:18 bbf4ff2: Fix DEBUG build codecs

In DEBUG build, the codec API struct is consider with DEBUG flag in apps/ but without DEBUG flah in rbcodecs/, leading to unmatched structure and horrible crashes in some cases (mostly encoders). I have no idea why the codecs Makefile removes the DEBUG flag (maybe for performance reasons?) but it cannot be right.
lib/rbcodec/codecs/codecs.make [diff]
Amaury Pouly
20th Nov 20:35 a88f57e: nwztools/scripts: mount storage with ext3 instead of ext2

Since ext3 supports ext2, we can support more platforms. Some platforms use ext4 with a very specific set of options, we I haven't encountered those yet so it's not currently a problem.
utils/nwztools/scripts/dump_rootfs.sh [diff]
utils/nwztools/scripts/install_dualboot.sh [diff]
Amaury Pouly
20th Nov 20:33 ce966d3: hwstub/tools: fix compilation of shell against lua5.3

The unsigned function were deprecated and hidden begind a compat flag. Since they will get removed in the next version, I simply reimplemented them, those are mostly casts anyway.
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
12th Nov 21:28 0650277: nwztools/plattools: improve makefile to build images automatically
utils/nwztools/plattools/Makefile [diff]
Amaury Pouly
19th Nov 12:26 e7d952d: remove debug macro
apps/plugins/xworld/sys.h [diff]
Franklin Wei
3rd Nov 21:27 0573364: XWorld: some fixes

Fixes sound on most platforms, original root cause was bad menu code as well as DMA callbacks taking too long. Worked around with smaller chunk sizes. Permanent fix would include moving mixing out of the callback. Rewrites input with code from rockboy/doom. Cherry-picks a change from Gregory Montoir's `rawgl' to patch the code wheel screen. Finally, adds a motion blur filter on select targets.
apps/plugins/xworld/SOURCES [diff]
apps/plugins/xworld/engine.c [diff]
apps/plugins/xworld/intern.c [deleted]
apps/plugins/xworld/intern.h [diff]
apps/plugins/xworld/mixer.c [diff]
apps/plugins/xworld/resource.c [diff]
apps/plugins/xworld/sys.c [diff]
apps/plugins/xworld/sys.h [diff]
apps/plugins/xworld/video_data.c [diff]
apps/plugins/xworld/vm.c [diff]
Franklin Wei
14th Nov 19:54 deaeb73: Add KAS for NWZ-E470
utils/nwztools/upgtools/upgtool.c [diff]
Marcin Bukat
12th Nov 21:16 0c1a961: nwztools: rework dualboot

The new code gets closer to an actual bootloader:
- it provides a menu with three options: Sony, Rockox, tools with icons (and extracts the Sony logo from the NVP)
- the dualboot install script now creates a symlink from /.rockbox to
/contents/.rockox which is necessary to run rockbox
- more text drawing / framebuffer functions In the long run, we will move this under bootloader/ and rbutil/ and also use firmware/ drawing facilities, at the moment we use OF display program which is slow and creates some flickering. The logo extraction/placement code was tested with resolution 240x320 and I guessed some reasonable values for 240x400, but those will probably need some tweaking.
utils/nwztools/plattools/data/Makefile [new]
utils/nwztools/plattools/data/Oxygen480-categories-preferences-system.svg [new]
utils/nwztools/plattools/data/make_images.sh [new]
utils/nwztools/plattools/data/rockbox_icon.bmp [new]
utils/nwztools/plattools/data/tools_icon.bmp [new]
utils/nwztools/plattools/dualboot.c [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/scripts/install_dualboot.sh [diff]
Amaury Pouly
11th Nov 15:04 33856d9: nwztool/scsitools: cleanup and add destination changer tool

Now that we have a nice database of player index, the scsitool becomes more useful and supports a lot more players. I did some general cleanup of the code, though eventually it would be nice to really split it into a library and a CLI. The SCSI vendor command allow to read but also write most NVP nodes. Since there seems to a demand to change destination and sound pressure settings on device, I implement this feature in the tool. I do not plan to allow arbitrary NVP writes because this could easily brick the device. Changing the destination should be safe, but as usual, use at your own risks.
utils/nwztools/scsitools/Makefile [diff]
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
11th Nov 15:01 c95e30b: nwztools/plattools: use player database and rework stuff

Using the database, we can now safely read/write the NVP. I also add more support for Sony's "display" tool.
utils/nwztools/plattools/Makefile [diff]
utils/nwztools/plattools/dest_tool.c [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/nwz_lib_devlist.c [deleted]
utils/nwztools/plattools/test_display.c [diff]
Amaury Pouly
11th Nov 14:40 44bb285: nwztools/database: add database of information on Sony NWZ linux players

There must be an evil genius in Sony's Walkman division. Someone who made sure that each model is close enough to the previous one so that little code is needed but different enough so that an educated guess is not enough.

Each linux-based Sony player has a model ID (mid) which is a 32-bit integer. I was able to extract a list of all model IDs and the correspoding name of the player (see README). This gives us 1) a nice list of all players (because NWZ-A729 vs NWZ-A729B, really Sony?) 2) an easy way to find the name of player programatically. It seems that the lower 8-bit of the model ID gives the storage size but don't bet your life on it. The remaining bytes seem to follow some kind of pattern but there are exceptions.

From this list, I was able to build a list of all Sony's series (up to quite recent one). The only safe way to build that is by hand, with a list of series, each series having a list of model IDs. The notion of series is very important because all models in a series share the same firmware.

A very important concept on Sony's players is the NVP, an area of the flash that stores data associated with keys. The README contains more information but basically this is where is record the model ID, the destination, the boot flags, the firmware upgrade flags, the boot image, the DRM keys, and a lot of other stuff. Of course Sony decided to slightly tweak the index of the keys regularly over time which means that each series has a potentially different map, and we need this map to talk to the NVP driver. Fortunately, Sony distributes the kernel for all its players and they contain a kernel header with this information. I wrote a script to unpack kernel sources and parse this header, producing a bunch of nw-*.txt files, included in this commit. This map is very specific though: it maps Sony's 3-letter names (bti) to indexes (1). This is not very useful without the decription (bti = boot image) and its size (262144). This information is harder to come by, and is only stored in one place: if icx_nvp_emmc.ko drivers, found on the device. Fortunately, Sony distributes a number of firmware upgrade, that contain the rootfs, than once extracted contain this driver. The driver is a standard ELF files with symbols. I wrote a parsing tool (nvptool) that is able to extract this information from the drivers. Using that, I produced a bunch of nodes-nw*.txt files. A reasonable assumption is that nodes meaning and size do not change over time (bti is always the boot image and is always 262144 bytes), so by merging a few of those file, we can get a complete picture
(note that some nodes that existed in older player do not exists anymore so we really need to merge several ones from different generations).

The advantage of storing all this information in plain text files, is that it now makes it easy to parse it and produce whatever format we want to use it. I wrote a python script that parses all this mess and produces a C file and header with all this information (nwz_db.{c,h}).
utils/nwztools/database/README [new]
utils/nwztools/database/check_models_series.sh [new]
utils/nwztools/database/gen_db.py [new]
utils/nwztools/database/models.txt [new]
utils/nwztools/database/nvp/Makefile [new]
utils/nwztools/database/nvp/README [new]
utils/nwztools/database/nvp/nodes-nwz-a10.txt [new]
utils/nwztools/database/nvp/nodes-nwz-a20.txt [new]
utils/nwztools/database/nvp/nodes-nwz-a820.txt [new]
utils/nwztools/database/nvp/nodes-nwz-a860.txt [new]
utils/nwztools/database/nvp/nodes-nwz-e450.txt [new]
utils/nwztools/database/nvp/nodes-nwz-e460.txt [new]
utils/nwztools/database/nvp/nodes-nwz-e580.txt [new]
utils/nwztools/database/nvp/nodes-nwz-zx100.txt [new]
utils/nwztools/database/nvp/nvptool.cpp [new]
utils/nwztools/database/nvp/nw-a30.txt [new]
utils/nwztools/database/nvp/nw-e060.txt [new]
utils/nwztools/database/nvp/nw-e080.txt [new]
utils/nwztools/database/nvp/nw-s780.txt [new]
utils/nwztools/database/nvp/nwz-a10.txt [new]
utils/nwztools/database/nvp/nwz-a20.txt [new]
utils/nwztools/database/nvp/nwz-a850.txt [new]
utils/nwztools/database/nvp/nwz-a860.txt [new]
utils/nwztools/database/nvp/nwz-e350.txt [new]
utils/nwztools/database/nvp/nwz-e450.txt [new]
utils/nwztools/database/nvp/nwz-e460.txt [new]
utils/nwztools/database/nvp/nwz-e470.txt [new]
utils/nwztools/database/nvp/nwz-e580.txt [new]
utils/nwztools/database/nvp/nwz-s760.txt [new]
utils/nwztools/database/nvp/nwz-zx100.txt [new]
...and 8 more files.
Amaury Pouly
11th Nov 14:32 19de536: nwztools/upgtools: cleanup

There is no need to store the key and sig since those are derived from the KAS anyway.
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
10th Nov 11:54 ba9f405: ATJ hwstub make irq based usb driver work

0e2b490 introduced rework of usb driver which was broken. It was reverted in f2da975 to restore hwstub functionality on ATJ.

This commit reenables usb rework AND fixes remining issues. The problem was with 0 length OUT thransfers. Additionally a few cleanups were made.
utils/hwstub/stub/atj213x/usb_drv_atj213x.c [diff]
Marcin Bukat
8th Nov 07:10 f2da975: Revert "hwstub: rework usb driver for atj213x"

This reverts commit 0e2b4908d012dbd45a58002774f32b64ea8f83e3.

Although I swear it was tested it apparently broke hwstub on atj. I will need to investigate more whats going on. Revert for now.
utils/hwstub/stub/atj213x/usb_drv_atj213x.c [diff]
Marcin Bukat
6th Nov 20:59 3b7e7cb: hwstub_shell: fix a horrible bug
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
6th Nov 17:27 a2d4686: SVG image of the Creative Zen Vision, plus other formats for the manual.
manual/rockbox_interface/images/zenvision-front.pdf [new]
manual/rockbox_interface/images/zenvision-front.png [new]
manual/rockbox_interface/images/zenvision-front.svg [new]
Szymon Dziok
5th Nov 23:15 25bd580: forgot file
utils/nwztools/plattools/test_fb.c [new]
Amaury Pouly
5th Nov 23:12 5017bab: nwztools/plattools: fix black screen issue in dualboot, rework dualboot

Sony added extensions to the frambuffer interface. It is important to take them into account since the OF uses them and might leave the framebuffer in an unusual state which would make the dualboot not display anything. Also rework the dualboot code so that it can boot rockbox (not doing anything at the moment), display all tools or boot the OF.
utils/nwztools/plattools/Makefile [diff]
utils/nwztools/plattools/all_tools.c [diff]
utils/nwztools/plattools/dualboot.c [diff]
utils/nwztools/plattools/nwz_fb.h [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/test_display.c [diff]
Amaury Pouly
1st Nov 16:04 d492f25: nwztools: add preliminary dualboot and dualboot install script

At the moment, the script install_duaboot does the following:
- rename SpiderApp to SpiderApp.of (unless it already exists)
- install payload as SpiderApp
- fixes permissions Since SpiderApp is the main app, it will execute instead of the OF. The current dualboot code (dualboot.c) is still a preliminary but the current version displays an "all tools" menu to choose for. When exitting the menu using BACK, it will run the OF.

With the modifications made by the install script, it should not be possible to break the device. In the worst case scenario, the dualboot code crashes and it restarted by the sysmgrd, or hangs. A safe way to recover is to plug the USB cable and reset the device: the system manager will then start the USB app and one can reflash the device if necessary.
utils/nwztools/plattools/Makefile [diff]
utils/nwztools/plattools/dualboot.c [new]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/scripts/Makefile [diff]
utils/nwztools/scripts/exec_file.sh [diff]
utils/nwztools/scripts/install_dualboot.sh [new]
Amaury Pouly
31th Oct 16:51 b045e4d: nwztools/upgtools: sanitize series name and add keys

Unify series names: e46x -> e460 to be consistent with Sony' name. Add keys for various players that were cracked using upgtools. The real KAS would need to be extracted from a target but at least we can open/create firmware upgrades.
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
31th Oct 16:50 0a22906: nwztools/plattools: rework/clean and add an all-in-one tool

This new tool (all_tools) embeds all the other tools and provides a menu to choose which one to run.
utils/nwztools/plattools/Makefile [diff]
utils/nwztools/plattools/all_tools.c [new]
utils/nwztools/plattools/dest_tool.c [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/nwz_plattools.h [new]
utils/nwztools/plattools/nwz_power.h [diff]
utils/nwztools/plattools/test_adc.c [diff]
utils/nwztools/plattools/test_bl.c [diff]
utils/nwztools/plattools/test_display.c [diff]
utils/nwztools/plattools/test_keys.c [diff]
utils/nwztools/plattools/test_power.c [diff]
utils/nwztools/plattools/test_ts.c [diff]
Amaury Pouly
28th Oct 21:28 ad9a2d5: nwztools/plattools: add a tool to change destination and sound pressure

Since the nwz_lib does not have any nvp code yet, it's quite of ugly hack with hardcoded nvp node (11) for shipment information (shp). Thus I whitelisted two series (NWZ-E460 and NWZ-A860) which I know for sure use this node ID.
utils/nwztools/plattools/dest_tool.c [new]
Amaury Pouly
28th Oct 21:27 3097239: nwztools/plattools: add device list

This list can map from model id to device name. It was automatically extracted from Sony's tools. In the future, we will probably generate it from a clean database containing more useful information.
utils/nwztools/plattools/Makefile [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/nwz_lib_devlist.c [new]
Amaury Pouly
28th Oct 21:25 281c8d4: nwztools/scripts: export model id in an environment variable

This is useful because there is no easy way to get it except from Sony's tool, unless one knows the npv node, but that requires to know the model already...
utils/nwztools/scripts/exec_file.sh [diff]
Amaury Pouly
27th Oct 21:06 37f95f6: nwztools/upgtools: rewrite keysig brute force search

The new search has two new features:
- it takes advantage of the fact that DES keys are only 56-bit long (and not 64)
- it is now multithreaded As a proof of concept, I ran it on the A10 series firmware upgrade and was able to find the key in a few seconds using 4 threads. The search is still limited to ascii hex passwords (seems to work on all devices I have tried thus far).
utils/nwztools/upgtools/Makefile [diff]
utils/nwztools/upgtools/keysig_search.c [diff]
utils/nwztools/upgtools/keysig_search.h [diff]
utils/nwztools/upgtools/mg.cpp [diff]
utils/nwztools/upgtools/misc.c [diff]
utils/nwztools/upgtools/misc.h [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
26th Oct 18:40 794104d: nwztools/plattools: switch to BACK key to quit

The power off/option does not exist on some models.
utils/nwztools/plattools/test_adc.c [diff]
utils/nwztools/plattools/test_bl.c [diff]
utils/nwztools/plattools/test_keys.c [diff]
utils/nwztools/plattools/test_power.c [diff]
utils/nwztools/plattools/test_ts.c [diff]
Amaury Pouly
20th Oct 16:21 d42b43c: nwztools/plattools: add test_power, rework input, add test_ts (touchscreen)
utils/nwztools/plattools/nwz_keys.h [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/nwz_power.h [new]
utils/nwztools/plattools/nwz_ts.h [new]
utils/nwztools/plattools/test_adc.c [diff]
utils/nwztools/plattools/test_power.c [new]
utils/nwztools/plattools/test_ts.c [new]
Amaury Pouly
22nd Oct 13:55 fed083c: hwstub: fix compile and linking ordering
utils/hwstub/tools/Makefile [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
19th Oct 16:19 0b01ca6: nwztools/plattools: add adc test
utils/nwztools/plattools/nwz_adc.h [new]
utils/nwztools/plattools/nwz_fb.h [new]
utils/nwztools/plattools/nwz_keys.h [diff]
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/test_adc.c [new]
Amaury Pouly
19th Oct 15:58 8d24b62: nwztools/plattools: add backlight test
utils/nwztools/plattools/nwz_lib.c [diff]
utils/nwztools/plattools/nwz_lib.h [diff]
utils/nwztools/plattools/test_bl.c [new]
Amaury Pouly
19th Oct 15:03 ba91ff1: nwztools: add a new plattools directory with code to run on the device

This is code is intended to development into a library of code for the NWZ that will be useful to write the "bootloader" on those device. At the same time, it comes with test programs that are easy to run in firmware upgrade mode and also provide a great test bench for the library. At the moment, two test programs are available:
- test_display: simply prints two messages using /usr/bin/lcdmsg
- test_keys: displays input key event
utils/nwztools/plattools/Makefile [new]
utils/nwztools/plattools/README [new]
utils/nwztools/plattools/nwz_keys.h [new]
utils/nwztools/plattools/nwz_lib.c [new]
utils/nwztools/plattools/nwz_lib.h [new]
utils/nwztools/plattools/test_display.c [new]
utils/nwztools/plattools/test_keys.c [new]
Amaury Pouly
19th Oct 15:02 13d892e: nwztools: update makefile and add script

The new script allows the upgrade to execute a file found on the user partition.
utils/nwztools/scripts/Makefile [diff]
utils/nwztools/scripts/exec_file.sh [diff]
utils/nwztools/scripts/exec_file_extern.sh.in [new]
Amaury Pouly
19th Oct 15:01 eaa1cb3: fix typo
utils/hwstub/lib/hwstub_net.cpp [diff]
Amaury Pouly
26th Sep 22:09 21fb5af: nwztools: rework upg scripts

The exec_file allows to embed a script/executable and run it on target. It takes of unpacking, remounting contents rw and redirect output to exec.txt at the root of the drive. More generally, rework how the makefile works.
utils/nwztools/scripts/Makefile [diff]
utils/nwztools/scripts/README [diff]
utils/nwztools/scripts/exec_file.sh [new]
Amaury Pouly
12th Oct 14:52 2a2800b: pdbox: fix bug shown by new gcc warning
apps/plugins/pdbox/PDa/src/g_template.c [diff]
Frank Gevaerts
2016-06-25 e6687c1: Rockboy: revert FS #11745 patch

William Shipley sent this patch via mailing list. Original Message:
"There was a patch to rockboy in 2010 that fixed a problem where the bottom tile row would be rendered at the top.

Here's the relevant issue from that time: http://www.rockbox.org/tracker/11745

Note that Stummi openly admits it was a hack, not a true fix.

Sometime in the 6 years since, the root cause was fixed. Currently, rockboy on the Clip+ and other 64px models shows the top of the gb screen along the bottom of the display.

I confirmed that reversing this patch fixes the issue on my own Clip+"

I don't have any of the mentioned targets, so someone else has to test.
apps/plugins/rockboy/sys_rockbox.c [diff]
Sebastian Leonhardt
2nd Oct 21:42 68d192e: SA9200: Remove duplicated and misleading define.
firmware/export/config/gogearsa9200.h [diff]
Szymon Dziok
2nd Oct 21:30 a0b79ce: HDD16X0/HDD63X0: Enable power status of charging from USB.
firmware/target/arm/philips/power-hdd.c [diff]
Szymon Dziok
25th Sep 21:11 e3deec9: HDD6330: Implement ATA power on/off.

This should fix some errors, panics in some individual cases.
firmware/target/arm/philips/power-hdd.c [diff]
Szymon Dziok
23rd Sep 19:51 50c1de7: Fix makefile not rebuilding rbversion.h in some cases

For example when running make VERSION="bla"
firmware/firmware.make [diff]
tools/genversion.sh [diff]
Amaury Pouly
22nd Sep 20:28 92450a9: Mark Philips GoGear players as stable.
tools/builds.pm [diff]
Szymon Dziok
22nd Sep 19:31 1c4373f: imx233: fix dualboot, forgot a file
rbutil/mkimxboot/dualboot/config.h [new]
Amaury Pouly
22nd Sep 19:13 6e553e3: fix red on stmp<3780
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
22nd Sep 19:02 673ee48: imx233: fix dualboot stubs

They did not compile anymore after the register hearder rework. This change only fixes the syntax, the generated binaries are exactly identical.
rbutil/mkimxboot/dualboot/dualboot.c [diff]
Amaury Pouly
22nd Sep 19:02 420eb66: imx233: add power-up source to the debug menu
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
22nd Sep 19:48 5869ad2: Mark Samsung YH players as stable.
tools/builds.pm [diff]
Szymon Dziok
21st Sep 18:39 c534be0: Move ZEN X-Fi/X-Fi3/X-Fi Style/Mozaic, NWZ-E360/E370/E380 and Fuze+ to stable. Move ZEN and ZEN X-Fi2 to unstable.
tools/builds.pm [diff]
Amaury Pouly
20th Sep 22:02 5e2600e: imx233: make microphone bias, bias pin and resistor configurable

This clearly fixes recording on targets where the bias pin was wrong. It may also improve recording on targets where the bias voltage was wrong. I was unable to find those parameters on the ZEN Mozaic, which fallback to default values.
firmware/target/arm/imx233/audio-imx233.h [diff]
firmware/target/arm/imx233/audioin-imx233.c [diff]
firmware/target/arm/imx233/creative-zen/audio-target.h [diff]
firmware/target/arm/imx233/creative-zenxfi2/audio-target.h [diff]
firmware/target/arm/imx233/creative-zenxfi3/audio-target.h [diff]
firmware/target/arm/imx233/sansa-fuzeplus/audio-target.h [diff]
Amaury Pouly
9th Sep 11:10 6f7ee0b: regtools: fix library bug when checking if a reference is valid or not
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
9th Sep 11:09 7b1bcae: regtools: rename error_t to err_t to avoid name clash
utils/regtools/headergen_v2.cpp [diff]
utils/regtools/include/soc_desc.hpp [diff]
utils/regtools/lib/formula.cpp [diff]
utils/regtools/lib/soc_desc.cpp [diff]
utils/regtools/swiss_knife.cpp [diff]
Amaury Pouly
9th Sep 11:08 84ff8a4: headergen_v1: remove warnings with newer GCCs
utils/regtools/headergen_v1.cpp [diff]
Amaury Pouly
20th Sep 21:59 5918e18: zenxfi3: fix recording keymap and simulator keymap
apps/keymaps/keymap-zenxfi3.c [diff]
uisimulator/buttonmap/creative-zenxfi3.c [diff]
Amaury Pouly
20th Sep 22:00 9dc4b00: imx233: fix recording gain

For some reason, there was a mismatch between the setting (decibel) and the audiohw code (centicel). This resulted in a gain divided by 10. This may explain why some people experienced low volume with the mic on the fuze+.
firmware/drivers/audio/imx233-codec.c [diff]
firmware/target/arm/imx233/audioout-imx233.c [diff]
Amaury Pouly
26th Aug 11:42 1f8ea9f: Opus: update resume offset correctly while playing.

The codec wasn't calling ci->set_offset() while decoding; as a result, the saved offset in ci.id3->offset was only updated at the start of the file and when seeking.

To reproduce the problem in the simulator or on a real device:
- Start playing an Opus file.
- Let it play until 15s, then turn the player off.
- Turn back on and resume playback. This'll resume correctly from 15s
(using time-based resume, I think, as the offset was 0?).
- Let it play until 30s, then turn the player off again.
- Turn back on and resume playback. This'll resume from 15s, based on the initial position from last time, when it should resume from 30s.

I believe this will also fix FS #12799 ("Resuming opus file from bookmark is not working correctly").
docs/CREDITS [diff]
lib/rbcodec/codecs/opus.c [diff]
Adam Sampson
30th Aug 15:19 cf82f20: nwztools: cleanup the code

There was a lot of copy and paste, and the code was just crap. This commit tries to clarify the code and also document the encryption procedure. Hopefully I didn't break anything.
utils/nwztools/upgtools/fwp.h [diff]
utils/nwztools/upgtools/keysig_search.c [diff]
utils/nwztools/upgtools/keysig_search.h [diff]
utils/nwztools/upgtools/misc.c [diff]
utils/nwztools/upgtools/misc.h [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
20th Aug 13:05 de8950d: upgtools: add NWZ-E45x Series key and signature

Also fix a typo in the script makefile
utils/nwztools/scripts/Makefile [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
20th Aug 13:05 71a369b: upgtools: small cleanups

KAS was in its own structure for historical reasons, but it's stupid now.
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
15th Aug 14:32 afe7f1b: as3543: fix audio gap when switching from dac to line-in/recording

Also clarity parts of the code. The old code suffered from two defects:
- it was very unclear because it made changes to whole registers
(using as3514_write) instead of fields (using as3514_set/clear/write_masked). Also the routing code was spread accross several functions which made it hard to follow.
- it did not properly reroute audio on monitor changes. In particular, the following could happen: when switching from DAC to radio, the code would fail to clear SUM_off, resulting in a weird situation where the main mixer was off
(SUM_off) but the headphone where using the main mixer as input. Incredibly this worked anyway (at least on AMSv2 and YP-R0) but resulted in strange volume gaps between DAC and radio mode.
firmware/drivers/audio/as3514.c [diff]
Amaury Pouly
25th Aug 22:06 cbcc8f3: iAP: fix USB storage mount after using an iAP accessory
apps/iap/iap-core.c [diff]
Cástor Muñoz
22nd Aug 22:02 108a0f3: Samsung YP-R0: Fix settings keymap (apply FS #13073 by lebellium)
apps/keymaps/keymap-ypr0.c [diff]
Sebastian Leonhardt
22nd Aug 21:37 09bdb51: Fix two typos in comments
firmware/export/audiohw.h [diff]
Amaury Pouly
22nd Aug 21:37 82b0914: imx233: add alarm value to debug menu

Hopefully this can help debugging alarm problems.
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
22nd Aug 21:31 762dde0: Fuze+: fix manual (alarm keymap)
manual/platform/keymap-sansafuzeplus.tex [diff]
Sebastian Leonhardt
21st Aug 22:13 afcdf00: Fuze+: fix CONTEXT_SETTINGS keymap (unable to cancel)
apps/keymaps/keymap-fuzeplus.c [diff]
Sebastian Leonhardt
21st Aug 15:19 d938411: Print make version in configure output.

This should make it easier to figure out random build issues.
tools/configure [diff]
Frank Gevaerts
20th Aug 14:25 45c6785: Attempt to fix dependencies for lang.h, lang_core.c and lang_core.o

This hopefully fixes occasional build failures
apps/lang/lang.make [diff]
Frank Gevaerts
20th Aug 18:38 adaba2b: Update french translation, thanks to lebellium for spotting those.
apps/lang/francais.lang [diff]
Amaury Pouly
20th Aug 12:49 c7228de: Update French translation.
apps/lang/francais.lang [diff]
Amaury Pouly
2016-02-04 7083110: iPod Classic: NOR support for bootloader

- NOR driver (based on emCORE)
- read/write IM3 images
- read 'flsh' files
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/nor-s5l8702.c [new]
firmware/target/arm/s5l8702/nor-target.h [new]
Cástor Muñoz
2016-02-04 bf89c75: iPod Classic: hardware AES and SHA1 for bootloader

Based on emCORE.

Low level functions that do not depend on Rockbox kernel, intended to be used by the bootloader, dualboot-installer, RB drivers or other .dfu tools.
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/crypto-s5l8702.c [new]
firmware/target/arm/s5l8702/crypto-s5l8702.h [new]
Cástor Muñoz
2016-02-04 57a4485: iPod Classic: SPI driver for bootloader

Based on emCORE.

Low level functions that do not depend on Rockbox kernel, intended to be used by the bootloader, dualboot-installer, RB drivers or other .dfu tools.
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/spi-s5l8702.c [new]
firmware/target/arm/s5l8702/spi-s5l8702.h [new]
Cástor Muñoz
17th Aug 19:26 9d121cf: nwztools: upgrade upgtools and add dumping script
utils/nwztools/scripts/Makefile [new]
utils/nwztools/scripts/README [new]
utils/nwztools/scripts/dump_rootfs.sh [new]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
17th Aug 20:04 3db0363: FS #13079 - Slovak lang update

Signed-off-by: Bertrik Sikken
apps/lang/slovak.lang [diff]
Peter Lecký
15th Aug 21:56 fe730d3: manual: fix/remove broken links
manual/plugins/chip8emulator.tex [diff]
manual/plugins/frotz.tex [diff]
manual/plugins/pacbox.tex [diff]
manual/plugins/rocklife.tex [diff]
manual/plugins/solitaire.tex [diff]
manual/plugins/zxbox.tex [diff]
Sebastian Leonhardt
2016-01-08 40ce2b4: rbutil: add abort signal for bootloader install/uninstall

During the bootloader install/uninstall process, a signal is emitted when "Abort" button is pressed, the installers can attach this signal and cancel the process.
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbase.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Cástor Muñoz
2016-01-09 e4af973: rbutil: show progress bar during bootloader uninstall

Useful for targets that needs multi-stage uninstall. On current targets (with Uninstall capability) the progress is updated to 100% when bootloader uninstall is successfully finished.
rbutil/rbutilqt/base/bootloaderinstallfile.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallipod.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmi4.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Cástor Muñoz
2016-01-09 5a673d6: rbutil: enable "done" signal on bootloader uninstall

This allows to implement multi-stage uninstallers. Should not affect the behaviour on current targets.
rbutil/rbutilqt/base/bootloaderinstallams.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallimx.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmi4.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmpio.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalltcc.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Cástor Muñoz
2016-07-31 6a1644c: as3525v2: use the new USB DesignWare driver

Targets: sansaclipplus, samsaclipv2, sansaclipzip, sansafuzev2.
firmware/export/as3525v2.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansafuzev2.h [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
firmware/target/arm/as3525/usb-as3525.c [diff]
Cástor Muñoz
14th Aug 21:57 9868da4: German language update (FS #13078).
apps/lang/deutsch.lang [diff]
docs/CREDITS [diff]
Michael Giacomelli
12th Aug 13:33 4f7f7f2: Fix misleading indentation as pointed out by the new gcc warning
apps/gui/skin_engine/skin_tokens.c [diff]
apps/plugins/doom/g_game.c [diff]
apps/plugins/lua/ltablib.c [diff]
apps/plugins/lua/strncat.c [diff]
apps/plugins/main_menu_config.c [diff]
Frank Gevaerts
12th Aug 12:41 37cc433: Silence newer toolchains a bit

Newer toolchains (both gcc and libc related) add a lot of warnings. While these can be useful and correct, cleaning them up woult be a lot of work and isn't likely to actually happen any time soon.
tools/configure [diff]
Frank Gevaerts
12th Aug 12:03 578525b: iPod Classic: rework on I2C driver

- Some rewrite with the intent to get ride of these random errors appearing on some builds/devices (not much noticeable on RB but can ruin bootloader builds).
- Error handling (ACK).
- IIC clock increased to be the same as in OF.
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/i2c-s5l8702.c [diff]
Cástor Muñoz
12th Aug 00:37 adbd296: iPod Classic: ADC updates

Add code to read USB D+/D- and accessory ADCs, it is shown in HW debug menu, might be useful in future for RB and/or the bootloader to identify external USB chargers.
firmware/export/pcf5063x.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/adc-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/adc-target.h [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
firmware/target/arm/s5l8702/ipod6g/powermgmt-ipod6g.c [diff]
Cástor Muñoz
11th Aug 17:49 a25d0c5: Increase CVDD1 only for Clip+ version 0
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
9th Aug 23:36 cfa1c84: Increase CVDD1 for Clip+ to prevent ATA error
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
2016-08-03 e3c51e0: usb_serial: fix send buffer alignment
firmware/usbstack/usb_serial.c [diff]
Cástor Muñoz
2016-08-03 8387801: test_mem: print clock speed in MHz so it fits on smaller screens.
apps/plugins/test_mem.c [diff]
Michael Giacomelli
2016-07-31 ef572fe: iPod Nano 2G: use the new USB DesignWare driver
firmware/SOURCES [diff]
firmware/export/config/ipodnano2g.h [diff]
firmware/export/s5l8700.h [diff]
firmware/target/arm/s5l8700/usb-nano2g-6g.c [deleted]
firmware/target/arm/s5l8700/usb-s5l8701.c [new]
Cástor Muñoz
2016-07-31 3c5aa75: iPod Classic: use the new USB DesignWare driver
firmware/SOURCES [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/usb-s5l8702.c [new]
Cástor Muñoz
2016-07-31 5e305d3: Introduce new USB driver for Synopsys DesignWare USB OTG core.

Based on g#844 and g#949, it is intended as a replacement for the current s3c6400x USB driver.

The DesignWare USB OTG core is integrated into many SoC's, however HW core version and capabilities (mainly DMA mode, Tx FIFO mode, FIFO size and number of available IN/OUT endpoins) may differ:

CPU targets HW ver DMA NPTX FIFO FIFO sz #IN/OUT
-------- ------------- ------ --- --------- ------- ------- as3525v2 sansaclipplus 2.60a Yes Dedicated 0x535 4/4 sansaclipv2 sansaclipzip sansafuzev2 s5l8701 ipodnano2g 2.20a Yes Shared 0x500 4/5 s5l8702 ipod6g 2.60a Yes Dedicated 0x820 7/7 ipodnano3g s5l8720 ipodnano4g ? ? ? ? ?

Functionality supported by this driver:
- Device mode, compatible with USB 1.1/2.0 hosts.
- Shared FIFO (USB_DW_SHARED_FIFO) or dedicated FIFOs.
- No DMA (USB_DW_ARCH_SLAVE) or internal DMA mode.
- Concurrent transfers: control, bulk (usb_storage, usb_serial) and interrupt (usb_hid).

Actually this driver is not used by any CPU, it will be enabled for each individual CPU/target in next patches.
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/usb-designware.h [new]
firmware/target/arm/usb-designware.c [new]
firmware/usbstack/usb_serial.c [diff]
Cástor Muñoz
2016-06-28 0f89b04: Fix endianness handling for sha1 (used by the otp plugin)
apps/plugins/lib/sha1.c [diff]
Frank Gevaerts
2016-06-14 c7a561e: Remove chapter magic in table of contents for scrreprt tex4ht.

This fixes html builds. Don't ask.
manual/scrreprt.4ht [diff]
Frank Gevaerts
2016-06-14 7b95b9d: Update old \tt and \sc macros
manual/appendix/gpl-2.0.tex [diff]
Frank Gevaerts
2016-06-11 1bd47de: zenxfi3: recalibrate battery curve

Apparently I simply forgot to calibrate it when the port was done and the current values are just plain wrong, especially for the charging curve.
firmware/target/arm/imx233/creative-zenxfi3/powermgmt-zenxfi3.c [diff]
Amaury Pouly
2016-06-09 489044d: iPod Nano2G: clear external interrupts at startup

Fixes some ROLO issues after commit 9a4cd2e. Note that other ROLO issues still persist.
firmware/target/arm/s5l8700/crt0.S [diff]
Cástor Muñoz
2016-06-07 9a6700d: imx233: fix power off code

There are two very suspicious things in the power off code:
- it does not properly unlock the power register, so it should fail (!)
- it does not disable sw/hw watchdog so if register fails, the device will most probably crash horribly because of the watchdog I don't even understand how it worked before.
firmware/target/arm/imx233/power-imx233.c [diff]
Amaury Pouly
2016-06-05 e195126: manual: add screenshots for 2048

* These were automatically generated by Amaury Pouly

* For details read http://www.rockbox.org/irc/log-20160605#20:58:18
manual/plugins/2048.tex [diff]
manual/plugins/images/ss-2048-112x64x1.png [new]
manual/plugins/images/ss-2048-128x128x16.png [new]
manual/plugins/images/ss-2048-128x128x2.png [new]
manual/plugins/images/ss-2048-128x160x16.png [new]
manual/plugins/images/ss-2048-128x64x1.png [new]
manual/plugins/images/ss-2048-128x96x16.png [new]
manual/plugins/images/ss-2048-128x96x2.png [new]
manual/plugins/images/ss-2048-132x80x16.png [new]
manual/plugins/images/ss-2048-138x110x2.png [new]
manual/plugins/images/ss-2048-160x128x1.png [new]
manual/plugins/images/ss-2048-160x128x16.png [new]
manual/plugins/images/ss-2048-160x128x2.png [new]
manual/plugins/images/ss-2048-176x132x16.png [new]
manual/plugins/images/ss-2048-176x220x16.png [new]
manual/plugins/images/ss-2048-220x176x16.png [new]
manual/plugins/images/ss-2048-240x320x16.png [new]
manual/plugins/images/ss-2048-240x400x16.png [new]
manual/plugins/images/ss-2048-320x240x16.png [new]
manual/plugins/images/ss-2048-320x240x24.png [new]
manual/plugins/images/ss-2048-96x96x16.png [new]
Franklin Wei
2016-05-25 30d7ead: One-Time Password client (HOTP and TOTP)

* Implements RFC 4226 (HOTP) and RFC 6238 (TOTP)

* Adds sha1.c to apps/plugins/lib (orignally tools/hmac-sha1.c)

* See manual entry for more information
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/sha1.c [new]
apps/plugins/lib/sha1.h [new]
apps/plugins/otp.c [new]
manual/configure_rockbox/time_and_date.tex [diff]
manual/plugins/main.tex [diff]
manual/plugins/otp.tex [new]
Franklin Wei
2016-06-01 59ae562: fix yellow
firmware/target/arm/imx233/sansa-fuzeplus/button-fuzeplus.c [diff]
Amaury Pouly
2016-05-30 ccd500a: imx233: fix stupid typo in debug screen
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-30 d42a4a4: zenxfi3: rewrite mpr121 driver

The new driver uses an asynchronous architecture for touch status reading.
firmware/SOURCES [diff]
firmware/drivers/mpr121.c [deleted]
firmware/export/mpr121.h [diff]
firmware/target/arm/imx233/creative-zenxfi3/backlight-zenxfi3.c [diff]
firmware/target/arm/imx233/creative-zenxfi3/button-zenxfi3.c [diff]
firmware/target/arm/imx233/creative-zenxfi3/mpr121-zenxfi3.c [new]
firmware/target/arm/imx233/creative-zenxfi3/mpr121-zenxfi3.h [new]
Amaury Pouly
2016-05-02 b2afd93: fuze+: rewrite touchpad driver

The old driver was bad in many respect, it had some race conditions, it was using a thread to serialize transfers because of the legacy i2c interface. It also had huge latency (typically 50ms but delays up to 300ms can happen), thus some presses were missed. The new driver takes advantage of the new i2c driver to do everything asynchronously. It also does not need a thread anymore because queueing ensures proper serialization. It provides much better and reliable latency
(typically ~2ms). Also fix the debug screen which was horribly broken. The new screen also displays the deadzones.
firmware/SOURCES [diff]
firmware/drivers/synaptics-rmi.c [deleted]
firmware/export/synaptics-rmi.h [diff]
firmware/target/arm/imx233/sansa-fuzeplus/button-fuzeplus.c [diff]
Amaury Pouly
2016-05-02 4d42e36: imx233: rewrite i2c driver

The new driver provides several new features:
- asynchronous transfer
- transactions (several transfers executed at once)
- queueing The style still provides the legacy interface.
firmware/target/arm/imx233/fmradio-imx233.c [diff]
firmware/target/arm/imx233/i2c-imx233.c [diff]
firmware/target/arm/imx233/i2c-imx233.h [diff]
Amaury Pouly
2016-05-29 615c638: Fix broken simulator build with weird sdl-config

* --static-libs isn't supported on some (possibly newer) SDL installs, falls back to --libs if this is the case

Patch mostly by Amaury Pouly.
tools/configure [diff]
Franklin Wei
2016-05-30 86df983: zenxfi3: update keymap

Map short menu press to context menu/quickscreen. Map long menu press to return to main menu. Also remove some stupid keylock mapping, that doesn't make sense.
apps/keymaps/keymap-zenxfi3.c [diff]
Amaury Pouly
2016-05-29 6d124c7: Fix red, forgotten file
firmware/target/arm/imx233/sdmmc-imx233.h [new]
Amaury Pouly
2016-05-29 633c8ed: imx233: two minor fixes for sd/mmc

Always enable support for SET_BLOCK_COUNT on mmc: it is mandatory. For some reason (probably a mistake) it was disabled unconditionaly on mmc. Also deselect sd card after init. Although it is unlikely to make a difference, it is already done for mmc so stay consistent.
firmware/target/arm/imx233/sdmmc-imx233.c [diff]
Amaury Pouly
2016-05-29 85ad99e: imx233: add sd/mmc debug screen

The screen currently displays for each device the bus width, set_block_count support, HS capability and whether it is enabled for not.
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/sdmmc-imx233.c [diff]
Amaury Pouly
2016-05-29 7aacf4d: imx233: fix button debug screen on landscape mode screen

Some players like the ZEN X-Fi have a wide but not tall screen, it is thus better to display everything on one line for each button
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-28 ae7dd53: imx233: fix red

stop pretending that stmp3600 and stmp3700 have a 4.2V power rail
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/powermgmt-imx233.c [diff]
Amaury Pouly
2016-05-28 c926a52: Fix race conditions in parallel build.

ffmpeg_bitstream.c is included in libcodec, so there doesn't seem to be any reason for individual codecs to also compile it (and clobber any previous copy while they're at it, leading to broken builds)
lib/rbcodec/codecs/libwma/SOURCES [diff]
lib/rbcodec/codecs/libwmapro/SOURCES [diff]
Frank Gevaerts
2016-05-02 cdca7ce: imx233: add new power debug screen

This screen allows to put the device in a special mode where:
- charging is disabled
- device only draws power from 5V (thus battery is untouched) This is useful to measure the device consumption by measuring directly the usb power consumption.
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-02 2dcc9fc: imx233: fix debug screen button handling

The code was very primitive and did not handle release events properly.
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-02 941ac16: imx233: speedup charging trickle phase

Per Freescale recommandation, we need to ramp up the 4.2V rail before enabling charging. Ramping should be done at 1 step/10ms, but the old code did 1 step/1s because the powermgmt_step() function is called once every second. Use a tick task to ramp up much faster.
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/powermgmt-imx233.c [diff]
firmware/target/arm/imx233/powermgmt-imx233.h [diff]
Amaury Pouly
2016-05-02 d245b7a: imx233: fix system_exception_wait()

The old code used button_get() to read the button status and wait for a key to leave the panic screen. This is broken since when IRQ are disable, the button mask is not updated anymore for touchpad and adc buttons. For now, only use pswitch: this should be good enough for all targets.
firmware/target/arm/imx233/system-imx233.c [diff]
Amaury Pouly
2016-05-02 a25700e: imx233: fix frequency reporting

The code reported the frequency in kHz instead of Hz, thus breaking a debug screen.
firmware/target/arm/imx233/system-imx233.c [diff]
firmware/target/arm/imx233/system-target.h [diff]
Amaury Pouly
2016-05-02 643c0a1: imx233: simplify timrot API

The old timrot setup API was very low-level and unfriendly. The new one makes in easier to select the frequency source. Use to simplify timer and kernel timer code.
firmware/target/arm/imx233/kernel-imx233.c [diff]
firmware/target/arm/imx233/system-imx233.c [diff]
firmware/target/arm/imx233/timer-imx233.c [diff]
firmware/target/arm/imx233/timrot-imx233.c [diff]
firmware/target/arm/imx233/timrot-imx233.h [diff]
Amaury Pouly
2016-05-28 423c647: zenxfi3: fix headphone detection

The adc channel monitored for jack detection does not really have a fixed value when plugged. Instead use the same logic as the OF and simply use a threshold.
firmware/target/arm/imx233/creative-zenxfi3/button-zenxfi3.c [diff]
Amaury Pouly
2016-05-02 7e00be9: nwz-370/380: increase adc button error margin

For some reason those targets have quite imprecise button voltages and the old margin was too small. This should fix the button-not-working issue, especially when the player is very hot and cold.
firmware/target/arm/imx233/sony-nwz/button-target.h [diff]
Amaury Pouly
2016-05-02 9fe854e: imx233: enhance button driver adc handling

The current driver is limited to checking if the adc value equals another one with a hardcoded margin. This commit changes two aspects of that:
- the margin can be changed globally using IMX233_BUTTON_LRADC_MARGIN and can also be overriden per button using the new LRADC_EX macro
- the lradc logic gained two comparison modes to check if the source value is greater (or lower) than a threshold.
firmware/target/arm/imx233/button-imx233.c [diff]
firmware/target/arm/imx233/button-imx233.h [diff]
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-02 030a9da: imx233: cosmetics

Shorten some text to make the text readable in the debug screen of targets with small LCD (like NWZ-380). In some screens, the only option is to display less information.
firmware/target/arm/imx233/adc-imx233.c [diff]
firmware/target/arm/imx233/debug-imx233.c [diff]
Amaury Pouly
2016-05-02 f182e2d: imx233: make sure not to discharge battery when charge is complete

The power management code was erroneously shuting down the 4.2V rail when charging is complete. This resulted in the DCDC draining the battery and thus the battery discharging with USB plugged... The new code keeps the 4.2V rail active so that battery remains untouched once charge is complete.
firmware/target/arm/imx233/powermgmt-imx233.c [diff]
Amaury Pouly
2016-05-24 eac1ca2: imx233: generate register headers using headergen_v2 and update code for it

NOTE: this commit does not introduce any change, ideally even the binary should be almost the same. I checked the disassembly by hand and there are only a few differences here and there, mostly the compiler decides to compile very close expressions slightly differently. I tried to run the new code on several targets to make sure and saw no difference.

The major syntax changes of the new headers are as follows:
- BF_{WR,SET,CLR} are now superpowerful and allows to set several fileds at once: BF_WR(reg, field1(value1), field2(value2), ...)
- BF_CS (use like BF_WR) does a write to reg_CLR and then reg_SET instead of RMW
- there is no more need for macros like BF_{WR_,SET,CLR}_V, since one can simply BF_WR with field_V(name)
- the old BF_SETV macro has no trivial equivalent and is replaced with its its equivalent for BF_WR(reg_SET, ...)

I also rename the register headers: "regs/regs-x.h" -> "regs/x.h" to avoid the redundant "regs".

Final note: the registers were generated using the following command:
./headergen_v2 -g imx -o ../../firmware/target/arm/imx233/regs/ desc/regs-stmp3{600,700,780}.xml
firmware/drivers/rtc/rtc_imx233.c [diff]
firmware/target/arm/imx233/ata-imx233.c [diff]
firmware/target/arm/imx233/audioin-imx233.c [diff]
firmware/target/arm/imx233/audioin-imx233.h [diff]
firmware/target/arm/imx233/audioout-imx233.c [diff]
firmware/target/arm/imx233/audioout-imx233.h [diff]
firmware/target/arm/imx233/button-imx233.h [diff]
firmware/target/arm/imx233/clkctrl-imx233.c [diff]
firmware/target/arm/imx233/clkctrl-imx233.h [diff]
firmware/target/arm/imx233/creative-zen/lcd-zen.c [diff]
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/imx233/dma-imx233.c [diff]
firmware/target/arm/imx233/dma-imx233.h [diff]
firmware/target/arm/imx233/emi-imx233.c [diff]
firmware/target/arm/imx233/emi-imx233.h [diff]
firmware/target/arm/imx233/gpmi-imx233.h [diff]
firmware/target/arm/imx233/i2c-imx233.c [diff]
firmware/target/arm/imx233/i2c-imx233.h [diff]
firmware/target/arm/imx233/icoll-imx233.c [diff]
firmware/target/arm/imx233/icoll-imx233.h [diff]
firmware/target/arm/imx233/kernel-imx233.c [diff]
firmware/target/arm/imx233/lcdif-imx233.c [diff]
firmware/target/arm/imx233/lcdif-imx233.h [diff]
firmware/target/arm/imx233/lradc-imx233.c [diff]
firmware/target/arm/imx233/lradc-imx233.h [diff]
firmware/target/arm/imx233/ocotp-imx233.h [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx233/pinctrl-imx233.h [diff]
firmware/target/arm/imx233/power-imx233.c [diff]
firmware/target/arm/imx233/power-imx233.h [diff]
...and 290 more files.
Amaury Pouly
2016-05-26 28920ec: iPod Classic: fix typos / cosmetic
firmware/target/arm/s5l8700/usb-nano2g-6g.c [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.h [diff]
firmware/target/arm/s5l8702/ipod6g/piezo.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-05-25 9e284c1: iPod Classic: i2c updates
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/i2c-s5l8702.c [diff]
Cástor Muñoz
2016-05-25 2d850b7: iPod Classic: define USB_STATUS_BY_EVENT and USB_DETECT_BY_REQUEST
firmware/export/config.h [diff]
Cástor Muñoz
2016-05-25 daee722: iPod Classic: use PMU interrupts to detect USB and FW
firmware/target/arm/s5l8700/usb-nano2g-6g.c [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
firmware/target/arm/s5l8702/system-target.h [diff]
Cástor Muñoz
2016-05-25 f6ed4f8: iPod Classic: use PMU interrupts to detect accessories

- Speed auto detection is launched when an accessory is inserted, so the user doesn't need to modify settings to use accessories that operates at different speeds (or when the same accessory is unplugged and plugged again).

- UART controller is disabled when no accessory is inserted, not much powersave but everything counts.
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/serial-ipod6g.c [diff]
Cástor Muñoz
2016-05-25 d8989b1: iPod Classic: use PMU interrupts to detect hold switch

Finally the hold switch workaround is removed and it is detected in the same way as OF does.
firmware/target/arm/ipod/button-clickwheel.c [diff]
Cástor Muñoz
2016-05-02 a6b4bf3: mkimxboot: remove code for NWZ-370/380

Since the stub code is shared with NWZ-360, it enables the pullup for the hold button, but the NWZ-370/380 doesn't have a hold button so don't compile this code in, it could potentially have unexpected effets or increase consumption
rbutil/mkimxboot/dualboot.c [diff]
rbutil/mkimxboot/dualboot.h [diff]
rbutil/mkimxboot/dualboot/dualboot.c [diff]
Amaury Pouly
2016-05-02 b40ad7d: mkimxboot: make cross compiler for dualboot stubs overridable
rbutil/mkimxboot/dualboot/Makefile [diff]
Amaury Pouly
2016-05-19 94b23da: Sansa Connect: change bootloader linker file

This change ensures that Sansa Connect bootloader.bin will fit in its flash partition.

Fix _flash_sizem calculation, division was not working properly because FLASHSIZE included subtraction and defined value was not in parenthesis. Prior to this change _flash_sizem was 0x00800000, now it is correctly set to 4 in case of Sansa Connect and 8 in case of other TMS320DM320 players. This significantly improves boot time as cache is now enabled only for real flash memory region.
firmware/target/arm/tms320dm320/boot.lds [diff]
firmware/target/arm/tms320dm320/crt0.S [diff]
Tomasz Moń
2016-05-25 9327885: Use an actually reliable method to determine 32 vs 64 bit
tools/configure [diff]
Frank Gevaerts
2016-05-22 98bd223: iPod Classic: introduce PMU interrupts

PMU interrupts are used to detect USB Vbus, wall adaptor, accessories and holdswitch. A thread is needed to poll the PMU throught I2C, ATM it does nothing but showing the state of the inputs on the HW debug menu, funcionallity for each individual input will be added in next patches.
firmware/export/pcf5063x.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Cástor Muñoz
2016-05-21 88caf22: iPod Classic: rework on external interrupts
firmware/target/arm/s5l8702/gpio-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.h [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Cástor Muñoz
2016-05-21 3f17745: iPod Classic: HW initialization for RB

Do not rely on a bootloader initializing the HW, RB initializes and configures GPIO, I2C, and PMU at startup.
firmware/export/i2c-s5l8702.h [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.c [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.h [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.h [diff]
firmware/target/arm/s5l8702/i2c-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Cástor Muñoz
2016-02-05 e863f9a: iPod Classic: piezo support for bootloader

Low level functions that do not depend on Rockbox kernel, intended to be used by the bootloader, dualboot-installer, RB drivers or other .dfu tools.
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/piezo.h [diff]
Cástor Muñoz
2016-02-05 9c032ba: iPod Classic: LCD init sequences for bootloader
firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c [diff]
Cástor Muñoz
2016-02-04 1aefd9e: iPod Classic: HW preliminary initialization for bootloader

When the bootloader starts, most of HW never has been initialized. This patch includes all code needed to perform the preliminary initialization on SYSCON, GPIO, i2c, and MIU.

The code is based on emCORE and OF reverse engineering, ported to C for readability.
firmware/export/i2c-s5l8702.h [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.c [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.h [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.h [diff]
firmware/target/arm/s5l8702/i2c-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-target.h [diff]
Cástor Muñoz
2016-05-01 c31fcdd: bootloader/common: disable unused broken code

Disable (probably old) broken code, this fixes bootloader builds when ROCKBOX_HAS_LOGF is used.
bootloader/common.c [diff]
Cástor Muñoz
2016-05-15 e62203a: regtools: add headergen_v2

This new header generator works differently from the previous one:
- it uses the new format
- the generated macro follow a different style (see below)
- the generated macro are highly documented!
- it supports SCT-style platform or RMW-style ones

Compared to the old style, the new one generate a big set of macros per register/field/enum (loosely related to iohw.h from Embedded C spec). The user then calls generic (names are customizable) macros to perform operations:

reg_read(REG_A) reg_read(REG_B(3)) reg_read_field(REG_A, FIELD_X) reg_read_field(REG_B(3), COOL_FIELD) reg_write(REG_A, 0x42) reg_write_field(REG_A, FIELD_X(1), FIELD_Y(3), IRQ_V(FIQ)) reg_write_fielc(REG_B(3), COOL_FIELD_V(I_AM_COOL), BLA(42))

the following use RMW or SET/CLR variants, depending on target: reg_set_field(REG_A, FLAG_U, FLAG_V) reg_clr_field(REG_A, FIELD_X, FIELD_Y, IRQ) reg_clr_field(REG_B(3), COOL_FIELD, BLA)

the following does clear followed by set, on SET/CLR targets: reg_cs(REG_A, 0xff, 0x42) reg_cs(REG_B(3), 0xaa, 0x55) reg_cs_field(REG_A, FIELD_X(1), FIELD_Y(3), IRQ_V(FIQ)) reg_cs_field(REG_B(3), COOL_FIELD_V(I_AM_COOL))

The generator code is pretty long but has lots of documentation and lots of macro names can be customized.
utils/regtools/desc/regs-vsoc2000.xml [diff]
utils/regtools/headergen_v2.cpp [new]
utils/regtools/include/soc_desc.hpp [diff]
Amaury Pouly
2016-05-15 00a3658: iPod Classic: modify USB storage read/write buffers size

The write buffer size is undefined to use the default 24Kb. size defined (and recomended) in usb_storage.c, the read buffer size is also decremented to 24 Kb. USB sequential read and write benchmarks using diskdump are now 8-9% faster.
firmware/export/config/ipod6g.h [diff]
Cástor Muñoz
2016-05-15 b8a237d: iPod Classic: wait for ATA power down on device shutdown
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-05-15 52a6db3: iPod Classic: optimize UDMA timming for ATA drives

This patch optimizes UDMA timings to increase write transfer rate on ATA bus, these transfers are clocked by HCLK, tDVS+tDVH is modified to decrease Tcyctyp (typical write cycle period). This is not overclocking, we meet the ATA standar, the settings used by OF are not well optimized for each UDMA mode, we will never know but probably this was due some documentation issue.

ATA_UDMA_TIME register is documented on s3c6400 datasheet, information included in s5l8700 datasheet is wrong or not valid for s5l8702.

From ATA specs, (Minimum, Maximum) values in nanoseconds:

UDMA 0 UDMA 1 UDMA 2 UDMA 3 UDMA 4 tACKENV (20, 70) (20, 70) (20, 70) (20, 55) (20, 55) tRP (160, --) (125, --) (100, --) (100, --) (100, --) tSS (50, --) (50, --) (50, --) (50, --) (50, --) tDVS (70, --) (48, --) (31, --) (20, --) (6.7, --) tDVH (6.2, --) (6.2, --) (6.2, --) (6.2, --) (6.2, --) tDVS+tDVH (120, --) (80, --) (60, --) (45, --) (30, --)

Tcyc = tDVS+tDVH WR[bytes/s] = 1/Tcyc[s] * 2[bytes]

On Classic (boosted): HClk = 108 MHz. -> T = ~9.26 ns.

Old values (used by OF): UDMA ATA_UDMA_TIME tACK tRP tSS tDVS tDVH Tcyc WR(MB/s) 0 0x5071152 27.8 166.7 55.6 74.1 55.6 129.7 15.4 1 0x3050a52 27.8 101.8 55.6 55.6 37 92.6 21.6 2 0x3030a52 27.8 101.8 55.6 37 37 74 27 3 0x2020a52 27.8 101.8 55.6 27.8 27.8 55.6 36 4 0x2010a52 27.8 101.8 55.6 18.5 27.8 46.3 43.2

New values: UDMA ATA_UDMA_TIME tACK tRP tSS tDVS tDVH Tcyc WR(MB/s) 0 0x4071152 27.8 166.7 55.6 74.1 46.3 120.4 16.6 1 0x2050d52 27.8 129.6 55.6 55.6 27.8 83.4 24 2 0x2030a52 27.8 101.8 55.6 37 27.8 64.8 30.9 3 0x1020a52 27.8 101.8 55.6 27.8 18.5 46.3 43.2 4 0x1010a52 27.8 101.8 55.6 18.5 18.5 37 54

To verify that the settings are correct, a write-to-cache test was performed using emCORE, the measured transfer rate (WRm) is compared against the theoric transfer rate (WR) at 108 Mhz for the old and the new UDMA4 settings (iPod 160, HDD Toshiba MK1634GAL):

UDMA ATA_UDMA_TIME Tcyc(ns) WR(MB/s) WRm(MB/s) RDm(MB/s) 4 0x2010a52 46.3 43.2 42.9 59.8 4 0x1010a52 37 54 53.5 59.8

Notes:
- The new UDMA4 settings increases ~25% the ATA transfer rate for cached-writes. The real HDD write speed is limited by the internal transfer rate (depends on cilinder, for the MK1634GAL it is 276 to 573 Mbits/s). Sequential write benchmark using diskdump on USB are
~8% faster.
- Read transfers are clocked by the device, it depends on UDMA mode selected and are not affected by HClk or ATA_UDMA_TIME settings. Read-from-cache tests results (RDm) using HClk=108 and HClk=54 for UDMA4 are 59.8 MB/s on MK1634GAL.
- Minimum HClk is limited by tACKENV specs, using current settings it is 54 MHz for UDMA4,UDMA3 and 43 MHz for UDMA2,UDMA1,UDMA0.
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-05-15 201f571: iPod Classic: remove ATA_HAVE_BBT
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-05-15 dbcde01: iPod Classic: remove emCORE HDD endianess warning
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-02-04 469d645: iPod Classic: prepare i2c and PMU for bootloader

When the bootloader starts only IRAM is available, the first task is to ask the PMU to verify if the iPod has previously been hibernated by OF. Due to memory limitations, the kernel cannot be used on this stage.

This patch modifies I2C and PMU low level functions to not to depend on kernel (removes mutexes, and uses HW timer instead of current_tick), actual kernel functions are modified to be 'mutexed' wrappers of the new functions.
firmware/export/i2c-s5l8702.h [diff]
firmware/target/arm/s5l8702/i2c-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
Cástor Muñoz
2016-02-05 44ce4ee: iPOd Classic: skip emCORE HDD endianness warning for bootloader
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-05-02 187ce12: dx90: fix spurious button events

The kernel on this device reports nonexistent key presses, in particular it reports right presses when pressing the left button... Since when it happens, the right press comes after the left one, the new code simply ignores any right press when the left button in pressed.
firmware/target/hosted/ibasso/dx90/button-dx90.c [diff]
Amaury Pouly
2016-05-14 ee7dfb5: Manually unboost if not using boost in test_codec

Right now GUI boost interfers with test_codec running unboosted by varying the CPU frequency. This at least makes it more consistent if run without user input.
apps/plugins/test_codec.c [diff]
Michael Giacomelli
2016-05-14 9a4cd2e: iPod Nano2G: add IPOD_ACCESSORY_PROTOCOL
firmware/export/config/ipodnano2g.h [diff]
firmware/export/s5l8700.h [diff]
firmware/target/arm/s5l8700/ipodnano2g/serial-nano2g.c [diff]
firmware/target/arm/s5l8700/system-s5l8700.c [diff]
firmware/target/arm/s5l8700/uart-s5l8701.c [diff]
Cástor Muñoz
2016-05-13 60fb707: configure: statically link sdl on win32 cross compile
tools/configure [diff]
tools/release/sims.pl [diff]
Amaury Pouly
2016-05-12 d405026: iPod Nano2G: add HAVE_SERIAL
firmware/SOURCES [diff]
firmware/export/config/ipodnano2g.h [diff]
firmware/target/arm/s5l8700/debug-s5l8700.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/serial-nano2g.c [new]
Cástor Muñoz
2016-05-12 5017523: Add UART suuport for s5l8700 and s5l8701

Add UART support for s5l8700/1 using the UC870X UART controller, actually the functionallity is disabled and must be enabled for each individual target. Tested on iPod Nano 2G (s5l8701), not tested on s5l8700.
firmware/export/s5l8700.h [diff]
firmware/target/arm/s5l8700/system-s5l8700.c [diff]
firmware/target/arm/s5l8700/uart-s5l8700.c [new]
firmware/target/arm/s5l8700/uart-s5l8701.c [new]
firmware/target/arm/s5l8700/uart-target.h [new]
Cástor Muñoz
2016-05-12 8fb67f4: iPod Classic: updates for uc8702 driver

- Small rework on the UC8702 UART controller to make it compatible with other s5l870x SOCs. Files moved and renamed, many conditional code added to deal with capabilities and 'features' of the different CPUs.

- A couple of optimizacions that should not affect the functionality.
firmware/SOURCES [diff]
firmware/export/s5l8702.h [diff]
firmware/export/uc870x.h [new]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/serial-ipod6g.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/uart-s5l8702.c [diff]
firmware/target/arm/s5l8702/uart-s5l8702.h [deleted]
firmware/target/arm/s5l8702/uart-target.h [new]
firmware/target/arm/s5l8702/uc8702.c [deleted]
firmware/target/arm/s5l8702/uc8702.h [deleted]
firmware/target/arm/uc870x.c [new]
Cástor Muñoz
2016-05-03 2a1e9eb: Reverting 4327cbc9b8886e

I do testing incorrectly: fix don't work as expected.
rbutil/mkamsboot/dualboot/dualboot.S [diff]
Mihail Zenkov
2016-04-17 4327cbc: C2X0v2: use GPIO to check button state in dualboot

C240v2 freeze on booting OF if SD card inserted. Use GPIO instead DBOP should help.
rbutil/mkamsboot/dualboot/dualboot.S [diff]
Mihail Zenkov
2016-04-22 18fecd9: Update runtime estimation after recent power optimizations.

Values taken from Mihail's Clip Zip, should be similar on all AMSv2 devices.
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansafuzev2.h [diff]
Michael Giacomelli
2016-04-22 7cb1e5a: Fix AMSv2 variant 1 detection if rockbox loaded from SD card
bootloader/sansa_as3525.c [diff]
firmware/rolo.c [diff]
Mihail Zenkov
2016-04-20 79ca6d4: AMS: enable SD card support in bootloader

With this changes rockbox can be loaded from SD card when internal storage can't be mount (due to hardware or software problem).
firmware/export/config/sansac200v2.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansae200v2.h [diff]
firmware/export/config/sansafuze.h [diff]
firmware/export/config/sansafuzev2.h [diff]
Mihail Zenkov
2016-04-12 6548dc2: Manual: Add missing plugins

The text is usually only a short description taken from the wiki and don't contain screenshots or keymaps, but should be better than nothing. :)

Added manual entries:
- Boomshine
- Dict
- FFT
- main_menu_config
- Matrix
- Maze (including keymap)
- PDbox
- Superdom Additional changes/fixes:
- fix "Clix" alphabetical order
- add Frotz & ZXBox to games preamble
manual/advanced_topics/main.tex [diff]
manual/plugins/boomshine.tex [new]
manual/plugins/dict.tex [new]
manual/plugins/fft.tex [new]
manual/plugins/frotz.tex [diff]
manual/plugins/main.tex [diff]
manual/plugins/main_menu_config.tex [new]
manual/plugins/matrix.tex [new]
manual/plugins/maze.tex [new]
manual/plugins/pdbox.tex [new]
manual/plugins/superdom.tex [new]
Sebastian Leonhardt
2016-04-13 8a0360d: AMSv2: enable voltage scaling
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansafuzev2.h [diff]
Mihail Zenkov
2016-04-03 c90d42d: jz4670_tools: add usbboot tool, tweak Makefile and packtool

Although the jz4740 contains a similar tool to usbboot, its command-line interface is not very useful, also it does not compile by default because it relies on some external code, and it contains code specific to some JZ4740 devices.
utils/jz4760_tools/Makefile [diff]
utils/jz4760_tools/packtools.cpp [diff]
utils/jz4760_tools/usbboot.c [new]
Amaury Pouly
2016-02-07 4934bd6: hwstub: remove the old library
utils/hwstub/include/hwstub.h [deleted]
utils/hwstub/lib/Makefile [diff]
utils/hwstub/lib/hwstub.c [deleted]
Amaury Pouly
2016-02-07 5ac0166: qeditor: port to the new hwstub library and add features

This commit adds support for the version of the hwstub library, which requires a lot of changes. It also adds some editing features, such as register access and much better editing of fields using the mouse (double click on a field to be able to resize and move it).
utils/imxtools/misc/map.h [diff]
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
utils/regtools/qeditor/mainwindow.cpp [diff]
utils/regtools/qeditor/qeditor.pro [diff]
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regedit.h [diff]
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2016-03-19 cc4c9b7: regtools: add register access to soc desc

Registers (and variants) can now specify the type of access supported:
- unspecified: for variant means same as register, for register defaults R/W
- read/write
- read only
- write only Backward compatibility is preserved by setting access to unspecified by default.
utils/regtools/desc/regs-vsoc2000.xml [diff]
utils/regtools/include/soc_desc.hpp [diff]
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
2016-02-07 f6c61eb: hwstub: port hwstub_shell to the new library

Also use this opportunity to cleanup support for multiple devices: the shell now supports dynamic changes in the device and will call init() everytime a new device is selected, to prepare a new environment. The shell now honors register width on register read/write. The shell also provides access to variants as follows by creating a subtable under the register using the variant type in UPPER case and having the same layout as a register. For example if register HW.GPIO.DIR has variants "set" and "clr", those can be used like this: HW.GPIO.DIR.SET.write(0xff) HW.GPIO.DIR.CLR.write(0xff00)
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/hwstub/tools/init.lua [diff]
utils/hwstub/tools/lua/atj.lua [diff]
utils/hwstub/tools/lua/help.lua [new]
utils/hwstub/tools/lua/jz.lua [new]
utils/hwstub/tools/lua/load.lua [diff]
utils/hwstub/tools/lua/pp.lua [diff]
utils/hwstub/tools/lua/rk27xx.lua [diff]
utils/hwstub/tools/lua/stmp.lua [diff]
Amaury Pouly
2016-02-07 a2f4c52: hwstub: port hwstub_load to the new library
utils/hwstub/tools/hwstub_load.cpp [diff]
Amaury Pouly
2016-02-07 3d8a08c: hwstub: rewrite and expand library

Rewrite the hwstub library in C++, with a clean and modular design. The library was designed from the ground up to be aware of multithreading issues and to handle memory allocation nicely with shared pointers.

Compared to the original library, it brings the following major features:
- support for JZ boot devices, it is very easy to add support for others
- support for network transparent operations (through sockets): both tcp and unix domains are support
utils/hwstub/hwstub_protocol.h [deleted]
utils/hwstub/include/hwstub.h [new]
utils/hwstub/include/hwstub.hpp [new]
utils/hwstub/include/hwstub_net.hpp [new]
utils/hwstub/include/hwstub_protocol.h [new]
utils/hwstub/include/hwstub_uri.hpp [new]
utils/hwstub/include/hwstub_usb.hpp [new]
utils/hwstub/include/hwstub_virtual.hpp [new]
utils/hwstub/lib/Makefile [diff]
utils/hwstub/lib/hwstub.cpp [new]
utils/hwstub/lib/hwstub.h [deleted]
utils/hwstub/lib/hwstub_net.cpp [new]
utils/hwstub/lib/hwstub_protocol.h [deleted]
utils/hwstub/lib/hwstub_uri.cpp [new]
utils/hwstub/lib/hwstub_usb.cpp [new]
utils/hwstub/lib/hwstub_virtual.cpp [new]
utils/hwstub/stub/hwstub.make [diff]
utils/hwstub/stub/protocol.h [diff]
utils/hwstub/tools/Makefile [diff]
utils/hwstub/tools/hwstub_server.cpp [new]
utils/hwstub/tools/hwstub_test.cpp [new]
Amaury Pouly
2016-04-03 56dc54d: soc_desc: add default constructors to most structures

After being caught by several bugs of the type "let's forgot to initialize a field to default value", I'm finally fixing this.
utils/regtools/include/soc_desc.hpp [diff]
Amaury Pouly
2016-01-08 45a02dc: Plugin 2048: Optimize for 128x96 screen
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/_2048_background.88x88x24.bmp [new]
apps/plugins/bitmaps/native/_2048_tiles.19x19x24.bmp [new]
Sebastian Leonhardt
2016-04-07 c537e05: Fix (D)EBUG compilation
firmware/drivers/fat.c [diff]
Mihail Zenkov
2016-04-07 e4e0b18: AMS: power off while charging enabled
firmware/export/config/sansac200v2.h [diff]
firmware/export/config/sansaclip.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansae200v2.h [diff]
firmware/export/config/sansafuze.h [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/export/config/sansafuzev2.h [diff]
Mihail Zenkov
2016-04-05 98c15fe: Red Alert
firmware/target/arm/pp/ascodec-pp.c [diff]
Mihail Zenkov
2016-04-05 f791f5e: fix red again
firmware/target/arm/pp/ascodec-pp.c [diff]
firmware/target/hosted/samsungypr/ypr0/ascodec-ypr0.c [diff]
Mihail Zenkov
2016-04-05 c5c4ea4: fix red
firmware/target/arm/pp/ascodec-pp.c [diff]
firmware/target/hosted/samsungypr/ypr0/ascodec-ypr0.c [diff]
Mihail Zenkov
2016-02-20 c7daef3: as3525: reverting I2C2 to non-interrupts version

Interrupts version is cause of freeze on USB extraction. Also non-interrupts version much simpler and faster.
firmware/drivers/adc-as3514.c [diff]
firmware/export/ascodec.h [diff]
firmware/target/arm/as3525/ascodec-as3525.c [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
2016-03-30 ce90c04: Fix checking for CONFIG_CHARGING
apps/debug_menu.c [diff]
firmware/export/ascodec.h [diff]
firmware/export/powermgmt.h [diff]
firmware/target/arm/as3525/ascodec-as3525.c [diff]
Mihail Zenkov
2016-03-31 e599810: Don't add new message to logf when we dump it to file

Fix log file corruption if we have new messages at dumping log to file. Comment removed as it incorrect. We store all messages in direct order (last message at end of file).
apps/logfdisp.c [diff]
firmware/export/logf.h [diff]
firmware/logf.c [diff]
Mihail Zenkov
2016-03-30 26beb30: Save bookmark and settings on shutdown at low battery level on players without HD
apps/misc.c [diff]
Mihail Zenkov
2014-10-02 47d6d26: Cleanup unused function
apps/buffering.c [diff]
Mihail Zenkov
2016-03-30 6228c8d: Fix reset runtime
apps/gui/usb_screen.c [diff]
apps/misc.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
Mihail Zenkov
2013-05-24 134e591: Align test_disk buffer for DMA.

Some targets can only use storage DMA if the memory location is storage aligned. The required alignment can be more strict than word alignment, which was used previously. This change ensures that aligned transfers in test_disk can use DMA.
apps/plugins/test_disk.c [diff]
Boris Gjenero
2016-01-05 26697d0: Fix FS #12981 JPEG decoding problem when entropy data starts with FF

This changes JPEG fill and invalid byte handling to be like mozjpeg, and bases entropy data start on SOS marker location.

Thanks to Stefan Waldmann and Dean Tersigni for reporting.

Chaange-Id: Ibc7c17d38d5be63642bdaf6adfd6acc2a6cf4450
apps/plugins/imageviewer/jpeg/jpeg_decoder.c [diff]
apps/recorder/jpeg_common.h [diff]
apps/recorder/jpeg_load.c [diff]
Boris Gjenero
2016-03-30 25fc7f1: Fix broken logf apps/playback.c [diff]
apps/plugin.c [diff]
Mihail Zenkov
2016-03-27 7ba50cf: Disable voltage scaling.

Crashes immediately. Something was wrong with the last commit.
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansafuzev2.h [diff]
Michael Giacomelli
2016-03-27 7be692e: Enable voltage scaling on AMSv2.

Voltage is reduced when the CPU is unboosted, resulting in a large reduction in power consumption. In analogy with the AMSv1 voltage scaling code (currently disabled due to problems with SD cards), I have defined a config file option to enable/disable it.
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansafuzev2.h [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
Michael Giacomelli
2016-02-20 775b21e: AMSv2: additional delay for voltage scaling

We need additional delay since ascodec_write_pmu() working faster in non-interrupts version of I2C2.
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
2016-03-27 77a3536: AMSv2: DBOP frequency divided by 2

After setting new PCLK (96 Mhz) we have too high DBOP (96 / 16 = 6 MHz). According to datasheet DBOP should be maximum 4 MHz.
firmware/target/arm/as3525/clock-target.h [diff]
Mihail Zenkov
2016-03-27 ee567d8: Fix wrong typecast in test.
rbutil/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2016-03-20 bbb46a8: Improve handling of Qt5 subversions on OS X.

Qt 5.6 on OS X requires targeting at least OS X 10.7, while for earlier versions we can still target 10.6. Handle this case and inform the user about the used target version.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2016-03-20 32aaa52: Use Gestalt to get number of CPUs on OS X.

MPProcessors has been deprecated with 10.7. When targeting 10.7 (required when building with Qt 5.6 on OS X) this causes a warning. Use Gestalt instead
(Gestalt has been deprecated with 10.8, but when targeting 10.7 this doesn't cause a warning, and Gestalt is used for other values as well).
rbutil/rbutilqt/base/system.cpp [diff]
Dominik Riebeling
2016-03-20 8624392: Fix compile warning on OS X.

Current clang on OS X suggests placing parens so add them
(-Wbitwise-op-parentheses enabled by default).
rbutil/rbutilqt/base/ttscarbon.cpp [diff]
Dominik Riebeling
2016-03-20 7cc6d85: Fix C++11 compile error with version strings.

C++11 requires a space between literal and identifier. When compiling with Qt 5.6 on OS X C++11 support is automatically enabled, causing an error due to this.
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/version.h [diff]
Dominik Riebeling
2016-03-24 ece9303: Slightly increase VDD2 on AMSv2.

The old value was unstable on some devices.
firmware/target/arm/as3525/system-as3525.c [diff]
Michael Giacomelli
2016-03-18 fe9a3ce: GUI boost for any button

It improve responsiveness for all targets with frequency scaling.
apps/action.c [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
Mihail Zenkov
2016-03-18 123346b: _BSD_SOURCE is deprecated, and we're supposed to use _DEFAULT_SOURCE now.
lib/rbcodec/test/warble.c [diff]
Frank Gevaerts
2016-02-26 219e116: sd-as3525v2: prevent DTO error and DMA problems

We should check sd_wait_for_tran_state() after transfering to prevent data timeout error. Also we should disable DMA channel manually.

Should be used with g#1270, without it freezes still can occur on data transfering.
firmware/target/arm/as3525/sd-as3525v2.c [diff]
Mihail Zenkov
2016-02-20 a24abd2: Fix NUM_ADC_CHANNELS for AS3525v2
firmware/export/as3514.h [diff]
Mihail Zenkov
2016-03-18 8d50cdc: lua: don't include rockbox-specific libc headers for the button helper tool.

This fixes the "implicit declaration of function 'printf'" warning
apps/plugins/lua/lua.make [diff]
Frank Gevaerts
2016-02-26 e65478c: sd-as3525v2: exit with error if transfer failure
firmware/target/arm/as3525/sd-as3525v2.c [diff]
Mihail Zenkov
2016-02-26 2d8a785: sd-as3525v2: Limit number of retry

With current setting we spend few minutes for reading one sector if we have data timeout error. With new setting system (linux) show error after ~10 seconds.
firmware/target/arm/as3525/sd-as3525v2.c [diff]
Mihail Zenkov
2016-02-20 d0d66f3: usb-s3c6400x: prevent calling usb_enable(enable) twice on USB insert

First time we call usb_enable(enable) on USB_INSERTED event from usb_stack_enable()
firmware/target/arm/usb-s3c6400x.c [diff]
Mihail Zenkov
2016-02-20 4c6871c: usb-s3c6400x: prevent lockup if usb extracted during data sending
firmware/target/arm/usb-s3c6400x.c [diff]
Mihail Zenkov
2016-03-14 bb48fa0: regtools: Convert rk27xx register description file to v2 format
utils/regtools/desc/regs-rk27xx-v1.xml [new]
utils/regtools/desc/regs-rk27xx.xml [diff]
Marcin Bukat
2016-02-29 906a623: hwstub: fix warning: no newline at end of file with newer gcc
utils/hwstub/stub/memory.h [diff]
utils/hwstub/stub/protocol.h [diff]
Marcin Bukat
2016-02-29 0e2b490: hwstub: rework usb driver for atj213x
utils/hwstub/stub/atj213x/usb_drv_atj213x.c [diff]
Marcin Bukat
2016-03-13 2292782: A better fix than b58b9c2.

I misunderstood the code a bit when I committed b58b9c2. The read_char_no_whitespace() probably have to be done.
apps/plugins/goban/sgf.c [diff]
Frank Gevaerts
2016-03-13 b58b9c2: Remove clearly broken error checking, as pointed out by newer gcc.

Note that the error checking is probably useful if done correctly, but I have no way to test this, so just removing the offending code is the only way forward. Thanks to the fairly creative bug, the code did nothing at all anyway.
apps/plugins/goban/sgf.c [diff]
Frank Gevaerts
2016-03-13 2c7bb67: HDD16X0: remove unnecessary define.
firmware/target/arm/philips/hdd1630/powermgmt-hdd1630.c [diff]
Szymon Dziok
2016-03-13 e0a4dc5: HDD63X0: add a note about poweroff while charging to the config file.
firmware/export/config/gogearhdd6330.h [diff]
Szymon Dziok
2016-03-13 164f50b: HDD16X0: disable poweroff while charging, add a note to the config file why.
firmware/export/config/gogearhdd1630.h [diff]
Szymon Dziok
2016-03-13 663abe3: HDD16X0: fix voltage values and simplify voltage calculation.
firmware/target/arm/philips/hdd1630/powermgmt-hdd1630.c [diff]
Szymon Dziok
2016-03-13 78311e0: HDD63X0: fix values for charging (based on OF).
firmware/target/arm/philips/hdd6330/powermgmt-hdd6330.c [diff]
Szymon Dziok
2016-02-16 5138995: usb-s3c6400x: fix broken build for LOGF_ENABLE
firmware/target/arm/usb-s3c6400x.c [diff]
Cástor Muñoz
2016-02-16 ff637c7: iPod Classic: size optmizations for HAVE_ATA_SMART

After commit e9497db the switch() in ata_smart_get_attr_name() is no longer optimized by the compiler, ata_smart_get_attr_rawfmt() is also updated to prevent that future additions will cause the same problem.
apps/debug_menu.c [diff]
Cástor Muñoz
2014-07-19 bc56811: iPod Nano 2G and Classic: Fix power and charging detection.

This should allow FireWire charging to work on these devices. It also adds charging state detection on the iPod Classic.

(cherry picked from commit fa86fec4fb089b47f5c2c3b1f2f3dbc97551895b)

On Classic (and probably Nano 2G), it seems that the 100/500mA limit applies only to USB chargers, when FW is connected it supplies all the power (even if USB is also connected) and USB current limit does not affect to FW charging, therefore the limit is only set when USB is connected.

Signed-off-by: Cástor Muñoz
firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c [diff]
firmware/target/arm/s5l8700/usb-nano2g-6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
Michael Sparmann
2016-02-12 929be52: iPod Classic: fix buffer alignment on HDD driver

Read/write buffers who are aligned to 16 were not re-aligned to 32 as it should be. Althrough USB storage and buffering are always passing buffers aligned to 32, a few unaligned buffers are being received from other tasks, so this patch could solve some rare random issues.

Also fixes DMA configuration for HDDs that support any MDMA mode but only UDMA0 (probably will never happen).
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-02-14 3216f39: iPod Classic: fix build when ATA_HAVE_BBT is not defined
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-02-13 e9497db: iPod Classic: ATA SMART updates

- Add description for attributes supported by Samsung HS081HA (80Gb) and HS161JQ (CEATA 160Gb).
- Show error code when ata_read_smart() fails.
apps/debug_menu.c [diff]
firmware/export/ata.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2016-02-14 31d9084: iPod Classic: fix USB_DEVBSS_ATTR alignment

After previous commit 0b6647f2e9e5d21e80736eab7af33acecba28f38 this alignment should not be needed, but not sure at all, so it is aligned to cache line length for safety.
firmware/export/config/ipod6g.h [diff]
Cástor Muñoz
2016-02-14 0b6647f: usb-s3c6400x: set alignment for ep0_setup_pkt

Align USB_DEVBSS buffers to 32 (as other USB drivers are doing), this could solve rare random memory corruption issues on iPod Classic.
firmware/target/arm/usb-s3c6400x.c [diff]
Cástor Muñoz
2016-02-08 6f54a86: as3514: fix bug in volume management on AS3543 targets which are not AS3525v2

Some old code made the assumption that CONFIG_CPU == AS3525v2 if and only if HAVE_AS3543, which is not true on targets like the Samsung YP-R0. This fixes several issues on such targets like a huge volume gap between -39dB and -40dB and a volume artificially capped at -72dB instead of -82dB.
firmware/drivers/audio/as3514.c [diff]
firmware/export/as3514.h [diff]
Amaury Pouly
2016-02-07 7619031: regtools: make description file parser stricter

The parser would simply ignore unknown elements or attributes, which is bad on many levels. Now any unknown tag will trigger a fatal error.
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
2016-02-06 7d87ebb: regtools/desc: convert v1 stmp description files to v2

Conversion done using swiss_knife as follows:
./swiss_knife convert --author "Amaury Pouly" --version "2.4.0" desc/regs-stmp3XXX-v1.xml desc/regs-stmp3XXX.xml
utils/regtools/desc/regs-stmp3600.xml [new]
utils/regtools/desc/regs-stmp3700.xml [new]
utils/regtools/desc/regs-stmp3780.xml [new]
Amaury Pouly
2016-02-06 6e54f72: regtools/desc: rename v1 stmp files
utils/regtools/desc/regs-stmp3600-v1.xml [new]
utils/regtools/desc/regs-stmp3600.xml [deleted]
utils/regtools/desc/regs-stmp3700-v1.xml [new]
utils/regtools/desc/regs-stmp3700.xml [deleted]
utils/regtools/desc/regs-stmp3780-v1.xml [new]
utils/regtools/desc/regs-stmp3780.xml [deleted]
Amaury Pouly
2016-02-06 6b9610f: regtoosl/qeditor: port to the new description format

This big commit port qeditor from v1 to v2 register file format. Although the display code was much simplified, the edit code had to be rewritten. The new code also brings many improvement to the register display widget.

The new code also compiles with both Qt4 and Qt5, although it is recommended to use Qt5 to get some improvements, especially in the layout of editor.
utils/regtools/qeditor/analyser.cpp [diff]
utils/regtools/qeditor/analyser.h [diff]
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
utils/regtools/qeditor/main.cpp [diff]
utils/regtools/qeditor/mainwindow.cpp [diff]
utils/regtools/qeditor/mainwindow.h [diff]
utils/regtools/qeditor/qeditor.pro [diff]
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regedit.h [diff]
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2016-02-06 0f701a6: regtools: update v2 specification, library and tools

A v2 register description file can now include register variants and instances addresses can now be a list (previously it could only be a stride or a formula). Update the library to deal with that. The convert option of swiss_knife was updated and one incompatible change was introduce: if a v1 device has several addresses, those are converted to a single v2 instance with list (instead of several single instances). This should have been the behaviour from the start. Swiss_knife can now also convert regdumps, in which case it needs to be given both the dump and register description file. Also introduce two register descriptions files (vsoc1000 and vsoc2000) which give more complicated examples of v2 register description files.
utils/regtools/desc/regs-example-v1.xml [diff]
utils/regtools/desc/regs-example.xml [deleted]
utils/regtools/desc/regs-vsoc1000.xml [new]
utils/regtools/desc/regs-vsoc2000.xml [new]
utils/regtools/desc/spec-2.0.txt [diff]
utils/regtools/include/soc_desc.hpp [diff]
utils/regtools/include/soc_desc_v1.hpp [diff]
utils/regtools/lib/soc_desc.cpp [diff]
utils/regtools/swiss_knife.cpp [diff]
Amaury Pouly
2016-02-02 16c915e: configure: allow for compiler toolchain override (with warnings)

The current configure script unfortunately does not allow one to use another toolchain than the one hardwire in the script. Although this is good to ensure working builds, it can be burden when one wants to either test other compilers, does not want to have to multiple redundant compilers or when the compiler install script fails for unknown reasons (MIPS I'm looking at you).

The syntax is simple, for example:
/path/to/configure --compiler-prefix arm-none-eabi- Also 'make reconf' will properly keep the prefix.
tools/configure [diff]
Amaury Pouly
2016-02-01 840dacc: AS3543: Fix increasing noise and power consumption if booted through rolo
firmware/drivers/audio/as3514.c [diff]
Mihail Zenkov
2016-01-29 e2f943f: iPod Classic: revert "set initial USB current limit to 500mA"

Reverts commit ead38dbc9df3f63bd4f870ff2365ba48876d5b46

It was introduced as a temporal workaround to avoid the endless restart loop when battery is low, but really it is useless. The bootloader should ensure that there is enough power to launch Rockbox even in the worst scenario.
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
Cástor Muñoz
2016-01-28 4605df1: iPod Classic: remove uninteresting info in HW debug screen

CPU type and frequency of the PLLs are fixed and have no interest at this moment.
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
Cástor Muñoz
2016-01-23 e6cd53a: Replace SAMSUNG_YH920_PAD with YH92X

seems more logical to me, and is more consistent, since
"SAMSUNG_YH92X_PAD" is already used in the tex files.
apps/SOURCES [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/beatbox/beatbox.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/bounce.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/greyscale.c [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
...and 35 more files.
Sebastian Leonhardt
2016-01-23 11c8b39: Fix warning in rolo.
firmware/rolo.c [diff]
Michael Giacomelli
2016-01-18 3f54101: Enable frequency scaling on AMSv2 devices.

Voltage scaling is not yet enabled, but will follow once we are sure these changes are stable. Preliminary testing suggests a large increase in battery life, which will be further improved by voltage scaling. Patch by Mihail Zenkov with help from myself and others on the forums.
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansafuzev2.h [diff]
firmware/rolo.c [diff]
firmware/target/arm/as3525/clock-target.h [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
2016-01-18 7432af0: Make sure the system is boosted before enabling USB hardware.
firmware/target/arm/as3525/usb-as3525.c [diff]
Michael Giacomelli
2016-01-18 9f364a1: Increase button delays in preperation for frequency scaling.

When run at lower clock speeds, delays seem to need to be a little longer in absolute time.
firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c [diff]
Michael Giacomelli
2016-01-18 784790d: Change the clipv2 button driver to use fixed delays rather than processor cycle counting.

Also introduce a new delay needed for frequency scaling.
firmware/target/arm/as3525/button-clip.c [diff]
Michael Giacomelli
2016-01-17 1015088: Fix building with Qt 4.7.

QUrl::isLocalFile() is available starting with Qt 4.8. We can safely check for a file:// url instead.

Qt 4.8 dropped support for OS X 10.4 / 10.5. Since we're still supporting those we need to keep using Qt 4.7 on OS X. We might want to consider requiring at least 10.6 on OS X with the next major release of Rockbox Utility.
rbutil/rbutilqt/base/httpget.cpp [diff]
Dominik Riebeling
2016-01-17 5c027e3: Fix uninstallation for mi4 based bootloader installs.

On case sensitive systems (i.e. Linux) uninstalling the bootloader could fail when renaming the original bootloader file back. Fix this by using the case-resolved filename.
rbutil/rbutilqt/base/bootloaderinstallmi4.cpp [diff]
Dominik Riebeling
2015-12-30 537f9a4: Return process IDs in Utils::findRunningProcess().

Rework to return mapping between (filtered) process names and their pid values
(if running). Note that this functionality is not implemented for Linux (but as it's mostly intended to detect Itunes currently not needed on that platform).
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/utils.h [diff]
Dominik Riebeling
2015-12-28 3b089b4: Add color to trace debug output.
rbutil/rbutilqt/systrace.cpp [diff]
Dominik Riebeling
2016-01-09 610b80b: rbutil: fix writing to rbutil.log after bootloader uninstall
rbutil/rbutilqt/rbutilqt.cpp [diff]
Cástor Muñoz
2016-01-08 0992092: rbutil: fix resolveDevicename() on Windows

Solves some eject issues (FSCTL_LOCK_VOLUMEN ioctl failures) ocurring when resolveDevicename() is ejecuted prior to ejectDevice(), tested with Qt5.
rbutil/rbutilqt/base/utils.cpp [diff]
Cástor Muñoz
2016-01-11 2ae9431: update deploy.py to recognize and use Qt5
utils/common/deploy.py [diff]
Cástor Muñoz
2016-01-17 09dc358: Change the debug menu to show CPU frequency in MHz.
apps/debug_menu.c [diff]
Michael Giacomelli
2016-01-16 5aa15c4: Translate remaining polish strings.
apps/lang/polski.lang [diff]
Szymon Dziok
2016-01-16 2790b33: Update polish translation.
apps/lang/polski.lang [diff]
Szymon Dziok
2016-01-12 7800aac: Samsung YH92X: Remove unneeded line.
firmware/target/arm/samsung/button-target.h [diff]
Szymon Dziok
2016-01-11 a953964: iPod Classic: fix wake-up from power-off on USB insert
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
Cástor Muñoz
2016-01-11 9e24d5d: iPod Classic: update documentation on PMU target
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
Cástor Muñoz
2015-12-28 166da9a: Plugin 2048: optimize small tiles

Change 12x12 and 22x22 sized tiles to hand-optimized ones with better readibility :) Tile values >= 1024 are abbreviated to "1k", "2k" etc.
apps/plugins/bitmaps/native/_2048_tiles.12x12x24.bmp [diff]
apps/plugins/bitmaps/native/_2048_tiles.22x22x24.bmp [diff]
manual/plugins/2048.tex [diff]
Sebastian Leonhardt
2015-12-27 87229a4: Plugin Frotz: Match keymap and manual

Change source to match manual description: use UP key to open virtual keyboard.
apps/plugins/frotz/frotz.c [diff]
Sebastian Leonhardt
2015-12-27 5e91ec1: Samsung YH820/92x keymap bugfixes

This patch fixes some (mostly small) plugin issues with the "big" YH-keymap patch (a507b). Only one fix affects the main keymaps
(virtual keyboard "DONE" now exits after long key /release/ instead of long button /press/).
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
apps/plugins/bounce.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/pacbox/pacbox.c [diff]
apps/plugins/pacbox/pacbox.h [diff]
apps/plugins/sokoban.c [diff]
apps/plugins/text_editor.c [diff]
apps/plugins/zxbox/keymaps.h [diff]
apps/plugins/zxbox/zxbox.c [diff]
manual/plugins/bubbles.tex [diff]
manual/plugins/doom.tex [diff]
manual/plugins/goban.tex [diff]
manual/plugins/imageviewer.tex [diff]
manual/plugins/pacbox.tex [diff]
manual/plugins/pictureflow.tex [diff]
manual/plugins/rockpaint.tex [diff]
manual/plugins/text_editor.tex [diff]
manual/plugins/xworld.tex [diff]
manual/plugins/zxbox.tex [diff]
Sebastian Leonhardt
2015-12-20 ad65f8c: Handle mixed case in Windows USB ID detection.

Windows XP might use mixed case in hardware ID (VID / PID) string.

Cherry-picked from G#1221.

Signed-off-by: Dominik Riebeling
rbutil/rbutilqt/base/system.cpp [diff]
Cástor Muñoz
2015-12-20 7d7359a: Fix and extend HttpGet unit test again.

Fix wrong initialization (why did that compile?) and add check for progress signal.
rbutil/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2015-12-18 70baf0f: Fix compiling HttpGet unit test.

Provide a stub for Logger class to make the test compile.
rbutil/rbutilqt/test/stubs/Logger.h [new]
rbutil/rbutilqt/test/test-httpget.pro [diff]
Dominik Riebeling
2015-12-18 7e7fd0c: Use random port for HttpGet unit tests.

Make local HttpDaemon for testing use a random unused port instead of a fixed one. Avoids possible issues with the port chosen already being used on the local machine.
rbutil/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2015-12-18 79d513d: Add documentation to HttpGet and remove unnecessary return value.

HttpGet::getFile() always returns the same value. Remove the return value since it isn't necessary. Add some missing function documentation comments.
rbutil/rbutilqt/base/httpget.cpp [diff]
rbutil/rbutilqt/base/httpget.h [diff]
Dominik Riebeling
2015-12-18 d24a9ea: Add support file:// URLs in HttpGet.

QNetworkAccessManager can handle file:// URLs without additional work. Make HttpGet aware of that so you can now also use it to retrieve file:// URLs. Add a unit test for it as well.
rbutil/rbutilqt/base/httpget.cpp [diff]
rbutil/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2015-12-16 4627d4b: Fix static compilation with Qt5.

Qt5 uses a different name for the accessibility plugin. Cherry-picked from G#1221.

Signed-off-by: Dominik Riebeling
rbutil/rbutilqt/main.cpp [diff]
Cástor Muñoz
2015-12-17 2d23c03: iPod Classic: use uncached memory for USB driver
firmware/target/arm/usb-s3c6400x.c [diff]
Cástor Muñoz
2015-12-17 00bda90: iPod Classic: add non-cached memory region

Configures uncached memory region and adds some defines for misc HW, for compability with the bootloader and other future use, current functionality should not be affected.
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/crt0.S [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-target.h [diff]
Cástor Muñoz
2015-12-16 348bfc5: iPod Classic: clickwheel fixes

Uses GPIO.E2 (Request To Send) to detect the holdswitch status, it is a temporal workaround that seems to work on all models.

Holdswitch status must be detected to drive low GPIO.E2 (RTS) and GPIO.E4 (Data Out) when the holdswitch is locked, otherwise battery life decreases about 25%.

Holdswitch unlock action is detected by reading the HELLO message that the external wheel controller sends when it is powered on, this allows to quickly capture clickwheel activity after unlock. GPIO.E2 is also used in case the HELLO message is missed because the holdswitch was unlocked before Rockbox/bootloader starts.

These 2 lines (RTS and DOUT) can not be used to transmit messages to the external clickwheel controller, not a problem, actually no messages are sent while normal operation, only at initialization stage.
firmware/target/arm/ipod/button-clickwheel.c [diff]
Cástor Muñoz
2015-12-17 ead38db: iPod Classic: set initial USB current limit to 500mA
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
Cástor Muñoz
2015-09-26 5c67ebb: iPod Classic: prepare LCD driver for the bootloader

Optimizes encoding of LCD command sequences.
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c [diff]
Cástor Muñoz
2015-09-25 f753b8e: iPod Classic: s5l8702 clocking rewrite+documentation

This is a rewrite of the clocking section, the resulting system frequencies are the same as the current git version.

This pàtch uses fixed FClk and just one register is written to switch all system frequencies, it needs less steps than the current git version to reach the desired frequency, so it is faster and safer. Includes functions to step-up/down over a table of predefined set of frequencies.

The major difference is that Vcore is decreased from 1050 to 1000 mV.

See clocking-s5l8702.h for more information.
firmware/SOURCES [diff]
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.c [new]
firmware/target/arm/s5l8702/clocking-s5l8702.h [new]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-target.h [diff]
Cástor Muñoz
2015-11-17 ad5e5c4: hwstub: fix atj213x dsp lua code
utils/hwstub/tools/lua/atj/dsp.lua [diff]
Marcin Bukat
2015-11-17 f47f04b: hwstub: Add ajt213x lua interface for DSP block

With this you can upload and run code on DSP core in atj213x.

The files can be produced using as2181. You can download this assembler from https://github.com/wodz/as2181 You should use extended mode (-x switch) since DSP core in atj is non standard and uses 24bit operands. PX register has different meaning as well and is used as MSB when loading other registers with immediates (immediate field is 16bit in instruction so to set register to 24bit value you need to store MSB in PX prior to this).

MAC MR is 56bit accordingly.

HIP interface seems to be mapped at standard addresses
(except that regular 218x doesn't have HIP).

Have a fun!
utils/hwstub/tools/lua/atj.lua [diff]
utils/hwstub/tools/lua/atj/dsp.lua [new]
Marcin Bukat
2015-11-15 5b7c9d4: fix yellow.
apps/plugins/fractals/fractal.h [diff]
Szymon Dziok
2015-07-19 a507bb2: YH8xx,YH9xx: Keymap improvement

The main "innovation" in this patch are two "virtual buttons" for the record switch on YH92x targets. When the switch state changes, a single BUTTON_REC_SW_ON or .._OFF button event will be generated. Thus keymap code can react on switching, but not on the actual state of the switch.

Wherever sensible, the following user scheme is applied:
- use PLAY as confirm button
- use REW button or Long REW to exit
- use REC (YH820) or FFWD (YH92X) as modifier key for button combos
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hindi.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
...and 112 more files.
Sebastian Leonhardt
2015-10-20 a8758c9: Fix scrolling left button inadvertently cancels listtree

Depending on the actual keymap, canceling a listtree with the
"scroll left" button may not be intended, especially if the list is entered from a completely different focus
(think of leaving a plugin with "long left")

Note: initializing "scrolling_left" with true without anything actually scrolling sounds odd to me... maybe this variable should be renamed?
"pgleft_allow_cancel" comes to my mind (with opposite boolean states)
apps/gui/list.c [diff]
Sebastian Leonhardt
2015-10-25 ce26212: AB repeat: fix bug that prevents to jump to beginning of track
apps/gui/wps.c [diff]
Sebastian Leonhardt
2015-10-17 d57e651: iPod Classic: enable AB repeat
firmware/export/config/ipod6g.h [diff]
Cástor Muñoz
2015-10-14 2172c11: Samsung YH820/YH92X: different way of powering off to avoid powering on after powering off in a loop on YH92X.
firmware/target/arm/samsung/power-yh82x_yh92x.c [diff]
Szymon Dziok
2015-10-09 c7fc5ca: Fix (D)EBUG compilation errors on targets using FAT
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/drivers/fat.c [diff]
Cástor Muñoz
2014-12-09 d20185a: iPod Classic: reads HDD S.M.A.R.T. data

Adds ata_read_smart() function to storage ATA driver, current SMART data can be displayed and optionally written to hard disk using System->Debug menu.
apps/debug_menu.c [diff]
apps/gui/list.h [diff]
firmware/export/ata.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2014-12-09 32b4558: iPod Classic: initialize USB power configuration

This patch limits the drawn USB current to 100/500mA, instead of the actual 200/1000mA settings. It also initializes other USB power related GPIOs.

Solves some USB disconnect issues: FS #12990, FS #12956. I am using a powered USB HUB with no problems (Vusb=5.05V unloaded), but there are lots of USB disconnects when using the motherboard USB ports
(Vusb=4.91V), this patch solves all my issues.

Actually, it seems that the USB current drain is limited to 1000mA, when a load peak occurs most USB2 ports deliver more than 500mA, as current consumption increases the USB voltage decreases, an excesive voltage drop produces USB disconnections. Limiting USB current drain to 500mA also limits the voltage drop, preventing subsequent USB failures.

Anyway, to minimize voltage drop, it is recommended to use quality cables and preferably connect to USB ports with higher Vusb.
firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c [diff]
Cástor Muñoz
2014-12-06 be5fc0f: iAP: lingo 1 (microphone)
apps/SOURCES [diff]
apps/audio_path.c [diff]
apps/iap/iap-core.c [diff]
apps/iap/iap-lingo.h [diff]
apps/iap/iap-lingo1.c [new]
apps/iap/iap-lingo2.c [diff]
firmware/export/iap.h [diff]
Cástor Muñoz
2014-12-06 b2d650f: iAP: authentication 1.0
apps/iap/iap-core.c [diff]
apps/iap/iap-core.h [diff]
apps/iap/iap-lingo0.c [diff]
Cástor Muñoz
2014-12-06 efd047a: iPod Classic: implement IPOD_ACCESSORY_PROTOCOL
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ipod6g/powermgmt-ipod6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/serial-ipod6g.c [diff]
Cástor Muñoz
2014-12-06 38ae0d5: iPod Classic: implement HAVE_SERIAL
firmware/SOURCES [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/serial-ipod6g.c [new]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/uart-s5l8702.c [new]
firmware/target/arm/s5l8702/uart-s5l8702.h [new]
Cástor Muñoz
2014-12-06 9f27dc2: iPod Classic: introduce s5l8702 UART driver

- polling/IRQ modes for Tx/Rx (TODO?: DMA)
- fine adjust for Tx/Rx bitrates
- auto bauding using HW circuitry
- status and stats in debug screen
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/uc8702.c [new]
firmware/target/arm/s5l8702/uc8702.h [new]
Cástor Muñoz
2014-12-06 291b233: ipod Classic: implement HAVE_RECORDING

This patch has been tested on iPod 80 and 160slim, actually it works but some updates must be done to the final version:

- unlimitted input buffer
- decrease CHUNK_SIZE
- use non-cached addresses instead of discard d-cache ???

Capture hardware versions:

Ver iPod models capture support
--- ----------- --------------- 0 80/160fat dock line-in 1 120/160slim dock line-in + jack mic

HW version 1 includes an amplifier for the jack plug mic.

Capture HW detection only tested on iPod 80 and 160slim.

CODEC power:

AFAIK, OF powers CS42L55 at VA=2.4V for capture (1.8V for playback) and turns on the ADC charge pump. CODEC datasheet recommmends to disable the charge pump for VA>2.1V.

CS42L55 DS, s4.13 (Required Initialization Settings): for VA>2.1V, some adjustments "must" be done using undocummented
"control port compensation" registers. OF does not modifies these registers when VA=2.4V.

This patch configures capture HW in the same way as OF does.

TODO:
- ADC full scale voltage depends on VA, perform tests to find clipping levels for VA=1.8V and VA=2.4V
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/audio-ipod6g.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Cástor Muñoz
2014-12-06 42abc6a: iPod Classic: capture support for CS42L55 codec

There are a couple of power saving options that can be selected using defines, they configure the CODEC in a different way than OF does:

MONO_MIC: jack microphone is connected to left channel, disabling right channel saves ~1 mW, there is no reason to not to do it.

BYPASS_PGA: this option only applies to the line-in, OF does not bypass the PGA and configures it to 0 dB gain. At the beginning, this patch was written based on CODEC datasheet, bypassing PGA because it saves power and incrementes dinamic range ~1dB, i have used this setup for a while without problems. Finally this option was disabled at the last minute, i decided to do it after reviewing the OF and realizing that CS42L55 datasheet recommends to bypass the PGA only if the HW includes a couple of capacitors (see Typical Connection Diagram, Note 4), at this moment i don't know if Classic includes these capacitors (probably not). Anyway, i am not able to tell the difference listening to voice recodings.

TODO:
- Use variable PGA gain for jack microphone (it is fixed to +12 dB. as OF does).
- I am not a fan of having lots of unused #define options, these could be useful for a generic driver but actually this driver is Classic oriented, i am not sure if it could be considered disirable to eliminate them in the final version.
firmware/drivers/audio/cs42l55.c [diff]
firmware/export/cs42l55.h [diff]
Cástor Muñoz
2014-12-06 67b4e7f: iPod Classic: use new PL080 DMA driver

This patch uses the new pl080 DMA driver for I2S playback and LCD update. I have tried to be as fiel as possible to the current behaviour, algorithms and configurations are the same, but using the new driver. Other modifications:

Playback:

- CHUNK_SIZE is decreased from 42988 to 8188 bytes, it does not affect normal playback (block size 1024), was tested using metronome (block size 46080). This change is needed because the new code commits d-cache range instead of commiting the whole d-cache, maximum time spent commiting the range should be limited, CHUNK_SIZE can be decreased even more if necessary.

- pcm_play_dma_start() calls pcm_play_dma_stop() to stop the channel when it is running (metronome replays the tick sound without stopping the channel).

- pcm_play_dma_get_peak_buffer(): same as actual SVN function but returns samples count instead of bytes count. TODO: AFAIK, actually this function is not used in RB. Not tested, but probably this function will fail because it returns pointers to the internal double buffer.

LCD update:

- suppresses lcd_wakeup semaphore and uses yield()
firmware/SOURCES [diff]
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/dma-s5l8702.c [new]
firmware/target/arm/s5l8702/dma-s5l8702.h [new]
firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/s5l8702/pcm-target.h [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Cástor Muñoz
2014-12-06 d6ee2c9: iPod Classic: introduce PL080 DMA controller driver

Motivation:

This driver began as a set of functions to help to test and experiment with different DMA configurations. It is cumbersome, time consuming, and leads to mistakes to handle LLIs and DMA registers dispersed along the code.

Later, i decided to adapt an old DMA queue driver written in the past for a similar (scatter-gather) controller, all task/queue code is based on the old driver.

Finally, some cleaning and dmac_ch_get_info() function was added to complete RB needs.

Description:

- Generic, can be used by other targets including the same controller. Not difficult to adapt for other similar controllers if necesary.

- Easy to experiment and compare results using different setups and/or queue algorithms:

Multi-controller and fully configurable from an unique place.

All task and LLI management is done by the driver, user only has to (statically) allocate them.

- Two queue modes:

QUEUE_NORMAL: each task in the queue is launched using a new DMA transfer once previous task is finished.

QUEUE_LINK: when a task is queued, it is linked with the last queued task, creating a single continuous DMA transfer. New tasks must be queued while the channel is running, otherwise the continuous DMA transfer will be broken.

On Classic, QUEUE_LINK mode is needed for I2S continuous transfers, QUEUE_NORMAL is used for LCD and could be useful in the future for I2C or UART (non-blocking serial debug) if necessary.

- Robust DMA transfer progress info (peak meter), needs final testing, see below.

Technical details about DMA progress:

There are comments in the code related to the method actually used (sequence method), it reads progress without halting the DMA transfer. Althought the datasheet does not recommend to do that, the sequence method seems to be robust, I ran tests calling dmac_ch_get_info() millions of times and the results were always as expected (tests done at 2:1 CPU/AHB clock ratio, no other ratios were tried but probably sequence method will work for any typical ratio).

This controller allows to halt the transfer and drain the DMAC FIFO, DMA requests are ignored when the DMA channel is halted. This method is not suitable for playback because FIFO is never drained to I2S peripheral (who raises the DMA requests). This method probably works for capture, the FIFO is drained to memory before halting.

Another way is to disable (stop) the playback channel. When the channel is disabled, all FIFO data is lost. It is unknown how much the FIFO was filled when it was cleared, SRCADDR counter includes the lost data, therefore the only useful information is LINK and COUNT, that is the same information disponible when using the sequence method. At this point we must procced in the same way as in sequence method, in addition the playback channel should be relaunched (configure + start) after calculating real SRCADDR.

The stop+relaunch method should work, it is a bit complicated, and not valid for all peripheral FIFO configurations (depending on stream rate). Moreover, due to the way the COUNT register is implemented in HW, I suspect that this method will fail when source and destination bus widths doesn't match. And more important, it is not easy to garantize that no sample is lost here or there, using the sequence method we can always be sure that playback is ok.
firmware/SOURCES [diff]
firmware/export/pl080.h [new]
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/pl080.c [new]
Cástor Muñoz
2014-11-10 609cde9: iPod Classic: s5l8702 GPIO interrupt controller.

This patch implements a simple API to use the external interrupt hardware present on s5l8702 (GPIO interrupt controller). This GPIOIC has been fully tested using emcore apps.

Code is based on openiBoot project, there are a few modifications to optimize space considering we will only use two or three external interrupts. The API compiles and works, but has been never used, therefore probably will need some changes to the final version.

External interrupts are necessary for jack remote+mic controller
(see iAP Interface Specifiction: Headphone Remote and Mic System), this controller is located at I2C bus address 0x72, there is a IRQ line for remote button press/release events routed to GPIO E6. At this moment, the functionallity of this controller has been extensively tested using emcore, getting a lot of information about how it works. Microphone is already working on RB, jack accessory detection and button events are work in progress.

PMU IRQ line is also routed to GPIO F3, it signals many events: holdswitch, usb plug, wall adapter, low battery... The use of PMU interrupts is the orthodox way of doing things, at this moment there is no work done in this direction, there are a lot of PMU events and i think it is a matter of discursion what to do and how.
firmware/SOURCES [diff]
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.c [new]
firmware/target/arm/s5l8702/gpio-s5l8702.h [new]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Cástor Muñoz
2015-10-03 3fdb86e: qeditor: fix uninitialised variable
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2015-04-22 f01fb3c: Fix chessbox keymap handling

Let's give the defined, yet unused keymaps some sense :)
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
Sebastian Leonhardt
2015-09-29 bc25437: hwstub: make it possible to override toolchain

Default toolchain can be overriden using PREFIX, for example: PREFIX=arm-none-eabi- make
utils/hwstub/stub/atj213x/Makefile [diff]
utils/hwstub/stub/pp/Makefile [diff]
utils/hwstub/stub/rk27xx/Makefile [diff]
utils/hwstub/stub/stmp/Makefile [diff]
Amaury Pouly
2015-08-16 729e713: Snake2: add 128x96x16 bitmaps

These fit by pure chance exactly the YH820 screen :)
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/snake2_bottom.128x96x16.bmp [new]
apps/plugins/bitmaps/native/snake2_header1.128x96x16.bmp [new]
apps/plugins/bitmaps/native/snake2_header2.128x96x16.bmp [new]
apps/plugins/bitmaps/native/snake2_left.128x96x16.bmp [new]
apps/plugins/bitmaps/native/snake2_right.128x96x16.bmp [new]
apps/plugins/snake2.c [diff]
manual/plugins/images/ss-snake2-128x96x16.png [diff]
Sebastian Leonhardt
2015-07-12 072d3cb: Fix Pong button handling

* allow button combos for QUIT (fixes MPIO_HD300)
* allow quitting during PAUSE mode
apps/plugins/pong.c [diff]
Sebastian Leonhardt
2015-07-12 d552ff2: Chip8: implement missing key

KEYA is defined for Fuze+ (even in the manual), but wasn't implemented yet.
apps/plugins/chip8.c [diff]
Sebastian Leonhardt
2015-07-13 59928e6: Shopper: slightly improve plugin and manual

* improve manual (hopefully fixes fs#11988). Parts of the description are taken from fs#10820.
* move ACTION_STD_CONTEXT from alternate select to alternate menu action, as not all targets have ACTION_STD_MENU
* add menu entries for "Quit" and "Quit without saving"
apps/plugins/shopper.c [diff]
manual/plugins/shopper.tex [diff]
Sebastian Leonhardt
2015-09-10 399904a: Samsung YHxxx: reduce pop noise on power down
firmware/drivers/audio/ak4537.c [diff]
Sebastian Leonhardt
2014-12-14 1cada1f: soc_desc: new version of the desc file format

Fix qeditor to use the old soc_desc_v1. Port hwstub_shell to the new description format.
utils/hwstub/tools/Makefile [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/regtools/Makefile [diff]
utils/regtools/desc/XML.txt [deleted]
utils/regtools/desc/regs-example-v1.xml [new]
utils/regtools/desc/regs-example.xml [new]
utils/regtools/desc/spec-1.0.txt [new]
utils/regtools/desc/spec-2.0.txt [new]
utils/regtools/headergen.cpp [deleted]
utils/regtools/headergen_v1.cpp [new]
utils/regtools/include/soc_desc.hpp [new]
utils/regtools/include/soc_desc_v1.hpp [new]
utils/regtools/lib/Makefile [diff]
utils/regtools/lib/formula.cpp [new]
utils/regtools/lib/soc_desc.cpp [diff]
utils/regtools/lib/soc_desc.hpp [deleted]
utils/regtools/lib/soc_desc_v1.cpp [new]
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
utils/regtools/qeditor/mainwindow.cpp [diff]
utils/regtools/qeditor/qeditor.pro [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/swiss_knife.cpp [new]
utils/regtools/tester.cpp [deleted]
utils/regtools/tester_v1.cpp [new]
Amaury Pouly
2014-10-28 c8d3638: qeditor: introduce new "sexy register display"
utils/regtools/qeditor/qeditor.pro [diff]
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regedit.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-12-18 2c83296: qeditor: use delegate to show bit range information
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2015-07-16 983c808: iPod Classic: do not use HDD features on CE-ATA drives

Fix an 'ATA error' issue that affects CE-ATA devices.
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2015-04-28 d68eccc: mp3_enc.c: fix MP3 recording at 32 kHz sample rate

Fixes a buffer overflow present when MP3 is encoded at 32000 Hz sample rate, affected bitrates are 320 and 256 kbps.
lib/rbcodec/codecs/mp3_enc.c [diff]
Cástor Muñoz
2015-04-28 ab3581c: utils/parse_testcodec.rb: add support for Opus files
utils/parse_testcodec.rb [diff]
Cástor Muñoz
2015-06-28 e70ea5d: hwstub: Add completion and some pretty printing to the shell

This uses slightly hacked luaprompt to provide all the goodis. See https://github.com/dpapavas/luaprompt for original.
utils/hwstub/tools/Makefile [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/hwstub/tools/lua/hwlib.lua [diff]
utils/hwstub/tools/prompt.c [new]
utils/hwstub/tools/prompt.h [new]
Marcin Bukat
2015-06-20 465eb72: Fix rebuilding librbspeex on OS X and make rm work on Windows.

OS X ar operates on fat libaries and cannot update existing archives. Remove it first to avoid this. Use a make function when removing files to allow calling the correct command on Windows, which doesn't know about rm.
tools/rbspeex/Makefile [diff]
Dominik Riebeling
2015-06-20 226922e: Fix USB IDs for Sansa c200v2.

The wrong IDs made a connected c200v1 get detected as c200v1 and c200v2 in MTP mode.
rbutil/rbutilqt/changelog.txt [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2015-06-07 4c4c645: Win32: fix possible crash when listing USB devices.

Make sure to handle if retrieving the device description ends up with a NULL data buffer pointer. Also switch handling the retrieved string using QString.

Fixes a crash reported in the forums.
rbutil/rbutilqt/base/system.cpp [diff]
Dominik Riebeling
2015-06-07 8360937: Append build date when building dev version from local foler.
utils/common/deploy.py [diff]
Dominik Riebeling
2015-02-14 3e5e9cf: AS3543: Fix recording volume setting and voice

Fix regressions introduced by 42219b6e7
firmware/drivers/audio/as3514.c [diff]
Mihail Zenkov
2015-06-01 2ec6fbc: AMS: fix usb initialization in bootloader

Regression after 8b8b85433f6e9ac673adb
bootloader/sansa_as3525.c [diff]
Mihail Zenkov
2015-02-14 e7550a4: AMS: Change DMA transfer size for audio.

Slightly reduces power consumption due to DMA overhead.
firmware/target/arm/as3525/pcm-as3525.c [diff]
Mihail Zenkov
2015-05-30 e606ee4: Make lrelease detection work on Windows.

Make sure to expand variable before testing.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-05-30 ef21b30: Make lrelease detection work on Windows.

Windows doesn't have which, so building natively on Windows didn't create translations anymore. Use a which-less approach instead.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-05-30 e532030: Make revision handling work when building from local folder.
utils/common/deploy.py [diff]
Dominik Riebeling
2015-05-30 5f5d7f6: Fix path creation for zip file names in current folder.

When building in the current tree (i.e. buildfolder ending up as '.') creating the filename to use in the zip file stripped all '.' characters. Use a different way to create the filename to avoid this.
utils/common/deploy.py [diff]
Dominik Riebeling
2015-05-30 2af2a12: Update findversion for change version.h format.

version.h doesn't store the version number as string anymore. Update findversion to use the individual values instead.
utils/common/deploy.py [diff]
Dominik Riebeling
2015-05-18 47d0537: Initially scroll to changelog end.

Since currently new entries are at the bottom scroll down when opening the changelog window.
rbutil/rbutilqt/gui/changelog.cpp [diff]
Dominik Riebeling
2015-05-18 a213c18: Extend project file message output and always run lrelease.

Check for lrelease and always try to run it if found. If not found show a warning. This avoids build problems for certain setups which previously required -config dbg to complete.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-05-14 5db5538: Fix building with MSVC.

MSVC doesn't like function style call to the logger.
rbutil/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2015-05-13 44fcebb: Fix libs path for building with MSVC.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-03-25 d1598cf: Add information about compiler used to startup log.
rbutil/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2015-03-25 09a25de: Apply -Wno-unused-local-typedefs for gcc only.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-03-25 9ecfe61: Separate logger / quazip project file parts.

Move to separate project include file for better readability and reusability.
rbutil/rbutilqt/logger/logger.pri [new]
rbutil/rbutilqt/quazip/quazip.pri [new]
rbutil/rbutilqt/rbutilqt.pri [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-03-08 b230cf3: Update quazip to release 0.7.1.

Update to latest quazip release. Note that quazip is now LGPL and not GPL / LGPL dual licensed anymore.
rbutil/rbutilqt/quazip/LICENSE.GPL [deleted]
rbutil/rbutilqt/quazip/LICENSE.LGPL [new]
rbutil/rbutilqt/quazip/README.ROCKBOX [diff]
rbutil/rbutilqt/quazip/crypt.h [diff]
rbutil/rbutilqt/quazip/ioapi.c [deleted]
rbutil/rbutilqt/quazip/ioapi.h [diff]
rbutil/rbutilqt/quazip/qioapi.cpp [new]
rbutil/rbutilqt/quazip/quazip.cpp [diff]
rbutil/rbutilqt/quazip/quazip.h [diff]
rbutil/rbutilqt/quazip/quazip_global.h [new]
rbutil/rbutilqt/quazip/quazipfile.cpp [diff]
rbutil/rbutilqt/quazip/quazipfile.h [diff]
rbutil/rbutilqt/quazip/quazipfileinfo.cpp [new]
rbutil/rbutilqt/quazip/quazipfileinfo.h [diff]
rbutil/rbutilqt/quazip/quazipnewinfo.cpp [diff]
rbutil/rbutilqt/quazip/quazipnewinfo.h [diff]
rbutil/rbutilqt/quazip/unzip.c [diff]
rbutil/rbutilqt/quazip/unzip.h [diff]
rbutil/rbutilqt/quazip/zip.c [diff]
rbutil/rbutilqt/quazip/zip.h [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2015-01-31 d4fee36: Remove unnecessary Id line.
rbutil/rbutilqt/test/tests.pri [diff]
Dominik Riebeling
2015-01-31 4fb4de3: Update german translation.
rbutil/rbutilqt/lang/rbutil_de.ts [diff]
Dominik Riebeling
2015-01-31 72b81c2: Improve update check information dialog.

Show the user both the current and updated version.
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/utils.h [diff]
rbutil/rbutilqt/changelog.txt [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/test-compareversion.cpp [diff]
Dominik Riebeling
2014-11-14 43b1ccf: Add note to boot OF for update with OF on uninstallation.
rbutil/rbutilqt/changelog.txt [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2015-04-21 c3c2c91: Fix html manual for the Packard Bell Vibe 500.
manual/plugins/xworld.tex [diff]
Szymon Dziok
2015-04-10 91be7ab: Fix snake plugin manual

I copied the direction button description from snake2 manual, as both snakes seem to have the same controls. No guarantee however :)
manual/plugins/snake.tex [diff]
Sebastian Leonhardt
2015-04-19 2e58102: configure: harden arch autodetected a bit

Some arm gcc versions have multiple cpp symbols beginning with __ARM_ARCH, but want only the one that contains the arch version.
tools/configure [diff]
Thomas Martitz
2015-04-01 d8ee5fc: 2048: Cleanup

- more whitespace to enhance readability
- better/fixed/more comments ;)
- some minor optimizations
- general code cleanup
apps/plugins/2048.c [diff]
Franklin Wei
2015-04-19 2453363: Add Thomas White to CREDITS
docs/CREDITS [diff]
Thomas Martitz
2015-03-11 d5ead5c: Don't shorten the playlist on shuffle. Fixes FS #13040
apps/playlist_viewer.c [diff]
Thomas White
2015-04-08 ea334cf: Rename 'expanded' to 'expended'. Was this a typo?
apps/plugins/boomshine.lua [diff]
Christ van Willegen
2015-04-10 06e76a3: Chopper game improvement

This tiny patch gives the player a bit time to overlook the terrain and move the thumb to the action button.
apps/plugins/chopper.c [diff]
Sebastian Leonhardt
2015-04-10 f145660: Norwegian language update (FS #13041)
apps/lang/norsk.lang [diff]
docs/CREDITS [diff]
Åka Sikrom
2015-02-14 f775870: AMS: Fix pop-clicks noise on play/stop.

This noise itroduced by starting/stopping I2SO MCLK. Enable MCLK permanently fix it.
firmware/target/arm/as3525/pcm-as3525.c [diff]
Mihail Zenkov
2015-04-08 926829c: Re-seed the random generator for each new game.
apps/plugins/boomshine.lua [diff]
Christ van Willegen
2015-03-26 e4b8eaa: Add Udo Schläpfer to the credits list because of all the work he has done for the iBasso ports.
docs/CREDITS [diff]
Simon Rothen
2015-03-23 b130b50: Add jz4760 tool

This tool can pack/unpack a jz4760 archive (like the one used for the fiio x1/x3/x5), and can descramble/scramble (it's the same operation) a firmware file (the sys.bin file in the archive). I did my best to keep the compatibility with the leaked Fiio/Ingenic tool which has the same name.

I wrote the tools from scratch, but here are some remarks:
- the format used is a slightly modified IHFS used in the older JZ4640 series, I used the information on the wiki about the IHFS format
- the CRC computation done was already reversed engineered by someone on the forums but I realised this later
- There are a few unknown fields in the headers, see comments in the source code
- The firmware scrambling was discovered by pure guess, I realised there were some repetitve sequences, some I guessed it was a rotative XOR and ran some analysis to find the most probable sequence
utils/jz4760_tools/Makefile [new]
utils/jz4760_tools/packtools.cpp [new]
Amaury Pouly
2015-03-28 32154bf: Portuguese language update (FS #13039)
apps/lang/portugues.lang [diff]
Tiago Medeiros
2015-03-28 dc98c61: Add some missing names from recent translation patches to CREDITS
docs/CREDITS [diff]
Frank Gevaerts
2015-03-28 c39fe43: Update Simplified Chinese and Traditional Chinese translations
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
Purling Nayuki
2015-03-20 70d5708: SVG image of the Sandisk Sansa m200 and other formats for the manual.
manual/rockbox_interface/images/sansam200-front.pdf [new]
manual/rockbox_interface/images/sansam200-front.png [new]
manual/rockbox_interface/images/sansam200-front.svg [new]
Szymon Dziok
2015-02-14 36480c2: Fix a race condition in as3525 I2C driver caused by stacked ISRs.

It was possible for interrupts of higher priority than the current IRQ level to attempt to restart the interface while it was still active on a transfer. The list modification also wasn't protected within the I2C ISR itself.
firmware/target/arm/as3525/ascodec-as3525.c [diff]
Michael Sevakis
2015-03-08 98a69ec: mkimxboot: fix usage message
rbutil/mkimxboot/main.c [diff]
Amaury Pouly
2015-03-06 b8d3287: Mini 2440: make the SVG brighter.
manual/rockbox_interface/images/mini2440-front.svg [diff]
Szymon Dziok
2015-03-05 2029134: SVG image for the Mini 2440.

Done mainly for use on the simulators page.
manual/rockbox_interface/images/mini2440-front.svg [new]
Szymon Dziok
2015-03-04 0d9124f: qeditor: Add external static libraries to build dependecies

The solution is a bit hacky as it simply call make in libs directory as pre-dependency. Clean doesn't touch libs.
utils/regtools/qeditor/qeditor.pro [diff]
Marcin Bukat
2015-03-04 726a2bd: Bulgarian language update (FS #13035)
apps/lang/bulgarian.lang [diff]
Kostadin Kolev
2015-03-01 079d7fb: Revert "PictureFlow: Add move callback for buflib allocations"

It's not needed as picture flow has it's own buffer.

This reverts commit 9076b433d18b5db1a1987fe99ca7c70808f22b0e.

Detailed explanation from Thomas Martiz (thanks!):

buflib buffers can be passed to yielding functions just fine. Problems only arise if the are concurrent allocations, for example if two threads allocate from the same context simultaneously or if the callee does it's own allocations. This can't happen in the pictureflow case, it has it's own context and a single thread allocating from it.

Therefore the problem isn't yield() itself, but possible concurrent buflib_alloc() calls that result from the thread switch. This is because compaction only ever happens on allocation (and not in a backgroud thread or so).
apps/plugins/pictureflow/pictureflow.c [diff]
Thomas Jarosch
2015-02-24 55f1d94: Fix warnings in firmware/screendump.c
firmware/screendump.c [diff]
Franklin Wei
2015-02-24 17ee90c: Fix whitespace in firmware/screendump.c
firmware/screendump.c [diff]
Franklin Wei
2015-02-24 e4108a3: Fix warning in firmware/common/structec.c
firmware/common/structec.c [diff]
Franklin Wei
2015-02-24 0872486: Whitespace fixes in firmware/common/structec.c
firmware/common/structec.c [diff]
Franklin Wei
2015-02-22 c4bf2e3: German language update (FS #13024)
apps/lang/deutsch.lang [diff]
Torsten Schrainer
2015-02-22 1865efc: Update Russian and French rbutil translations.
rbutil/rbutilqt/lang/rbutil_fr.ts [diff]
rbutil/rbutilqt/lang/rbutil_ru.ts [diff]
Семён Жуковский
2015-02-22 a7fa25d: Romanian language update (FS #13021)
apps/lang/romaneste.lang [diff]
Stefan Moisei
2015-02-22 089202f: Bulgarian language update (FS #13017)
apps/lang/bulgarian.lang [diff]
Kostadin Kolev
2015-02-22 56b5ad1: Catalan language update (FS #13025)
apps/lang/catala.lang [diff]
Jordi Prenafeta
2015-02-22 a38eb4e: Portuguese language update (FS #13001)
apps/lang/portugues.lang [diff]
Tiago Medeiros
2015-02-22 93dd74a: Italian language update (FS #12897)
apps/lang/italiano.lang [diff]
Alessio Lenzi
2015-02-22 272b558: Lamp plugin: Allow toggling the button light using "select".
apps/plugins/lamp.c [diff]
apps/plugins/lib/helper.c [diff]
apps/plugins/lib/helper.h [diff]
manual/plugins/lamp.tex [diff]
Frank Gevaerts
2015-02-21 b84fd87: iBasso DX50/DX90 added as "unstable" to builds.pm
tools/builds.pm [diff]
Simon Rothen
2015-02-16 27c7e47: Revert "usb_storage: make it a bit more correct"

Clearly this was a stupid commit, no idea why I did that.

This reverts commit 074e911859a0d3464fde9b701b3cff712c5826e0.
firmware/usbstack/usb_storage.c [diff]
Amaury Pouly
2015-02-16 7d91f8a: zen*: fix yes/no dialog string
apps/lang/english.lang [diff]
Amaury Pouly
2015-01-08 f5f9784: Introduce a new analysis tool to detect which macros are defined in each build.

See the usage() for more information.
utils/analysis/check_defines.sh [new]
Amaury Pouly
2015-02-15 74fc3ef: Prevent configure from being run in the root of the tree, fix a typo in the configure script
tools/configure [diff]
Franklin Wei
2015-02-15 0f34c51: Creative ZEN: context menu now accessible with 'menu' key
apps/keymaps/keymap-zen.c [diff]
Giovanni Tataranni
2015-02-14 8a078d7: iBasso DX90 sound enabling fix

Writing 0 instead of '0' to /sys/class/codec/wm8740_mute enables sound on DX90.
firmware/target/hosted/ibasso/system-ibasso.c [diff]
Eduard Kutuev
2015-02-07 d81b362: iBasso DX50: Digital filter roll off setting.

This patch enables "Settings -> Sound Settings -> DAC's filter roll-off" for the iBasso DX50.

Confirmed working on iBasso DX50, firmware 1.6.
firmware/target/hosted/ibasso/dx50/audiohw-dx50.c [diff]
firmware/target/hosted/ibasso/dx50/codec-dx50.h [diff]
firmware/target/hosted/ibasso/sysfs-ibasso.c [diff]
firmware/target/hosted/ibasso/sysfs-ibasso.h [diff]
Udo Schläpfer
2014-06-29 8aa72f0: Enhancement of the metronome plugin:

- square sine tick and tock sounds (more annoying, more useful;-)
- optical indication of tics on display
- unification of mode of operation for SWCODEC and HWCODEC (tested on simulator) Both playback and display drawing happen in main loop, always.
- operating in two modes now:
-- 1. classic dumb metronome
--- active when openened as application without file to open
--- the usual functionality with tapping and bpm change
--- controls indicated on display
-- 2. track mode with programmable series of parts
--- active when started as viewer for a .tempo file
--- differing meters (4/4, 3/4, 6/8, etc.)
--- patterns (tick/tock/silence on each beat)
--- smooth tempo changes in those tracks

This version had lots of testing regarding metronome accuracy, resulting in the realization that PLL A and PLL B differ on the Clip+, causing drift. There is still drift when the timer intervall is too small, so I settled on 2 ms as compromise.

This is the final version, after adding documentation and extensive help from Sebastian Leonhardt testing it on slower hardware (YH820), where it works up to 650 actual bpm with display indication.

Latest change: Documentation nitpicks.
apps/plugins/SOURCES [diff]
apps/plugins/metronome.c [diff]
apps/plugins/viewers.config [diff]
docs/CREDITS [diff]
manual/plugins/metronome.tex [diff]
Thomas Orgis
2015-01-21 95fdad5: iBasso DX50/DX90: User selectable USB mode.

Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -> General -> System: USB Mode.

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Mass Storage: The default, on USB connect export the internal and external drives as usual. Rockbox will exit gracefully in this case, since the internal drive (/mnt/sdcard) is exported as mass storage device and Android prevents Rockbox from continued execution.
- Charge Only: USB charge only, do not export the internal and external drives. This will not close Rockbox.
- ADB: Enable the Android Debug Bridge. This will not close Rockbox.

Charge only and ADB are actually the same, since it is not yet established if charge only is doable without adb and major hooks into Android.

German translation provided.

This may be genric for Android based devices but is only enabled for iBasso Devices. Other maintainers may choose do adopt this.
apps/lang/deutsch.lang [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/target/hosted/ibasso/system-ibasso.c [diff]
Udo Schläpfer
2015-01-30 040306a: iBasso DX50/DX90: User selectable freq scaling governor.

Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -> General
-> System: Freq Scaling Governor

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Conservative: Slow frequency switching.
- Ondemand or Interactive: Fast frequency switching.
- Powersave: Allways lowest frequency.
- Performance: Allways highest frequency.

German translation provided.

This may be genric for Android kernel based devices but is only enabled for iBasso Devices. Other maintainers may choose do adopt this.
apps/lang/deutsch.lang [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/SOURCES [diff]
firmware/target/hosted/ibasso/governor-ibasso.c [new]
firmware/target/hosted/ibasso/governor-ibasso.h [new]
firmware/target/hosted/ibasso/system-ibasso.c [diff]
Udo Schläpfer
2015-02-02 dbabd0d: iBasso DX50/DX90: Major code cleanup and reorganization.

Reorganization

- Separated iBasso devices from PLATFORM_ANDROID. These are now standlone hosted targets. Most device specific code is in the firmware/target/hosted/ibasso directory.
- No dependency on Android SDK, only the Android NDK is needed. 32 bit Android NDK and Android API Level 16.
- Separate implementation for each device where feasible.

Code cleanup

- Rewrite of existing code, from simple reformat to complete reimplementation.
- New backlight interface, seperating backlight from touchscreen.
- Rewrite of device button handler, removing unneeded code and fixing memory leaks.
- New Debug messages interface logging to Android adb logcat (DEBUGF, panicf, logf).
- Rewrite of lcd device handler, removing unneeded code and fixing memory leaks.
- Rewrite of audiohw device handler/pcm interface, removing unneeded code and fixing memory leaks, enabling 44.1/48kHz pthreaded playback.
- Rewrite of power and powermng, proper shutdown, using batterylog results
(see http://gerrit.rockbox.org/r/#/c/1047/).
- Rewrite of configure (Android NDK) and device specific config.
- Rewrite of the Android NDK specific Makefile.

Misc

- All plugins/games/demos activated.
- Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa.

Includes

- http://gerrit.rockbox.org/r/#/c/993/
- http://gerrit.rockbox.org/r/#/c/1010/
- http://gerrit.rockbox.org/r/#/c/1035/

Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight interface and new option for hold switch, touchscreen, physical button interaction.

Rockbox needs the iBasso DX50/DX90 loader for startup, see http://gerrit.rockbox.org/r/#/c/1099/

The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If
/mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit gracefully and the loader will restart Rockbox on USB disconnect.

Tested on iBasso DX50. Compiled (not tested) for iBasso DX90. Compiled (not tested) for PLATFORM_ANDROID.
apps/SOURCES [diff]
apps/action.c [diff]
apps/keymaps/keymap-dx50.c [diff]
apps/keymaps/keymap-touchscreen.c [diff]
apps/main.c [diff]
apps/playback.c [diff]
apps/plugins/SOURCES.app_build [diff]
apps/plugins/SUBDIRS.app_build [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/plugins.make [diff]
apps/root_menu.c [diff]
apps/scrobbler.c [diff]
apps/settings.h [diff]
firmware/SOURCES [diff]
firmware/backlight.c [diff]
firmware/drivers/audio/android.c [diff]
firmware/drivers/button.c [diff]
firmware/export/audiohw.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/export/hosted_codec.h [diff]
firmware/export/pcm_mixer.h [diff]
firmware/export/rbpaths.h [diff]
firmware/powermgmt.c [diff]
firmware/target/hosted/android/dx50/adc-target.h [deleted]
firmware/target/hosted/android/dx50/backlight-dx50.c [deleted]
firmware/target/hosted/android/dx50/backlight-target.h [deleted]
firmware/target/hosted/android/dx50/button-dx50.c [deleted]
firmware/target/hosted/android/dx50/button-target.h [deleted]
firmware/target/hosted/android/dx50/lcd-dx50.c [deleted]
...and 46 more files.
Udo Schläpfer
2015-02-02 cef17e3: iBasso DX50/DX90: Rockbox loader, replacement for original firmware MangoPlayer.

This loader is needed to use Rockbox on iBasso DX50/DX90 devices. It replaces
/system/bin/MangoPlayer.

It expects
- the original firmware MangoPlayer as /system/bin/MangoPlayer_original
- the chooser.bmp file as /system/chooser.bmp
- the rbmissing.bmp file as /system/rbmissing.bmp
- the usb.bmp file as /system/usb.bmp
- Rockbox in /mnt/sdcard/.rockbox/ (internal device storage accessable via USB)

On first boot or if the device is booted with the hold switch engaged (upper, locked position) this loader will let the user choose between Rockbox and the orginal firmware MangoPlayer. It remembers the last choice and will start the choosen player an following boots.

In the chooser screen
- the device can be powered off with a power button long press.
- Rockbox can be startet with the "Next/Fast Forward" button or by touching the right part of the touchscreen.
- the orginal firmware MangoPlayer can be startet with the "Previous/Rewind" button or by touching the left part of the touchscreen.

If Rockbox can not be found/executed than a "Rockbox is missing" screen will be shown and the orginal firmware MangoPlayer will be started after 30 seconds.

This loader will (try to) restart Rockbox or the orginal firmware MangoPlayer if something unexpected happens.

This loader can be installed via a customized firmware image (update.img) or manually via the Android Debug Bridge (if you get adbd started on the device).

This is a rewrite and code clean up of the original submission, eliminating the need for a custom Android Vold. This loader "knows", when Rockbox has exited due to a USB mass storage connection remounting /mnt/sdcard and acts accordingly, displaying a "USB connection" screen while waiting to restart Rockbox.
rbutil/ibassoboot/jni/Android.mk [diff]
rbutil/ibassoboot/jni/ibassodualboot.c [diff]
rbutil/ibassoboot/jni/rbmissing.bmp [new]
rbutil/ibassoboot/jni/usb.bmp [new]
Udo Schläpfer
2015-01-21 a312ca1: CPUFreq scaling governor interface for Linux/Android hosted devices.

For a usage example see http://gerrit.rockbox.org/r/#/c/1074/
firmware/SOURCES [diff]
firmware/target/hosted/cpufreq-linux.c [new]
firmware/target/hosted/cpufreq-linux.h [new]
Udo Schläpfer
2014-12-13 6d3dc8f: iBasso DX50/DX90: CPU info enhancements.

System -> Debug (Keep Out) -> View CPU stats

Will now show the current cpufreq scaling governor, minimum, current and maximum cpufreq scaling frequency for each CPU.

This may be genric for Android kernel based devices but is only enabled for iBasso Devices. Other maintainers may choose do adopt this.
apps/debug_menu.c [diff]
firmware/target/hosted/cpuinfo-linux.c [diff]
firmware/target/hosted/cpuinfo-linux.h [diff]
Udo Schläpfer
2015-01-28 572b36a: fix surround & pbe dsp crash

check handle before clean up buffer in flush().
lib/rbcodec/dsp/pbe.c [diff]
lib/rbcodec/dsp/surround.c [diff]
Chiwen Chang
2015-01-04 f35d63b: ypr0/ypr1: GPIO handling API refactoring

The GPIO APIs for ypr0 and ypr1 targets was messy, requiring a direct communication via several ioctls calls. Since it is planned to add support to other devices, more GPIO are going to be used. For that reason the functions shall be clear and easy to use.
firmware/target/hosted/samsungypr/gpio-ypr.c [diff]
firmware/target/hosted/samsungypr/gpio-ypr.h [diff]
firmware/target/hosted/samsungypr/ypr0/button-ypr0.c [diff]
firmware/target/hosted/samsungypr/ypr0/system-ypr0.c [diff]
firmware/target/hosted/samsungypr/ypr1/button-ypr1.c [diff]
Lorenzo Miori
2014-01-04 6879dec: yp-r0: improve the charging code

Some people reported strange charging times and strange battery life. Charging by OF: 25 hours; RB: 18 hours It has been found that there are at least two issues here:

1) the way of getting battery charging status wasn't really accurate. This attempts to fix that issue. This patch also simplifies some code (opening a device is no more needed, for example).

To technically explain, battery charging implies first a constant current mode (where the voltage increases) and then a constant voltage mode (where, obviously, the voltage reads more or less the same). The old way the End Of Charge was detected was based solely on the voltage, while now it is based on chip's EOC interrupt, which should be more accurate.

2) OF explicitly sets a constant current 350 mA, while we usually had 55 mA (by as3543 default). This wasn't discovered before since there is a caching problem
("an accurate guess") in the Samsung power mgmt Linux module, thus its debugging dumper wasn't really working, reporting a 55 mA current. Strangely this option should have been set by the bootloader but apparently it does not.

Some testing is still needed, but I confirm that with this patch I could run a benchmark for 25 hours (vs. 18 hours), by charging within Rockbox of course.
firmware/export/config/samsungypr0.h [diff]
firmware/target/hosted/samsungypr/ypr0/powermgmt-ypr0.c [diff]
Lorenzo Miori
2015-01-23 f65baf9: atj213x: Fix DMAC block in description file
utils/regtools/desc/regs-atj213x.xml [diff]
Marcin Bukat
2015-01-22 15d4be5: atj213x: fix desc file errors

Catched by swiss_knife check there are some overlaping fields and invalid characters in some names.
utils/regtools/desc/regs-atj213x.xml [diff]
Marcin Bukat
2015-01-22 716fea8: Fix some language in the sound settings manual.
manual/configure_rockbox/sound_settings.tex [diff]
Michael Giacomelli
2015-01-22 30784cc: fix pbe/haas surround dsps: surround_enabled, redo flush functions.

surround_enabled was never true, end up dsp_surround_flush didn't work; Thats why a cracking noise occurs in right channel when moving track positions.

redo pbe/surround flush in a much simpler way suits the current single buffer style.
lib/rbcodec/dsp/pbe.c [diff]
lib/rbcodec/dsp/surround.c [diff]
Chiwen Chang
2015-01-20 5732e3e: Fix typo in zxbox.tex that broke the manual builds for some targets
manual/plugins/zxbox.tex [diff]
Frank Gevaerts
2014-12-28 42219b6: Bypass the AS3543 audio mixer at higher volumes.

This change reduces noise and distortion very slightly at higher volumes.
firmware/drivers/audio/as3514.c [diff]
Mihail Zenkov
2015-01-19 163ca14: Enable buflib and core_alloc for warble.

Most of the work comes from http://gerrit.rockbox.org/r/#/c/1088/ by Thomas Jarosch.
lib/rbcodec/platform.h [diff]
lib/rbcodec/rbcodecplatform-unix.h [diff]
lib/rbcodec/test/SOURCES [diff]
lib/rbcodec/test/warble.c [diff]
Frank Gevaerts
2014-08-22 3ae0f32: three new DSPs

perceptual bass enhancement
- a bbe-ish group delay corrction with Biophonic EQ boost.
- precut

auditory fatigue reduction
-reduce signal in frequency that may trigger temporary threshold shift

haas surround
-frequency between f(x1) and f(x2) is always bypassed.
-can apply to side only.
apps/lang/english.lang [diff]
apps/menus/sound_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
lib/rbcodec/SOURCES [diff]
lib/rbcodec/dsp/afr.c [new]
lib/rbcodec/dsp/afr.h [new]
lib/rbcodec/dsp/dsp_filter.c [diff]
lib/rbcodec/dsp/dsp_filter.h [diff]
lib/rbcodec/dsp/dsp_proc_database.h [diff]
lib/rbcodec/dsp/dsp_proc_settings.h [diff]
lib/rbcodec/dsp/pbe.c [new]
lib/rbcodec/dsp/pbe.h [new]
lib/rbcodec/dsp/surround.c [new]
lib/rbcodec/dsp/surround.h [new]
manual/configure_rockbox/sound_settings.tex [diff]
Chiwen Chang
2014-09-20 2cdfc43: hwstub: implement read/write data abort recovery
utils/hwstub/stub/SOURCES [diff]
utils/hwstub/stub/asm/arm/system.S [new]
utils/hwstub/stub/asm/mips/atomic_rw.S [diff]
utils/hwstub/stub/asm/mips/system.S [new]
utils/hwstub/stub/atj213x/crt0.S [diff]
utils/hwstub/stub/atj213x/hwstub.lds [diff]
utils/hwstub/stub/main.c [diff]
utils/hwstub/stub/rk27xx/crt0.S [diff]
utils/hwstub/stub/stmp/crt0.S [diff]
utils/hwstub/stub/stmp/hwstub.lds [diff]
utils/hwstub/stub/system.h [diff]
Amaury Pouly
2015-01-13 2ee2a96: Fix crash on uninitialized variable

The WRITE() macro checks if the "fw" pointer is open upon fwrite() error. Since fw was not initialized before use, it might crash for non-zero fw.

cppcheck reported.
[utils/jz4740_tools/HXFreplace.c:187]: (error) Uninitialized variable: fw
utils/jz4740_tools/HXFreplace.c [diff]
Thomas Jarosch
2015-01-13 1212edd: Don't return pointer to array allocated on the stack

It will be out of scope once the function is left.

cppcheck reported:
[firmware/drivers/rtc/rtc_zenvisionm.c:31]: (error) Pointer to local array variable returned.
[firmware/drivers/rtc/rtc_zenvisionm.c:38]: (error) Pointer to local array variable returned.
firmware/drivers/rtc/rtc_zenvisionm.c [diff]
Thomas Jarosch
2015-01-12 a71603b: Clean up bogus 'make compiler happy' code

Less code makes the compiler even happier.
utils/zenutils/libraries/zlib123/zlib/deflate.c [diff]
utils/zenutils/libraries/zlib123/zlib/zutil.c [diff]
Thomas Jarosch
2015-01-12 789df17: ARM unwinder for thumb: Fix broken MOV opcode

The origin of the register value was never moved in the desired register state due to a typo ('rhs' vs. 'rhd').

While looking at the code, I noticed the action taken for the register value is another copy'n'paste error from the ADD opcode above -> it added to the register value instead of MOVing the current value.

Patch submitted upstream.

cppcheck reported:
[lib/unwarminder/unwarm_thumb.c:473]: (warning) Redundant assignment of 'state.regData[rhd].o' to itself.
lib/unwarminder/unwarm_thumb.c [diff]
Thomas Jarosch
2015-01-12 7990241: Fix red
lib/unwarminder/unwarm_arm.c [diff]
Thomas Jarosch
2015-01-12 7361a43: ARM unwinder for thumb: Fix broken SUB opcode

Detected while looking through the code. Patch submitted upstream.
lib/unwarminder/unwarm_thumb.c [diff]
Thomas Jarosch
2015-01-12 fa592cc: ARM unwinder: Add missing 'register' variable in debug output

Also fix a wrong format specifier for an unsigned variable. Detected by cppcheck, patch submitted upstream.
lib/unwarminder/unwarm_arm.c [diff]
Thomas Jarosch
2015-01-12 1589b28: ARM unwinder: Add missing va_end() call.

Detected by cppcheck, patch submitted upstream.
lib/unwarminder/unwarm.c [diff]
Thomas Jarosch
2015-01-08 8d0bdc7: SVG image of the Samsung YP-R1 and other formats for the manual.
manual/rockbox_interface/images/samsungypr1-front.pdf [new]
manual/rockbox_interface/images/samsungypr1-front.png [new]
manual/rockbox_interface/images/samsungypr1-front.svg [new]
Szymon Dziok
2015-01-12 200ca66: Fix red/yellow round #2
bootloader/mpio_hd200_hd300.c [diff]
firmware/target/arm/pbell/vibe500/backlight-target.h [diff]
uisimulator/common/backlight-sim.h [diff]
Marcin Bukat
2015-01-12 3d98386: Set latex input to /dev/null to avoid blocking on errors
manual/LaTeX.Rules [diff]
manual/Makefile.pdflatex [diff]
Frank Gevaerts
2015-01-12 9ffd932: Fix red/yellow
apps/plugins/lib/grey_core.c [diff]
firmware/target/arm/ipod/backlight-mini1g_mini2g.c [diff]
firmware/target/arm/ipod/backlight-target.h [diff]
firmware/target/arm/olympus/mrobe-100/backlight-target.h [diff]
firmware/target/arm/pbell/vibe500/backlight-target.h [diff]
firmware/target/arm/tcc780x/cowond2/button-cowond2.c [diff]
firmware/target/coldfire/iriver/h100/backlight-h100.c [diff]
firmware/target/coldfire/iriver/h100/backlight-target.h [diff]
firmware/target/coldfire/mpio/backlight-mpio.c [diff]
firmware/target/coldfire/mpio/backlight-target.h [diff]
firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c [diff]
uisimulator/common/backlight-sim.h [diff]
Marcin Bukat
2014-12-08 bbd7d1d: regtools/headergen: Make generator more flexible
utils/regtools/headergen.cpp [diff]
Marcin Bukat
2015-01-08 89ba7e8: Get rid of stupid _backlight_* function names

_remote_backlight_* and _buttonlight_* are cleaned as well
apps/plugins/lib/grey_core.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
bootloader/gigabeat.c [diff]
bootloader/iaudio_coldfire.c [diff]
bootloader/imx233.c [diff]
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
bootloader/main-e200r-installer.c [diff]
bootloader/main-pp.c [diff]
bootloader/main-ppsansawipe.c [diff]
bootloader/meizu_m3.c [diff]
bootloader/mpio_hd200_hd300.c [diff]
bootloader/samsung_yps3.c [diff]
bootloader/sansaview.c [diff]
bootloader/telechips.c [diff]
firmware/backlight-sw-fading.c [diff]
firmware/backlight.c [diff]
firmware/export/backlight.h [diff]
firmware/target/arm/as3525/backlight-e200v2-fuze.c [diff]
firmware/target/arm/as3525/sansa-c200v2/backlight-c200v2.c [diff]
firmware/target/arm/as3525/sansa-c200v2/backlight-target.h [diff]
firmware/target/arm/as3525/sansa-clip/backlight-target.h [diff]
firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c [diff]
firmware/target/arm/as3525/sansa-clipplus/backlight-target.h [diff]
firmware/target/arm/as3525/sansa-clipv2/backlight-clipv2.c [diff]
firmware/target/arm/as3525/sansa-clipv2/backlight-target.h [diff]
firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c [diff]
firmware/target/arm/as3525/sansa-clipzip/backlight-target.h [diff]
firmware/target/arm/as3525/sansa-e200v2/backlight-target.h [diff]
firmware/target/arm/as3525/sansa-fuze/backlight-target.h [diff]
...and 118 more files.
Marcin Bukat
2015-01-11 2a3e162: Limit more variables to file scope
apps/plugins/imageviewer/png/tinflate.c [diff]
apps/plugins/lua/gmtime.c [diff]
firmware/drivers/ata_flash.c [diff]
firmware/drivers/lcd-charset-player.c [diff]
firmware/test/buflib/test_main2.c [diff]
firmware/test/buflib/test_move2.c [diff]
flash/uart_boot/uart_boot.c [diff]
gdb/sh-stub.c [diff]
lib/rbcodec/codecs/libfaad/codebook/hcb.h [diff]
lib/rbcodec/codecs/libfaad/huffman.c [diff]
lib/rbcodec/codecs/libfaad/syntax.c [diff]
lib/rbcodec/codecs/libgme/inflate/mallocer.c [diff]
lib/rbcodec/codecs/libspeex/filters.c [diff]
lib/rbcodec/codecs/libwavpack/wputils.c [diff]
lib/rbcodec/codecs/libwmapro/mdct_tables.c [diff]
lib/rbcodec/codecs/mod.c [diff]
lib/rbcodec/codecs/sid.c [diff]
lib/rbcodec/codecs/wav64.c [diff]
lib/skin_parser/skin_debug.c [diff]
lib/skin_parser/skin_parser.c [diff]
rbutil/mkimxboot/main.c [diff]
Thomas Jarosch
2015-01-04 85c98bc: Improve readability by adding parenthesis
firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c [diff]
Thomas Jarosch
2015-01-11 cfbd9cb: Make a few local variables static
apps/playback.c [diff]
firmware/core_alloc.c [diff]
firmware/drivers/ramdisk.c [diff]
firmware/logf.c [diff]
firmware/powermgmt.c [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/sh/archos/recorder/powermgmt-recorder.c [diff]
Thomas Jarosch
2015-01-11 5f5a83e: maemo: Clean up unused variables
firmware/target/hosted/maemo/maemo-thread.c [diff]
Thomas Jarosch
2015-01-05 2d41866: Remove playback control from XWorld, fix comments a bit

XWorld grabs the audio buffer when it starts, so there can be no playback, making the playback control menu useless :P
apps/plugins/xworld/sys.c [diff]
Franklin Wei
2015-01-08 761e798: usb: finally get rid of USE_ROCKBOX_USB in Sansa bootloader, use bootloader usb

For some reason, the bootloader and config files didn't define HAVE_BOOTLOADER_USB_MODE, also remove the special cases in usb.c which they implied.
bootloader/sansa_as3525.c [diff]
firmware/export/config/sansac200v2.h [diff]
firmware/export/config/sansaclip.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansae200v2.h [diff]
firmware/export/config/sansafuze.h [diff]
firmware/export/config/sansafuzev2.h [diff]
firmware/export/config/sansam200v4.h [diff]
firmware/usb.c [diff]
Amaury Pouly
2015-01-08 246026c: imx233: add a comment in the bootloader
bootloader/imx233.c [diff]
Amaury Pouly
2015-01-08 9d160c2: Include scrreprt.4ht from http://tug.org/svn/texlive/trunk/Master/texmf-dist/tex/generic/tex4ht/

This is needed because the version in scrreprt.4ht in debian isn't compatible with other current bits of the TeX installation.
manual/scrreprt.4ht [new]
Frank Gevaerts
2015-01-02 3aebdfa G#1098: usb: make usb_release_exclusive_storage private
firmware/export/usb.h [diff]
firmware/usb.c [diff]
Amaury Pouly
2015-01-02 dc127f2 G#1097: Clarify usb_powered() and fix some code.

Either by mistake or because its meaning changed, usb_powered() doesn't mean what the name suggest, so clarify its meaning by renaming it to usb_powered_only. So use of usb_powered() are replaced by usb_inserted() when it makes more sense.
apps/gui/skin_engine/skin_tokens.c [diff]
apps/main.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/battery_bench.c [diff]
firmware/export/usb.h [diff]
firmware/powermgmt.c [diff]
firmware/usb.c [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
uisimulator/common/stubs.c [diff]
Amaury Pouly
2015-01-02 1ab9155 G#1096: usb: document usb states, powering and detection
firmware/export/usb.h [diff]
Amaury Pouly
2015-01-02 ae37d19 G#1095: usb: document usb_status_event and #ifdef it with USB_STATUS_BY_EVENT
firmware/export/usb.h [diff]
Amaury Pouly
2015-01-01 268114e G#1094: usb: move usb charging function prototype from usb_core.h to usb.h
firmware/export/usb.h [diff]
firmware/export/usb_core.h [diff]
Amaury Pouly
2014-12-30 66690ca G#1091: Get rid of USE_ROCKBOX_USB

Except for unfinished or experimental ports, it isthe case that USE_ROCKBOX_USB and HAVE_USBSTACK are both defined or both undefined. Furthermore, it is a leftover of some early developments on the USB stack and doesn't make sense anymore.
apps/features.txt [diff]
firmware/drivers/ata.c [diff]
firmware/export/config.h [diff]
firmware/export/config/cowond2.h [diff]
firmware/export/config/creativezen.h [diff]
firmware/export/config/creativezenmozaic.h [diff]
firmware/export/config/creativezenv.h [diff]
firmware/export/config/creativezenxfi.h [diff]
firmware/export/config/creativezenxfi2.h [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/creativezenxfistyle.h [diff]
firmware/export/config/creativezv.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
firmware/export/config/gogearsa9200.h [diff]
firmware/export/config/hifietma8.h [diff]
firmware/export/config/hifietma8c.h [diff]
firmware/export/config/hifietma9.h [diff]
firmware/export/config/hifietma9c.h [diff]
firmware/export/config/hifimanhm60x.h [diff]
firmware/export/config/hifimanhm801.h [diff]
firmware/export/config/ihifi760.h [diff]
firmware/export/config/ihifi960.h [diff]
firmware/export/config/ipod4g.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/ipodcolor.h [diff]
firmware/export/config/ipodmini1g.h [diff]
firmware/export/config/ipodmini2g.h [diff]
firmware/export/config/ipodnano1g.h [diff]
...and 36 more files.
Amaury Pouly
2015-01-05 f91434c: Fix yellow
lib/skin_parser/skin_parser.c [diff]
lib/skin_parser/skin_parser.h [diff]
lib/skin_parser/skin_scan.c [diff]
lib/skin_parser/skin_scan.h [diff]
Thomas Jarosch
2015-01-05 fdd4aef: Make thirty functions static to reduce binary size

If any of those functions should be (unused) API functions, they can easily be turned back once really needed.

Detected using a new cppcheck check that uses the internal symbol database to catch functions that are only used in the current file.
apps/plugins/pdbox/PDa/src/d_imayer_fft.c [diff]
firmware/drivers/ata_flash.c [diff]
firmware/events.c [diff]
firmware/ifp_usb_serial.c [diff]
flash/make_firmware/make_firmware.c [diff]
flash/minimon/minimon.c [diff]
lib/skin_parser/skin_parser.c [diff]
lib/skin_parser/skin_parser.h [diff]
lib/skin_parser/skin_scan.c [diff]
lib/skin_parser/skin_scan.h [diff]
Thomas Jarosch
2015-01-04 c907e12: jz4740 usbtool: Fix undefined behavior in set_reg()

The variable 'i' should actually be 'size'. See the read_reg() function above it.

Confirmed via private email from Maurus Cuelenaere. Thanks!
(who also remembered having trouble reading/setting registers over USB back then ;))

cppcheck reported:
[rockbox/utils/jz4740_tools/jz4740_usbtool.c:281]: (error) Uninitialized variable: i
utils/jz4740_tools/jz4740_usbtool.c [diff]
Thomas Jarosch
2015-01-04 b43fcbd: mktime(): Remove redundant assignment of 'result'

Checked with upstream lynx source code and the second calculation line is the upstream one, too.
(In fact I diffed the whole function to check for changes)

cppcheck reported:
[rockbox/firmware/libc/mktime.c:43] -> [rockbox/firmware/libc/mktime.c:44]: (performance) Variable 'result' is reassigned a value before the old one has been used.
firmware/libc/mktime.c [diff]
Thomas Jarosch
2015-01-04 404ebb8: hosted target: Fix uninitialized variable in dirinfo.attribute

cppcheck reported:
[rockbox/firmware/target/hosted/filesystem-app.c:509]: (error) Uninitialized struct member: ret.attribute
[rockbox/firmware/target/hosted/filesystem-app.c:517]: (error) Uninitialized struct member: ret.attribute
firmware/target/hosted/filesystem-app.c [diff]
Thomas Jarosch
2015-01-04 89ab3c2: Fix uninitialized variable (should fix libusb retry handling)

Reported by cppcheck
utils/atj2137/adfuload/adfuload.c [diff]
utils/rk27utils/rkusbtool/rkusbtool.c [diff]
Thomas Jarosch
2015-01-04 8f1fbd1: Remove unneeded std::string .c_str() call

cppcheck reported:
[utils/zenutils/source/update_patch/main.cpp:105]: (performance) Passing the result of c_str() to a function that takes std::string as argument no. 1 is slow and redundant.
utils/zenutils/source/update_patch/main.cpp [diff]
Thomas Jarosch
2015-01-03 d0fffd6 G#1117: Fix a tiny whitespace error in CREDITS
docs/CREDITS [diff]
Franklin Wei
2015-01-03 a5ec3f4: Add buflib tests to .gitignore
.gitignore [diff]
Thomas Jarosch
2015-01-03 c5933f4: Add and adapt buflib shrink tests
firmware/test/buflib/Makefile [diff]
firmware/test/buflib/test_shrink.c [new]
firmware/test/buflib/test_shrink_cb.c [new]
firmware/test/buflib/test_shrink_startchanged.c [new]
firmware/test/buflib/test_shrink_unaligned.c [new]
Thomas Jarosch
2015-01-03 77aa94b: Add buflib test for maximum allocation
firmware/test/buflib/Makefile [diff]
firmware/test/buflib/test_max.c [new]
Thomas Jarosch
2015-01-03 5f824e2: Add and adapt buflib move tests
firmware/test/buflib/Makefile [diff]
firmware/test/buflib/test_move.c [new]
firmware/test/buflib/test_move2.c [new]
Thomas Jarosch
2015-01-03 7d5f133: Bring abroad second buflib test

Interfaces with core_alloc_* instead of buflib directly.

Provide UT_core_allocator_init() with a fixed buffer size for predictable results.
firmware/test/buflib/Makefile [diff]
firmware/test/buflib/test_main2.c [new]
firmware/test/buflib/util.c [diff]
firmware/test/buflib/util.h [diff]
Thomas Jarosch
2015-01-03 e7d9432: Enable printing of buflib allocations
firmware/test/buflib/Makefile [diff]
firmware/test/buflib/test_main.c [diff]
firmware/test/buflib/util.c [new]
firmware/test/buflib/util.h [new]
Thomas Jarosch
2015-01-03 e138016: Initial import of simple buflib unit test

Taken from kugel's out-of-tree version: https://github.com/kugel-/buflib

Needs some API adaptions. More test will follow.

Note: The expected output needs an update since the in-tree version of buflib does buffer alignment and also progressed a bit. Still the tests are a very good start.

Added Rockbox copyright header during import were needed.
firmware/test/buflib/Makefile [new]
firmware/test/buflib/autoconf.h [new]
firmware/test/buflib/system-hosted.h [new]
firmware/test/buflib/test_main.c [new]
Thomas Jarosch
2015-01-03 eb9c845: Fix up some DEBUGF statements

The last big filesystem code refactoring broke a lot of debug statements.

firmware/test/fat/ doesn't build anymore, but that's more or less unrelated.
firmware/drivers/fat.c [diff]
Thomas Jarosch
2015-01-03 98280bb: Multiple variables for 'my' need to be in parenthesis

perl -wc reported:

Parentheses missing around "my" list at sims.pl line 9. Useless use of a variable in void context at sims.pl line 9. Useless use of a variable in void context at sims.pl line 9. Useless use of a variable in void context at sims.pl line 9. Useless use of a variable in void context at sims.pl line 9. Name "main::doonly" used only once: possible typo at sims.pl line 9.

-> now it's happy.
tools/release/sims.pl [diff]
Thomas Jarosch
2015-01-03 dd75bb7: Don't build sims twice

Some of those builds are already in the 'builds' list.
tools/release/sims.pl [diff]
Thomas Jarosch
2015-01-03 5f603d3: Fix syntax error (missing semicolon)

Reported by TheSeven on IRC.
firmware/target/hosted/filesystem-win32.c [diff]
Thomas Jarosch
2015-01-02 bce72e6: buflib: Switch from term "cookie" to "metadata"

The documentation of buflib first mentions metadata and then changes to "cookie" without explaining it.

Fix it by sticking to metadata.
firmware/buflib.c [diff]
Thomas Jarosch
2015-01-02 66df5f3: Improve core_alloc() / buflib_alloc() documentation

Document the fact that buffers are movable by default. Care must be taken to not pass them to functions that yield().

Also clarify other things:
- Passing NULL as "ops" to buflib_alloc_ex() causes buffers to be movable by default (but not shrinkable).

- If you want shrinkable buffers during compaction, you have to provide a shrink callback.

- To disable buffer movement, you have to pass NULL for the move_callback inside the callback structure.

- The concept of default callbacks was removed long ago, remove the only reference of it.
firmware/buflib.c [diff]
firmware/core_alloc.c [diff]
firmware/include/buflib.h [diff]
Thomas Jarosch
2015-01-02 7265375: Shortcuts: Add move callback for buflib allocations

If we don't provide a callback to buflib_alloc(), the buffer is always movable (to reduce fragmentation).

We were passing around buffers to multiple functions that call yield() and might trigger buflib compaction.

-> add locking while we are working on the buffers.

Also added source code comments that explain why we added the locking in that particular section.
apps/shortcuts.c [diff]
Thomas Jarosch
2015-01-01 9076b43: PictureFlow: Add move callback for buflib allocations

If we don't provide a callback to buflib_alloc(), the buffer is always movable (to reduce fragmentation).

Since we pass our buffer to functions that call yield(), this could lead to memory corruption on buflib compaction.
apps/plugins/pictureflow/pictureflow.c [diff]
firmware/buflib.c [diff]
Thomas Jarosch
2015-01-01 b0277e4 G#1093: XWorld: fix some typos in keymaps.h

Happy New Year!

Tested: Thomas Jarosch
apps/plugins/xworld/keymaps.h [diff]
Franklin Wei
2015-01-01 812406f: Limit "struct dircache_runinfo" to file scope
firmware/common/dircache.c [diff]
Thomas Jarosch
2014-12-29 09f7bb8: Add missing newline in debug output
firmware/buflib.c [diff]
Thomas Jarosch
2014-12-29 da5a36d: Document 'union buflib_data'
firmware/buflib.c [diff]
firmware/include/buflib.h [diff]
Thomas Jarosch
2014-12-24 193c5df G#1084: XWorld: cleanup

- Comment keymaps.h
- Tie XWORLD_DEBUG into ROCKBOX_HAS_LOGF to ease debugging
- Fix up the manual a little bit
apps/plugins/xworld/keymaps.h [diff]
apps/plugins/xworld/sys.c [diff]
apps/plugins/xworld/util.h [diff]
apps/plugins/xworld/xworld.c [diff]
manual/plugins/xworld.tex [diff]
Franklin Wei
2014-12-27 e7c282f: More standard conforming codec_realloc()

- Leave original ptr untouched if allocation fails
(bail out early)
- Behave like malloc() in case ptr is NULL
lib/rbcodec/codecs/lib/codeclib.c [diff]
Thomas Jarosch
2014-12-27 d68262e: Two more typo fixes
firmware/include/buflib.h [diff]
Thomas Jarosch
2014-12-27 91f1393: Fix typos in documentation
firmware/include/buflib.h [diff]
Thomas Jarosch
2014-12-24 ce94c3e G#1083: Fix for DX50 xworld keymaps.h
apps/plugins/xworld/keymaps.h [diff]
Benjamin Brown
2014-12-24 339bea4 G#1082: Fixes more red for xworlds keymaps

A temporary fix for keymaps.h, the logic needs rewritten
apps/plugins/xworld/keymaps.h [diff]
Benjamin Brown
2014-12-23 7de7c22 G#1081: Xworld - Fixes warnings for cowond2, hifimanhm60x, ibassodx50, and ondavx747. Also fixes errors for ondavx777.
apps/plugins/xworld/keymaps.h [diff]
Benjamin Brown
2014-12-23 78cd5c1 G#1080: Fixes xworld keymaps for ondavx747, hifimanhm60x, and cowond2
apps/plugins/xworld/keymaps.h [diff]
Benjamin Brown
2014-12-23 3781726 G#1079: fix xworld building with 24-bit lcd also fix a couple unused vars
apps/plugins/xworld/sys.c [diff]
Franklin Wei
2014-12-23 1bc3964: Fix compilation error.
apps/plugins/SUBDIRS [diff]
Michael Giacomelli
2014-10-13 33cb13d G#1077: Xworld - Another World interpreter for Rockbox

Co-conspirators: Franklin Wei, Benjamin Brown

-------------------------------------------------------------------- This work is based on:
- Fabien Sanglard's "Fabother World" based on
- Piotr Padkowski's newRaw interpreter which was based on
- Gregory Montoir's reverse engineering of
- Eric Chahi's assembly code

-------------------------------------------------------------------- Progress:

* The plugin runs pretty nicely (with sound!) on most color targets
* Keymaps for color LCD targets are complete
* The manual entry is finished
* Grayscale/monochrome support is NOT PLANNED
- the game looks horrible in grayscale! :p

-------------------------------------------------------------------- Notes:

* The original game strings were built-in to the executable, and were copyrighted and could not be used.
* This port ships with an alternate set of strings by default, but can load the "official" strings from a file at runtime.

-------------------------------------------------------------------- To be done (in descending order of importance):

* vertical stride compatibility <30% done>
* optimization <10% done>
apps/plugins/CATEGORIES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/xworld/README [new]
apps/plugins/xworld/README.newraw [new]
apps/plugins/xworld/README.rockbox [new]
apps/plugins/xworld/SOURCES [new]
apps/plugins/xworld/awendian.h [new]
apps/plugins/xworld/bank.c [new]
apps/plugins/xworld/bank.h [new]
apps/plugins/xworld/engine.c [new]
apps/plugins/xworld/engine.h [new]
apps/plugins/xworld/file.c [new]
apps/plugins/xworld/file.h [new]
apps/plugins/xworld/intern.c [new]
apps/plugins/xworld/intern.h [new]
apps/plugins/xworld/keymaps.h [new]
apps/plugins/xworld/mixer.c [new]
apps/plugins/xworld/mixer.h [new]
apps/plugins/xworld/parts.c [new]
apps/plugins/xworld/parts.h [new]
apps/plugins/xworld/resource.c [new]
apps/plugins/xworld/resource.h [new]
apps/plugins/xworld/serializer.c [new]
apps/plugins/xworld/serializer.h [new]
apps/plugins/xworld/sfxplayer.c [new]
apps/plugins/xworld/sfxplayer.h [new]
apps/plugins/xworld/sys.c [new]
apps/plugins/xworld/sys.h [new]
apps/plugins/xworld/util.c [new]
apps/plugins/xworld/util.h [new]
...and 11 more files.
Franklin Wei
2014-12-22 b681e93: mikmod plugin: Remove bogus doubled return statement Stick to the safer version of those two.

Tested mikmod still works with some nice Necros .s3m files.
apps/plugins/mikmod/mmio.c [diff]
Thomas Jarosch
2014-12-22 71c0516: zxbox: Add missing break; statement

No harm done, same values are assigned in the "default" case.

cppcheck reported:
[rockbox/apps/plugins/zxbox/tapefile.c:674] -> [rockbox/apps/plugins/zxbox/tapefile.c:681]: (warning) Buffer 'seg_desc' is being written before its old content has been used. 'break;' missing?
apps/plugins/zxbox/tapefile.c [diff]
Thomas Jarosch
2014-12-22 5d3aa1b: Fix red (pass pointer of 'item')
apps/settings.c [diff]
Thomas Jarosch
2014-12-22 06eeab0: Always initialize "item"

Otherwise item.cfg_name and item.default_val will contain garbage. It doesn't seem to have an effect right now, but who knows what a future refactoring might do.

cppcheck reported:
[rockbox/apps/settings.c:1268]: (error) Uninitialized variable: item
apps/settings.c [diff]
Thomas Jarosch
2014-12-21 9a5f7ce: wavrecord plugin: Add harmless sanity check

cppcheck reported:
[rockbox/apps/plugins/wavrecord.c:3672]: (error) Array 'sampr[9][2]' index sampr[9][1] out of bounds.
apps/plugins/wavrecord.c [diff]
Thomas Jarosch
2014-12-20 29ffa83: Remove useless assignment of 'len'

The variable 'len' is not used after this statement. Probably a copy'n'paste leftover from the similar looking block above.

cppcheck reported:
[rockbox/utils/zenutils/source/shared/cenc.cpp:212]: (style) Same expression on both sides of '-'.
utils/zenutils/source/shared/cenc.cpp [diff]
Thomas Jarosch
2014-12-20 515a07e: sb1: fix buggy comparison

cppcheck reported:
[rockbox/utils/imxtools/sbtools/sb1.c:440]: (warning) Comparison of a boolean expression with an integer other than 0 or 1.

Thanks to Thomas Jarosch
utils/imxtools/sbtools/sb1.c [diff]
Amaury Pouly
2014-12-20 61e322c: mkzenboot: Fix double close of bootfd on error

cppcheck reported:
[rockbox/tools/mkzenboot.c:1176]: (error) Used file that is not opened.
tools/mkzenboot.c [diff]
Thomas Jarosch
2014-12-20 1eb1bc2: DX 50: Fix file descriptor leak on error

Unimportant change, still good style.

cppcheck reported:
[rockbox/firmware/target/hosted/android/dx50/button-dx50.c:92]: (error) Resource leak: fd
[rockbox/firmware/target/hosted/android/dx50/button-dx50.c:98]: (error) Resource leak: fd
firmware/target/hosted/android/dx50/button-dx50.c [diff]
Thomas Jarosch
2014-12-20 575ec89: mini2440: Fix bogus buffer access in LCD backlight driver

The backlight driver always writes a bogus value from memory into the LCD brightness register.

Fix it up by adding bounds checks and use a more sane default value.

While looking at the code, I noticed that BACKLIGHT_CONTROL_SET probably ignores the desired brightness level, too.

Note: Please test on real hardware, I don't own it.

cppcheck reported:
[rockbox/firmware/target/arm/s3c2440/mini2440/backlight-mini2440.c:53]: (error) Array 'log_brightness[13]' accessed at index 255, which is out of bounds.
firmware/target/arm/s3c2440/mini2440/backlight-mini2440.c [diff]
Thomas Jarosch
2014-12-20 d62e1b3: vibe 500: Fix ide_powered() always returning false

While the right GPIO location is accessed, the result of the logical AND was tested wrong.

I don't have this hardware, but I can imagine that bug caused ide_power_enable() to be called more times than it needed to be.

cppcheck reported:
[rockbox/firmware/target/arm/pbell/vibe500/power-vibe500.c:101]: (style) Expression '(X & 0x8) == 0x1' is always false.
firmware/target/arm/pbell/vibe500/power-vibe500.c [diff]
Thomas Jarosch
2014-12-20 ef1497c: Add missing va_end() call when the log is full

No need to go out of memory, too ;)

cppcheck reported:
[rockbox/firmware/logf.c:338]: (error) va_list 'ap' was opened but not closed by va_end().
firmware/logf.c [diff]
Thomas Jarosch
2014-12-20 c54537a: Prevent theoretical out-of-bounds access in STM_Load()

We should be safe since STM_Load() should never be called if STM_Test() fails. Still it's better safe than sorry.

cppcheck reported:
[rockbox/apps/plugins/mikmod/load_stm.c:302]: (error) Array 'STM_Version[3]' accessed at index 3, which is out of bounds.
apps/plugins/mikmod/load_stm.c [diff]
Thomas Jarosch
2014-12-20 f8d9e9c: m3u playlist parser: Check size limit before using buffer

This should only be a problem if the last line is not terminated by \r or \n though.

cppcheck reported:
[rockbox/apps/playlist.c:234]: (style) Array index 'i' is used before limits check.
apps/playlist.c [diff]
Thomas Jarosch
2014-12-20 2caf887: text_viewer plugin: Fix two out-of-bounds buffer accesses

Test code:
-------------- int main(void)
{ static unsigned short extra_spaces[] = { 0, 0x3000 }; return sizeof(extra_spaces);
}
--------------

-> returns four instead of two.

cppcheck reported:
[rockbox/apps/plugins/text_viewer/tv_text_processor.c:180]: (error) Array 'break_chars[27]' acces sed at index 53, which is out of bounds.
[rockbox/apps/plugins/text_viewer/tv_text_processor.c:195]: (error) Array 'extra_spaces[2]' acces sed at index 3, which is out of bounds.
apps/plugins/text_viewer/tv_text_processor.c [diff]
Thomas Jarosch
2014-12-20 1ff5fd4: Fix broken buflib_handle check in backdrop settings loader

The logic was messed up and always evaluated to true if buflib_handle is non-zero.

Thanks to JdGordon for verifying the change.

cppcheck reported:
[rockbox/apps/gui/skin_engine/skin_backdrops.c:262]: (warning) Comparison of a boolean expression with an integer other than 0 or 1.
apps/gui/skin_engine/skin_backdrops.c [diff]
Thomas Jarosch
2014-12-20 c55be3b: maemo port: Fix startup crash exposed by audio thread refactoring

The refactoring of the audio thread in this commit
----------------------------------------------- commit 5857c44017a1641fce7f00da7f16c143daacbaf6 Author: Michael Sevakis Date: Fri May 31 02:41:02 2013 -0400

Refactor audio thread to run both recording and playback.
-----------------------------------------------

moved pcm_init() next to dsp_init() in apps/main.c:init(). Before that pcm_init() was called by audio_init().

Unfortunately the maemo init code didn't properly wait until the maemo thread was fully initialized, leading to dangling pointers when the code called by pcm_init() tried to access maemo's variables.

Fix it by refactoring the "very fast shutdown" semaphore to wait until maemo is initialized in any case.

This should also fix very rare rockbox crashes on startup that I got once a year or so. The new code has been tested by a script that starts and kills rockbox after one second.
firmware/target/hosted/sdl/system-sdl.c [diff]
Thomas Jarosch
2014-12-17 55a5aab: Add newlines at the end of the file

Quiet maemo's gcc 4.2.1 compiler warning.
lib/unwarminder/SOURCES [diff]
lib/unwarminder/safe_read.h [diff]
Thomas Jarosch
2014-12-17 3add6c7: Fix up maemo port after byte swap header refactoring

Turns out maemo's old gcc 4.2.1 doesn't include any arch optimized swapXX() functions, just plain C implementations.

Before we pull in lots of linux kernel headers for the C implementation, just stick to rockbox's own version.
firmware/include/rbendian.h [diff]
Thomas Jarosch
2014-10-22 5dab768 G#1023: regtools/qeditor: use the new model, drop unused code
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-10-22 abed208 G#1022: regtools/qeditor: introduce custom table model for reg fields

This one is much more efficient than using a generic table widget.
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-10-22 edaeee1 G#1021: regtoosl/qeditor: remove unused code
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-10-22 88053b8 G#1020: regtools/qeditor: fix field editor not updating the validator on change
utils/regtools/qeditor/qeditor.pro [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-10-22 04e798e G#1019: regtools/qeditor: fix backend dump bug, be more correct on read
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/qeditor.pro [diff]
Amaury Pouly
2014-10-22 6cb8611 G#1018: regtools/socdesc: update library with a field useful functions
utils/regtools/lib/soc_desc.hpp [diff]
Amaury Pouly
2014-10-07 7749c4d G#1006: qeditor: message widget now supports IDs, useful to clear messages
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-10-02 cef5e10 G#1000: qeditor: change setting names, they were inconsistent
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/utils.cpp [diff]
Amaury Pouly
2014-09-30 dc3ae2a G#998: qeditor: rework register dump to be more general and flexible
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
Amaury Pouly
2014-09-30 1bcc4fc G#997: qeditor: introduce a new "RAM" backend, and refactor file backend
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
Amaury Pouly
2014-09-27 4a711fe G#996: qeditor: display message on "Nothing" backend selection
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-09-27 99ed6d2 G#995: qeditor: backends can now report validity status
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
Amaury Pouly
2014-09-27 b08620d G#987: qeditor: introduce a message widget to display non-interactive messages
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-09-27 3b4e631 G#986: qeditor: rework mainwindow tab names handling

With the previous code, tab names would be ignored if tab is detached which can happen early on.
utils/regtools/qeditor/mainwindow.cpp [diff]
utils/regtools/qeditor/mainwindow.h [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regtab.cpp [diff]
Amaury Pouly
2014-09-26 fe1fed8 G#983: qeditor: add copyright
utils/regtools/qeditor/analyser.cpp [diff]
utils/regtools/qeditor/analyser.h [diff]
utils/regtools/qeditor/backend.cpp [diff]
utils/regtools/qeditor/backend.h [diff]
utils/regtools/qeditor/main.cpp [diff]
utils/regtools/qeditor/mainwindow.cpp [diff]
utils/regtools/qeditor/mainwindow.h [diff]
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regedit.h [diff]
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
utils/regtools/qeditor/settings.cpp [diff]
utils/regtools/qeditor/settings.h [diff]
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-12-15 94c4834: Revert "regtools/qeditor: use the new model, drop unused code"

This reverts commit 3b3d9bf725a5b04e4cd9bc4254fbd2594b518e89. Gerrit did crap on this one.
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-10-22 3b3d9bf G#1023: regtools/qeditor: use the new model, drop unused code
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-12-13 0389fd0: MTP: put libs after files in the Makefile, to please old gcc versions
utils/MTP/Makefile [diff]
Amaury Pouly
2014-11-10 b320bba G#1034: iPod Classic: YUV to RGB optimizations for ARM v5+

Optimizes YUV to RGB conversion using ARMv5 multiply-accumulate intructions for operations and data tables for saturation.

This first patch set includes the three versions i have developed. Although iPod Classic need to use the latest version to reach 30fps, old versions may serve other targets.

All versions are based on current SVN algorithm (round->scale->add) using the same coefficients, so output results are identical.

Version history:

ARMv4:
- use all available registers to calculate four pixels within each loop iteration.
- avoid LDR interlocks.

ARMv5TE:
- use ARMv5TE+ 1-cycle multiply-accumulate instructions.

ARMv5TE_WST:
- use data tables (256 bytes) for RBG565 saturation.

Benchmarks results using iPod Classic (ARM926EJ 216Mhz):

size test_fps (1) mpegplayer (2) bytes YUV YUV1/4 average min/max
----- ----------- ------------------ SVN-20141107 528 27.8 110.0 11035 10864/13397 ARMv4 480 28.8 114.0 9767 9586/12126 ARMv5TE 468 29.7 117.5 8751 8584/11118 ARMv5TE_WST 544 33.6 133.0 6355 6316/6403

(1) boosted
(2) play full elephants_dream_320x240.mpg file (15693 frames) using mpegplayer, patched RB measures YUV to RGB565 frame conversion time (microseconds)

Compared against the WST version, the ARMV5TE version w/o cached saturation tables is slower, but it is smaller and i have doubts about the power consumption.

Tested: Cástor Muñoz
firmware/target/arm/s5l8702/ipod6g/lcd-asm-ipod6g.S [diff]
Cástor Muñoz
2014-12-09 a2136a8: ypr0: Get it up and running again

7d1a47cf13 introduced a regression that broke it completely so that it couldn't boot into the main menu anymore. It had a faulty call to get_volume_name() which made handle_special_links() act up. This broke every open() and opendir() (and friends) library calls.
firmware/target/hosted/filesystem-app.c [diff]
Thomas Martitz
2014-12-01 9454ad4: iPod Classic: configure piezo GPIO ports

Configures piezo GPIO ports for the lowest power consumption when not in use.
firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c [diff]
Cástor Muñoz
2014-12-01 bfb63f8: iPod Classic: minor modifications in TIMER

The current behaviour should not change.
firmware/target/arm/s5l8702/kernel-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/timer-s5l8702.c [diff]
Cástor Muñoz
2014-11-29 8618f2c: rk27xx: sd: properly align buffer used for DMA transfers.

Commit 7d1a47cf ("Rewrite filesystem code (WIP)") exposed bug in rk27xx sd driver. Buffer passed to sd_read/write_sectors() doesn't has to be cacheline aligned. DMA transfers on unaligned buffers is quiet dangerous thing. Make sure that the buffer is aligned to cacheline size, If not use a temporary aligned buffer for DMA transfer.
firmware/target/arm/rk27xx/sd-rk27xx.c [diff]
firmware/target/arm/rk27xx/system-target.h [diff]
Andrew Ryabinin
2014-11-29 d1fcfe9: Add IS_ALIGNED(x, a) macro helper
firmware/export/system.h [diff]
Andrew Ryabinin
2014-11-28 d924c83: Fix warning in WMA Pro and remove a c++ comment.
lib/rbcodec/codecs/wmapro.c [diff]
lib/rbcodec/metadata/asf.c [diff]
Michael Giacomelli
2014-11-28 aa2c55e: Fix FS #13009.

This file revealed several problems with our ASF parser:

1) The packet count in the ASF was actually a 64 bit value, leading to overflow in very long files.

2) Seeking blindly trusted the bitrate listed in the ASF header rather than computing it from the packet size and number of packets.

Fix these problems and fix a few minor issues.
lib/rbcodec/codecs/libasf/asf.c [diff]
lib/rbcodec/codecs/libasf/asf.h [diff]
lib/rbcodec/metadata/asf.c [diff]
Michael Giacomelli
2014-11-28 0cd9e4e G#1055: hwstub/atj213x: add clock setup to crt0.S

Tested: Marcin Bukat
utils/hwstub/stub/atj213x/crt0.S [diff]
Marcin Bukat
2014-11-27 5e1381b G#1054: qeditor: add clock analyser for ATJ213x
utils/regtools/desc/regs-atj213x.xml [diff]
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
Marcin Bukat
2014-11-25 e99c036 G#1052: hwstub_shell: add support for call and jump

Tested: Marcin Bukat
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/hwstub/tools/init.lua [diff]
utils/hwstub/tools/lua/hwlib.lua [new]
utils/hwstub/tools/lua/load.lua [diff]
Marcin Bukat
2014-11-24 9439635 G#1049: hwstub: lua functions for atj213x/irivere150

Tested: Marcin Bukat
utils/hwstub/tools/lua/atj.lua [diff]
utils/hwstub/tools/lua/atj/gpio.lua [new]
utils/hwstub/tools/lua/atj/lcm.lua [new]
utils/hwstub/tools/lua/irivere150.lua [new]
utils/regtools/desc/regs-atj213x.xml [diff]
Marcin Bukat
2014-11-18 19f4e39: regs-atj213x.xml upadte
utils/regtools/desc/regs-atj213x.xml [diff]
Marcin Bukat
2014-11-18 cd04a5f: hwstub/qeditor: add support for atomic read/writes

The current code assumed that READ/WRITE would produce atomic read/writes for 8/16/32-bit words, which in turned put assumption on the memcpy function. Since some memcpy implementation do not always guarantee such strong assumption, introduce two new operation READ/WRITE_ATOMIC which provide the necessary tools to do correct read and write to register in a single memory access.
utils/hwstub/hwstub_protocol.h [diff]
utils/hwstub/lib/hwstub.c [diff]
utils/hwstub/lib/hwstub.h [diff]
utils/hwstub/stub/SOURCES [diff]
utils/hwstub/stub/asm/arm/atomic_rw.S [new]
utils/hwstub/stub/asm/mips/atomic_rw.S [new]
utils/hwstub/stub/main.c [diff]
utils/hwstub/stub/protocol.h [diff]
utils/hwstub/stub/target.h [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/hwstub/tools/init.lua [diff]
utils/regtools/qeditor/backend.cpp [diff]
Marcin Bukat
2014-11-18 794169a: iPod Classic: fix HW_FREQ_32
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
Cástor Muñoz
2014-11-18 61206ce: Add myself to committers list
docs/COMMITTERS [diff]
Cástor Muñoz
2014-11-10 5796969 G#1032: iPod Classic: update timer API using 32-bit timers.
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/timer-s5l8702.c [diff]
Cástor Muñoz
2014-11-14 229a02a G#1039: adfuload: fix argument parsing
utils/atj2137/adfuload/adfuload.c [diff]
Amaury Pouly
2014-11-14 16dcde4 G#1041: hwstub_shell: add atj target
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/hwstub/tools/lua/atj.lua [new]
utils/hwstub/tools/lua/load.lua [diff]
Amaury Pouly
2014-11-10 edb0c6c G#1031: iPod Classic: fix s5l8702 cache line length.

Use 32 bytes for cache line length (arm926ej-s), this prevents misalignments of ATA storage buffer which in some builds could cause weird faults.
firmware/export/s5l8702.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Cástor Muñoz
2014-11-08 bcca111: HDD1630/HDD6330/SA9200: Integration of the clicker with the "Keyclick" menu.
firmware/SOURCES [diff]
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
firmware/export/config/gogearsa9200.h [diff]
firmware/target/arm/philips/hdd1630/button-hdd1630.c [diff]
firmware/target/arm/philips/hdd6330/button-hdd6330.c [diff]
firmware/target/arm/philips/piezo.c [new]
firmware/target/arm/philips/piezo.h [new]
firmware/target/arm/philips/sa9200/button-sa9200.c [diff]
Szymon Dziok
2014-11-10 73a7802: zen: typo
firmware/target/arm/imx233/sdmmc-imx233.c [diff]
Amaury Pouly
2014-11-10 6677f97: Fix YUV generic C performance function on 24-bit framebuffer

When changed to handle 24-bit framebuffer, some places were missed.
firmware/asm/lcd-as-memframe.c [diff]
Amaury Pouly
2014-11-10 b29d311: Fix remaining errors in Polish translation.
apps/lang/polski.lang [diff]
Szymon Dziok
2014-11-10 ce88fa2: Polish translation update.
apps/lang/polski.lang [diff]
Szymon Dziok
2014-11-06 bb5341c: regtools: ATJ213x description file
utils/regtools/desc/regs-atj213x.xml [new]
Marcin Bukat
2014-11-06 df2ac74: adfuload: Improve arguments parsing
utils/atj2137/adfuload/adfuload.c [diff]
Marcin Bukat
2014-09-23 d11704f: hwstub: Add atj213x support
utils/atj2137/adfuload/test_binary/backlight_c/Makefile [diff]
utils/atj2137/adfuload/test_binary/backlight_c/crt0.S [diff]
utils/atj2137/adfuload/test_binary/backlight_c/test_bl.lds [diff]
utils/hwstub/hwstub_protocol.h [diff]
utils/hwstub/stub/SOURCES [diff]
utils/hwstub/stub/asm/mips/memcpy.S [new]
utils/hwstub/stub/asm/mips/memset.S [new]
utils/hwstub/stub/atj213x/Makefile [new]
utils/hwstub/stub/atj213x/atj213x.h [new]
utils/hwstub/stub/atj213x/crt0.S [new]
utils/hwstub/stub/atj213x/hwstub.lds [new]
utils/hwstub/stub/atj213x/mips-archdefs.h [new]
utils/hwstub/stub/atj213x/mips.h [new]
utils/hwstub/stub/atj213x/target-config.h [new]
utils/hwstub/stub/atj213x/target.c [new]
utils/hwstub/stub/atj213x/usb_drv_atj213x.c [new]
utils/hwstub/stub/main.c [diff]
Marcin Bukat
2014-10-31 791be56: atjbootool: fix date printing
utils/atj2137/atjboottool/atjboottool.c [diff]
Amaury Pouly
2014-10-22 e3cc0ca: Manual: add missing actions in Sokoban for the Packard Bell Vibe 500.
manual/plugins/sokoban.tex [diff]
Szymon Dziok
2014-10-22 e7f113e: Manual for the Samsung YH820.
manual/advanced_topics/main.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/configure_rockbox/theme_settings.tex [diff]
manual/getting_started/samsungyh_install.tex [diff]
manual/main_menu/recording_screen.tex [diff]
manual/platform/keymap-yh820.tex [new]
manual/platform/samsungyh820.tex [new]
manual/plugins/blackjack.tex [diff]
manual/plugins/brickmania.tex [diff]
manual/plugins/calculator.tex [diff]
manual/plugins/calendar.tex [diff]
manual/plugins/chess_clock.tex [diff]
manual/plugins/chessbox.tex [diff]
manual/plugins/chip8emulator.tex [diff]
manual/plugins/chopper.tex [diff]
manual/plugins/clix.tex [diff]
manual/plugins/cube.tex [diff]
manual/plugins/doom.tex [diff]
manual/plugins/flipit.tex [diff]
manual/plugins/fractals.tex [diff]
manual/plugins/goban.tex [diff]
manual/plugins/imageviewer.tex [diff]
manual/plugins/invadrox.tex [diff]
manual/plugins/jewels.tex [diff]
manual/plugins/main.tex [diff]
manual/plugins/midiplay.tex [diff]
manual/plugins/minesweeper.tex [diff]
manual/plugins/mpegplayer.tex [diff]
manual/plugins/oscilloscope.tex [diff]
...and 24 more files.
Szymon Dziok
2014-10-22 fa11990: Pegbox: use the same keymap for Samsung YH820 and YH920.

Keymap for the YH820 fits much better for the YH920 anyway.
apps/plugins/pegbox.c [diff]
Szymon Dziok
2014-10-15 a8b5589: Manual for the Samsung YH920/YH925.
manual/advanced_topics/main.tex [diff]
manual/appendix/config_file_options.tex [diff]
manual/appendix/file_formats.tex [diff]
manual/configure_rockbox/recording_settings.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/configure_rockbox/theme_settings.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/samsungyh_install.tex [new]
manual/main_menu/recording_screen.tex [diff]
manual/platform/keymap-yh92x.tex [new]
manual/platform/samsungyh920.tex [new]
manual/platform/samsungyh925.tex [new]
manual/plugins/blackjack.tex [diff]
manual/plugins/brickmania.tex [diff]
manual/plugins/calculator.tex [diff]
manual/plugins/calendar.tex [diff]
manual/plugins/chess_clock.tex [diff]
manual/plugins/chessbox.tex [diff]
manual/plugins/chip8emulator.tex [diff]
manual/plugins/chopper.tex [diff]
manual/plugins/clix.tex [diff]
manual/plugins/cube.tex [diff]
manual/plugins/doom.tex [diff]
manual/plugins/flipit.tex [diff]
manual/plugins/fractals.tex [diff]
manual/plugins/goban.tex [diff]
manual/plugins/imageviewer.tex [diff]
manual/plugins/invadrox.tex [diff]
manual/plugins/jewels.tex [diff]
...and 28 more files.
Szymon Dziok
2014-10-15 f443570: YH820/YH92X: Add missing StdMenu action.
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
Szymon Dziok
2014-10-15 b770805: Rockboy plugin: remove second keymap definition for the Iriver H10, added in 594b6e2 (FS #10251).
apps/plugins/rockboy/rockboy.c [diff]
Szymon Dziok
2014-10-15 ce33d4f: YH820/YH92X: Improve some keymaps for plugins.
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/pacbox/pacbox.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/rockblox.c [diff]
apps/plugins/rockboy/rockboy.c [diff]
apps/plugins/sokoban.c [diff]
apps/plugins/solitaire.c [diff]
apps/plugins/star.c [diff]
apps/plugins/vu_meter.c [diff]
apps/plugins/wormlet.c [diff]
apps/plugins/xobox.c [diff]
Szymon Dziok
2014-10-18 c626fe7: atj213x: e100/150 lcd test binary
utils/atj2137/adfuload/test_binary/lcm/Makefile [new]
utils/atj2137/adfuload/test_binary/lcm/atj213x.h [new]
utils/atj2137/adfuload/test_binary/lcm/crt0.S [new]
utils/atj2137/adfuload/test_binary/lcm/irq_handler.S [new]
utils/atj2137/adfuload/test_binary/lcm/mips-archdefs.h [new]
utils/atj2137/adfuload/test_binary/lcm/mips.h [new]
utils/atj2137/adfuload/test_binary/lcm/rockboxlogo.240x74x16.c [new]
utils/atj2137/adfuload/test_binary/lcm/system-atj213x.c [new]
utils/atj2137/adfuload/test_binary/lcm/test.lds [new]
utils/atj2137/adfuload/test_binary/lcm/test_lcm.c [new]
Marcin Bukat
2014-10-13 fe519c7 G#1010: Enable battery charging detection for iBasso DX50/DX90.

This changes iBasso DX50/DX90 config from CHARGING_SIMPLE (Simple, hardware controlled charging (CPU cannot read charger state but may read when power is plugged-in) to CHARGING_MONITOR (Hardware controlled charging with monitoring
(CPU is able to read HW charging state and when power is plugged-in)).

Not really usefull at the moment, since USB connection (charging) is not (yet) gracefully handled for iBasso devices.
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/android/dx50/powermgmt-dx50.c [diff]
Udo Schläfer
2014-10-17 ac928ed G#1016: Update of the Serbian translation
apps/lang/srpski.lang [diff]
Ivan Pesic
2014-05-11 1e7b93a G#808: Fixed disktidy bug and added a couple of new features to disktidy.

The following updates were made to disktidy:
- Fixed bug FS #12825. disktidy now checks subdirectories again for files to delete.
- Use iterative rather than recursive method to traverse file system.
- Once disktidy finishes a run it now returns to it's main menu rather than exiting.
- Added "Last Run Stats" view to disktidy. This shows how many files and directories were deleted in the last run as well as the total size of those files, the length of time the run took and when the run took place (for players with RTC).
- Added "Playback Control" option to disktidy main menu.

Tested: Franklin Wei
apps/plugins/disktidy.c [diff]
Richard Burke
2014-10-08 877bd98: YH820: Add a forgotten define in aa8ba60.
apps/recorder/keyboard.c [diff]
Szymon Dziok
2014-10-08 aa8ba60: YH820/YH92X: Properly enable morse input.
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
apps/recorder/keyboard.c [diff]
firmware/export/config/samsungyh820.h [diff]
firmware/export/config/samsungyh920.h [diff]
firmware/export/config/samsungyh925.h [diff]
Szymon Dziok
2014-10-08 91bd7f1: YH820/YH92X: Fix keymap for custom settings.
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
Szymon Dziok
2014-10-08 40a2ac4: regtools/socdesc: fix red
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
2014-09-29 8b8b854 G#994: Fix USB speed detection

Tested: Mihail Zenkov
bootloader/sansa_as3525.c [diff]
Mihail Zenkov
2014-10-03 037547d: Manual: add missing calendar image for M:Robe 100.
manual/plugins/images/ss-calendar-160x128x1.png [new]
Szymon Dziok
2014-10-02 193ea09: Samsung yh820/yh92x: add HID keymaps.
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
firmware/export/config/samsungyh820.h [diff]
firmware/export/config/samsungyh920.h [diff]
firmware/export/config/samsungyh925.h [diff]
Szymon Dziok
2014-10-02 174523a: YH920: fix the battery capacity.
firmware/export/config/samsungyh920.h [diff]
Szymon Dziok
2014-10-02 5640cb1: Manual: add default battery capacity for M:Robe 100.
manual/configure_rockbox/system_options.tex [diff]
Szymon Dziok
2014-10-02 f33d544: Manual: add M:Robe 100 to the appendices.
manual/appendix/config_file_options.tex [diff]
manual/appendix/file_formats.tex [diff]
Szymon Dziok
2014-10-02 f313253: Manual: add M:Robe 100 to "Using ROLO" subsection.
manual/advanced_topics/main.tex [diff]
Szymon Dziok
2014-10-02 26a486e: Manual: Unify and simplify manual uninstallation for couple targets.
manual/getting_started/installation.tex [diff]
manual/platform/iriverh10.tex [diff]
manual/platform/iriverh10_5gb.tex [diff]
manual/platform/mrobe100.tex [diff]
manual/platform/vibe500.tex [diff]
Szymon Dziok
2014-09-17 4a396ac G#970: ipod6g, ata: Fix audio drop off while waiting for ata not busy

Tested: Nial Shui
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
nialv7
2014-08-28 f5e2c25 G#938: iPod Classic: Fix bidirectional clickwheel communication.

This restores functionality that was broken in g#194 and committed as revision 7ec426e497daa1b4a6082bf4e4e3df687b11db44.

Bidirectional communication is required to ask the clickwheel controller for the initial button state during boot. Otherwise our driver would only know about pressed buttons when the first change event is received, which is too late for e.g. prevention of USB connection during boot.

This fix is also required to support the selection of OF, Rockbox, Disk Mode, etc. in the iPod Classic Rockbox bootloader.

Tested: Michael Sparmann
firmware/target/arm/ipod/button-clickwheel.c [diff]
Steffen Butzer
2014-09-28 7c20d8f: Fix compilation on amsv1.
firmware/target/arm/as3525/debug-as3525.c [diff]
Michael Giacomelli
2014-09-27 4991544 G#990: New Rockblox features

- Add "Ghost piece" feature
- on 1-bit displays, it's too hard to distinguish from "real" pieces, should it be disabled?
- Show what your score is when you get a high score
- Indent

Tested: Franklin Wei
apps/plugins/rockblox.c [diff]
Franklin Wei
2014-09-28 f014a76 G#991: Add various additional AS3525v2 SOC voltages to the debug screen.

Tested: Michael Giacomelli
firmware/target/arm/as3525/debug-as3525.c [diff]
Michael Giacomelli
2014-09-27 23dc0b0 G#989: Don't enable the current sink for the Clip Zip backlight until its actually needed.

Patch by Mihail Zenkov who measured a modest increase in power consumption with the current sink enabled.

Tested: Michael Giacomelli
firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c [diff]
Mihail Zenkov
2014-09-27 02414bf G#988: Make sure the USB PHY is disabled after use. Patch by Mihail Zenkov who has measured several milliamps power reduction from having the PHY disabled.

Tested: Michael Giacomelli
docs/CREDITS [diff]
firmware/target/arm/usb-s3c6400x.c [diff]
Mihail Zenkov
2014-09-16 515a3c5 G#981: Add ptable to SOURCES
apps/plugins/SOURCES [diff]
Franklin Wei
2014-09-24 be9c227: Don't require a specific BUILD_TOOLS_VERSION.

Pick anything with the correct major version, which should be good enough.

Currently we want sdk version 19, which has tools that come as 19.0.3 or 19.1.0, depending on when exactly the sdk was installed. Both work fine for rockbox, so accepting both is useful.
android/android.make [diff]
Frank Gevaerts
2014-09-16 4286419 G#968: Ptable: hopefully fix all the warnings, modify actinide/lanthanide behavior once again
... it's ready! :)
apps/plugins/periodic_table.c [diff]
Franklin Wei
2014-09-22 da417ab: fix yellow
lib/rbcodec/metadata/ape.c [diff]
Marcin Bukat
2014-09-14 d392da8 G#965: metadata: Add cuesheet embedded in ape tags.

Tested: Nick Peskett
lib/rbcodec/metadata/ape.c [diff]
nialv7
2014-07-18 582035c G#897: iPod Classic: Fix several ATA driver bugs.

This improves compatibility with various HDD and CF/SD card mods. It should also reduce power consumption while the drive is powered down.

Tested: Franklin Wei Tested: Nial Shui Tested: Michael Sparmann
firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c [diff]
Michael Sparmann
2014-09-08 3e131ab G#953: YH8xx,YH9xx: Keymap Improvement

Keymaps are still work-in-progress, so wait for more.

Changes:
* standard: fix REC, so that it can be used in other mappings as 'exit' button
* pitchscreen: support button repeat for slow/fast playback
* keyboard:
- change REW/FFWD mapping to backspace/page flip (more important than cursor imo)
- use REC as cancel button
- use FFWD as button-combo-meta-key; change cursor left/right to button combos, introduce OK/cancel as combos.
* recording:
- REC exits recording screen (more consistend and more obvious imo)
- REW enters recording menu; long REW exits

Tested: Szymon Dziok
apps/keymaps/keymap-yh8xx_yh9xx.c [diff]
Sebastian Leonhardt
2014-09-21 bd84946: Added Nial Shui (nialv7) to CREDITS docs/CREDITS [diff]
Nick Peskett
2014-09-13 5fd5b13 G#958: unicode: Fix getle16 and getbe16

Tested: Chiwen Chang Tested: Nick Peskett
firmware/common/unicode.c [diff]
nialv7
2014-09-19 f9be1ef: regtools: reg-rk27xx.xml description file rework and cleanup
utils/regtools/desc/regs-rk27xx.xml [diff]
Marcin Bukat
2014-09-18 b888743 G#971: qeditor: Implement clock analyzer for rk27xx
utils/regtools/lib/soc_desc.cpp [diff]
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
Marcin Bukat
2014-09-18 970c248 G#979: qeditor: rework modified indicator, register tab names depend on content

Because Qt doesn't support QObject multiple inherance, it is a bit tricky to have a base class which interact with the UI. The register tab name now display:
- file dump name (for dumps)
- hwstub device path (for hwstub) And the register editor display the filename
utils/regtools/qeditor/backend.h [diff]
utils/regtools/qeditor/mainwindow.cpp [diff]
utils/regtools/qeditor/mainwindow.h [diff]
utils/regtools/qeditor/regedit.cpp [diff]
utils/regtools/qeditor/regedit.h [diff]
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
Amaury Pouly
2014-09-18 dbb5929 G#978: qeditor: implement usb device list refresh (if supported)
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-09-18 57d6db6 G#972: qeditor: fix UI to update register/analyser view on each tree/list click
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
Amaury Pouly
2014-09-18 79c5a07 G#977: qeditor: fix horrible out of bound bug
utils/regtools/qeditor/std_analysers.cpp [diff]
Amaury Pouly
2014-09-18 0c633db G#976: qeditor: when switching type tab, automagically switch view, implement reload
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
Amaury Pouly
2014-09-18 e1f1f22 G#975: qeditor: avoid memory leak in RegTab
utils/regtools/qeditor/regtab.cpp [diff]
Amaury Pouly
2014-09-18 a01bf8d G#974: qeditor: move backend selector to its own class, that's cleaner
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2014-09-18 b2ef4a8 G#973: qeditor: initialise libusb once in a static ctor
utils/regtools/qeditor/backend.cpp [diff]
Amaury Pouly
2014-09-18 7d11205: Add Ilia Sergachev to credits for his work on the DX50 port.
docs/CREDITS [diff]
Michael Giacomelli
2014-08-30 0b5ad60 G#941: Introducing Targets iBasso DX50 & iBasso DX90

The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port. The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port. Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did was to separate the code for DX50 (&DX90) from the android target. On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it. What else I changed from Ilias sources besides the separation from the target "android":
* removed a dirty hack to keep backlight off
* changed value battery meter to voltage battery meter
* made all plugins compile (named target as "standalone") and added keymaps
* i added the graphics for the manual but did not do anything else for the manual yet
* minor optimizations

known bugs:
* timers are slowed donw when playback is active (tinyalsa related?)
* some minor bugs

Things to do:
* The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights. Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go.
* All the wiki and manual

to build: needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed

./tools/configure select iBasso DX50 or iBasso DX90 make -j apk

the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed) the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed)

The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary.

Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his bitbucket page, using the CWM-OF and his installation script package.

Tested: Chiwen Chang
apps/SOURCES [diff]
apps/keymaps/keymap-dx50.c [new]
apps/main.c [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
apps/plugins/pacbox/pacbox.h [diff]
apps/plugins/pegbox.c [diff]
...and 54 more files.
Simon Rothen
2014-09-18 1f0fa05: regtoools: Enhance rk27xx description file
utils/regtools/desc/regs-rk27xx.xml [diff]
Marcin Bukat
2014-09-16 0f61e38: Remove long-obsolete note about different 32MB/64MB ipod video builds. Thanks to Arthur Ferral for reporting (FS #12999)
manual/getting_started/installation.tex [diff]
Frank Gevaerts
2014-09-16 8855ce5 G#966: regtools/soc_desc: fix libxml2 misinit

The code did not call xmlInitParser() and would call xmlCleanupParser() each time which is doubly wrong because 1) it's not init 2) all init/cleanup must be done from the main thread. To ensure 2), call it from a static ctor.
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
2014-09-15 c1bbaf4: Fix path_trim_whitespace() sign extension.

It should have been implemented as interpreting chars as unsigned so that code points >= 0x80 would not get sign-extended and seen as negative values.

Fixes FS #12995 - path_trim_whitespace() assumes unsigned char
firmware/common/pathfuncs.c [diff]
Michael Sevakis
2014-09-15 77bfff5: rk27xx: Fill UDC block description in regs-rk27xx.xml
utils/regtools/desc/regs-rk27xx.xml [diff]
Marcin Bukat
2014-09-15 448a289: Disable periodic table plugin until all the compilation issues are sorted out.
apps/plugins/SOURCES [diff]
Michael Giacomelli
2014-09-14 3c33c6c G#963: hopefully fix the warnings
apps/plugins/periodic_table.c [diff]
Franklin Wei
2014-09-14 b655912 G#962: ifdef out lcd_set_bg call
apps/plugins/periodic_table.c [diff]
Franklin Wei
2014-09-14 ba82784 G#961: Fix building on clip
apps/plugins/periodic_table.c [diff]
Franklin Wei
2014-09-05 2a35c4c G#950: FS #9583 - periodic table
- original rockbox port: Yifu Huang
- original work: Jonathan Bettencourt

- modifications made:
- PLA-fied
- Add element 117 (ununseptium)
- Implemented up/down
- Fixed actinide/lanthanide navigation so that they are between scandium and titanium
- Added manual entry
- Fixed FG/BG colors
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/periodic_table.c [new]
docs/CREDITS [diff]
manual/plugins/main.tex [diff]
manual/plugins/periodic_table.tex [new]
Franklin Wei
2014-09-14 a7f23a5: Superdom: Silence warning.
apps/plugins/superdom.c [diff]
Michael Giacomelli
2014-08-31 1189fbe G#945: Superdom: rewrote help text
apps/plugins/superdom.c [diff]
Franklin Wei
2014-08-30 a65f6ce G#944: Superdom: some AI improvements and other minor changes
apps/plugins/superdom.c [diff]
Franklin Wei
2014-08-30 333a82c G#943: Superdom: added option for persistent units
apps/plugins/superdom.c [diff]
Franklin Wei
2014-08-30 ad79a90 G#942: [WIP] Superdom: AI can now use nukes
apps/plugins/superdom.c [diff]
Franklin Wei
2014-08-28 bc00d38 G#940: [WIP] Superdom: game improvements

- macro-ify board dimensions, surrender thresholds
- make AI skill level adjustable
- let AI buy nukes in hard mode (still can't use them yet)
- make nukes persistent (stay after an invasion)
- make AI treat nukes with priority
apps/plugins/superdom.c [diff]
Franklin Wei
2014-08-26 a231754 G#931: Superdom: code cleanup
apps/plugins/superdom.c [diff]
Franklin Wei
2014-08-26 e47ed2a G#930: Superdom: whitespace cleanup
apps/plugins/superdom.c [diff]
Franklin Wei
2014-09-10 12f5c63 G#954: Rockbox Manual - Gigabeat FX and Fuze+ Touchpad Config Appendix

Added to config_file_options.tex, sections for gigbeat and fuze+ sensitivity settings, also fuze+ touchpad deadzone setting.

Tested: Benjamin Brown
manual/appendix/config_file_options.tex [diff]
Benjamin Brown
2014-09-11 b7e3515: hwstub: small fixup in rk27xx usb driver
utils/hwstub/stub/rk27xx/usb_drv_rk27xx.c [diff]
Marcin Bukat
2014-09-09 9a18ca4: Manual: add images for 128x96x16 resolution (YH-820).
manual/configure_rockbox/images/ss-equalizer-128x96x16.png [new]
manual/configure_rockbox/images/ss-general-settings-128x96x16.png [new]
manual/configure_rockbox/images/ss-sound-settings-128x96x16.png [new]
manual/main_menu/images/ss-list-bookmarks-128x96x16.png [new]
manual/main_menu/images/ss-main-menu-128x96x16.png [new]
manual/main_menu/images/ss-recording-settings-128x96x16.png [new]
manual/main_menu/images/ss-while-recording-screen-128x96x16.png [new]
manual/plugins/images/ss-blackjack-128x96x16.png [new]
manual/plugins/images/ss-bounce-128x96x16.png [new]
manual/plugins/images/ss-brickmania-128x96x16.png [new]
manual/plugins/images/ss-bubbles-128x96x16.png [new]
manual/plugins/images/ss-calculator-128x96x16.png [new]
manual/plugins/images/ss-calendar-128x96x16.png [new]
manual/plugins/images/ss-chess_clock-128x96x16.png [new]
manual/plugins/images/ss-chessbox-128x96x16.png [new]
manual/plugins/images/ss-chopper-128x96x16.png [new]
manual/plugins/images/ss-clix-128x96x16.png [new]
manual/plugins/images/ss-clock-128x96x16.png [new]
manual/plugins/images/ss-codebuster-128x96x16.png [new]
manual/plugins/images/ss-cube-128x96x16.png [new]
manual/plugins/images/ss-demystify-128x96x16.png [new]
manual/plugins/images/ss-doom-128x96x16.png [new]
manual/plugins/images/ss-fft-128x96x16.png [new]
manual/plugins/images/ss-fire-128x96x16.png [new]
manual/plugins/images/ss-fireworks-128x96x16.png [new]
manual/plugins/images/ss-flipit-128x96x16.png [new]
manual/plugins/images/ss-goban-128x96x16.png [new]
manual/plugins/images/ss-jackpot-128x96x16.png [new]
manual/plugins/images/ss-jewels-128x96x16.png [new]
manual/plugins/images/ss-mandelbrot-128x96x16.png [new]
...and 41 more files.
Szymon Dziok
2014-09-08 0ff739c G#952: Fix typo in fuze+ deadzone manual entry
manual/configure_rockbox/system_options.tex [diff]
Benjamin Brown
2014-09-08 f9bd722: Manual: Delete another three duplicated and unused files. Fix one filename.
manual/plugins/images/ss-equalizer-240x400x16.png [deleted]
manual/plugins/images/ss-generalsettings-240x400x16.png [deleted]
manual/plugins/images/ss-mainmenu-240x400x16.png [deleted]
manual/plugins/images/ss-text_viewer-main-240x400x16.png [new]
manual/plugins/images/ss-textviewer-240x400x16.png [deleted]
Szymon Dziok
2014-09-08 593ef7d: Manual: delete unnecessary image.

The same file is under group of images called "ss-mandelbrot".
manual/plugins/images/ss-fractals-96x96x16.png [deleted]
Szymon Dziok
2014-09-08 4c6939f: Correct some file permissions.
apps/gui/skin_engine/skin_display.c [diff]
apps/keymaps/keymap-clip.c [diff]
apps/playlist.c [diff]
manual/getting_started/sansaAMS_install.tex [diff]
manual/platform/keymap-sansaclip.tex [diff]
manual/plugins/stopwatch.tex [diff]
Szymon Dziok
2014-09-08 c986655: Correction of the Sliding puzzle on Samsung YH-820.
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/sliding_puzzle.96x96x16.bmp [new]
Szymon Dziok
2014-09-08 5e0baf2: Bubbles: make it work on Samsung YH-820 and align it on the occasion on Cowon M3.
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/bubbles_emblem.128x96x16.bmp [new]
apps/plugins/bubbles.c [diff]
Szymon Dziok
2014-08-29 e312101 G#939: Add touchpad deadzone entry in Rockbox manual
manual/configure_rockbox/system_options.tex [diff]
manual/platform/sansafuzeplus.tex [diff]
Benjamin Brown
2013-12-01 8146b40 G#677: Fuze+: add a configurable deadzone area for touchpad buttons

To stop erroneous button presses, allow users to add a deadzone between the button via the Settings > General > System menu > Touch Dead Zone.

The configuration was chosen this way: the touchpad has the same DPI in both direction so the setting applies the same on both the X and Y axis. The setting ranges from 0 to 100 and is internally multiplied by 2 giving a maximum deadzone of 2*100 = 200 around each button, which account for 400 total (once around each button), effectively reducing each virtual button from 1000x600 to 600x200 when using the maximum value.

Tested: Benjamin Brown
apps/features.txt [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/target/arm/imx233/sansa-fuzeplus/button-fuzeplus.c [diff]
firmware/target/arm/imx233/sansa-fuzeplus/button-target.h [diff]
Amaury Pouly
2014-09-08 847106c: hwstub: add support for jump/call in library
utils/hwstub/lib/hwstub.c [diff]
utils/hwstub/lib/hwstub.h [diff]
Amaury Pouly
2014-09-08 d815c26: hwstub: implement jump/call in stub
utils/hwstub/stub/main.c [diff]
Amaury Pouly
2014-09-08 6cc057f: hwstub: trivial changes
utils/hwstub/lib/hwstub.c [diff]
utils/hwstub/tools/hwstub_load.cpp [diff]
Amaury Pouly
2014-09-07 3c55812: sbtools: add option to ignore sha1 errors
utils/imxtools/sbtools/sb.c [diff]
utils/imxtools/sbtools/sb.h [diff]
utils/imxtools/sbtools/sbtoelf.c [diff]
Amaury Pouly
2014-09-07 6957966: hwstub: fix compile issue
utils/hwstub/tools/hwstub_load.cpp [diff]
Amaury Pouly
2014-08-09 ef0299c: qeditor: add soc panel, to display soc information
utils/regtools/qeditor/regdisplaypanel.cpp [diff]
utils/regtools/qeditor/regdisplaypanel.h [diff]
utils/regtools/qeditor/regtab.cpp [diff]
utils/regtools/qeditor/regtab.h [diff]
Amaury Pouly
2014-08-09 3daa6d6: qeditor: use hwstub library function to identify devices

The new protocol is interface based, so matching PID:VID is not sufficient
utils/regtools/qeditor/backend.cpp [diff]
Amaury Pouly
2014-08-09 ac5ba89: hwstub: library now check version on open
utils/hwstub/lib/hwstub.c [diff]
utils/hwstub/lib/hwstub.h [diff]
Amaury Pouly
2014-08-09 29de342: hwstub: add string version
utils/hwstub/hwstub_protocol.h [diff]
Amaury Pouly
2014-08-05 0c7c54e: hwstub_shell: add support for set/clr/tog without SCT using read and write
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
2014-08-05 6d13d9b: hwstub: fix missing \n
utils/hwstub/stub/pp/target.c [diff]
Amaury Pouly
2014-08-05 d3df564: hwstub: fix horrible bug
utils/hwstub/stub/main.c [diff]
Amaury Pouly
2014-08-05 dd05dc7: hwstub: don't put revision in the protocol, it's specific to the implementation
utils/hwstub/hwstub_protocol.h [diff]
utils/hwstub/stub/protocol.h [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
utils/hwstub/tools/init.lua [diff]
Amaury Pouly
2014-08-04 43ca127: hwstub: fix library to actually work and compile, still miss some functions
utils/hwstub/hwstub_protocol.h [diff]
utils/hwstub/lib/hwstub.c [diff]
Amaury Pouly
2014-05-25 12ce7fc: hwstub: remove protocol to make it use its own interface

This way, hwstub can be implemented along with other usb features/interfaces.
utils/hwstub/hwstub_protocol.h [diff]
utils/hwstub/lib/hwstub.c [diff]
utils/hwstub/lib/hwstub.h [diff]
utils/hwstub/stub/main.c [diff]
utils/hwstub/tools/hwstub_shell.cpp [diff]
Amaury Pouly
2014-05-25 1dc1a93: sbtools: use default transfer size if it cannot be probed

A older commit removed this ability but it tends to be a problem since the HID driver can prevent probing of transfer size which then needs to be entered by hand on the command line.
utils/imxtools/sbtools/sbloader.c [diff]
Amaury Pouly
2013-04-09 50778c8 G#434: optimize WSPLL work for iriver h100 and h300 series

For Iriver h100 & h300 series we don't need always use WSPLL, because in most cases WSPLL clock and SYSCLK has the same value, and we have additional WSPLL errors to the output clock. Now that is fixed.
firmware/drivers/audio/uda1380.c [diff]
Dmitry Gamza
2014-09-04 489c9a6: Updated pictures of the YH's for the manual.

SVG changes: fixed some quirks in Samsung logo, aligned text, cleanup.
manual/rockbox_interface/images/yh820-front.pdf [new]
manual/rockbox_interface/images/yh820-front.png [new]
manual/rockbox_interface/images/yh820-front.svg [diff]
manual/rockbox_interface/images/yh920-front.pdf [new]
manual/rockbox_interface/images/yh920-front.png [new]
manual/rockbox_interface/images/yh920-front.svg [diff]
manual/rockbox_interface/images/yh925-front.pdf [new]
manual/rockbox_interface/images/yh925-front.png [new]
manual/rockbox_interface/images/yh925-front.svg [diff]
Szymon Dziok
2014-09-02 21373e9: hwpatcher: add generic RKW file patching script

This script is handy hacking tool to patch RKW file with arbitrary binary and put jump into implanted code. It also shows how to use hwstub crc routine.
utils/hwpatcher/rkwpatch.lua [new]
Marcin Bukat
2014-09-02 0a66545: Clean up a bit and get switch statement out of loop in walk_path()

It's nicer to look at and it obfuscated a bug where it should have exited the loop instead of the case (you probably wouldn't observe the effect very often).
firmware/common/file_internal.c [