diff options
-rw-r--r-- | firmware/SOURCES | 1 | ||||
-rw-r--r-- | firmware/export/config/creativezenxfi3.h | 3 | ||||
-rw-r--r-- | firmware/export/config/sansafuzeplus.h | 3 | ||||
-rw-r--r-- | firmware/export/config/sonynwze360.h | 3 | ||||
-rw-r--r-- | firmware/export/config/sonynwze370.h | 3 | ||||
-rw-r--r-- | firmware/target/arm/imx233/debug-imx233.c | 65 | ||||
-rw-r--r-- | firmware/target/arm/imx233/dualboot-imx233.c | 221 | ||||
-rw-r--r-- | firmware/target/arm/imx233/dualboot-imx233.h | 53 | ||||
-rw-r--r-- | rbutil/mkimxboot/dualboot.c | 386 | ||||
-rw-r--r-- | rbutil/mkimxboot/dualboot.h | 12 | ||||
-rw-r--r-- | rbutil/mkimxboot/dualboot/Makefile | 4 | ||||
-rw-r--r-- | rbutil/mkimxboot/dualboot/config.h | 6 | ||||
-rw-r--r-- | rbutil/mkimxboot/dualboot/dualboot.c | 40 |
13 files changed, 641 insertions, 159 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES index 6a18639eb2..ce445f35c9 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -572,6 +572,7 @@ target/arm/imx233/adc-imx233.c | |||
572 | target/arm/imx233/lradc-imx233.c | 572 | target/arm/imx233/lradc-imx233.c |
573 | target/arm/imx233/pwm-imx233.c | 573 | target/arm/imx233/pwm-imx233.c |
574 | target/arm/imx233/rtc-imx233.c | 574 | target/arm/imx233/rtc-imx233.c |
575 | target/arm/imx233/dualboot-imx233.c | ||
575 | target/arm/imx233/button-imx233.c | 576 | target/arm/imx233/button-imx233.c |
576 | #if IMX233_SUBTARGET >= 3700 | 577 | #if IMX233_SUBTARGET >= 3700 |
577 | target/arm/imx233/dcp-imx233.c | 578 | target/arm/imx233/dcp-imx233.c |
diff --git a/firmware/export/config/creativezenxfi3.h b/firmware/export/config/creativezenxfi3.h index 9adf593a99..9233ef08a1 100644 --- a/firmware/export/config/creativezenxfi3.h +++ b/firmware/export/config/creativezenxfi3.h | |||
@@ -205,6 +205,9 @@ | |||
205 | /* Define this if you have adjustable CPU frequency */ | 205 | /* Define this if you have adjustable CPU frequency */ |
206 | #define HAVE_ADJUSTABLE_CPU_FREQ | 206 | #define HAVE_ADJUSTABLE_CPU_FREQ |
207 | 207 | ||
208 | /* Define this on iMX233 if the boot process uses a dualboot stub */ | ||
209 | #define HAVE_DUALBOOT_STUB | ||
210 | |||
208 | #define BOOTFILE_EXT "creative" | 211 | #define BOOTFILE_EXT "creative" |
209 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 212 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
210 | #define BOOTDIR "/.rockbox" | 213 | #define BOOTDIR "/.rockbox" |
diff --git a/firmware/export/config/sansafuzeplus.h b/firmware/export/config/sansafuzeplus.h index 51bf1444a2..62f50c4f71 100644 --- a/firmware/export/config/sansafuzeplus.h +++ b/firmware/export/config/sansafuzeplus.h | |||
@@ -203,6 +203,9 @@ | |||
203 | /* Virtual LED (icon) */ | 203 | /* Virtual LED (icon) */ |
204 | #define CONFIG_LED LED_VIRTUAL | 204 | #define CONFIG_LED LED_VIRTUAL |
205 | 205 | ||
206 | /* Define this on iMX233 if the boot process uses a dualboot stub */ | ||
207 | #define HAVE_DUALBOOT_STUB | ||
208 | |||
206 | #define BOOTFILE_EXT "sansa" | 209 | #define BOOTFILE_EXT "sansa" |
207 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 210 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
208 | #define BOOTDIR "/.rockbox" | 211 | #define BOOTDIR "/.rockbox" |
diff --git a/firmware/export/config/sonynwze360.h b/firmware/export/config/sonynwze360.h index 5f5b1cd597..dc466ec797 100644 --- a/firmware/export/config/sonynwze360.h +++ b/firmware/export/config/sonynwze360.h | |||
@@ -179,6 +179,9 @@ | |||
179 | /* Define this if you have adjustable CPU frequency */ | 179 | /* Define this if you have adjustable CPU frequency */ |
180 | #define HAVE_ADJUSTABLE_CPU_FREQ | 180 | #define HAVE_ADJUSTABLE_CPU_FREQ |
181 | 181 | ||
182 | /* Define this on iMX233 if the boot process uses a dualboot stub */ | ||
183 | #define HAVE_DUALBOOT_STUB | ||
184 | |||
182 | #define BOOTFILE_EXT "sony" | 185 | #define BOOTFILE_EXT "sony" |
183 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 186 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
184 | #define BOOTDIR "/.rockbox" | 187 | #define BOOTDIR "/.rockbox" |
diff --git a/firmware/export/config/sonynwze370.h b/firmware/export/config/sonynwze370.h index b4c4f16b13..6edb79aea9 100644 --- a/firmware/export/config/sonynwze370.h +++ b/firmware/export/config/sonynwze370.h | |||
@@ -176,6 +176,9 @@ | |||
176 | /* Define this if you have adjustable CPU frequency */ | 176 | /* Define this if you have adjustable CPU frequency */ |
177 | #define HAVE_ADJUSTABLE_CPU_FREQ | 177 | #define HAVE_ADJUSTABLE_CPU_FREQ |
178 | 178 | ||
179 | /* Define this on iMX233 if the boot process uses a dualboot stub */ | ||
180 | #define HAVE_DUALBOOT_STUB | ||
181 | |||
179 | #define BOOTFILE_EXT "sony" | 182 | #define BOOTFILE_EXT "sony" |
180 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 183 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
181 | #define BOOTDIR "/.rockbox" | 184 | #define BOOTDIR "/.rockbox" |
diff --git a/firmware/target/arm/imx233/debug-imx233.c b/firmware/target/arm/imx233/debug-imx233.c index 89365cb148..68865efc8d 100644 --- a/firmware/target/arm/imx233/debug-imx233.c +++ b/firmware/target/arm/imx233/debug-imx233.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include "clkctrl-imx233.h" | 31 | #include "clkctrl-imx233.h" |
32 | #include "powermgmt-imx233.h" | 32 | #include "powermgmt-imx233.h" |
33 | #include "rtc-imx233.h" | 33 | #include "rtc-imx233.h" |
34 | #include "dualboot-imx233.h" | ||
34 | #include "dcp-imx233.h" | 35 | #include "dcp-imx233.h" |
35 | #include "pinctrl-imx233.h" | 36 | #include "pinctrl-imx233.h" |
36 | #include "ocotp-imx233.h" | 37 | #include "ocotp-imx233.h" |
@@ -535,10 +536,11 @@ bool dbg_hw_info_rtc(void) | |||
535 | lcd_clear_display(); | 536 | lcd_clear_display(); |
536 | struct imx233_rtc_info_t info = imx233_rtc_get_info(); | 537 | struct imx233_rtc_info_t info = imx233_rtc_get_info(); |
537 | 538 | ||
538 | lcd_putsf(0, 0, "seconds: %lu", info.seconds); | 539 | int line = 0; |
539 | lcd_putsf(0, 1, "alarm: %lu", info.alarm); | 540 | lcd_putsf(0, line++, "seconds: %lu", info.seconds); |
541 | lcd_putsf(0, line++, "alarm: %lu", info.alarm); | ||
540 | for(int i = 0; i < 6; i++) | 542 | for(int i = 0; i < 6; i++) |
541 | lcd_putsf(0, i + 2, "persist%d: 0x%lx", i, info.persistent[i]); | 543 | lcd_putsf(0, line++, "persist%d: 0x%lx", i, info.persistent[i]); |
542 | 544 | ||
543 | lcd_update(); | 545 | lcd_update(); |
544 | yield(); | 546 | yield(); |
@@ -1255,6 +1257,60 @@ bool dbg_hw_info_sdmmc(void) | |||
1255 | } | 1257 | } |
1256 | } | 1258 | } |
1257 | 1259 | ||
1260 | #ifdef HAVE_DUALBOOT_STUB | ||
1261 | bool dbg_hw_info_dualboot(void) | ||
1262 | { | ||
1263 | lcd_setfont(FONT_SYSFIXED); | ||
1264 | |||
1265 | while(1) | ||
1266 | { | ||
1267 | int button = my_get_action(HZ / 10); | ||
1268 | switch(button) | ||
1269 | { | ||
1270 | case ACT_NEXT: | ||
1271 | case ACT_PREV: | ||
1272 | { | ||
1273 | /* only if boot mode is supported... */ | ||
1274 | if(!imx233_dualboot_get_field(DUALBOOT_CAP_BOOT)) | ||
1275 | break; | ||
1276 | /* change it */ | ||
1277 | unsigned boot = imx233_dualboot_get_field(DUALBOOT_BOOT); | ||
1278 | if(boot == IMX233_BOOT_NORMAL) | ||
1279 | boot = IMX233_BOOT_OF; | ||
1280 | else if(boot == IMX233_BOOT_OF) | ||
1281 | boot = IMX233_BOOT_UPDATER; | ||
1282 | else | ||
1283 | boot = IMX233_BOOT_NORMAL; | ||
1284 | imx233_dualboot_set_field(DUALBOOT_BOOT, boot); | ||
1285 | break; | ||
1286 | } | ||
1287 | case ACT_OK: | ||
1288 | lcd_setfont(FONT_UI); | ||
1289 | return true; | ||
1290 | case ACT_CANCEL: | ||
1291 | lcd_setfont(FONT_UI); | ||
1292 | return false; | ||
1293 | } | ||
1294 | |||
1295 | lcd_clear_display(); | ||
1296 | int line = 0; | ||
1297 | unsigned cap_boot = imx233_dualboot_get_field(DUALBOOT_CAP_BOOT); | ||
1298 | lcd_putsf(0, line++, "cap_boot: %s", cap_boot ? "yes" : "no"); | ||
1299 | if(cap_boot) | ||
1300 | { | ||
1301 | unsigned boot = imx233_dualboot_get_field(DUALBOOT_BOOT); | ||
1302 | lcd_putsf(0, line++, "boot: %s", | ||
1303 | boot == IMX233_BOOT_NORMAL ? "normal" | ||
1304 | : boot == IMX233_BOOT_OF ? "of" | ||
1305 | : boot == IMX233_BOOT_UPDATER ? "updater" : "?"); | ||
1306 | } | ||
1307 | |||
1308 | lcd_update(); | ||
1309 | yield(); | ||
1310 | } | ||
1311 | } | ||
1312 | #endif | ||
1313 | |||
1258 | static struct | 1314 | static struct |
1259 | { | 1315 | { |
1260 | const char *name; | 1316 | const char *name; |
@@ -1281,6 +1337,9 @@ static struct | |||
1281 | {"timrot", dbg_hw_info_timrot}, | 1337 | {"timrot", dbg_hw_info_timrot}, |
1282 | {"button", dbg_hw_info_button}, | 1338 | {"button", dbg_hw_info_button}, |
1283 | {"sdmmc", dbg_hw_info_sdmmc}, | 1339 | {"sdmmc", dbg_hw_info_sdmmc}, |
1340 | #ifdef HAVE_DUALBOOT_STUB | ||
1341 | {"dualboot", dbg_hw_info_dualboot}, | ||
1342 | #endif | ||
1284 | {"target", dbg_hw_target_info}, | 1343 | {"target", dbg_hw_target_info}, |
1285 | }; | 1344 | }; |
1286 | 1345 | ||
diff --git a/firmware/target/arm/imx233/dualboot-imx233.c b/firmware/target/arm/imx233/dualboot-imx233.c new file mode 100644 index 0000000000..39d70f17ea --- /dev/null +++ b/firmware/target/arm/imx233/dualboot-imx233.c | |||
@@ -0,0 +1,221 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright © 2011 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | /* IMPORTANT NOTE This file is used by both Rockbox (firmware and bootloader) | ||
23 | * and the dualboot stub. The stub #include this file directly, so make sure | ||
24 | * this file is independent and does not requires anything from the firmware */ | ||
25 | #include "dualboot-imx233.h" | ||
26 | |||
27 | #ifdef HAVE_DUALBOOT_STUB | ||
28 | /** Persistent registers usage by the OF based on the Firmware SDK | ||
29 | * and support for firmware upgrades in Rockbox | ||
30 | * (this includes the Fuze+, ZEN X-Fi3, NWZ-E360/E370/E380) | ||
31 | * | ||
32 | * The following are used: | ||
33 | * - PERSISTENT0: mostly standard stuff described in the datasheet | ||
34 | * - PERSISTENT1: mostly proprietary stuff + some bits described in the datasheet | ||
35 | * - PERSISTENT2: used to keep track of time (see below) | ||
36 | * - PERSISTENT3: proprietary stuff | ||
37 | * - PERSISTENT4: unused | ||
38 | * - PERSISTENT5: used by Rockbox to tell the dualboot stub what to do | ||
39 | * | ||
40 | * In particular, the following bits are involved in the firmware upgrade process | ||
41 | * and thus worth mentioning (Px means PERSISTENTx). Some of this information | ||
42 | * might not be entirely accurate: | ||
43 | * - P1[18]: when 0, indicates to the freescale boot stub to start the updater | ||
44 | * rather than the main firmware (play) or the usb firmware (host) | ||
45 | * - P1[22]: when 0, indicates that the OF database/store should be rebuilt | ||
46 | * - P3[10]: when 0, indicates that the firmware has been upgraded | ||
47 | * - P3[11]: when 1, indicates to the freescale boot stub to boot without | ||
48 | * requiring the user to hold the power button for a small delay | ||
49 | * - P3[12]: when 1, indicates that the internal drive or micro-sd card was | ||
50 | * modified in USB mode | ||
51 | * - P3[16]: when 1, indicates that a firmware upgrade was attempted but aborted | ||
52 | * due to a too low battery | ||
53 | * | ||
54 | * To understand how all this works out together, recall that the boot sequence | ||
55 | * usually looks as follows (fslx = freescale boot stub stage x, in section 0 | ||
56 | * of the firmware; rb = rockbox dualboot stub), where arrows indicate boot flow | ||
57 | * (since every stage can choose to continue in the same section or jump to another): | ||
58 | * | ||
59 | * +---> host (usb) | ||
60 | * | | ||
61 | * fsl0 -> fsl1 -> fsl2 -> rb -> fsl3 -> fsl4 (updater) | ||
62 | * | | | ||
63 | * | +---> play (firmware) | ||
64 | * | | ||
65 | * +-----------> rock (bootloader) (-> loads rockbox) | ||
66 | * | ||
67 | * Note that the exact number of fsl stages is device-dependent, there 5 on the | ||
68 | * fuze+, 3 on the NWZs for example. | ||
69 | * | ||
70 | * The fsl3 decides which stage to boot based on the following logic (order is | ||
71 | * important): | ||
72 | * - if P1[18] is 0, it goes to fsl4, to perform a firmware upgrade | ||
73 | * - if usb is plugged, it goes to host, the OF USB mode | ||
74 | * - if P1[22] is 1, it requires the user to hold the power button for small | ||
75 | * delay and aborts boot if this is not the case | ||
76 | * - it goes to play, the OF normal firmware | ||
77 | * | ||
78 | * The fsl4 (updater) performs the following action: | ||
79 | * - it clears P1[18] so that next boot will be a normal boot (ie NOT updater) | ||
80 | * - if firmware.sb does not exist or is invalid, it reboots | ||
81 | * - if the battery is too low for an upgrade, it sets P3[16] | ||
82 | * otherwise, it performs a firmware upgrade and clear P1[22] | ||
83 | * - it shutdowns | ||
84 | * | ||
85 | * The play (firmware) performs the following actions: | ||
86 | * - if P1[22] is 0 or P3[12] is 1, it rebuilds the store (the 'loading' screen) | ||
87 | * and set P1[22] to 1 and P3[12] to 0 | ||
88 | * - if P3[16] is 1, it displays a 'battery was too low to upgrade' message | ||
89 | * and clears P3[16] | ||
90 | * - if P3[10] is 0, it displays a 'firmware was successfully upgraded' message | ||
91 | * and sets P3[10] to 1 | ||
92 | * - it performs its usual (crappy) functions | ||
93 | * | ||
94 | * The host (USB) performs the following actions: | ||
95 | * - it clears P1[18] so that the next boot will run the updater | ||
96 | * - it sets P3[11] to 1 so that the device will reboot without user intervention | ||
97 | * at the end | ||
98 | * - if the host modifies the internal drive or micro-SD card, it sets P3[12] | ||
99 | * to 1 and clears P1[22] | ||
100 | * - after USB is unplugged, it reboots | ||
101 | * | ||
102 | * Thus a typical firmware upgrade sequence will look like this: | ||
103 | * - initially, the main firmware is running and flags are in the following state: | ||
104 | * P1[18] = 1 (normal boot) | ||
105 | * P1[22] = 1 (store is clean) | ||
106 | * P3[10] = 1 (firmware has not been upgraded) | ||
107 | * P3[11] = 0 (user needs to hold power button to boot) | ||
108 | * P3[12] = 0 (drive is clean) | ||
109 | * - the user plugs the USB cable, play reboots, fsl3 boots to host because | ||
110 | * P1[18] = 1, the users put firmware.sb on the drive, thus modifying its | ||
111 | * content and then unplugs the drive; the device reboots with the following | ||
112 | * flags: | ||
113 | * P1[18] = 0 (updater boot) | ||
114 | * P1[22] = 0 (store is dirty) | ||
115 | * P3[10] = 1 (firmware has not been upgraded) | ||
116 | * P3[11] = 1 (user does not needs to hold power button to boot) | ||
117 | * P3[12] = 1 (drive is dirty) | ||
118 | * - fsl3 boots to the updater because P1[18] = 0, the updater sees firmware.sb | ||
119 | * and performs a firmware upgrade; the device then shutdowns with the following | ||
120 | * flags: | ||
121 | * P1[18] = 1 (normal boot) | ||
122 | * P1[22] = 0 (store is dirty) | ||
123 | * P3[10] = 0 (firmware has been upgraded) | ||
124 | * P3[11] = 1 (user does not needs to hold power button to boot) | ||
125 | * P3[12] = 1 (drive is dirty) | ||
126 | * - the user presses the power button, fsl3 boots to play (firmware) because | ||
127 | * P1[18] = 1, it rebuilds the store because P1[22] is clear, it then display | ||
128 | * a message to the user saying that the firmware has been upgraded because | ||
129 | * P3[10] is 0, and it resets the flags to same state as initially | ||
130 | * | ||
131 | * Note that the OF is lazy: it reboots to updater after USB mode in all cases | ||
132 | * (even if firmware.sb was not present). In this case, the updater simply clears | ||
133 | * the update flags and reboot immediately, thus it looks like a normal boot. | ||
134 | * | ||
135 | * | ||
136 | * To support firmware upgrades in Rockbox, we need to two things: | ||
137 | * - a way to tell rb (rockbox dual stub) to continue to fsl3 instead of booting | ||
138 | * rock (our bootloader) | ||
139 | * - a way to setup the persistent bits so that fsl3 will boot to fsl4 (updater) | ||
140 | * instead of booting host (usb) or play (firmware) | ||
141 | * | ||
142 | * The approach taken is to use PERSISTENT5 to tell the dualboot stub what we want | ||
143 | * to do. Since previous dualboot stubs did not support this, and that other actions | ||
144 | * may be added in the future, the registers stores both the capabilities of the | ||
145 | * dualboot stub (so that Rockbox can read them) and the actions that the dualboot | ||
146 | * stub must perform (so that Rockbox can write them). The register is encoded | ||
147 | * so that older/random values will be detected as garbage by newer Rockbox and | ||
148 | * dualboot stub, and that a value of 0 for a field always behaves as when it did | ||
149 | * not exist. More precisely, the bottom 16-bit must be 'RB' and | ||
150 | * the top 16-bit store the actual data. The following fields are currently defined: | ||
151 | * - CAP_BOOT(1 bit): supports booting to OF and UPDATER using the BOOT field | ||
152 | * - BOOT(2 bits): sets boot mode | ||
153 | * | ||
154 | * At the moment, BOOT supports three values: | ||
155 | * - IMX233_BOOT_NORMAL: the dualboot will do a normal boot (booting to Rockbox | ||
156 | * unless the user presses the magic button that boots to the OF) | ||
157 | * - IMX233_BOOT_OF: the dualboot stub will continue booting with fsl3 instead | ||
158 | * of Rockbox, but it will not touch any of OF persistent bits (this is useful | ||
159 | * to simply reboot to the OF for example) | ||
160 | * - IMX233_BOOT_UPDATER: the dualboot will setup OF persistents bits and | ||
161 | * continue so that fsl3 enters fsl4 (updater) | ||
162 | * In this scheme, Rockbox does not have to care about how exactly those actions | ||
163 | * are achieved, only the dualboot stub has to deal with the persistent bits. | ||
164 | * When the dualboot stubs see either OF or UPDATER, it clears BOOT back | ||
165 | * to NORMAL before continuing, so as to avoid any boot loop. | ||
166 | * | ||
167 | */ | ||
168 | |||
169 | #include "regs/rtc.h" | ||
170 | |||
171 | /* the persistent register we use */ | ||
172 | #define REG_DUALBOOT HW_RTC_PERSISTENT5 | ||
173 | /* the bottom 16-bit are a magic value to indicate that the content is valid */ | ||
174 | #define MAGIC_MASK 0xffff | ||
175 | #define MAGIC_VALUE ('R' | 'B' << 8) | ||
176 | /* CAP_BOOT: 1-bit (16) */ | ||
177 | #define CAP_BOOT_POS 16 | ||
178 | #define CAP_BOOT_MASK (1 << 16) | ||
179 | /* BOOT field: 2-bits (18-17) */ | ||
180 | #define BOOT_POS 17 | ||
181 | #define BOOT_MASK (3 << 17) | ||
182 | |||
183 | unsigned imx233_dualboot_get_field(enum imx233_dualboot_field_t field) | ||
184 | { | ||
185 | unsigned val = HW_RTC_PERSISTENT5; | ||
186 | /* if signature doesn't match, assume everything is 0 */ | ||
187 | if((val & MAGIC_MASK) != MAGIC_VALUE) | ||
188 | return 0; | ||
189 | #define match(field) \ | ||
190 | case DUALBOOT_##field: return ((val & field##_MASK) >> field##_POS); | ||
191 | switch(field) | ||
192 | { | ||
193 | match(CAP_BOOT) | ||
194 | match(BOOT) | ||
195 | default: return 0; /* unknown */ | ||
196 | } | ||
197 | #undef match | ||
198 | } | ||
199 | |||
200 | void imx233_dualboot_set_field(enum imx233_dualboot_field_t field, unsigned fval) | ||
201 | { | ||
202 | unsigned val = HW_RTC_PERSISTENT5; | ||
203 | /* if signature doesn't match, create an empty register */ | ||
204 | if((val & MAGIC_MASK) != MAGIC_VALUE) | ||
205 | val = MAGIC_VALUE; /* all field are 0 */ | ||
206 | #define match(field) \ | ||
207 | case DUALBOOT_##field: \ | ||
208 | val &= ~field##_MASK; \ | ||
209 | val |= (fval << field##_POS) & field##_MASK; \ | ||
210 | break; | ||
211 | switch(field) | ||
212 | { | ||
213 | match(CAP_BOOT) | ||
214 | match(BOOT) | ||
215 | default: break; | ||
216 | } | ||
217 | HW_RTC_PERSISTENT5 = val; | ||
218 | #undef match | ||
219 | } | ||
220 | |||
221 | #endif /* HAVE_DUALBOOT_STUB */ | ||
diff --git a/firmware/target/arm/imx233/dualboot-imx233.h b/firmware/target/arm/imx233/dualboot-imx233.h new file mode 100644 index 0000000000..59b6b2f93c --- /dev/null +++ b/firmware/target/arm/imx233/dualboot-imx233.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright © 2011 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef DUALBOOT_IMX233_H | ||
22 | #define DUALBOOT_IMX233_H | ||
23 | |||
24 | #include "config.h" | ||
25 | |||
26 | /* IMPORTANT NOTE This file is used by both Rockbox (firmware and bootloader) | ||
27 | * and the dualboot stub. The stub #include this file directly with | ||
28 | * COMPILE_DUALBOOT_STUB defined, so make sure this file is independent and does | ||
29 | * not requires anything from the firmware */ | ||
30 | #ifndef COMPILE_DUALBOOT_STUB | ||
31 | #include "stdint.h" | ||
32 | #endif | ||
33 | |||
34 | #ifdef HAVE_DUALBOOT_STUB | ||
35 | /* See dualboot-imx233.c for documentation */ | ||
36 | |||
37 | enum imx233_dualboot_field_t | ||
38 | { | ||
39 | DUALBOOT_CAP_BOOT, /* boot capability: 1 => BOOT field supports OF and UPDATER */ | ||
40 | DUALBOOT_BOOT, /* boot mode: IMX23_BOOT_x */ | ||
41 | }; | ||
42 | |||
43 | #define IMX233_BOOT_NORMAL 0 /* boot Rockbox (or OF if magic button) */ | ||
44 | #define IMX233_BOOT_OF 1 /* boot OF */ | ||
45 | #define IMX233_BOOT_UPDATER 2 /* boot updater */ | ||
46 | |||
47 | /* get field value (or 0 if not present) */ | ||
48 | unsigned imx233_dualboot_get_field(enum imx233_dualboot_field_t field); | ||
49 | /* write field value */ | ||
50 | void imx233_dualboot_set_field(enum imx233_dualboot_field_t field, unsigned val); | ||
51 | #endif /* HAVE_DUALBOOT_STUB */ | ||
52 | |||
53 | #endif /* DUALBOOT_IMX233_H */ | ||
diff --git a/rbutil/mkimxboot/dualboot.c b/rbutil/mkimxboot/dualboot.c index acca11f471..dd43a63d2d 100644 --- a/rbutil/mkimxboot/dualboot.c +++ b/rbutil/mkimxboot/dualboot.c | |||
@@ -2,90 +2,154 @@ | |||
2 | 2 | ||
3 | #include "dualboot.h" | 3 | #include "dualboot.h" |
4 | 4 | ||
5 | unsigned char dualboot_fuzeplus[460] = { | 5 | unsigned char dualboot_fuzeplus[728] = { |
6 | 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x30, 0x00, 0x2d, 0xe9, | 6 | 0x10, 0x40, 0x2d, 0xe9, 0x30, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x40, 0x30, 0x9f, 0xe5, |
7 | 0x01, 0x50, 0xa0, 0xe1, 0x94, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0x34, 0x00, 0x00, 0x1a, | 7 | 0xb0, 0x30, 0x93, 0xe5, 0x03, 0x18, 0xa0, 0xe1, 0x21, 0x18, 0xa0, 0xe1, 0x34, 0x20, 0x9f, 0xe5, |
8 | 0x8c, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, | 8 | 0x02, 0x00, 0x51, 0xe1, 0x08, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x38, 0x03, 0x02, |
9 | 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, 0x02, 0x21, 0x82, 0xe3, | 9 | 0x23, 0x08, 0xa0, 0x01, 0x1e, 0xff, 0x2f, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, |
10 | 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, | 10 | 0x06, 0x38, 0x03, 0xe2, 0xa3, 0x08, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3, |
11 | 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, | 11 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x04, 0x40, 0x2d, 0xe5, |
12 | 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0x01, 0x26, 0xa0, 0xe3, 0xd4, 0x20, 0x83, 0xe5, | 12 | 0x5c, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x92, 0xe5, 0x03, 0x48, 0xa0, 0xe1, 0x24, 0x48, 0xa0, 0xe1, |
13 | 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, 0x03, 0x18, 0xc1, 0xe3, 0x02, 0x18, 0x81, 0xe3, | 13 | 0x50, 0x20, 0x9f, 0xe5, 0x02, 0x00, 0x54, 0xe1, 0x02, 0x30, 0xa0, 0x11, 0x00, 0x00, 0x50, 0xe3, |
14 | 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, 0x30, 0x10, 0x93, 0xe5, 0x0f, 0x1c, 0xc1, 0xe3, | 14 | 0x02, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x50, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0xea, |
15 | 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x30, 0x10, 0x93, 0xe5, 0x3f, 0x10, 0xc1, 0xe3, | 15 | 0x01, 0x38, 0xc3, 0xe3, 0x01, 0x18, 0xa0, 0xe1, 0x01, 0x18, 0x01, 0xe2, 0x01, 0x30, 0x83, 0xe1, |
16 | 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x01, 0x18, 0xa0, 0xe3, 0x38, 0x10, 0x83, 0xe5, | 16 | 0x03, 0x00, 0x00, 0xea, 0x06, 0x38, 0xc3, 0xe3, 0x81, 0x18, 0xa0, 0xe1, 0x06, 0x18, 0x01, 0xe2, |
17 | 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, 0x80, 0x10, 0x83, 0xe5, 0x18, 0x20, 0x83, 0xe5, | 17 | 0x01, 0x30, 0x83, 0xe1, 0x08, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x82, 0xe5, 0x10, 0x00, 0xbd, 0xe8, |
18 | 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0x10, 0x20, 0x83, 0xe5, | 18 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x70, 0x40, 0x2d, 0xe9, |
19 | 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, 0x01, 0x2a, 0x82, 0xe3, | 19 | 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0xd8, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, |
20 | 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, | 20 | 0x34, 0x00, 0x00, 0x1a, 0xd0, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, |
21 | 0xf8, 0xff, 0xff, 0xea, 0xbc, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x3f, 0x34, 0x03, 0xe2, | 21 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, |
22 | 0x23, 0x3c, 0xa0, 0xe1, 0x20, 0x00, 0x13, 0xe3, 0x01, 0x30, 0xa0, 0x13, 0x02, 0x00, 0x00, 0x1a, | 22 | 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, |
23 | 0x10, 0x00, 0x13, 0xe3, 0x02, 0x30, 0xa0, 0x13, 0x00, 0x30, 0xa0, 0x03, 0x98, 0x20, 0x9f, 0xe5, | 23 | 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, |
24 | 0x10, 0x26, 0x92, 0xe5, 0x01, 0x01, 0x12, 0xe3, 0x10, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x53, 0xe3, | 24 | 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0x01, 0x26, 0xa0, 0xe3, |
25 | 0x11, 0x00, 0x00, 0x1a, 0x03, 0x40, 0xa0, 0xe1, 0x78, 0x10, 0x9f, 0xe5, 0x7c, 0xc0, 0x9f, 0xe5, | 25 | 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, 0x03, 0x18, 0xc1, 0xe3, |
26 | 0xc0, 0x20, 0x91, 0xe5, 0x03, 0x26, 0x02, 0xe2, 0x01, 0x06, 0x52, 0xe3, 0x01, 0x40, 0x84, 0x02, | 26 | 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, 0x30, 0x10, 0x93, 0xe5, |
27 | 0x01, 0x30, 0x83, 0xe2, 0x0c, 0x00, 0x53, 0xe1, 0xf8, 0xff, 0xff, 0x1a, 0x60, 0x30, 0x9f, 0xe5, | 27 | 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x30, 0x10, 0x93, 0xe5, |
28 | 0x03, 0x00, 0x54, 0xe1, 0x04, 0x00, 0x00, 0xca, 0x06, 0x00, 0x00, 0xea, 0xfe, 0xff, 0xff, 0xea, | 28 | 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x01, 0x18, 0xa0, 0xe3, |
29 | 0x00, 0x00, 0xa0, 0xe3, 0x30, 0x00, 0xbd, 0xe8, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x85, 0xe5, | 29 | 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, 0x80, 0x10, 0x83, 0xe5, |
30 | 0x01, 0x00, 0xa0, 0xe3, 0xfa, 0xff, 0xff, 0xea, 0x2c, 0x30, 0x9f, 0xe5, 0x03, 0x27, 0xa0, 0xe3, | 30 | 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, |
31 | 0x04, 0x21, 0x83, 0xe5, 0x02, 0x2c, 0xa0, 0xe3, 0x00, 0x27, 0x83, 0xe5, 0x00, 0x25, 0x83, 0xe5, | 31 | 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, |
32 | 0x20, 0x20, 0x9f, 0xe5, 0x0b, 0x39, 0x83, 0xe2, 0x00, 0x21, 0x83, 0xe5, 0xee, 0xff, 0xff, 0xea, | 32 | 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, |
33 | 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x00, 0x80, 0x01, 0x80, | 33 | 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, |
34 | 0x70, 0x64, 0x08, 0x00, 0x7f, 0x1a, 0x06, 0x00, 0x01, 0x00, 0xff, 0xff | 34 | 0xa5, 0xff, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x8f, 0xff, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1, |
35 | 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x9f, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x55, 0xe3, | ||
36 | 0x25, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x55, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x01, 0x27, 0xa0, 0xe3, | ||
37 | 0xc8, 0x30, 0x9f, 0xe5, 0x78, 0x20, 0x83, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, | ||
38 | 0xbc, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x3f, 0x34, 0x03, 0xe2, 0x23, 0x3c, 0xa0, 0xe1, | ||
39 | 0x20, 0x00, 0x13, 0xe3, 0x01, 0x30, 0xa0, 0x13, 0x02, 0x00, 0x00, 0x1a, 0x10, 0x00, 0x13, 0xe3, | ||
40 | 0x02, 0x30, 0xa0, 0x13, 0x00, 0x30, 0xa0, 0x03, 0x98, 0x20, 0x9f, 0xe5, 0x10, 0x26, 0x92, 0xe5, | ||
41 | 0x01, 0x01, 0x12, 0xe3, 0x10, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x53, 0xe3, 0x10, 0x00, 0x00, 0x1a, | ||
42 | 0x03, 0x20, 0xa0, 0xe1, 0x78, 0x00, 0x9f, 0xe5, 0x7c, 0x10, 0x9f, 0xe5, 0xc0, 0xc0, 0x90, 0xe5, | ||
43 | 0x03, 0xc6, 0x0c, 0xe2, 0x01, 0x06, 0x5c, 0xe3, 0x01, 0x20, 0x82, 0x02, 0x01, 0x30, 0x83, 0xe2, | ||
44 | 0x01, 0x00, 0x53, 0xe1, 0xf8, 0xff, 0xff, 0x1a, 0x60, 0x30, 0x9f, 0xe5, 0x03, 0x00, 0x52, 0xe1, | ||
45 | 0x03, 0x00, 0x00, 0xca, 0x05, 0x00, 0x00, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, | ||
46 | 0x70, 0x80, 0xbd, 0xe8, 0x00, 0x40, 0x86, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, | ||
47 | 0x30, 0x30, 0x9f, 0xe5, 0x03, 0x27, 0xa0, 0xe3, 0x04, 0x21, 0x83, 0xe5, 0x02, 0x2c, 0xa0, 0xe3, | ||
48 | 0x00, 0x27, 0x83, 0xe5, 0x00, 0x25, 0x83, 0xe5, 0x24, 0x20, 0x9f, 0xe5, 0x0b, 0x39, 0x83, 0xe2, | ||
49 | 0x00, 0x21, 0x83, 0xe5, 0xef, 0xff, 0xff, 0xea, 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, | ||
50 | 0x00, 0xc0, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x00, 0x80, 0x01, 0x80, 0x70, 0x64, 0x08, 0x00, | ||
51 | 0x7f, 0x1a, 0x06, 0x00, 0x01, 0x00, 0xff, 0xff | ||
35 | }; | 52 | }; |
36 | unsigned char dualboot_zenxfi2[328] = { | 53 | unsigned char dualboot_zenxfi2[608] = { |
37 | 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x24, 0x31, 0x9f, 0xe5, | 54 | 0x10, 0x40, 0x2d, 0xe9, 0x30, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x40, 0x30, 0x9f, 0xe5, |
38 | 0x03, 0x00, 0x50, 0xe1, 0x34, 0x00, 0x00, 0x1a, 0x1c, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, | 55 | 0xb0, 0x30, 0x93, 0xe5, 0x03, 0x18, 0xa0, 0xe1, 0x21, 0x18, 0xa0, 0xe1, 0x34, 0x20, 0x9f, 0xe5, |
39 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 56 | 0x02, 0x00, 0x51, 0xe1, 0x08, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x38, 0x03, 0x02, |
40 | 0xff, 0x24, 0xc2, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 57 | 0x23, 0x08, 0xa0, 0x01, 0x1e, 0xff, 0x2f, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, |
41 | 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 58 | 0x06, 0x38, 0x03, 0xe2, 0xa3, 0x08, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3, |
42 | 0x7f, 0x2e, 0xc2, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, | 59 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x04, 0x40, 0x2d, 0xe5, |
43 | 0x01, 0x26, 0xa0, 0xe3, 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, | 60 | 0x5c, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x92, 0xe5, 0x03, 0x48, 0xa0, 0xe1, 0x24, 0x48, 0xa0, 0xe1, |
44 | 0x03, 0x18, 0xc1, 0xe3, 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, | 61 | 0x50, 0x20, 0x9f, 0xe5, 0x02, 0x00, 0x54, 0xe1, 0x02, 0x30, 0xa0, 0x11, 0x00, 0x00, 0x50, 0xe3, |
45 | 0x30, 0x10, 0x93, 0xe5, 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, | 62 | 0x02, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x50, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0xea, |
46 | 0x30, 0x10, 0x93, 0xe5, 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, | 63 | 0x01, 0x38, 0xc3, 0xe3, 0x01, 0x18, 0xa0, 0xe1, 0x01, 0x18, 0x01, 0xe2, 0x01, 0x30, 0x83, 0xe1, |
47 | 0x01, 0x18, 0xa0, 0xe3, 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, | 64 | 0x03, 0x00, 0x00, 0xea, 0x06, 0x38, 0xc3, 0xe3, 0x81, 0x18, 0xa0, 0xe1, 0x06, 0x18, 0x01, 0xe2, |
48 | 0x80, 0x10, 0x83, 0xe5, 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, | 65 | 0x01, 0x30, 0x83, 0xe1, 0x08, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x82, 0xe5, 0x10, 0x00, 0xbd, 0xe8, |
49 | 0x01, 0x28, 0x82, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, | 66 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x70, 0x40, 0x2d, 0xe9, |
50 | 0x20, 0x20, 0x93, 0xe5, 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, | 67 | 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x6c, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, |
51 | 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x4c, 0x30, 0x9f, 0xe5, | 68 | 0x34, 0x00, 0x00, 0x1a, 0x64, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, |
52 | 0xc0, 0x30, 0x93, 0xe5, 0x02, 0x02, 0x13, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x40, 0x30, 0x9f, 0xe5, | 69 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, |
53 | 0x00, 0x36, 0x93, 0xe5, 0x01, 0x09, 0x13, 0xe3, 0x08, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x00, 0xea, | 70 | 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, |
54 | 0x28, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x03, 0x36, 0x03, 0xe2, 0x01, 0x06, 0x53, 0xe3, | 71 | 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, |
55 | 0x02, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x81, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, | 72 | 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0x01, 0x26, 0xa0, 0xe3, |
56 | 0x00, 0x00, 0xa0, 0xe3, 0x1e, 0xff, 0x2f, 0xe1, 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, | 73 | 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, 0x03, 0x18, 0xc1, 0xe3, |
57 | 0x00, 0x40, 0x04, 0x80, 0x00, 0x80, 0x01, 0x80 | 74 | 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, 0x30, 0x10, 0x93, 0xe5, |
75 | 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x30, 0x10, 0x93, 0xe5, | ||
76 | 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x01, 0x18, 0xa0, 0xe3, | ||
77 | 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, 0x80, 0x10, 0x83, 0xe5, | ||
78 | 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, | ||
79 | 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, | ||
80 | 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, | ||
81 | 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, | ||
82 | 0xa5, 0xff, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x8f, 0xff, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1, | ||
83 | 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x9f, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x55, 0xe3, | ||
84 | 0x17, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x55, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x01, 0x27, 0xa0, 0xe3, | ||
85 | 0x5c, 0x30, 0x9f, 0xe5, 0x78, 0x20, 0x83, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, | ||
86 | 0x50, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x02, 0x02, 0x13, 0xe3, 0x04, 0x00, 0x00, 0x1a, | ||
87 | 0x44, 0x30, 0x9f, 0xe5, 0x00, 0x36, 0x93, 0xe5, 0x01, 0x09, 0x13, 0xe3, 0x08, 0x00, 0x00, 0x0a, | ||
88 | 0x04, 0x00, 0x00, 0xea, 0x2c, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x03, 0x36, 0x03, 0xe2, | ||
89 | 0x01, 0x06, 0x53, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x40, 0x86, 0xe5, 0x01, 0x00, 0xa0, 0xe3, | ||
90 | 0x70, 0x80, 0xbd, 0xe8, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, 0x63, 0x68, 0x72, 0x67, | ||
91 | 0x00, 0x00, 0x05, 0x80, 0x00, 0xc0, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x00, 0x80, 0x01, 0x80 | ||
58 | }; | 92 | }; |
59 | unsigned char dualboot_zenxfi3[288] = { | 93 | unsigned char dualboot_zenxfi3[572] = { |
60 | 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0xfc, 0x30, 0x9f, 0xe5, | 94 | 0x10, 0x40, 0x2d, 0xe9, 0x30, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x40, 0x30, 0x9f, 0xe5, |
61 | 0x03, 0x00, 0x50, 0xe1, 0x34, 0x00, 0x00, 0x1a, 0xf4, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, | 95 | 0xb0, 0x30, 0x93, 0xe5, 0x03, 0x18, 0xa0, 0xe1, 0x21, 0x18, 0xa0, 0xe1, 0x34, 0x20, 0x9f, 0xe5, |
62 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 96 | 0x02, 0x00, 0x51, 0xe1, 0x08, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x38, 0x03, 0x02, |
63 | 0xff, 0x24, 0xc2, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 97 | 0x23, 0x08, 0xa0, 0x01, 0x1e, 0xff, 0x2f, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, |
64 | 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 98 | 0x06, 0x38, 0x03, 0xe2, 0xa3, 0x08, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3, |
65 | 0x7f, 0x2e, 0xc2, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, | 99 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x04, 0x40, 0x2d, 0xe5, |
66 | 0x01, 0x26, 0xa0, 0xe3, 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, | 100 | 0x5c, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x92, 0xe5, 0x03, 0x48, 0xa0, 0xe1, 0x24, 0x48, 0xa0, 0xe1, |
67 | 0x03, 0x18, 0xc1, 0xe3, 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, | 101 | 0x50, 0x20, 0x9f, 0xe5, 0x02, 0x00, 0x54, 0xe1, 0x02, 0x30, 0xa0, 0x11, 0x00, 0x00, 0x50, 0xe3, |
68 | 0x30, 0x10, 0x93, 0xe5, 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, | 102 | 0x02, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x50, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0xea, |
69 | 0x30, 0x10, 0x93, 0xe5, 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, | 103 | 0x01, 0x38, 0xc3, 0xe3, 0x01, 0x18, 0xa0, 0xe1, 0x01, 0x18, 0x01, 0xe2, 0x01, 0x30, 0x83, 0xe1, |
70 | 0x01, 0x18, 0xa0, 0xe3, 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, | 104 | 0x03, 0x00, 0x00, 0xea, 0x06, 0x38, 0xc3, 0xe3, 0x81, 0x18, 0xa0, 0xe1, 0x06, 0x18, 0x01, 0xe2, |
71 | 0x80, 0x10, 0x83, 0xe5, 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, | 105 | 0x01, 0x30, 0x83, 0xe1, 0x08, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x82, 0xe5, 0x10, 0x00, 0xbd, 0xe8, |
72 | 0x01, 0x28, 0x82, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, | 106 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x70, 0x40, 0x2d, 0xe9, |
73 | 0x20, 0x20, 0x93, 0xe5, 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, | 107 | 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0x48, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, |
74 | 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x24, 0x30, 0x9f, 0xe5, | 108 | 0x34, 0x00, 0x00, 0x1a, 0x40, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, |
75 | 0xc0, 0x30, 0x93, 0xe5, 0x20, 0x30, 0x9f, 0xe5, 0x20, 0x36, 0x93, 0xe5, 0x80, 0x00, 0x13, 0xe3, | 109 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, |
76 | 0x00, 0x00, 0xa0, 0x03, 0x00, 0x00, 0x81, 0x15, 0x01, 0x00, 0xa0, 0x13, 0x1e, 0xff, 0x2f, 0xe1, | 110 | 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, |
77 | 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x00, 0x80, 0x01, 0x80 | 111 | 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, |
112 | 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0x01, 0x26, 0xa0, 0xe3, | ||
113 | 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, 0x03, 0x18, 0xc1, 0xe3, | ||
114 | 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, 0x30, 0x10, 0x93, 0xe5, | ||
115 | 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x30, 0x10, 0x93, 0xe5, | ||
116 | 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x01, 0x18, 0xa0, 0xe3, | ||
117 | 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, 0x80, 0x10, 0x83, 0xe5, | ||
118 | 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, | ||
119 | 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, | ||
120 | 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, | ||
121 | 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, | ||
122 | 0xa5, 0xff, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x8f, 0xff, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1, | ||
123 | 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x9f, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x55, 0xe3, | ||
124 | 0x0e, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x55, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x01, 0x27, 0xa0, 0xe3, | ||
125 | 0x38, 0x30, 0x9f, 0xe5, 0x78, 0x20, 0x83, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, | ||
126 | 0x2c, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x28, 0x30, 0x9f, 0xe5, 0x20, 0x36, 0x93, 0xe5, | ||
127 | 0x80, 0x00, 0x13, 0xe3, 0x00, 0x40, 0x86, 0x15, 0x01, 0x00, 0xa0, 0x13, 0x70, 0x80, 0xbd, 0x18, | ||
128 | 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, | ||
129 | 0x00, 0xc0, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x00, 0x80, 0x01, 0x80 | ||
78 | }; | 130 | }; |
79 | unsigned char dualboot_nwze370[628] = { | 131 | unsigned char dualboot_nwze370[896] = { |
80 | 0x10, 0x40, 0x2d, 0xe9, 0x18, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x54, 0x30, 0x9f, 0xe5, | 132 | 0x10, 0x40, 0x2d, 0xe9, 0x48, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x40, 0x30, 0x9f, 0xe5, |
133 | 0xb0, 0x30, 0x93, 0xe5, 0x03, 0x18, 0xa0, 0xe1, 0x21, 0x18, 0xa0, 0xe1, 0x34, 0x20, 0x9f, 0xe5, | ||
134 | 0x02, 0x00, 0x51, 0xe1, 0x08, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x38, 0x03, 0x02, | ||
135 | 0x23, 0x08, 0xa0, 0x01, 0x1e, 0xff, 0x2f, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, | ||
136 | 0x06, 0x38, 0x03, 0xe2, 0xa3, 0x08, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3, | ||
137 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x04, 0x40, 0x2d, 0xe5, | ||
138 | 0x5c, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x92, 0xe5, 0x03, 0x48, 0xa0, 0xe1, 0x24, 0x48, 0xa0, 0xe1, | ||
139 | 0x50, 0x20, 0x9f, 0xe5, 0x02, 0x00, 0x54, 0xe1, 0x02, 0x30, 0xa0, 0x11, 0x00, 0x00, 0x50, 0xe3, | ||
140 | 0x02, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x50, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0xea, | ||
141 | 0x01, 0x38, 0xc3, 0xe3, 0x01, 0x18, 0xa0, 0xe1, 0x01, 0x18, 0x01, 0xe2, 0x01, 0x30, 0x83, 0xe1, | ||
142 | 0x03, 0x00, 0x00, 0xea, 0x06, 0x38, 0xc3, 0xe3, 0x81, 0x18, 0xa0, 0xe1, 0x06, 0x18, 0x01, 0xe2, | ||
143 | 0x01, 0x30, 0x83, 0xe1, 0x08, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x82, 0xe5, 0x10, 0x00, 0xbd, 0xe8, | ||
144 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x54, 0x30, 0x9f, 0xe5, | ||
81 | 0x01, 0x20, 0xa0, 0xe3, 0x18, 0x20, 0x83, 0xe5, 0x04, 0x20, 0x83, 0xe5, 0x03, 0x20, 0xa0, 0xe1, | 145 | 0x01, 0x20, 0xa0, 0xe3, 0x18, 0x20, 0x83, 0xe5, 0x04, 0x20, 0x83, 0xe5, 0x03, 0x20, 0xa0, 0xe1, |
82 | 0x10, 0x30, 0x92, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x34, 0x30, 0x9f, 0xe5, | 146 | 0x10, 0x30, 0x92, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x34, 0x30, 0x9f, 0xe5, |
83 | 0x50, 0x00, 0x93, 0xe5, 0xff, 0x04, 0xc0, 0xe3, 0x3f, 0x07, 0xc0, 0xe3, 0x41, 0x3e, 0x40, 0xe2, | 147 | 0x50, 0x00, 0x93, 0xe5, 0xff, 0x04, 0xc0, 0xe3, 0x3f, 0x07, 0xc0, 0xe3, 0x41, 0x3e, 0x40, 0xe2, |
84 | 0x0a, 0x30, 0x43, 0xe2, 0x63, 0x00, 0x53, 0xe3, 0x02, 0x00, 0xa0, 0x93, 0x1e, 0xff, 0x2f, 0x91, | 148 | 0x0a, 0x30, 0x43, 0xe2, 0x63, 0x00, 0x53, 0xe3, 0x02, 0x00, 0xa0, 0x93, 0x1e, 0xff, 0x2f, 0x91, |
85 | 0x16, 0x0d, 0x40, 0xe2, 0x0c, 0x00, 0x40, 0xe2, 0x63, 0x00, 0x50, 0xe3, 0x00, 0x00, 0xa0, 0x83, | 149 | 0x16, 0x0d, 0x40, 0xe2, 0x0c, 0x00, 0x40, 0xe2, 0x63, 0x00, 0x50, 0xe3, 0x00, 0x00, 0xa0, 0x83, |
86 | 0x01, 0x00, 0xa0, 0x93, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x05, 0x80, 0xf0, 0x41, 0x2d, 0xe9, | 150 | 0x01, 0x00, 0xa0, 0x93, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x05, 0x80, 0xf0, 0x41, 0x2d, 0xe9, |
87 | 0x00, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0xe0, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, | 151 | 0x00, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, 0x28, 0x32, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, |
88 | 0x34, 0x00, 0x00, 0x1a, 0xd8, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, | 152 | 0x34, 0x00, 0x00, 0x1a, 0x20, 0x32, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, |
89 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, | 153 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, |
90 | 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, | 154 | 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, |
91 | 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, | 155 | 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, |
@@ -98,28 +162,44 @@ unsigned char dualboot_nwze370[628] = { | |||
98 | 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, | 162 | 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, |
99 | 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, | 163 | 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, |
100 | 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, | 164 | 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, |
101 | 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x08, 0x31, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, | 165 | 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, |
102 | 0x3f, 0x34, 0x03, 0xe2, 0x23, 0x3c, 0xa0, 0xe1, 0x20, 0x00, 0x13, 0xe3, 0x01, 0x00, 0x00, 0x1a, | 166 | 0x8d, 0xff, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x77, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, |
103 | 0x10, 0x00, 0x13, 0xe3, 0x24, 0x00, 0x00, 0x0a, 0xe4, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, | 167 | 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x87, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x54, 0xe3, |
104 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, | 168 | 0x31, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x54, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x01, 0x27, 0xa0, 0xe3, |
105 | 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, | 169 | 0x18, 0x31, 0x9f, 0xe5, 0x78, 0x20, 0x83, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, |
106 | 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, 0x96, 0xff, 0xff, 0xeb, | 170 | 0x0c, 0x31, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x3f, 0x34, 0x03, 0xe2, 0x23, 0x3c, 0xa0, 0xe1, |
107 | 0x00, 0x40, 0x50, 0xe2, 0x06, 0x00, 0x00, 0x1a, 0x0a, 0x00, 0x00, 0xea, 0x92, 0xff, 0xff, 0xeb, | 171 | 0x20, 0x00, 0x13, 0xe3, 0x01, 0x00, 0x00, 0x1a, 0x10, 0x00, 0x13, 0xe3, 0x24, 0x00, 0x00, 0x0a, |
108 | 0x00, 0x00, 0x54, 0xe1, 0x0a, 0x00, 0x00, 0x1a, 0xc0, 0x30, 0x98, 0xe5, 0x03, 0x00, 0x55, 0xe1, | 172 | 0xe4, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, |
109 | 0xf9, 0xff, 0xff, 0x8a, 0x01, 0x00, 0x54, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x54, 0xe3, | 173 | 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, |
110 | 0x03, 0x00, 0x00, 0x1a, 0x06, 0x00, 0x00, 0xea, 0x00, 0x60, 0x87, 0xe5, 0x01, 0x00, 0xa0, 0xe3, | 174 | 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, |
111 | 0xf0, 0x81, 0xbd, 0xe8, 0x70, 0x20, 0x9f, 0xe5, 0x68, 0x30, 0x9f, 0xe5, 0x00, 0x21, 0x83, 0xe5, | 175 | 0x24, 0x20, 0x83, 0xe5, 0x84, 0xff, 0xff, 0xeb, 0x00, 0x40, 0x50, 0xe2, 0x06, 0x00, 0x00, 0x1a, |
112 | 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, 0x50, 0x30, 0x9f, 0xe5, | 176 | 0x0a, 0x00, 0x00, 0xea, 0x80, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x54, 0xe1, 0x0a, 0x00, 0x00, 0x1a, |
113 | 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, | 177 | 0xc0, 0x30, 0x98, 0xe5, 0x03, 0x00, 0x55, 0xe1, 0xf9, 0xff, 0xff, 0x8a, 0x01, 0x00, 0x54, 0xe3, |
114 | 0x3f, 0x21, 0x82, 0xe2, 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x44, 0x21, 0x83, 0xe5, | 178 | 0x02, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x54, 0xe3, 0x03, 0x00, 0x00, 0x1a, 0x06, 0x00, 0x00, 0xea, |
115 | 0x3f, 0x24, 0x82, 0xe2, 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, | 179 | 0x00, 0x60, 0x87, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, 0x74, 0x20, 0x9f, 0xe5, |
116 | 0x71, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x20, 0x30, 0x9f, 0xe5, 0xc0, 0x50, 0x93, 0xe5, | 180 | 0x6c, 0x30, 0x9f, 0xe5, 0x00, 0x21, 0x83, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, |
117 | 0x3d, 0x59, 0x85, 0xe2, 0x09, 0x5d, 0x85, 0xe2, 0x03, 0x80, 0xa0, 0xe1, 0xd9, 0xff, 0xff, 0xea, | 181 | 0xf0, 0x81, 0xbd, 0xe8, 0x50, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, |
118 | 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x01, 0x00, 0xff, 0xff, | 182 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, 0x48, 0x21, 0x83, 0xe5, |
119 | 0x00, 0xc0, 0x01, 0x80 | 183 | 0x00, 0x20, 0xa0, 0xe3, 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, 0x58, 0x20, 0x83, 0xe5, |
184 | 0xc2, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, 0x5f, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, | ||
185 | 0x24, 0x30, 0x9f, 0xe5, 0xc0, 0x50, 0x93, 0xe5, 0x3d, 0x59, 0x85, 0xe2, 0x09, 0x5d, 0x85, 0xe2, | ||
186 | 0x03, 0x80, 0xa0, 0xe1, 0xd9, 0xff, 0xff, 0xea, 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, | ||
187 | 0x00, 0xc0, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x01, 0x00, 0xff, 0xff, 0x00, 0xc0, 0x01, 0x80 | ||
120 | }; | 188 | }; |
121 | unsigned char dualboot_nwze360[676] = { | 189 | unsigned char dualboot_nwze360[944] = { |
122 | 0x10, 0x40, 0x2d, 0xe9, 0x1e, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x68, 0x30, 0x9f, 0xe5, | 190 | 0x10, 0x40, 0x2d, 0xe9, 0x4e, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x40, 0x30, 0x9f, 0xe5, |
191 | 0xb0, 0x30, 0x93, 0xe5, 0x03, 0x18, 0xa0, 0xe1, 0x21, 0x18, 0xa0, 0xe1, 0x34, 0x20, 0x9f, 0xe5, | ||
192 | 0x02, 0x00, 0x51, 0xe1, 0x08, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x38, 0x03, 0x02, | ||
193 | 0x23, 0x08, 0xa0, 0x01, 0x1e, 0xff, 0x2f, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, | ||
194 | 0x06, 0x38, 0x03, 0xe2, 0xa3, 0x08, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3, | ||
195 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x04, 0x40, 0x2d, 0xe5, | ||
196 | 0x5c, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x92, 0xe5, 0x03, 0x48, 0xa0, 0xe1, 0x24, 0x48, 0xa0, 0xe1, | ||
197 | 0x50, 0x20, 0x9f, 0xe5, 0x02, 0x00, 0x54, 0xe1, 0x02, 0x30, 0xa0, 0x11, 0x00, 0x00, 0x50, 0xe3, | ||
198 | 0x02, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x50, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0xea, | ||
199 | 0x01, 0x38, 0xc3, 0xe3, 0x01, 0x18, 0xa0, 0xe1, 0x01, 0x18, 0x01, 0xe2, 0x01, 0x30, 0x83, 0xe1, | ||
200 | 0x03, 0x00, 0x00, 0xea, 0x06, 0x38, 0xc3, 0xe3, 0x81, 0x18, 0xa0, 0xe1, 0x06, 0x18, 0x01, 0xe2, | ||
201 | 0x01, 0x30, 0x83, 0xe1, 0x08, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x82, 0xe5, 0x10, 0x00, 0xbd, 0xe8, | ||
202 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x68, 0x30, 0x9f, 0xe5, | ||
123 | 0x01, 0x20, 0xa0, 0xe3, 0x18, 0x20, 0x83, 0xe5, 0x04, 0x20, 0x83, 0xe5, 0x03, 0x20, 0xa0, 0xe1, | 203 | 0x01, 0x20, 0xa0, 0xe3, 0x18, 0x20, 0x83, 0xe5, 0x04, 0x20, 0x83, 0xe5, 0x03, 0x20, 0xa0, 0xe1, |
124 | 0x10, 0x30, 0x92, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x48, 0x30, 0x9f, 0xe5, | 204 | 0x10, 0x30, 0x92, 0xe5, 0x01, 0x00, 0x13, 0xe3, 0xfc, 0xff, 0xff, 0x0a, 0x48, 0x30, 0x9f, 0xe5, |
125 | 0x50, 0x30, 0x93, 0xe5, 0x44, 0x20, 0x9f, 0xe5, 0x00, 0x26, 0x92, 0xe5, 0x02, 0x0c, 0x12, 0xe3, | 205 | 0x50, 0x30, 0x93, 0xe5, 0x44, 0x20, 0x9f, 0xe5, 0x00, 0x26, 0x92, 0xe5, 0x02, 0x0c, 0x12, 0xe3, |
@@ -128,7 +208,7 @@ unsigned char dualboot_nwze360[676] = { | |||
128 | 0x1e, 0xff, 0x2f, 0x91, 0x16, 0x3d, 0x43, 0xe2, 0x0c, 0x30, 0x43, 0xe2, 0x63, 0x00, 0x53, 0xe3, | 208 | 0x1e, 0xff, 0x2f, 0x91, 0x16, 0x3d, 0x43, 0xe2, 0x0c, 0x30, 0x43, 0xe2, 0x63, 0x00, 0x53, 0xe3, |
129 | 0x00, 0x00, 0xa0, 0x83, 0x01, 0x00, 0xa0, 0x93, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x05, 0x80, | 209 | 0x00, 0x00, 0xa0, 0x83, 0x01, 0x00, 0xa0, 0x93, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x05, 0x80, |
130 | 0x00, 0x80, 0x01, 0x80, 0xf0, 0x41, 0x2d, 0xe9, 0x00, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, | 210 | 0x00, 0x80, 0x01, 0x80, 0xf0, 0x41, 0x2d, 0xe9, 0x00, 0x60, 0xa0, 0xe1, 0x01, 0x70, 0xa0, 0xe1, |
131 | 0xf8, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0x34, 0x00, 0x00, 0x1a, 0xf0, 0x31, 0x9f, 0xe5, | 211 | 0x40, 0x32, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, 0x34, 0x00, 0x00, 0x1a, 0x38, 0x32, 0x9f, 0xe5, |
132 | 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, | 212 | 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, |
133 | 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, | 213 | 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, |
134 | 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, | 214 | 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, |
@@ -142,50 +222,72 @@ unsigned char dualboot_nwze360[676] = { | |||
142 | 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, | 222 | 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, |
143 | 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, | 223 | 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, |
144 | 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, | 224 | 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, |
145 | 0x20, 0x31, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x3f, 0x34, 0x03, 0xe2, 0x23, 0x3c, 0xa0, 0xe1, | 225 | 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, 0x87, 0xff, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, |
146 | 0x20, 0x00, 0x13, 0xe3, 0x01, 0x00, 0x00, 0x1a, 0x10, 0x00, 0x13, 0xe3, 0x27, 0x00, 0x00, 0x0a, | 226 | 0x71, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, |
147 | 0xfc, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, | 227 | 0x81, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x54, 0xe3, 0x34, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x54, 0xe3, |
148 | 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, | 228 | 0x04, 0x00, 0x00, 0x1a, 0x01, 0x27, 0xa0, 0xe3, 0x30, 0x31, 0x9f, 0xe5, 0x78, 0x20, 0x83, 0xe5, |
149 | 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, | 229 | 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, 0x24, 0x31, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, |
150 | 0x24, 0x20, 0x83, 0xe5, 0x02, 0x2c, 0xa0, 0xe3, 0x0e, 0x39, 0x43, 0xe2, 0x04, 0x24, 0x83, 0xe5, | 230 | 0x3f, 0x34, 0x03, 0xe2, 0x23, 0x3c, 0xa0, 0xe1, 0x20, 0x00, 0x13, 0xe3, 0x01, 0x00, 0x00, 0x1a, |
151 | 0x8d, 0xff, 0xff, 0xeb, 0x00, 0x40, 0x50, 0xe2, 0x06, 0x00, 0x00, 0x1a, 0x0a, 0x00, 0x00, 0xea, | 231 | 0x10, 0x00, 0x13, 0xe3, 0x27, 0x00, 0x00, 0x0a, 0xfc, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, |
152 | 0x89, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x54, 0xe1, 0x0a, 0x00, 0x00, 0x1a, 0xc0, 0x30, 0x98, 0xe5, | 232 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, |
153 | 0x03, 0x00, 0x55, 0xe1, 0xf9, 0xff, 0xff, 0x8a, 0x01, 0x00, 0x54, 0xe3, 0x02, 0x00, 0x00, 0x0a, | 233 | 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, |
154 | 0x02, 0x00, 0x54, 0xe3, 0x03, 0x00, 0x00, 0x1a, 0x06, 0x00, 0x00, 0xea, 0x00, 0x60, 0x87, 0xe5, | 234 | 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, 0x02, 0x2c, 0xa0, 0xe3, |
155 | 0x01, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, 0x7c, 0x20, 0x9f, 0xe5, 0x74, 0x30, 0x9f, 0xe5, | 235 | 0x0e, 0x39, 0x43, 0xe2, 0x04, 0x24, 0x83, 0xe5, 0x7b, 0xff, 0xff, 0xeb, 0x00, 0x40, 0x50, 0xe2, |
156 | 0x00, 0x21, 0x83, 0xe5, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, | 236 | 0x06, 0x00, 0x00, 0x1a, 0x0a, 0x00, 0x00, 0xea, 0x77, 0xff, 0xff, 0xeb, 0x00, 0x00, 0x54, 0xe1, |
157 | 0x5c, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, | 237 | 0x0a, 0x00, 0x00, 0x1a, 0xc0, 0x30, 0x98, 0xe5, 0x03, 0x00, 0x55, 0xe1, 0xf9, 0xff, 0xff, 0x8a, |
158 | 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, | 238 | 0x01, 0x00, 0x54, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x54, 0xe3, 0x03, 0x00, 0x00, 0x1a, |
159 | 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, | 239 | 0x06, 0x00, 0x00, 0xea, 0x00, 0x60, 0x87, 0xe5, 0x01, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, |
160 | 0x24, 0x20, 0x83, 0xe5, 0x02, 0x2c, 0xa0, 0xe3, 0x0e, 0x39, 0x43, 0xe2, 0x04, 0x24, 0x83, 0xe5, | 240 | 0x80, 0x20, 0x9f, 0xe5, 0x78, 0x30, 0x9f, 0xe5, 0x00, 0x21, 0x83, 0xe5, 0xfe, 0xff, 0xff, 0xea, |
161 | 0x65, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, 0x20, 0x30, 0x9f, 0xe5, 0xc0, 0x50, 0x93, 0xe5, | 241 | 0x00, 0x00, 0xa0, 0xe3, 0xf0, 0x81, 0xbd, 0xe8, 0x5c, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, |
162 | 0x3d, 0x59, 0x85, 0xe2, 0x09, 0x5d, 0x85, 0xe2, 0x03, 0x80, 0xa0, 0xe1, 0xd6, 0xff, 0xff, 0xea, | 242 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0x3f, 0x21, 0x82, 0xe2, |
163 | 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x01, 0x00, 0xff, 0xff, | 243 | 0x48, 0x21, 0x83, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0x82, 0xe2, |
164 | 0x00, 0xc0, 0x01, 0x80 | 244 | 0x58, 0x20, 0x83, 0xe5, 0xc2, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, 0x02, 0x2c, 0xa0, 0xe3, |
245 | 0x0e, 0x39, 0x43, 0xe2, 0x04, 0x24, 0x83, 0xe5, 0x53, 0xff, 0xff, 0xeb, 0x00, 0x40, 0xa0, 0xe1, | ||
246 | 0x24, 0x30, 0x9f, 0xe5, 0xc0, 0x50, 0x93, 0xe5, 0x3d, 0x59, 0x85, 0xe2, 0x09, 0x5d, 0x85, 0xe2, | ||
247 | 0x03, 0x80, 0xa0, 0xe1, 0xd6, 0xff, 0xff, 0xea, 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, | ||
248 | 0x00, 0xc0, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80, 0x01, 0x00, 0xff, 0xff, 0x00, 0xc0, 0x01, 0x80 | ||
165 | }; | 249 | }; |
166 | unsigned char dualboot_zenxfistyle[376] = { | 250 | unsigned char dualboot_zenxfistyle[660] = { |
167 | 0x10, 0x40, 0x2d, 0xe9, 0x00, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x58, 0x31, 0x9f, 0xe5, | 251 | 0x10, 0x40, 0x2d, 0xe9, 0x30, 0x00, 0x00, 0xeb, 0x10, 0x80, 0xbd, 0xe8, 0x40, 0x30, 0x9f, 0xe5, |
168 | 0x03, 0x00, 0x50, 0xe1, 0x34, 0x00, 0x00, 0x1a, 0x50, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, | 252 | 0xb0, 0x30, 0x93, 0xe5, 0x03, 0x18, 0xa0, 0xe1, 0x21, 0x18, 0xa0, 0xe1, 0x34, 0x20, 0x9f, 0xe5, |
169 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 253 | 0x02, 0x00, 0x51, 0xe1, 0x08, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x50, 0xe3, 0x01, 0x38, 0x03, 0x02, |
170 | 0xff, 0x24, 0xc2, 0xe3, 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 254 | 0x23, 0x08, 0xa0, 0x01, 0x1e, 0xff, 0x2f, 0x01, 0x01, 0x00, 0x50, 0xe3, 0x02, 0x00, 0x00, 0x1a, |
171 | 0x0f, 0x28, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, | 255 | 0x06, 0x38, 0x03, 0xe2, 0xa3, 0x08, 0xa0, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0xa0, 0xe3, |
172 | 0x7f, 0x2e, 0xc2, 0xe3, 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, | 256 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x04, 0x40, 0x2d, 0xe5, |
173 | 0x01, 0x26, 0xa0, 0xe3, 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, | 257 | 0x5c, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x92, 0xe5, 0x03, 0x48, 0xa0, 0xe1, 0x24, 0x48, 0xa0, 0xe1, |
174 | 0x03, 0x18, 0xc1, 0xe3, 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, | 258 | 0x50, 0x20, 0x9f, 0xe5, 0x02, 0x00, 0x54, 0xe1, 0x02, 0x30, 0xa0, 0x11, 0x00, 0x00, 0x50, 0xe3, |
175 | 0x30, 0x10, 0x93, 0xe5, 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, | 259 | 0x02, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x50, 0xe3, 0x09, 0x00, 0x00, 0x1a, 0x04, 0x00, 0x00, 0xea, |
176 | 0x30, 0x10, 0x93, 0xe5, 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, | 260 | 0x01, 0x38, 0xc3, 0xe3, 0x01, 0x18, 0xa0, 0xe1, 0x01, 0x18, 0x01, 0xe2, 0x01, 0x30, 0x83, 0xe1, |
177 | 0x01, 0x18, 0xa0, 0xe3, 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, | 261 | 0x03, 0x00, 0x00, 0xea, 0x06, 0x38, 0xc3, 0xe3, 0x81, 0x18, 0xa0, 0xe1, 0x06, 0x18, 0x01, 0xe2, |
178 | 0x80, 0x10, 0x83, 0xe5, 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, | 262 | 0x01, 0x30, 0x83, 0xe1, 0x08, 0x20, 0x9f, 0xe5, 0xb0, 0x30, 0x82, 0xe5, 0x10, 0x00, 0xbd, 0xe8, |
179 | 0x01, 0x28, 0x82, 0xe3, 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, | 263 | 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xc0, 0x05, 0x80, 0x52, 0x42, 0x00, 0x00, 0x70, 0x40, 0x2d, 0xe9, |
180 | 0x20, 0x20, 0x93, 0xe5, 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, | 264 | 0x00, 0x40, 0xa0, 0xe1, 0x01, 0x60, 0xa0, 0xe1, 0xa4, 0x31, 0x9f, 0xe5, 0x03, 0x00, 0x50, 0xe1, |
181 | 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x80, 0x30, 0x9f, 0xe5, | 265 | 0x34, 0x00, 0x00, 0x1a, 0x9c, 0x31, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, |
182 | 0xc0, 0x30, 0x93, 0xe5, 0x74, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, 0x08, 0x20, 0x83, 0xe5, | 266 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0xff, 0x24, 0xc2, 0xe3, |
183 | 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0x0f, 0x2c, 0xa0, 0xe3, 0x48, 0x21, 0x83, 0xe5, | 267 | 0x02, 0x21, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x0f, 0x28, 0xc2, 0xe3, |
184 | 0x0d, 0x2c, 0x42, 0xe2, 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0xa0, 0xe3, 0x78, 0x20, 0x83, 0xe5, | 268 | 0x01, 0x28, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0xd0, 0x20, 0x93, 0xe5, 0x7f, 0x2e, 0xc2, 0xe3, |
185 | 0xc5, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, 0x04, 0x20, 0xa0, 0xe3, 0x18, 0x20, 0x83, 0xe5, | 269 | 0x0f, 0x20, 0xc2, 0xe3, 0xc8, 0x20, 0x82, 0xe3, 0xd0, 0x20, 0x83, 0xe5, 0x01, 0x26, 0xa0, 0xe3, |
186 | 0x04, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x04, 0x00, 0x12, 0xe3, 0xfc, 0xff, 0xff, 0x0a, | 270 | 0xd4, 0x20, 0x83, 0xe5, 0x34, 0x21, 0x83, 0xe5, 0x30, 0x11, 0x93, 0xe5, 0x03, 0x18, 0xc1, 0xe3, |
187 | 0x28, 0x30, 0x9f, 0xe5, 0x70, 0x30, 0x93, 0xe5, 0xff, 0x34, 0xc3, 0xe3, 0x3f, 0x37, 0xc3, 0xe3, | 271 | 0x02, 0x18, 0x81, 0xe3, 0x30, 0x11, 0x83, 0xe5, 0x03, 0x39, 0x43, 0xe2, 0x30, 0x10, 0x93, 0xe5, |
188 | 0xcb, 0x3f, 0x43, 0xe2, 0x03, 0x30, 0x43, 0xe2, 0x63, 0x00, 0x53, 0xe3, 0x00, 0x00, 0xa0, 0x93, | 272 | 0x0f, 0x1c, 0xc1, 0xe3, 0x01, 0x1c, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x30, 0x10, 0x93, 0xe5, |
189 | 0x00, 0x00, 0x81, 0x85, 0x01, 0x00, 0xa0, 0x83, 0x1e, 0xff, 0x2f, 0xe1, 0x63, 0x68, 0x72, 0x67, | 273 | 0x3f, 0x10, 0xc1, 0xe3, 0x10, 0x10, 0x81, 0xe3, 0x30, 0x10, 0x83, 0xe5, 0x01, 0x18, 0xa0, 0xe3, |
190 | 0x00, 0x00, 0x05, 0x80, 0x00, 0x40, 0x04, 0x80 | 274 | 0x38, 0x10, 0x83, 0xe5, 0x80, 0x10, 0x93, 0xe5, 0x02, 0x15, 0x81, 0xe3, 0x80, 0x10, 0x83, 0xe5, |
275 | 0x18, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x3f, 0x2a, 0xc2, 0xe3, 0x01, 0x28, 0x82, 0xe3, | ||
276 | 0x10, 0x20, 0x83, 0xe5, 0x01, 0x39, 0x43, 0xe2, 0x00, 0x10, 0xa0, 0xe3, 0x20, 0x20, 0x93, 0xe5, | ||
277 | 0x01, 0x2a, 0x82, 0xe3, 0x20, 0x20, 0x83, 0xe5, 0x90, 0x1f, 0x07, 0xee, 0x00, 0x00, 0xa0, 0xe1, | ||
278 | 0x00, 0x00, 0xa0, 0xe1, 0xf8, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe3, 0x01, 0x10, 0xa0, 0xe3, | ||
279 | 0xa5, 0xff, 0xff, 0xeb, 0x01, 0x00, 0xa0, 0xe3, 0x8f, 0xff, 0xff, 0xeb, 0x00, 0x50, 0xa0, 0xe1, | ||
280 | 0x01, 0x00, 0xa0, 0xe3, 0x00, 0x10, 0xa0, 0xe3, 0x9f, 0xff, 0xff, 0xeb, 0x01, 0x00, 0x55, 0xe3, | ||
281 | 0x25, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x55, 0xe3, 0x04, 0x00, 0x00, 0x1a, 0x01, 0x27, 0xa0, 0xe3, | ||
282 | 0x94, 0x30, 0x9f, 0xe5, 0x78, 0x20, 0x83, 0xe5, 0x00, 0x00, 0xa0, 0xe3, 0x70, 0x80, 0xbd, 0xe8, | ||
283 | 0x88, 0x30, 0x9f, 0xe5, 0xc0, 0x30, 0x93, 0xe5, 0x78, 0x30, 0x9f, 0xe5, 0x02, 0x21, 0xa0, 0xe3, | ||
284 | 0x08, 0x20, 0x83, 0xe5, 0x03, 0x21, 0x82, 0xe2, 0x08, 0x20, 0x83, 0xe5, 0x0f, 0x2c, 0xa0, 0xe3, | ||
285 | 0x48, 0x21, 0x83, 0xe5, 0x0d, 0x2c, 0x42, 0xe2, 0x44, 0x21, 0x83, 0xe5, 0x3f, 0x24, 0xa0, 0xe3, | ||
286 | 0x78, 0x20, 0x83, 0xe5, 0xc5, 0x24, 0x82, 0xe2, 0x24, 0x20, 0x83, 0xe5, 0x04, 0x20, 0xa0, 0xe3, | ||
287 | 0x18, 0x20, 0x83, 0xe5, 0x04, 0x20, 0x83, 0xe5, 0x10, 0x20, 0x93, 0xe5, 0x04, 0x00, 0x12, 0xe3, | ||
288 | 0xfc, 0xff, 0xff, 0x0a, 0x2c, 0x30, 0x9f, 0xe5, 0x70, 0x30, 0x93, 0xe5, 0xff, 0x34, 0xc3, 0xe3, | ||
289 | 0x3f, 0x37, 0xc3, 0xe3, 0xcb, 0x3f, 0x43, 0xe2, 0x03, 0x30, 0x43, 0xe2, 0x63, 0x00, 0x53, 0xe3, | ||
290 | 0x00, 0x40, 0x86, 0x85, 0x01, 0x00, 0xa0, 0x83, 0x70, 0x80, 0xbd, 0x88, 0x00, 0x00, 0xa0, 0xe3, | ||
291 | 0x70, 0x80, 0xbd, 0xe8, 0x63, 0x68, 0x72, 0x67, 0x00, 0x00, 0x05, 0x80, 0x00, 0xc0, 0x05, 0x80, | ||
292 | 0x00, 0x40, 0x04, 0x80 | ||
191 | }; | 293 | }; |
diff --git a/rbutil/mkimxboot/dualboot.h b/rbutil/mkimxboot/dualboot.h index 9b9b0fc43e..fbce031d56 100644 --- a/rbutil/mkimxboot/dualboot.h +++ b/rbutil/mkimxboot/dualboot.h | |||
@@ -1,8 +1,8 @@ | |||
1 | /* Generated by bin2c */ | 1 | /* Generated by bin2c */ |
2 | 2 | ||
3 | extern unsigned char dualboot_fuzeplus[460]; | 3 | extern unsigned char dualboot_fuzeplus[728]; |
4 | extern unsigned char dualboot_zenxfi2[328]; | 4 | extern unsigned char dualboot_zenxfi2[608]; |
5 | extern unsigned char dualboot_zenxfi3[288]; | 5 | extern unsigned char dualboot_zenxfi3[572]; |
6 | extern unsigned char dualboot_nwze370[628]; | 6 | extern unsigned char dualboot_nwze370[896]; |
7 | extern unsigned char dualboot_nwze360[676]; | 7 | extern unsigned char dualboot_nwze360[944]; |
8 | extern unsigned char dualboot_zenxfistyle[376]; | 8 | extern unsigned char dualboot_zenxfistyle[660]; |
diff --git a/rbutil/mkimxboot/dualboot/Makefile b/rbutil/mkimxboot/dualboot/Makefile index 7abd381b2d..b80233226a 100644 --- a/rbutil/mkimxboot/dualboot/Makefile +++ b/rbutil/mkimxboot/dualboot/Makefile | |||
@@ -2,8 +2,8 @@ CC=gcc | |||
2 | LD=ld | 2 | LD=ld |
3 | OC=objcopy | 3 | OC=objcopy |
4 | PREFIX?=arm-elf-eabi- | 4 | PREFIX?=arm-elf-eabi- |
5 | REGS_PATH=../../../firmware/target/arm/imx233/regs | 5 | IMX233_PATH=../../../firmware/target/arm/imx233 |
6 | CFLAGS=-mcpu=arm926ej-s -std=gnu99 -I. -I$(REGS_PATH) -nostdlib -ffreestanding -fomit-frame-pointer -O | 6 | CFLAGS=-mcpu=arm926ej-s -std=gnu99 -I. -I$(IMX233_PATH) -nostdlib -ffreestanding -fomit-frame-pointer -O |
7 | # Edit the following variables when adding a new target. | 7 | # Edit the following variables when adding a new target. |
8 | # mkimxboot.c also needs to be edited to refer to these | 8 | # mkimxboot.c also needs to be edited to refer to these |
9 | # To add a new target x you need to: | 9 | # To add a new target x you need to: |
diff --git a/rbutil/mkimxboot/dualboot/config.h b/rbutil/mkimxboot/dualboot/config.h index ff59cee710..e9ea8d4a35 100644 --- a/rbutil/mkimxboot/dualboot/config.h +++ b/rbutil/mkimxboot/dualboot/config.h | |||
@@ -19,4 +19,8 @@ | |||
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | 21 | ||
22 | /** empty, used by register files */ | 22 | /** mostly empty, used by register files and dualboot */ |
23 | #define COMPILE_DUALBOOT_STUB | ||
24 | |||
25 | /* obviously we have the dualboot stub! */ | ||
26 | #define HAVE_DUALBOOT_STUB | ||
diff --git a/rbutil/mkimxboot/dualboot/dualboot.c b/rbutil/mkimxboot/dualboot/dualboot.c index 82568b8893..77b816bf76 100644 --- a/rbutil/mkimxboot/dualboot/dualboot.c +++ b/rbutil/mkimxboot/dualboot/dualboot.c | |||
@@ -18,11 +18,11 @@ | |||
18 | * KIND, either express or implied. | 18 | * KIND, either express or implied. |
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | #include "pinctrl.h" | 21 | #include "regs/pinctrl.h" |
22 | #include "power.h" | 22 | #include "regs/power.h" |
23 | #include "lradc.h" | 23 | #include "regs/lradc.h" |
24 | #include "digctl.h" | 24 | #include "regs/digctl.h" |
25 | #include "clkctrl.h" | 25 | #include "regs/clkctrl.h" |
26 | 26 | ||
27 | #define BOOT_ROM_CONTINUE 0 /* continue boot */ | 27 | #define BOOT_ROM_CONTINUE 0 /* continue boot */ |
28 | #define BOOT_ROM_SECTION 1 /* switch to new section *result_id */ | 28 | #define BOOT_ROM_SECTION 1 /* switch to new section *result_id */ |
@@ -34,6 +34,10 @@ | |||
34 | 34 | ||
35 | typedef unsigned long uint32_t; | 35 | typedef unsigned long uint32_t; |
36 | 36 | ||
37 | /* we include the dualboot rtc code directly */ | ||
38 | #include "dualboot-imx233.h" | ||
39 | #include "dualboot-imx233.c" | ||
40 | |||
37 | // target specific boot context | 41 | // target specific boot context |
38 | enum context_t | 42 | enum context_t |
39 | { | 43 | { |
@@ -270,10 +274,36 @@ static inline void do_charge(void) | |||
270 | } | 274 | } |
271 | } | 275 | } |
272 | 276 | ||
277 | static void set_updater_bits(void) | ||
278 | { | ||
279 | /* The OF will continue to updater if we clear 18 of PERSISTENT1. | ||
280 | * See dualboot-imx233.c in firmware/ for more explanation */ | ||
281 | HW_RTC_PERSISTENT1_CLR = 1 << 18; | ||
282 | } | ||
283 | |||
273 | int main(uint32_t arg, uint32_t *result_id) | 284 | int main(uint32_t arg, uint32_t *result_id) |
274 | { | 285 | { |
275 | if(arg == BOOT_ARG_CHARGE) | 286 | if(arg == BOOT_ARG_CHARGE) |
276 | do_charge(); | 287 | do_charge(); |
288 | /* tell rockbox that we can handle boot mode */ | ||
289 | imx233_dualboot_set_field(DUALBOOT_CAP_BOOT, 1); | ||
290 | /* if we were asked to boot in a special mode, do so */ | ||
291 | unsigned boot_mode = imx233_dualboot_get_field(DUALBOOT_BOOT); | ||
292 | /* clear boot mode to avoid any loop */ | ||
293 | imx233_dualboot_set_field(DUALBOOT_BOOT, IMX233_BOOT_NORMAL); | ||
294 | switch(boot_mode) | ||
295 | { | ||
296 | case IMX233_BOOT_UPDATER: | ||
297 | set_updater_bits(); | ||
298 | /* fallthrough */ | ||
299 | case IMX233_BOOT_OF: | ||
300 | /* continue booting */ | ||
301 | return BOOT_ROM_CONTINUE; | ||
302 | case IMX233_BOOT_NORMAL: | ||
303 | default: | ||
304 | break; | ||
305 | } | ||
306 | /* normal boot */ | ||
277 | switch(boot_decision(get_context())) | 307 | switch(boot_decision(get_context())) |
278 | { | 308 | { |
279 | case BOOT_ROCK: | 309 | case BOOT_ROCK: |