diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2012-03-04 15:34:29 +0100 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2013-06-27 13:50:11 +0200 |
commit | 0b29691324e5700f15ea653592bf29f8552d47d7 (patch) | |
tree | 00e4f77f28c813a493cd8af22170f486f6e82903 /bootloader/iaudio_coldfire.c | |
parent | 46ea8bfe7c690c8db230fff3a582a69779f8e432 (diff) | |
download | rockbox-0b29691324e5700f15ea653592bf29f8552d47d7.tar.gz rockbox-0b29691324e5700f15ea653592bf29f8552d47d7.zip |
Move load_firmware() to separate file
The idea is to share loading code between bootloaders and rolo().
Change-Id: I1656ed91946d7a05cb7c9fa7a16793c3c862a5cd
Reviewed-on: http://gerrit.rockbox.org/190
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Diffstat (limited to 'bootloader/iaudio_coldfire.c')
-rw-r--r-- | bootloader/iaudio_coldfire.c | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/bootloader/iaudio_coldfire.c b/bootloader/iaudio_coldfire.c index b22af0e006..95060e458f 100644 --- a/bootloader/iaudio_coldfire.c +++ b/bootloader/iaudio_coldfire.c | |||
@@ -43,6 +43,8 @@ | |||
43 | #include "powermgmt.h" | 43 | #include "powermgmt.h" |
44 | #include "file.h" | 44 | #include "file.h" |
45 | #include "version.h" | 45 | #include "version.h" |
46 | #include "loader_strerror.h" | ||
47 | #include "rb-loader.h" | ||
46 | 48 | ||
47 | 49 | ||
48 | #include "pcf50606.h" | 50 | #include "pcf50606.h" |
@@ -129,7 +131,6 @@ int initial_gpio_read; | |||
129 | 131 | ||
130 | void main(void) | 132 | void main(void) |
131 | { | 133 | { |
132 | int i; | ||
133 | int rc; | 134 | int rc; |
134 | bool rc_on_button = false; | 135 | bool rc_on_button = false; |
135 | bool on_button = false; | 136 | bool on_button = false; |
@@ -194,35 +195,22 @@ void main(void) | |||
194 | 195 | ||
195 | rc = storage_init(); | 196 | rc = storage_init(); |
196 | if(rc) | 197 | if(rc) |
197 | { | 198 | error(EATA, rc, true); |
198 | printf("ATA error: %d", rc); | ||
199 | sleep(HZ*5); | ||
200 | power_off(); | ||
201 | } | ||
202 | 199 | ||
203 | disk_init(); | 200 | disk_init(); |
204 | 201 | ||
205 | rc = disk_mount_all(); | 202 | rc = disk_mount_all(); |
206 | if (rc<=0) | 203 | if (rc<=0) |
207 | { | 204 | error(EDISK, rc, true); |
208 | printf("No partition found"); | ||
209 | sleep(HZ*5); | ||
210 | power_off(); | ||
211 | } | ||
212 | 205 | ||
213 | printf("Loading firmware"); | 206 | printf("Loading firmware"); |
214 | i = load_firmware((unsigned char *)DRAM_START, BOOTFILE, MAX_LOADSIZE); | 207 | |
215 | printf("Result: %s", strerror(i)); | 208 | rc = load_firmware((unsigned char *)DRAM_START, BOOTFILE, MAX_LOADSIZE); |
216 | 209 | ||
217 | if (i < EOK) { | 210 | if (rc <= EFILE_EMPTY) |
218 | printf("Error!"); | 211 | error(EBOOTFILE, rc, true); |
219 | printf("Can't load " BOOTFILE ": "); | 212 | |
220 | printf(strerror(rc)); | 213 | start_firmware(); |
221 | sleep(HZ*3); | ||
222 | power_off(); | ||
223 | } else { | ||
224 | start_firmware(); | ||
225 | } | ||
226 | } | 214 | } |
227 | 215 | ||
228 | /* These functions are present in the firmware library, but we reimplement | 216 | /* These functions are present in the firmware library, but we reimplement |