diff options
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) |