diff options
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/mkamsboot/dualboot.c | 91 | ||||
-rw-r--r-- | rbutil/mkamsboot/dualboot.h | 8 | ||||
-rw-r--r-- | rbutil/mkamsboot/dualboot/dualboot.S | 70 |
3 files changed, 48 insertions, 121 deletions
diff --git a/rbutil/mkamsboot/dualboot.c b/rbutil/mkamsboot/dualboot.c index 6aa4429324..1eed483c2a 100644 --- a/rbutil/mkamsboot/dualboot.c +++ b/rbutil/mkamsboot/dualboot.c | |||
@@ -15,62 +15,51 @@ unsigned char nrv2e_d8[168] = { | |||
15 | 0x02, 0x31, 0xee, 0x42, 0x00, 0xd2, 0x01, 0x31, 0x13, 0x78, 0x53, 0x5d, 0x13, 0x70, 0x01, 0x32, | 15 | 0x02, 0x31, 0xee, 0x42, 0x00, 0xd2, 0x01, 0x31, 0x13, 0x78, 0x53, 0x5d, 0x13, 0x70, 0x01, 0x32, |
16 | 0x01, 0x39, 0xfa, 0xd1, 0xbe, 0xe7, 0x00, 0x00 | 16 | 0x01, 0x39, 0xfa, 0xd1, 0xbe, 0xe7, 0x00, 0x00 |
17 | }; | 17 | }; |
18 | unsigned char dualboot_clip[224] = { | 18 | unsigned char dualboot_clip[196] = { |
19 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 19 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 20 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
21 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, | 21 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, |
22 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, | 22 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, |
23 | 0x2c, 0x30, 0x0f, 0xe5, 0x84, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, | 23 | 0x2c, 0x30, 0x0f, 0xe5, 0x6c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, |
24 | 0x00, 0x10, 0x80, 0xe5, 0x78, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, | 24 | 0x00, 0x10, 0x80, 0xe5, 0x60, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, |
25 | 0x00, 0x11, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x0c, 0x00, 0x00, 0x1a, 0x64, 0x00, 0x9f, 0xe5, | 25 | 0x80, 0x10, 0x80, 0xe5, 0x54, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, |
26 | 0x20, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x80, 0x10, 0x80, 0xe5, 0x58, 0x00, 0x9f, 0xe5, | 26 | 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0x70, 0x00, 0x1f, 0xe5, |
27 | 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, | 27 | 0x70, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x84, 0x00, 0x1f, 0xe5, 0x84, 0x10, 0x1f, 0xe5, |
28 | 0x02, 0x00, 0x00, 0x1a, 0x88, 0x00, 0x1f, 0xe5, 0x88, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, | 28 | 0x7c, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, |
29 | 0x9c, 0x00, 0x1f, 0xe5, 0x9c, 0x10, 0x1f, 0xe5, 0x94, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, | 29 | 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, |
30 | 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, | 30 | 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0d, 0xc8, |
31 | 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, | 31 | 0x00, 0x00, 0x0c, 0xc8 |
32 | 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x0c, 0xc8 | ||
33 | }; | 32 | }; |
34 | unsigned char dualboot_e200v2[204] = { | 33 | unsigned char dualboot_e200v2[176] = { |
35 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 34 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
36 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 35 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
37 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, | 36 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, |
38 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, | 37 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, |
39 | 0x2c, 0x30, 0x0f, 0xe5, 0x74, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, | 38 | 0x2c, 0x30, 0x0f, 0xe5, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, |
40 | 0x00, 0x10, 0x80, 0xe5, 0x68, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, | 39 | 0x00, 0x10, 0x80, 0xe5, 0x50, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, |
41 | 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x54, 0x00, 0x9f, 0xe5, | 40 | 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x60, 0x00, 0x1f, 0xe5, |
42 | 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, | 41 | 0x60, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x74, 0x00, 0x1f, 0xe5, 0x74, 0x10, 0x1f, 0xe5, |
43 | 0x02, 0x00, 0x00, 0x0a, 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, | 42 | 0x6c, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, |
44 | 0x8c, 0x00, 0x1f, 0xe5, 0x8c, 0x10, 0x1f, 0xe5, 0x84, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, | 43 | 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, |
45 | 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, | 44 | 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0d, 0xc8 |
46 | 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, | ||
47 | 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8 | ||
48 | }; | 45 | }; |
49 | unsigned char dualboot_c200v2[400] = { | 46 | unsigned char dualboot_c200v2[272] = { |
50 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 47 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
51 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 48 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
52 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, | 49 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, |
53 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, | 50 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, |
54 | 0x2c, 0x30, 0x0f, 0xe5, 0x24, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, | 51 | 0x2c, 0x30, 0x0f, 0xe5, 0xa8, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, |
55 | 0x00, 0x10, 0x80, 0xe5, 0x14, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x02, 0x18, 0x81, 0xe3, | 52 | 0x00, 0x10, 0x80, 0xe5, 0x9c, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, |
56 | 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x04, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, | 53 | 0x94, 0x20, 0x9f, 0xe5, 0x0c, 0x10, 0xa0, 0xe3, 0x20, 0x14, 0x82, 0xe5, 0x8c, 0x20, 0x9f, 0xe5, |
57 | 0x24, 0x10, 0x80, 0xe5, 0x3c, 0x10, 0xa0, 0xe3, 0x1c, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3, | 54 | 0xff, 0x10, 0xa0, 0xe3, 0x20, 0x14, 0x82, 0xe5, 0x84, 0x00, 0x9f, 0xe5, 0x91, 0x1a, 0xa0, 0xe3, |
58 | 0x20, 0x10, 0x80, 0xe5, 0x8c, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5, 0x51, 0x20, 0xa0, 0xe3, | 55 | 0x08, 0x10, 0x80, 0xe5, 0x7c, 0x10, 0x9f, 0xe5, 0x10, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5, |
59 | 0x0c, 0x20, 0x80, 0xe5, 0x30, 0x10, 0x90, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a, | 56 | 0x01, 0x1b, 0x11, 0xe2, 0xfc, 0xff, 0xff, 0x0a, 0x6c, 0x10, 0x9f, 0xe5, 0x08, 0x10, 0x80, 0xe5, |
60 | 0x25, 0x10, 0xa0, 0xe3, 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x80, 0xe5, | 57 | 0x0c, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x11, 0xe2, 0xfc, 0xff, 0xff, 0x0a, 0xb4, 0x11, 0xd0, 0xe1, |
61 | 0x01, 0x10, 0xa0, 0xe3, 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, | 58 | 0x04, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0xac, 0x00, 0x1f, 0xe5, 0xac, 0x10, 0x1f, 0xe5, |
62 | 0xfc, 0xff, 0xff, 0x1a, 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3, 0x1b, 0x00, 0x00, 0x1a, | 59 | 0x01, 0x00, 0x00, 0xea, 0xc0, 0x00, 0x1f, 0xe5, 0xc0, 0x10, 0x1f, 0xe5, 0xb8, 0x30, 0x1f, 0xe5, |
63 | 0xa0, 0x00, 0x9f, 0xe5, 0x08, 0x10, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x98, 0x20, 0x9f, 0xe5, | 60 | 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, |
64 | 0x0c, 0x10, 0xa0, 0xe3, 0x20, 0x14, 0x82, 0xe5, 0x90, 0x20, 0x9f, 0xe5, 0xff, 0x10, 0xa0, 0xe3, | 61 | 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, |
65 | 0x20, 0x14, 0x82, 0xe5, 0x88, 0x00, 0x9f, 0xe5, 0x91, 0x1a, 0xa0, 0xe3, 0x08, 0x10, 0x80, 0xe5, | 62 | 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, 0x38, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0c, 0xc8, |
66 | 0x80, 0x10, 0x9f, 0xe5, 0x10, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5, 0x01, 0x1b, 0x11, 0xe2, | ||
67 | 0xfc, 0xff, 0xff, 0x0a, 0x70, 0x10, 0x9f, 0xe5, 0x08, 0x10, 0x80, 0xe5, 0x0c, 0x10, 0x90, 0xe5, | ||
68 | 0x01, 0x18, 0x11, 0xe2, 0xfc, 0xff, 0xff, 0x0a, 0xb4, 0x11, 0xd0, 0xe1, 0x04, 0x00, 0x11, 0xe3, | ||
69 | 0x02, 0x00, 0x00, 0x0a, 0x28, 0x01, 0x1f, 0xe5, 0x28, 0x11, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, | ||
70 | 0x3c, 0x01, 0x1f, 0xe5, 0x3c, 0x11, 0x1f, 0xe5, 0x34, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, | ||
71 | 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, | ||
72 | 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, | ||
73 | 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x07, 0xc8, 0x38, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0c, 0xc8, | ||
74 | 0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x12, 0xc8, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0x90, 0x08, 0x00 | 63 | 0x00, 0x00, 0x0d, 0xc8, 0x00, 0x00, 0x12, 0xc8, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0x90, 0x08, 0x00 |
75 | }; | 64 | }; |
76 | unsigned char dualboot_m200v4[180] = { | 65 | unsigned char dualboot_m200v4[180] = { |
@@ -87,20 +76,18 @@ unsigned char dualboot_m200v4[180] = { | |||
87 | 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, | 76 | 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, |
88 | 0x00, 0x00, 0x0b, 0xc8 | 77 | 0x00, 0x00, 0x0b, 0xc8 |
89 | }; | 78 | }; |
90 | unsigned char dualboot_fuze[204] = { | 79 | unsigned char dualboot_fuze[176] = { |
91 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 80 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
92 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 81 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
93 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, | 82 | 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, |
94 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, | 83 | 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, |
95 | 0x2c, 0x30, 0x0f, 0xe5, 0x74, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, | 84 | 0x2c, 0x30, 0x0f, 0xe5, 0x5c, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, |
96 | 0x00, 0x10, 0x80, 0xe5, 0x68, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, | 85 | 0x00, 0x10, 0x80, 0xe5, 0x50, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, |
97 | 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x08, 0x00, 0x00, 0x1a, 0x54, 0x00, 0x9f, 0xe5, | 86 | 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x60, 0x00, 0x1f, 0xe5, |
98 | 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x20, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, | 87 | 0x60, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x74, 0x00, 0x1f, 0xe5, 0x74, 0x10, 0x1f, 0xe5, |
99 | 0x02, 0x00, 0x00, 0x0a, 0x78, 0x00, 0x1f, 0xe5, 0x78, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, | 88 | 0x6c, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, |
100 | 0x8c, 0x00, 0x1f, 0xe5, 0x8c, 0x10, 0x1f, 0xe5, 0x84, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, | 89 | 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, |
101 | 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, | 90 | 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0d, 0xc8 |
102 | 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, | ||
103 | 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8 | ||
104 | }; | 91 | }; |
105 | unsigned char dualboot_clipv2[248] = { | 92 | unsigned char dualboot_clipv2[248] = { |
106 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 93 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
diff --git a/rbutil/mkamsboot/dualboot.h b/rbutil/mkamsboot/dualboot.h index 76d4641b1e..038d46c389 100644 --- a/rbutil/mkamsboot/dualboot.h +++ b/rbutil/mkamsboot/dualboot.h | |||
@@ -1,11 +1,11 @@ | |||
1 | /* Generated by bin2c */ | 1 | /* Generated by bin2c */ |
2 | 2 | ||
3 | extern unsigned char nrv2e_d8[168]; | 3 | extern unsigned char nrv2e_d8[168]; |
4 | extern unsigned char dualboot_clip[224]; | 4 | extern unsigned char dualboot_clip[196]; |
5 | extern unsigned char dualboot_e200v2[204]; | 5 | extern unsigned char dualboot_e200v2[176]; |
6 | extern unsigned char dualboot_c200v2[400]; | 6 | extern unsigned char dualboot_c200v2[272]; |
7 | extern unsigned char dualboot_m200v4[180]; | 7 | extern unsigned char dualboot_m200v4[180]; |
8 | extern unsigned char dualboot_fuze[204]; | 8 | extern unsigned char dualboot_fuze[176]; |
9 | extern unsigned char dualboot_clipv2[248]; | 9 | extern unsigned char dualboot_clipv2[248]; |
10 | extern unsigned char dualboot_clipplus[340]; | 10 | extern unsigned char dualboot_clipplus[340]; |
11 | extern unsigned char dualboot_fuzev2[332]; | 11 | extern unsigned char dualboot_fuzev2[332]; |
diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S index 77fb4dec7d..242eefa815 100644 --- a/rbutil/mkamsboot/dualboot/dualboot.S +++ b/rbutil/mkamsboot/dualboot/dualboot.S | |||
@@ -90,77 +90,17 @@ uclcopy: | |||
90 | str r1, [r0] | 90 | str r1, [r0] |
91 | 91 | ||
92 | 92 | ||
93 | /* TODO : M200V4 ? */ | 93 | #ifdef SANSA_CLIPV2 /* TODO : remove this check when we'll have an USB driver */ |
94 | #if defined(SANSA_CLIP) || defined(SANSA_CLIPV2) | ||
95 | #define USB_PIN 6 | ||
96 | #elif defined(SANSA_FUZE) || defined(SANSA_E200V2) | ||
97 | #define USB_PIN 3 | ||
98 | #endif | ||
99 | |||
100 | #ifdef USB_PIN /* TODO : remove this check when we'll have an USB driver */ | ||
101 | ldr r0, =GPIOA | 94 | ldr r0, =GPIOA |
102 | mov r1, #0 | 95 | mov r1, #0 |
103 | str r1, [r0, #0x400] | 96 | str r1, [r0, #0x400] |
104 | ldr r1, [r0, #(4*(1<<USB_PIN))] | 97 | ldr r1, [r0, #(4*(1<<6))] |
105 | cmp r1, #0 | 98 | cmp r1, #0 |
106 | bne boot_of | 99 | bne boot_of |
107 | #endif | 100 | #endif |
108 | #if defined(SANSA_C200V2) | 101 | /* Here are model specific tests for dual boot */ |
109 | /* Instead of checking the GPIO, check the audio master IRQ_ENRD0 | 102 | /* All models but c200v2 use left button */ |
110 | * USB_STATUS bit on C200V2 */ | 103 | /* TODO: Left button for c200v2 too (needs DBOP code) */ |
111 | |||
112 | ldr r0, =CGU_PERI | ||
113 | ldr r1, [r0] | ||
114 | /* enable i2c audio master clock */ | ||
115 | orr r1, r1, #(1<<17) | ||
116 | /* make sure 24MHz clk_main is selected */ | ||
117 | bic r1, r1, #0x7f | ||
118 | str r1, [r0] | ||
119 | |||
120 | ldr r0, =I2C_BASE | ||
121 | /* disable i2c interrupts */ | ||
122 | mov r1, #0 | ||
123 | str r1, [r0, #I2C_IMR] | ||
124 | /* setup prescaler */ | ||
125 | mov r1, #I2C_PRESCALER_LOW | ||
126 | str r1, [r0, #I2C_CPSR0] | ||
127 | mov r1, #I2C_PRESCALER_HIGH | ||
128 | str r1, [r0, #I2C_CPSR1] | ||
129 | /* setup i2c slave address */ | ||
130 | mov r1, #(AS3514_I2C_ADDR << 1) | ||
131 | str r1, [r0, #I2C_SLAD0] | ||
132 | mov r2, #0x51 | ||
133 | str r2, [r0, #I2C_CNTRL] | ||
134 | |||
135 | /* wait for not busy */ | ||
136 | 1: | ||
137 | ldr r1, [r0, #I2C_SR] | ||
138 | tst r1, #1 | ||
139 | bne 1b | ||
140 | |||
141 | /* start read of irq_enrd0 */ | ||
142 | mov r1, #AS3514_IRQ_ENRD0 | ||
143 | str r1, [r0, #I2C_SADDR] | ||
144 | orr r2, r2, #(1 << 1) | ||
145 | str r2, [r0, #I2C_CNTRL] | ||
146 | mov r1, #1 | ||
147 | str r1, [r0, #I2C_DACNT] | ||
148 | |||
149 | /* wait for transfer to finish */ | ||
150 | 1: | ||
151 | ldr r1, [r0, #I2C_DACNT] | ||
152 | cmp r1, #0 | ||
153 | bne 1b | ||
154 | |||
155 | /* load result and test USB_STATUS bit */ | ||
156 | ldr r1, [r0, #I2C_DATA] | ||
157 | tst r1, #(1 << 3) | ||
158 | bne boot_of | ||
159 | #endif | ||
160 | |||
161 | /* Here are model specific tests, for dual boot without a computer */ | ||
162 | /* All models use left button */ | ||
163 | /* /!\ Right button for c200v2 (left button is unkwown) */ | ||
164 | 104 | ||
165 | #ifdef SANSA_CLIP | 105 | #ifdef SANSA_CLIP |
166 | .set row, (1<<5) /* enable output on C5 */ | 106 | .set row, (1<<5) /* enable output on C5 */ |