summaryrefslogtreecommitdiffstats
path: root/rbutil/mkamsboot
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-07-16 00:00:29 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-07-16 00:00:29 +0000
commitf5c79105a4087362f2b95ecbc359ccecbf4910c9 (patch)
treea2adb6783082f52b136e58d96dbdc315f3c2993e /rbutil/mkamsboot
parent6d732a32bc4472a9050b118d0920e936a4bf5408 (diff)
downloadrockbox-f5c79105a4087362f2b95ecbc359ccecbf4910c9.tar.gz
rockbox-f5c79105a4087362f2b95ecbc359ccecbf4910c9.tar.bz2
rockbox-f5c79105a4087362f2b95ecbc359ccecbf4910c9.zip
mkamsboot: fix for newer fuzev2
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
Diffstat (limited to 'rbutil/mkamsboot')
-rw-r--r--rbutil/mkamsboot/dualboot.c260
-rw-r--r--rbutil/mkamsboot/dualboot.h16
-rw-r--r--rbutil/mkamsboot/dualboot/dualboot.S15
-rw-r--r--rbutil/mkamsboot/mkamsboot.c44
4 files changed, 162 insertions, 173 deletions
diff --git a/rbutil/mkamsboot/dualboot.c b/rbutil/mkamsboot/dualboot.c
index d0fd20def5..6aa4429324 100644
--- a/rbutil/mkamsboot/dualboot.c
+++ b/rbutil/mkamsboot/dualboot.c
@@ -15,135 +15,145 @@ unsigned char nrv2e_d8[168] = {
0x02, 0x31, 0xee, 0x42, 0x00, 0xd2, 0x01, 0x31, 0x13, 0x78, 0x53, 0x5d, 0x13, 0x70, 0x01, 0x32,
0x01, 0x39, 0xfa, 0xd1, 0xbe, 0xe7, 0x00, 0x00
};
-unsigned char dualboot_clip[256] = {
- 0xe4, 0xf0, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_clip[224] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0x88, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0x7c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x00, 0x11, 0x90, 0xe5,
- 0x00, 0x00, 0x51, 0xe3, 0x0c, 0x00, 0x00, 0x1a, 0x68, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0xa0, 0xe3,
- 0x00, 0x14, 0x80, 0xe5, 0x80, 0x10, 0x80, 0xe5, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x00, 0x14, 0x80, 0xe5, 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x1a,
- 0x88, 0x00, 0x1f, 0xe5, 0x88, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x9c, 0x00, 0x1f, 0xe5,
- 0x9c, 0x10, 0x1f, 0xe5, 0x94, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
- 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
- 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0x84, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0x78, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5,
+ 0x00, 0x11, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x0c, 0x00, 0x00, 0x1a, 0x64, 0x00, 0x9f, 0xe5,
+ 0x20, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x80, 0x10, 0x80, 0xe5, 0x58, 0x00, 0x9f, 0xe5,
+ 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3,
+ 0x02, 0x00, 0x00, 0x1a, 0x88, 0x00, 0x1f, 0xe5, 0x88, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea,
+ 0x9c, 0x00, 0x1f, 0xe5, 0x9c, 0x10, 0x1f, 0xe5, 0x94, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2,
+ 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1,
+ 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1,
0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x0c, 0xc8
};
-unsigned char dualboot_e200v2[236] = {
- 0xd4, 0xf0, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_e200v2[204] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0x78, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0x6c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5,
- 0x00, 0x00, 0x51, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x58, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a,
- 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x8c, 0x00, 0x1f, 0xe5,
- 0x8c, 0x10, 0x1f, 0xe5, 0x84, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
- 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
- 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0x74, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0x68, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5,
+ 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x54, 0x00, 0x9f, 0xe5,
+ 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3,
+ 0x02, 0x00, 0x00, 0x0a, 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea,
+ 0x8c, 0x00, 0x1f, 0xe5, 0x8c, 0x10, 0x1f, 0xe5, 0x84, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2,
+ 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1,
+ 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1,
0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8
};
-unsigned char dualboot_c200v2[432] = {
- 0x84, 0xf1, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_c200v2[400] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0x28, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0x18, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x02, 0x18, 0x81, 0xe3, 0x7f, 0x10, 0xc1, 0xe3,
- 0x00, 0x10, 0x80, 0xe5, 0x08, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x24, 0x10, 0x80, 0xe5,
- 0x3c, 0x10, 0xa0, 0xe3, 0x1c, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5,
- 0x8c, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5, 0x51, 0x20, 0xa0, 0xe3, 0x0c, 0x20, 0x80, 0xe5,
- 0x30, 0x10, 0x90, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a, 0x25, 0x10, 0xa0, 0xe3,
- 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x80, 0xe5, 0x01, 0x10, 0xa0, 0xe3,
- 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0xfc, 0xff, 0xff, 0x1a,
- 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3, 0x1b, 0x00, 0x00, 0x1a, 0xa4, 0x00, 0x9f, 0xe5,
- 0x08, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x9c, 0x20, 0x9f, 0xe5, 0x0c, 0x10, 0xa0, 0xe3,
- 0x20, 0x14, 0x82, 0xe5, 0x94, 0x20, 0x9f, 0xe5, 0xff, 0x10, 0xa0, 0xe3, 0x20, 0x14, 0x82, 0xe5,
- 0x8c, 0x00, 0x9f, 0xe5, 0x91, 0x1a, 0xa0, 0xe3, 0x08, 0x10, 0x80, 0xe5, 0x84, 0x10, 0x9f, 0xe5,
- 0x10, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5, 0x01, 0x1b, 0x11, 0xe2, 0xfc, 0xff, 0xff, 0x0a,
- 0x74, 0x10, 0x9f, 0xe5, 0x08, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x11, 0xe2,
- 0xfc, 0xff, 0xff, 0x0a, 0xb4, 0x11, 0xd0, 0xe1, 0x04, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x0a,
- 0x28, 0x01, 0x1f, 0xe5, 0x28, 0x11, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x3c, 0x01, 0x1f, 0xe5,
- 0x3c, 0x11, 0x1f, 0xe5, 0x34, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
- 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
- 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0x24, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0x14, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x02, 0x18, 0x81, 0xe3,
+ 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x04, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
+ 0x24, 0x10, 0x80, 0xe5, 0x3c, 0x10, 0xa0, 0xe3, 0x1c, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
+ 0x20, 0x10, 0x80, 0xe5, 0x8c, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5, 0x51, 0x20, 0xa0, 0xe3,
+ 0x0c, 0x20, 0x80, 0xe5, 0x30, 0x10, 0x90, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a,
+ 0x25, 0x10, 0xa0, 0xe3, 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x80, 0xe5,
+ 0x01, 0x10, 0xa0, 0xe3, 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3,
+ 0xfc, 0xff, 0xff, 0x1a, 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3, 0x1b, 0x00, 0x00, 0x1a,
+ 0xa0, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x98, 0x20, 0x9f, 0xe5,
+ 0x0c, 0x10, 0xa0, 0xe3, 0x20, 0x14, 0x82, 0xe5, 0x90, 0x20, 0x9f, 0xe5, 0xff, 0x10, 0xa0, 0xe3,
+ 0x20, 0x14, 0x82, 0xe5, 0x88, 0x00, 0x9f, 0xe5, 0x91, 0x1a, 0xa0, 0xe3, 0x08, 0x10, 0x80, 0xe5,
+ 0x80, 0x10, 0x9f, 0xe5, 0x10, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5, 0x01, 0x1b, 0x11, 0xe2,
+ 0xfc, 0xff, 0xff, 0x0a, 0x70, 0x10, 0x9f, 0xe5, 0x08, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5,
+ 0x01, 0x18, 0x11, 0xe2, 0xfc, 0xff, 0xff, 0x0a, 0xb4, 0x11, 0xd0, 0xe1, 0x04, 0x00, 0x11, 0xe3,
+ 0x02, 0x00, 0x00, 0x0a, 0x28, 0x01, 0x1f, 0xe5, 0x28, 0x11, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea,
+ 0x3c, 0x01, 0x1f, 0xe5, 0x3c, 0x11, 0x1f, 0xe5, 0x34, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2,
+ 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1,
+ 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1,
0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x07, 0xc8, 0x38, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0c, 0xc8,
0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x12, 0xc8, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0x90, 0x08, 0x00
};
-unsigned char dualboot_m200v4[212] = {
- 0xc0, 0xf0, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_m200v4[180] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0x64, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0x58, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x80, 0x10, 0x80, 0xe5,
- 0x04, 0x20, 0x90, 0xe5, 0x00, 0x00, 0x52, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0x64, 0x00, 0x1f, 0xe5,
- 0x64, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5,
- 0x70, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4,
- 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2,
- 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x0f, 0xc8,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0x60, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0x54, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5,
+ 0x80, 0x10, 0x80, 0xe5, 0x04, 0x20, 0x90, 0xe5, 0x00, 0x00, 0x52, 0xe3, 0x02, 0x00, 0x00, 0x1a,
+ 0x64, 0x00, 0x1f, 0xe5, 0x64, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x78, 0x00, 0x1f, 0xe5,
+ 0x78, 0x10, 0x1f, 0xe5, 0x70, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
+ 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8,
0x00, 0x00, 0x0b, 0xc8
};
-unsigned char dualboot_fuze[236] = {
- 0xd4, 0xf0, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_fuze[204] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0x78, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0x6c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5,
- 0x00, 0x00, 0x51, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x58, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a,
- 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x8c, 0x00, 0x1f, 0xe5,
- 0x8c, 0x10, 0x1f, 0xe5, 0x84, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
- 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
- 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0x74, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0x68, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5,
+ 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x54, 0x00, 0x9f, 0xe5,
+ 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3,
+ 0x02, 0x00, 0x00, 0x0a, 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea,
+ 0x8c, 0x00, 0x1f, 0xe5, 0x8c, 0x10, 0x1f, 0xe5, 0x84, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2,
+ 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1,
+ 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1,
0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8
};
-unsigned char dualboot_clipv2[280] = {
- 0x00, 0xf1, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_clipv2[248] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0xa4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0x98, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x00, 0x11, 0x90, 0xe5,
- 0x00, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0x1a, 0x84, 0x00, 0x9f, 0xe5, 0x38, 0x10, 0xa0, 0xe3,
- 0x00, 0x14, 0x80, 0xe5, 0x08, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5, 0x10, 0x10, 0xa0, 0xe3,
- 0x40, 0x10, 0x80, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x80, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x40, 0x10, 0x80, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a,
- 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0xa4, 0x00, 0x1f, 0xe5,
- 0xa4, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0xb8, 0x00, 0x1f, 0xe5, 0xb8, 0x10, 0x1f, 0xe5,
- 0xb0, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4,
- 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2,
- 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x0f, 0xc8,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0xa0, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0x94, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5,
+ 0x00, 0x11, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0x1a, 0x80, 0x00, 0x9f, 0xe5,
+ 0x38, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x08, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5,
+ 0x10, 0x10, 0xa0, 0xe3, 0x40, 0x10, 0x80, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x80, 0x10, 0x80, 0xe5,
+ 0x00, 0x10, 0xa0, 0xe3, 0x40, 0x10, 0x80, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2,
+ 0xfd, 0xff, 0xff, 0x1a, 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a,
+ 0xa4, 0x00, 0x1f, 0xe5, 0xa4, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0xb8, 0x00, 0x1f, 0xe5,
+ 0xb8, 0x10, 0x1f, 0xe5, 0xb0, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
+ 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8,
0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0e, 0xc8
};
-unsigned char dualboot_clipplus[372] = {
- 0x54, 0xf1, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
+unsigned char dualboot_clipplus[340] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0xf8, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0xec, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0xe8, 0x00, 0x9f, 0xe5, 0x08, 0x20, 0x90, 0xe5,
- 0x01, 0x20, 0x82, 0xe1, 0x00, 0x00, 0x52, 0xe3, 0x27, 0x00, 0x00, 0x1a, 0xd8, 0x00, 0x9f, 0xe5,
- 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xc0, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5,
- 0x02, 0x18, 0x81, 0xe3, 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xbc, 0x00, 0x9f, 0xe5,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0xf4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0xe8, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0xe4, 0x00, 0x9f, 0xe5,
+ 0x08, 0x20, 0x90, 0xe5, 0x01, 0x20, 0x82, 0xe1, 0x00, 0x00, 0x52, 0xe3, 0x27, 0x00, 0x00, 0x1a,
+ 0xd4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xbc, 0x00, 0x9f, 0xe5,
+ 0x00, 0x10, 0x90, 0xe5, 0x02, 0x18, 0x81, 0xe3, 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5,
+ 0xb8, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x24, 0x10, 0x80, 0xe5, 0x3c, 0x10, 0xa0, 0xe3,
+ 0x1c, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5, 0x8c, 0x10, 0xa0, 0xe3,
+ 0x04, 0x10, 0x80, 0xe5, 0x51, 0x20, 0xa0, 0xe3, 0x0c, 0x20, 0x80, 0xe5, 0x30, 0x10, 0x90, 0xe5,
+ 0x01, 0x00, 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a, 0x02, 0x17, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2,
+ 0xfd, 0xff, 0xff, 0x1a, 0x25, 0x10, 0xa0, 0xe3, 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3,
+ 0x0c, 0x20, 0x80, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5,
+ 0x00, 0x00, 0x51, 0xe3, 0xfc, 0xff, 0xff, 0x1a, 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3,
+ 0x02, 0x00, 0x00, 0x1a, 0xf8, 0x00, 0x1f, 0xe5, 0xf8, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea,
+ 0x0c, 0x01, 0x1f, 0xe5, 0x0c, 0x11, 0x1f, 0xe5, 0x04, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2,
+ 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1,
+ 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1,
+ 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x10, 0x00, 0x0f, 0xc8,
+ 0x00, 0x00, 0x07, 0xc8
+};
+unsigned char dualboot_fuzev2[332] = {
+ 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5,
+ 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
+ 0x2c, 0x30, 0x0f, 0xe5, 0xf0, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3,
+ 0x00, 0x10, 0x80, 0xe5, 0xe4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5,
+ 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x27, 0x00, 0x00, 0x1a, 0xd0, 0x00, 0x9f, 0xe5,
+ 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xbc, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5,
+ 0x02, 0x18, 0x81, 0xe3, 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xb4, 0x00, 0x9f, 0xe5,
0x00, 0x10, 0xa0, 0xe3, 0x24, 0x10, 0x80, 0xe5, 0x3c, 0x10, 0xa0, 0xe3, 0x1c, 0x10, 0x80, 0xe5,
0x00, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5, 0x8c, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5,
0x51, 0x20, 0xa0, 0xe3, 0x0c, 0x20, 0x80, 0xe5, 0x30, 0x10, 0x90, 0xe5, 0x01, 0x00, 0x11, 0xe3,
@@ -151,35 +161,9 @@ unsigned char dualboot_clipplus[372] = {
0x25, 0x10, 0xa0, 0xe3, 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x80, 0xe5,
0x01, 0x10, 0xa0, 0xe3, 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3,
0xfc, 0xff, 0xff, 0x1a, 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x1a,
- 0xf8, 0x00, 0x1f, 0xe5, 0xf8, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x0c, 0x01, 0x1f, 0xe5,
- 0x0c, 0x11, 0x1f, 0xe5, 0x04, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
+ 0xf4, 0x00, 0x1f, 0xe5, 0xf4, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x08, 0x01, 0x1f, 0xe5,
+ 0x08, 0x11, 0x1f, 0xe5, 0x00, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0,
0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a,
- 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00,
- 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x10, 0x00, 0x0f, 0xc8,
- 0x00, 0x00, 0x07, 0xc8
-};
-unsigned char dualboot_fuzev2[364] = {
- 0x50, 0xf1, 0x9f, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5,
- 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4,
- 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x2c, 0x30, 0x0f, 0xe5,
- 0xf4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5,
- 0xe8, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5,
- 0x00, 0x00, 0x51, 0xe3, 0x27, 0x00, 0x00, 0x1a, 0xd4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x00, 0x10, 0x80, 0xe5, 0xc0, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x02, 0x18, 0x81, 0xe3,
- 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xb8, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x24, 0x10, 0x80, 0xe5, 0x3c, 0x10, 0xa0, 0xe3, 0x1c, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3,
- 0x20, 0x10, 0x80, 0xe5, 0x8c, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5, 0x51, 0x20, 0xa0, 0xe3,
- 0x0c, 0x20, 0x80, 0xe5, 0x30, 0x10, 0x90, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a,
- 0x02, 0x17, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x25, 0x10, 0xa0, 0xe3,
- 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x80, 0xe5, 0x01, 0x10, 0xa0, 0xe3,
- 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0xfc, 0xff, 0xff, 0x1a,
- 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0xf4, 0x00, 0x1f, 0xe5,
- 0xf4, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x08, 0x01, 0x1f, 0xe5, 0x08, 0x11, 0x1f, 0xe5,
- 0x00, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4,
- 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2,
- 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x3c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x0f, 0xc8,
+ 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8,
0x00, 0x00, 0x0d, 0xc8, 0x10, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x07, 0xc8
};
diff --git a/rbutil/mkamsboot/dualboot.h b/rbutil/mkamsboot/dualboot.h
index c9f375b971..76d4641b1e 100644
--- a/rbutil/mkamsboot/dualboot.h
+++ b/rbutil/mkamsboot/dualboot.h
@@ -1,11 +1,11 @@
/* Generated by bin2c */
extern unsigned char nrv2e_d8[168];
-extern unsigned char dualboot_clip[256];
-extern unsigned char dualboot_e200v2[236];
-extern unsigned char dualboot_c200v2[432];
-extern unsigned char dualboot_m200v4[212];
-extern unsigned char dualboot_fuze[236];
-extern unsigned char dualboot_clipv2[280];
-extern unsigned char dualboot_clipplus[372];
-extern unsigned char dualboot_fuzev2[364];
+extern unsigned char dualboot_clip[224];
+extern unsigned char dualboot_e200v2[204];
+extern unsigned char dualboot_c200v2[400];
+extern unsigned char dualboot_m200v4[180];
+extern unsigned char dualboot_fuze[204];
+extern unsigned char dualboot_clipv2[248];
+extern unsigned char dualboot_clipplus[340];
+extern unsigned char dualboot_fuzev2[332];
diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S
index d6a8d3701c..77fb4dec7d 100644
--- a/rbutil/mkamsboot/dualboot/dualboot.S
+++ b/rbutil/mkamsboot/dualboot/dualboot.S
@@ -51,20 +51,9 @@
#error i2c prescaler too big!
#endif
-/* Vectors */
+ b start @ skip our data
- ldr pc, =start /* reset vector */
- /* next vectors are unused, halt cpu */
-1: b 1b
-1: b 1b
-1: b 1b
-1: b 1b
-1: b 1b
-1: b 1b
-1: b 1b
-
-
-/* These values are filled in by mkamsboot - don't move them from offset 0x20 */
+/* These values are filled in by mkamsboot - don't move them from offset 0x4 */
uclunpack_end: .word 0 /* End of the ucl_unpack function */
uclunpack_size: .word 0 /* Size in bytes of the ucl_unpack function */
diff --git a/rbutil/mkamsboot/mkamsboot.c b/rbutil/mkamsboot/mkamsboot.c
index f47afe312a..ae475ed899 100644
--- a/rbutil/mkamsboot/mkamsboot.c
+++ b/rbutil/mkamsboot/mkamsboot.c
@@ -31,13 +31,15 @@ Layout of a Sansa AMS original firmware file:
---------------------- 0x0
| HEADER |
|----------------------| 0x400
+| FIRMWARE BLOCK | (contains the OF version on some fuzev2 firmwares
+|----------------------| 0x600
| FIRMWARE BLOCK |
|----------------------| 0x400 + firmware block size
| LIBRARIES/DATA |
---------------------- END
-We replace the main firmware block (bytes 0x400..0x400+firmware_size)
-as follows:
+We replace the main firmware block while preserving the potential OF version
+(bytes 0x600..0x400+firmware_size) as follows:
---------------------- 0x0
@@ -531,10 +533,22 @@ void patch_firmware(
unsigned int i;
/* Zero the original firmware area - not needed, but helps debugging */
- memset(buf + 0x400, 0, firmware_size);
+ memset(buf + 0x600, 0, firmware_size);
- /* Insert dual-boot bootloader at offset 0 */
- memcpy(buf + 0x400, bootloaders[model], bootloader_sizes[model]);
+ /* Insert dual-boot bootloader at offset 0x200, we preserve the OF
+ * version string located between 0x0 and 0x200 */
+ memcpy(buf + 0x600, bootloaders[model], bootloader_sizes[model]);
+
+ /* Insert vectors, they won't overwrite the OF version string */
+
+ /* Reset vector: branch 0x200 bytes away, to our dualboot code */
+ static const uint8_t b_0x200[4] = { 0x7e, 0x00, 0x00, 0xea }; // b 0x200
+ memcpy(buf + 0x400, b_0x200, sizeof(b_0x200));
+
+ /* Other vectors: infinite loops */
+ static const uint8_t b_1b[4] = { 0xfe, 0xff, 0xff, 0xea }; // 1: b 1b
+ for (i=1; i < 8; i++)
+ memcpy(buf + 0x400 + 4*i, b_1b, sizeof(b_1b));
/* We are filling the firmware buffer backwards from the end */
p = buf + 0x400 + firmware_size;
@@ -556,20 +570,20 @@ void patch_firmware(
in each image, along with the size in bytes */
/* UCL unpack function */
- put_uint32le(&buf[0x420], firmware_size - 1);
- put_uint32le(&buf[0x424], sizeof(nrv2e_d8));
+ put_uint32le(&buf[0x604], firmware_size - 1);
+ put_uint32le(&buf[0x608], sizeof(nrv2e_d8));
/* Compressed original firmware image */
- put_uint32le(&buf[0x428], firmware_size - sizeof(nrv2e_d8) - 1);
- put_uint32le(&buf[0x42c], of_packedsize);
+ put_uint32le(&buf[0x60c], firmware_size - sizeof(nrv2e_d8) - 1);
+ put_uint32le(&buf[0x610], of_packedsize);
/* Compressed Rockbox image */
- put_uint32le(&buf[0x430], firmware_size - sizeof(nrv2e_d8) - of_packedsize
+ put_uint32le(&buf[0x614], firmware_size - sizeof(nrv2e_d8) - of_packedsize
- 1);
- put_uint32le(&buf[0x434], rb_packedsize);
+ put_uint32le(&buf[0x618], rb_packedsize);
ucl_dest = model_memory_size(model) - 1; /* last byte of memory */
- put_uint32le(&buf[0x438], ucl_dest);
+ put_uint32le(&buf[0x61c], ucl_dest);
/* Update the firmware block checksum */
sum = calc_checksum(buf + 0x400, firmware_size);
@@ -619,8 +633,10 @@ int check_sizes(int model, int rb_packed_size, int rb_unpacked_size,
return 0; \
} while(0)
- /* will packed data fit in the OF file ? */
- if(packed_size > of_unpacked_size)
+ /* will packed data fit in the OF file ?
+ * XXX: we keep the first 0x200 bytes block unmodified, we just replace
+ * the ARM vectors */
+ if(packed_size + 0x200 > of_unpacked_size)
ERROR(
"[ERR] Packed data (%d bytes) doesn't fit in the firmware "
"(%d bytes)\n", packed_size, of_unpacked_size