Wiki > Main > NewPort (compare)
Difference: NewPort (r13 vs. r12)
These steps below are of course a rough guide and just a few suggestions. The actual procedure will depend a lot on your own experience and skill, and what challenges the hardware you work with offers. Also, if you go for a target that is similar to an already supported device you may very well be able to take shortcuts.
Pretty Yes. much. Nearly every device that Rockbox now runs on has gone through this process. process in some form or another. Someone has arrived at the Rockbox website, seen that Rockbox doesn't run on their favourite player, and has done all this work to change that. No currently supported device has received a Rockbox port just because it was asked for.
Face it, if you want Rockbox ported, be prepared to do most of the ground work yourself. You will need skills in electronics and embedded programming in C and assembler. You will need skills in electronics and embedded programming in C and assembler. It is not feasible to work on a port without significant skill in embedded software development. If you do not have these skills, you can still gather information and documentation that would be helpful to subsequent developers, but the port will not be able to progress beyond that stage.
Check the Target Status wiki page to see what, if anything, has already been done.
First, don't ask Rockbox developers when they are going to port Rockbox to your platform. Ports are made by people who want to port, they are not done on request.
Then, assume that only actual owners of the target devices will be involved and interested enough to actually contribute to the down-to-metal porting. Nobody can port Rockbox to a device he/she doesn't have. (Though you could make someone an owner by giving him a device - this has proven fruitful at least once.)
Porting Rockbox can be everything from hard work to extremely hard and time consuming work. Try to gather as many interested friends and fans as possible so that the whole burden isn't put on one single human.
The Rockbox developers can and will try to help out with development, advice, hints and other general things, but only as much as they can and if they have the time.
Can you upgrade the firmware at all? Is the firmware loaded from disk/flash? If not, there's a risk that the device simply isn't possible to upgrade. This will increase the difficulty level by orders of magnitudes to get Rockbox running on the unit.
However trivial this may sound, this is step 1 and it may require various degrees of violence.
Preferably with a flatbed scanner. Digital cameras just never are good enough. They often can't produce the same resolution and you often get problems with reflections from the flash.
Setup a dedicated port page in the Rockbox wiki where you gather all the facts and pictures.
Using your scans, contact your electronic savvy friends and use search engines to track down what every chip on the PCB is. Of course, as soon as you know what they are you should start gather datasheets and other docs for the chips and related info.
Its nearly impossible for anyone to get everything right on the first try. You'll need to figure out a way to recover the player so that you don't brick it every time you make a mistake. On some DAPs this can be as simple as a bootloader USB mode. On others, recovering has required developing complicated software. On (luckily few) DAPs no method has been ever found and a single error can be fatal.
On most players we track down how the upgrade procedure and fileformat is made, and then we produce a "fake" update image when we flash the bootloader to the unit. On some models flashing isn't even required but the loading of the firmware is done from disk (Archos and iPod style). Unfortunately, many DAPs have a hash check or require firmware to be encrypted with a certain algorithm. Try disassembling the retail firmware to see if its encrypted, and if not try editing a string to see if theres a hash check.
This may require that you remove circuits from the board, which may or may not be possible without totally destroying your unit. We recommend considering doing this on an already broken unit. On some targets, this step has been skipped in favor of disassembling the retail firmware.
If your hardware/CPU have the ability to connect a hardware emulator, be it BMD or JTAG, it certainly increases the chances of you understanding the existing firmware and being able to testrun your own first attempts easier.
Depending on your success to get schematics, docs and hardware emulator, the need for actual reverse engineering of existing firmware will vary.
This of course requires at least some basic working drivers for LCD, buttons and storage.
See PortingHowTo for details
r13 - 23 Jan 2014 - 18:59:57 - MichaelGiacomelliRevision r13 - 23 Jan 2014 - 18:59 - MichaelGiacomelli
Revision r12 - 28 Nov 2013 - 19:47 - ChrisJordan
Copyright © by the contributing authors.