summaryrefslogtreecommitdiffstats
path: root/rbutil/mkamsboot/mkamsboot.c
AgeCommit message (Collapse)AuthorFilesLines
2012-04-08mkamsboot: add support for clip zip original firmware 01.01.20 (tested by me)Bertrik Sikken1-0/+1
Change-Id: I1d071539d496c63f47d305375e244f9fbe107ced
2012-01-31mkamsboot: fix some Clipv2 that we used to brickRafaël Carré1-9/+9
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
2011-12-10mkamsboot: add support for sansa clip zip firmware version v1.01.18Bertrik Sikken1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31195 a1c6a512-1295-4272-9138-f99709370657
2011-10-30Sansa clip zip: allow original firmware versions 1.1.12, 1.1.15 and 1.1.17 ↵Bertrik Sikken1-2/+1
to be patched git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30860 a1c6a512-1295-4272-9138-f99709370657
2011-10-29Sansa clip zip: update mkamsboot and fix various drivers to make it boot to ↵Bertrik Sikken1-2/+2
the main firmware git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30853 a1c6a512-1295-4272-9138-f99709370657
2011-10-23Sansa clipzip: miscellaneous updatesBertrik Sikken1-0/+1
* add support for OF version 01.01.17 in mkamsboot * introduce and implement oled_brightness function * configure voltage CVDD2 to 2.8V (like the OF does) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30831 a1c6a512-1295-4272-9138-f99709370657
2011-10-07sansa clipplus: add version 01.02.16 to mkamsboot as a firmware that can be ↵Bertrik Sikken1-0/+1
patched git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30726 a1c6a512-1295-4272-9138-f99709370657
2011-09-05sansa clipzip: implement default dualboot code (boots to OF unconditionally ↵Bertrik Sikken1-2/+4
for now) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30435 a1c6a512-1295-4272-9138-f99709370657
2011-08-27Initial framework for the Sandisk Sansa Clip ZipBertrik Sikken1-0/+3
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30365 a1c6a512-1295-4272-9138-f99709370657
2011-01-31mkamsboot: restructure model / firmware file information.Dominik Riebeling1-95/+23
Merge the various arrays holding model specific information into a structure and give it a distinct name. Avoids problems when linking with Rockbox Utility. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29177 a1c6a512-1295-4272-9138-f99709370657
2010-07-18mkamsboot: take in account the additional 0x200 block when calculating sizeRafaël Carré1-5/+5
Align sizes of different blocks on mkamsboot output git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27482 a1c6a512-1295-4272-9138-f99709370657
2010-07-16mkamsboot: update outdated commentRafaël Carré1-6/+5
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27442 a1c6a512-1295-4272-9138-f99709370657
2010-07-16mkamsboot: fix for newer fuzev2Rafaël Carré1-14/+30
These models are restricted to OF >= v02.3.31, probably because of a hardware change The OF checks a version string located between 0x0 and 0x200 in the firmware block, so let's keep this part unmodified We put our dualboot code at 0x200, and insert a branch + vectors at 0x0 That way our patched file will present the OF version to the fuzev2 OF patching it, and we only waste 512 bytes on other models git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27441 a1c6a512-1295-4272-9138-f99709370657
2010-05-24mkamsboot/rbutil/amsinfo : do not try to detect the model of a given Sansa ↵Rafaël Carré1-44/+19
AMS OF The field we thought was representative of the model is not, it has changed in the past for fuzev1 and fuzev2. For example the value 0x23 is found in 2 old fuzev1 OF versions, and in the c200v2 OF The only reliable way to detect the model of a given OF is by using the built-in list of md5sums. Modify mkamsboot and rbutilqt to load the rockbox bootloader first, and then check if the model in the bootloader corresponds to the model of the known md5sum of the given OF. That way we can continue to present the user with a list of known OF versions in case the OF is unknown to mkamsboot Also explicit the dependency of main.c on mkamsboot.h in case the prototypes change Correct the header's description not updated in r21648 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26248 a1c6a512-1295-4272-9138-f99709370657
2010-05-21mkamsboot: support Fuzev2 OF 2.03.33Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26230 a1c6a512-1295-4272-9138-f99709370657
2010-05-20mkamsboot: support Clip+ OF v01.02.15Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26207 a1c6a512-1295-4272-9138-f99709370657
2010-04-17mkamsboot: accept Clip+ OF v01.02.13Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25662 a1c6a512-1295-4272-9138-f99709370657
2010-03-28Fix Fuzev2 OF versionRafaël Carré1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25366 a1c6a512-1295-4272-9138-f99709370657
2010-03-28mkamsboot: add fuzev2 OF 2.02.31Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25365 a1c6a512-1295-4272-9138-f99709370657
2010-03-22mkamsboot: add Clipv2 OF v2.01.35mkamsboot_1.2Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25287 a1c6a512-1295-4272-9138-f99709370657
2010-03-16mkamsboot: update for Clipv1 OF v01.01.35 (tested)Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25213 a1c6a512-1295-4272-9138-f99709370657
2010-02-26Sansa Fuzev2: Add mkamsboot and dualboot support. The bootloader doesn't ↵Thomas Martitz1-0/+12
work, but pressing |<< or inserting USB to boot the OF does. It should be pretty safe to run test code on it now. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24924 a1c6a512-1295-4272-9138-f99709370657
2010-02-19mkamsboot: prevents 2 potential problemsRafaël Carré1-7/+68
We checked if the new firmware block (bootloader+ucl function+packed bootloader & OF) fit in the OF file, but not if it would run properly. For example the Clipv2 OF is bigger than 0x50000 bytes uncompressed, but it fitted in this space when packed and concatenated to a packed bootloader + ucl function and dualboot code (but we use 1MB of RAM and not 0x50000 anyway). Now we check that both bootloader and OF are small enough to be unpacked at runtime: the unpacked data must be smaller than available memory and not overlap with ucl function and packed data (although the unpacked and packed data could probably overlap a bit, I don't know how to calculate this and this could be quite complex). total_size() is replaced by check_sizes() which will perform all the checks and set an error string if the firmware can't be patched. (both mkamsboot and rbutilqt modified accordingly) The second problem is that dualboot.S assumed r3 and r5 were left untouched in the device specific checks. This was undocumented and very error prone when modifying these checks. r3 is the last byte of packed copy (bootloader or OF) r5 is the entry point of uclunpack function derived from r3, so move r5 calculation after the device specific code. Even if r3 is currently unused in the device specific code, we store it in memory after copying the ucl function, when it points to the last byte of packed data (not yet copied at this point since we didn't chose if we boot the OF or the bootloader), and restore it just before using it so no restriction is placed on registers usage in device specific code. Add a new variable ucl_dest in dualboot.S set by mkamsboot.c, which represents the last bound of buffer where we copy the ucl function, and then the packed data (bootloader or OF). RAM_SIZE definition is moved from dualboot.S to mkamsboot.c new model_memory_size(), where it is a bit better documented. Tested on e200v2 and Clip+ git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24772 a1c6a512-1295-4272-9138-f99709370657
2010-02-08Sansa Clip+ : Add dualboot support for sansa clip+ to mkamsboot.Jack Halpin1-2/+0
Dualboot works on the sansa clip+ by holding either the left "|<<" or home buttons. The USB pin is still undiscovered at this point and should replace the home button when found. By including the home button for dualboot we avoid bricking due to a single button failure. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24561 a1c6a512-1295-4272-9138-f99709370657
2010-01-21Update mkamsboot for Fuze OF 01.02.31Michael Chicoine1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24311 a1c6a512-1295-4272-9138-f99709370657
2010-01-13Add Sansa Clip+ target to test mkamsbootRafaël Carré1-4/+17
UNTESTED, could ver well brick your Clip+ If it works, booting should just be delayed by a small delay (perhaps not noticeable) Hopefully the Clipv2 checks will work for Clip+ and then we'll be able to test the other Clipv2 code (LCD/button) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24219 a1c6a512-1295-4272-9138-f99709370657
2009-11-04Clean up mkamsboot building. No functional changes.Dominik Riebeling1-128/+4
- split out standalone functions to a separate file. - adjust and clean up Makefile. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23520 a1c6a512-1295-4272-9138-f99709370657
2009-10-10mkamsboot: support Fuze OF v 1.02.28Rafaël Carré1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23067 a1c6a512-1295-4272-9138-f99709370657
2009-08-15rbutil: add ams sansa targets. (FS#10185)Dominik Wenger1-0/+5
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22317 a1c6a512-1295-4272-9138-f99709370657
2009-07-17mkamsboot: remove runtime copyright noticeRafaël Carré1-2/+2
add a cast to remove a warning in printf() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21925 a1c6a512-1295-4272-9138-f99709370657
2009-07-05Change to versioning for mkamsboot to <rXXXXX>-<DATE> for svn builds. A ↵Thomas Martitz1-3/+2
fixed number like 1.1 can (and should) be used for releases. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21652 a1c6a512-1295-4272-9138-f99709370657
2009-07-05mkamsboot: change version string to 1.1, move devices list in the headerRafaël Carré1-12/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21650 a1c6a512-1295-4272-9138-f99709370657
2009-07-05Slightly rewrite some parts of mkamsboot for better output and some sanity ↵Thomas Martitz1-97/+106
in the early array declarations. No functional change. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21648 a1c6a512-1295-4272-9138-f99709370657
2009-06-04mkamsboot: refuse to patch an untested OF, and provide a list of tested OF ↵Rafaël Carré1-3/+21
versions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21189 a1c6a512-1295-4272-9138-f99709370657
2009-05-28mkamsboot : brackets at the start of functions must be on their line - ↵Rafaël Carré1-16/+26
thanks to linuxstb for noticing git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21122 a1c6a512-1295-4272-9138-f99709370657
2009-05-28FS#10253 : mkamsboot v1.0mkamsboot_1.0Rafaël Carré1-293/+305
- Bump version to 1.0 - Add Clipv2 target - Make mkamsboot work as a library (work by domonoky : FS#10185, with a few modifications by me) . Use a macro with variadic arguments for error cases in functions which might error. . Add detailed descriptions to functions exported by the library (in the header file) - modify bin2c.c to produce only one pair of .c/.h files with several files embedded in it - move files needing to be built by an ARM cross compiler into dualboot/ - commit produced .c/.h files (containing nrv2e_d8.S and dualboot.S built for Clip, Fuze, e200v2, c200v2, m200v4, Clipv2) - Write a real README file - cosmetics: indent dualboot.S properly, remove trailing spaces, limit lines to 80 characters - comments: add/correct comments in dualboot.S and mkamsboot.c - move back extract_fw.c to utils/AMS/hacking git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21118 a1c6a512-1295-4272-9138-f99709370657
2009-05-25mkamsboot: really error out if OF model is different from bootloader modelRafaël Carré1-2/+10
Error out if firmware md5sum isn't known, and leave the current code #if 0'ed for easier testing git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21073 a1c6a512-1295-4272-9138-f99709370657
2009-04-11Support Fuze 01.02.26 OF version.Thomas Martitz1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20688 a1c6a512-1295-4272-9138-f99709370657
2009-03-16Add md5 for clip OF version 1.01.32 to mkamsboot (verified to work)Bertrik Sikken1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20326 a1c6a512-1295-4272-9138-f99709370657
2008-12-24Commit updated mkamsboot for c200v2 patching. Tested and seems to be ↵Michael Giacomelli1-21/+22
working using USB for dualboot. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19575 a1c6a512-1295-4272-9138-f99709370657
2008-12-15Add MD5 checksum for v1.01.22 of the Fuze original firmware.Dave Chapman1-0/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19444 a1c6a512-1295-4272-9138-f99709370657
2008-11-14Clean up the Makefile a little - no functional changes.Dave Chapman1-20/+20
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19106 a1c6a512-1295-4272-9138-f99709370657
2008-11-10"mv m200v2 m200v4"Daniel Stenberg1-4/+5
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19060 a1c6a512-1295-4272-9138-f99709370657
2008-10-30mkamsboot: supports Fuze firmwaresRafaël Carré1-4/+5
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18936 a1c6a512-1295-4272-9138-f99709370657
2008-10-30Correct the MD5 sum for the Clip 1.1.29 firmware.Dave Chapman1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18929 a1c6a512-1295-4272-9138-f99709370657
2008-10-30Add MD5 checksumming of the original firmware images - for extra safety, and ↵Dave Chapman1-14/+88
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. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18927 a1c6a512-1295-4272-9138-f99709370657
2008-10-19add sansa m200v2 support to mkamsboot.Dominik Wenger1-5/+7
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18840 a1c6a512-1295-4272-9138-f99709370657
2008-10-19Correct an error messageDave Chapman1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18837 a1c6a512-1295-4272-9138-f99709370657
2008-10-19Add e200v2 and m200v2 targets. Move the telechips lcd-ssd1815.c (currently ↵Dave Chapman1-4/+4
used by Logik DAX and m200v1 ports) driver up in the target tree and share with the m200v2 - as2525 parts contributed by Rafael Carre. Includes the start (but is still very incomplete) of an LCD driver for the e200v2. m200v2 is not yet fully supported by mkamsboot - that will come soon. Also some minor cleanups for the Clip. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18836 a1c6a512-1295-4272-9138-f99709370657
2008-10-12Make mkamsboot safer by introducing the use of ".sansa" files to store Sansa ↵Dave Chapman1-9/+102
V2 bootloader and firmware files. These files are the same format (a simple 8-byte header consisting of a 32-bit checksum followed by 4-char model name is prepended to the binary data) as that used by lots of other Rockbox targets (.ipod, iriver etc). Support added to scramble/mkamsboot for both clip and e200v2, even though the latter is not in SVN yet. Also add a check of the whole-file original firmware checksum to mkamsboot and add a new $scramblebitmaptools toolset variable in configure. The output of this version of mkamsboot is confirmed to be md5sum-identical to the previous version. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18789 a1c6a512-1295-4272-9138-f99709370657