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/gigabeat-s.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/gigabeat-s.c')
-rw-r--r-- | bootloader/gigabeat-s.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c index 04c32423a0..5bc6bab720 100644 --- a/bootloader/gigabeat-s.c +++ b/bootloader/gigabeat-s.c | |||
@@ -30,6 +30,8 @@ | |||
30 | #include "dir.h" | 30 | #include "dir.h" |
31 | #include "disk.h" | 31 | #include "disk.h" |
32 | #include "common.h" | 32 | #include "common.h" |
33 | #include "rb-loader.h" | ||
34 | #include "loader_strerror.h" | ||
33 | #include "power.h" | 35 | #include "power.h" |
34 | #include "backlight.h" | 36 | #include "backlight.h" |
35 | #include "usb.h" | 37 | #include "usb.h" |
@@ -296,7 +298,7 @@ static void NORETURN_ATTR handle_firmware_load(void) | |||
296 | { | 298 | { |
297 | int rc = load_firmware(load_buf, BOOTFILE, load_buf_size); | 299 | int rc = load_firmware(load_buf, BOOTFILE, load_buf_size); |
298 | 300 | ||
299 | if(rc < 0) | 301 | if(rc <= EFILE_EMPTY) |
300 | error(EBOOTFILE, rc, true); | 302 | error(EBOOTFILE, rc, true); |
301 | 303 | ||
302 | /* Pause to look at messages */ | 304 | /* Pause to look at messages */ |
@@ -321,11 +323,8 @@ static void NORETURN_ATTR handle_firmware_load(void) | |||
321 | storage_close(); | 323 | storage_close(); |
322 | system_prepare_fw_start(); | 324 | system_prepare_fw_start(); |
323 | 325 | ||
324 | if (rc == EOK) | 326 | commit_discard_idcache(); |
325 | { | 327 | asm volatile ("bx %0": : "r"(start_addr)); |
326 | commit_discard_idcache(); | ||
327 | asm volatile ("bx %0": : "r"(start_addr)); | ||
328 | } | ||
329 | 328 | ||
330 | /* Halt */ | 329 | /* Halt */ |
331 | while (1) | 330 | while (1) |