rockbox/rbutil/mkamsboot
Rafaël Carré 88cda7eb26 mkamsboot: fix some Clipv2 that we used to brick
On those models the software bootloader is entered through the SWI vector,
not through the reset vector like we thought.

Use put_uint32le() instead of memcpy
Use mov pc, #0x200 instead of b 0x200, so we can use the same instruction
for both vectors.

Tested on Clipv2 and Clip Zip

Change-Id: I99dc24167dde5558d34fe9795c65b44ff91aa665
2012-01-31 14:23:53 -05:00
..
dualboot Clipv2: fix button reading on some models 2012-01-30 00:13:51 -05:00
.gitignore mkamsboot: ignore built files / folders 2012-01-24 17:00:26 -05:00
dualboot.c Clipv2: fix button reading on some models 2012-01-30 00:13:51 -05:00
dualboot.h Clipv2: fix button reading on some models 2012-01-30 00:13:51 -05:00
main.c mkamsboot: remove useless casts 2011-07-02 02:49:01 +00:00
Makefile libtools.make: add rule to build a DLL. 2011-12-16 21:10:29 +00:00
md5.c FS#10253 : mkamsboot v1.0 2009-05-28 18:27:08 +00:00
md5.h Add MD5 checksumming of the original firmware images - for extra safety, and also because some Fuze firmwares have the same ID (or what we thought was the ID) as the M200 firmwares. Plus a few minor cleanups. 2008-10-30 00:13:29 +00:00
mkamsboot.c mkamsboot: fix some Clipv2 that we used to brick 2012-01-31 14:23:53 -05:00
mkamsboot.h Initial framework for the Sandisk Sansa Clip Zip 2011-08-27 16:21:19 +00:00
README mkamsboot: update README 2011-12-20 18:48:20 +00:00

mkamsboot
---------

A tool to inject a bootloader into a Sansa V2 (AMS) firmware file.


Usage
-----

mkamsboot <firmware file> <boot file> <output file>

<firmware file> is an original Sansa firmware file obtained from the Sansa
    forums for example : http://forums.sandisk.com/sansa/?category.id=devices

<boot file> is the code you want to execute (a rockbox bootloader), previously
    scrambled with tools/scramble utility.

<output file> is the resulting firmware file which you'll have to copy on your
    Sansa player. See "Firmware filenames".


Supported models
----------------

Sansa Clip  :   firmware version starting with "01."
Sansa Clip+ :   firmware version starting with "01."
Sansa Clipv2:   firmware version starting with "02."
Sansa ClipZip:  firmware version starting with "01."
Sansa Fuze  :   firmware version starting with "01."
Sansa Fuzev2:   firmware version starting with "02."
Sansa E200v2:   firmware version starting with "03."
Sansa C200v2:   firmware version starting with "03."
Sansa M200v4:   firmware version starting with "4."


Firmware filenames
------------------

For the firmware upgrade to happen, the firmware has to be named specially:

clip v2 :   m30pa.bin
clip    :   m300a.bin
clip+   :   clppa.bin
clip zip:   clpza.bin
fuze    :   fuzea.bin
fuzev2  :   fuzpa.bin
e200v2  :   e200pa.bin
c200v2  :   c200pa.bin
m200v4  :   m200a.bin


Dual-Boot
---------

  The purpose of this program is to provide dual-boot between the original
firmware and the new (rockbox) firmware.

  By default the player will boot into the new firmware.

  To boot into the Original Firmware, you need to press the Left key.
  ***Note : on the Clip+ you can alternatively press the Home key.
  ***Note : on the Clip Zip you can alternatively press the Vol- key.

Hacking
-------

See comments in mkamsboot.c and dualboot/dualboot.S for more information.