dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Search | Go
Wiki > Main > FirmwareDisassemblyH300 (r6)

Disassembly of the iriver H300 original firmware


I took the time to start a serious disassembly of the H300 1.30eu iriver firmware to see if I could find out some things about the power management, and the handling of the remote controls.


I have so far disassemled the boot process up to when the actual firmware code is copied to RAM and started.

Findings so far

Nothing spectacular, but here are a few things that they do and we should:


Some general purpose outputs are set like this when enabling the backlight:
Register Value Meaning Comment
0x39 0x07 GPO0ACT? = 1, GPO1ACT? = 0 I don't yet know what these pins do
0x3a 0x3b GPOOD0ACT? = inv. PWM, GPOOD0STB? = PWM HiZ The backlight pin is tristated when the device is off

Also, when they turn off the device, they set GPOOD2 and GPOOD3 like this:
Register Value Meaning Comment
0x3b 0x00 GPOOD2ACT? = HiZ, GPOOD2STB? = HiZ UDA1380 Reset
0x3c 0x07 GPOOD3ACT? = 0, GPOOD3STB? = HiZ I don't know what this pin does

For some reason, the application retains the OPMOD settings for the regulators:

IOREGC = (IOREGC & 0xe0) | 0x14;
D1REGC = (D1REGC & 0xe0) | 0x1f;
D2REGC = ((D2REGC & 0xe0) | 0x18) & 0x1f; /* What a silly thing to do... */
D3REGC = (D3REGC & 0xe0) | 0x10;
LPREGC = (LPREGC & 0xe0) | 0x0f;
r6 - 13 Feb 2006 - 23:08:21 - LinusNielsenFeltzing

Copyright by the contributing authors.