FS#5731 - Build target for iriver H10

Attached to Project: Rockbox
Opened by Barry Wardell (barrywardell) - Friday, 28 July 2006, 15:38 GMT
Last edited by Dave Chapman (linuxstb) - Friday, 28 July 2006, 15:41 GMT
Task Type Patches
Category Build environment
Status Closed
Assigned To No-one
Operating System Another
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


WARNING: This code has been known to cause permanent damage to the hdd of an iriver H10.

This is an initial build target for the iriver H10. It currently applies to the 20GB version running firmware 2.51. It has been tested to successfully build a bootloader. It doesn't actually boot Rockbox yet. It allows code that is in bootloader/h10.c to be run. This has been used for testing and investigative purposes.

To build, select 22 - iriver H10 as the build target and select bootloader for build type. This expects mi4code to be in /tools. For more information on mi4code, see Once the build has been completed you need to run mi4code twice more:

mi4code encrypt rockbox.irver H10_20GC_unsigned.mi4 20gc_eng
mi4code sign H10_20GC_unsigned.mi4 H10_20GC.mi4

Now, copy H10_20GC.mi4 to the System directory on your player. It's probably a good idea to keep a backup copy of the H10_20GC.mi4 that is already there.
(application/octet-stream)    h10.patch (54.3 KiB)
This task depends upon

Closed by  Hristo Kovachev (bger)
Friday, 11 August 2006, 10:48 GMT
Reason for closing:  Accepted
Additional comments about closing:  Accepted, thank you
Comment by Paul Louden (darkkone) - Tuesday, 01 August 2006, 00:05 GMT
What kind of HDD damage did it cause?
I'm just curious about a little clarification of what went wrong with your unit.
Comment by Barry Wardell (barrywardell) - Tuesday, 01 August 2006, 14:10 GMT
I'm not too sure to be honest. I had run almost identical code on the H10 dozens of times before without any problems at all. But after the last time I wasn't able to mount the disk any more. I connected it to the computer, set it to Universal Mass Storage mode. The computer detects it fine, but as soon as I try to access the disk in any way (eg. mounting, fdisk, format, whateer) it gets a load of I/O errors and it looks like the USB connection resets. The computer redetects the device and tries again to mount it, gets I/O errors and so on.

When I turn it on and it's not connected to the computer it seems to load the bootloader fine but then isn't able to load the firmware which is stored on the hdd.

I can't figure out what caused it. It may have even just been coincidental. My H10 had been acting up a bit recently and I had disassembled it to scan the pcb. And it was in a semi-dismantled state when the problem happened.
Comment by Paul Louden (darkkone) - Tuesday, 01 August 2006, 14:19 GMT
Can you put the drive in an enclosure, reformat it or otherwise attempt to restore it, and regain use of your H10?
Comment by Barry Wardell (barrywardell) - Tuesday, 01 August 2006, 14:24 GMT
I looked into that, but it has an unusual connector. It's a Hitachi zif connector ( I considered trying build an adapter to connect it to my computer. It looks like it would just be a case of connecting the right pins up. I wasn't able to find a connector for the zif end though, so decided against it and RMA'd my H10 instead.
Comment by Barry Wardell (barrywardell) - Tuesday, 01 August 2006, 19:48 GMT
Here's an updated patch which will allow building of the simulator. You need to use h10_v2.patch and then put UI-h10.bmp in uisimulator/sdl, uisimulator/x11 and uisimulator/win32.
Keys have been defined for all plugins and screens. I haven't thoroughtly tested the key definitions, so any suggested changes are welcome.
Comment by Barry Wardell (barrywardell) - Wednesday, 02 August 2006, 11:47 GMT
Updated again to work against current CVS since Bagder's recent Sansa commits.
Comment by Daniel Stenberg (bagder) - Thursday, 03 August 2006, 21:06 GMT
Most of this patch is now committed
Comment by Barry Wardell (barrywardell) - Thursday, 03 August 2006, 21:17 GMT
Here's an updated patch with the stuff that wasn't committed by bagder.
Also, a H10_20GC.mi4 file is now automatically generated using when make is run. mi4code has to be in your $PATH for this to work.
The bootloader file h10.c has also been updated with most irrelevant code stripped out.
Comment by Barry Wardell (barrywardell) - Thursday, 03 August 2006, 21:46 GMT
Oops, forgot to do a cvs update -D. Here's an updated version.
Comment by Barry Wardell (barrywardell) - Thursday, 03 August 2006, 22:58 GMT
Aarrghh. Sorry for the excessively frequent updates. I missed a file. This patch is definitely complete!
Comment by Barry Wardell (barrywardell) - Sunday, 06 August 2006, 23:08 GMT
Another updated version with the ATA code moved to 'target/arm/ata-pp5020.c' and 'target/arm/ata-target.h' since it is the same for all PP5020 based devices. The original ata.c is no longer touched either.

'target/arm/iriver/h10/ata-h10.c' and 'target/arm/iriver/h10/ata-target.h' which are in the current CVS are no longer used and can be deleted.
Comment by Barry Wardell (barrywardell) - Monday, 07 August 2006, 20:14 GMT
Updated button driver to:
1) Actually detect buttons properly
2) Detect power button
3) Check if hold is on
Comment by Barry Wardell (barrywardell) - Wednesday, 09 August 2006, 17:25 GMT
Updated with keymaps for disktidy and mpegplayer.