summaryrefslogtreecommitdiff
path: root/bootloader/iaudio_coldfire.c
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2012-03-04 15:34:29 +0100
committerMarcin Bukat <marcin.bukat@gmail.com>2013-06-27 13:50:11 +0200
commit0b29691324e5700f15ea653592bf29f8552d47d7 (patch)
tree00e4f77f28c813a493cd8af22170f486f6e82903 /bootloader/iaudio_coldfire.c
parent46ea8bfe7c690c8db230fff3a582a69779f8e432 (diff)
downloadrockbox-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.c34
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
130void main(void) 132void 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