summaryrefslogtreecommitdiff
path: root/bootloader/gigabeat-s.c
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader/gigabeat-s.c')
-rw-r--r--bootloader/gigabeat-s.c11
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)