summaryrefslogtreecommitdiff
path: root/bootloader
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader')
-rw-r--r--bootloader/creativezvm.c5
-rw-r--r--bootloader/gigabeat-s.c16
-rw-r--r--bootloader/gigabeat.c3
-rw-r--r--bootloader/iaudio_coldfire.c2
-rw-r--r--bootloader/imx233.c3
-rw-r--r--bootloader/ipod.c10
-rw-r--r--bootloader/ipodnano2g.c4
-rw-r--r--bootloader/iriver_h1x0.c3
-rw-r--r--bootloader/iriver_h300.c4
-rw-r--r--bootloader/main-e200r-installer.c19
-rw-r--r--bootloader/main-pp.c15
-rw-r--r--bootloader/mini2440.c3
-rw-r--r--bootloader/mpio_hd200_hd300.c3
-rw-r--r--bootloader/mrobe500.c5
-rw-r--r--bootloader/ondavx747.c3
-rw-r--r--bootloader/rk27xx.c4
-rw-r--r--bootloader/sansa_as3525.c10
-rw-r--r--bootloader/sansaconnect.c3
-rw-r--r--bootloader/telechips.c3
-rw-r--r--bootloader/tpj1022.c3
20 files changed, 70 insertions, 51 deletions
diff --git a/bootloader/creativezvm.c b/bootloader/creativezvm.c
index f31f6490a4..6597448193 100644
--- a/bootloader/creativezvm.c
+++ b/bootloader/creativezvm.c
@@ -22,6 +22,7 @@
22#include "../kernel-internal.h" 22#include "../kernel-internal.h"
23#include "storage.h" 23#include "storage.h"
24#include "ata-target.h" 24#include "ata-target.h"
25#include "file_internal.h"
25#include "disk.h" 26#include "disk.h"
26#include "font.h" 27#include "font.h"
27#include "backlight.h" 28#include "backlight.h"
@@ -73,6 +74,8 @@ void main(void)
73 ret = storage_init(); 74 ret = storage_init();
74 if(ret) 75 if(ret)
75 printf("ATA error: %d", ret); 76 printf("ATA error: %d", ret);
77
78 filesystem_init();
76 79
77 /* If no button is held, start the OF */ 80 /* If no button is held, start the OF */
78 if(button_read_device() == 0) 81 if(button_read_device() == 0)
@@ -93,8 +96,6 @@ void main(void)
93 } 96 }
94 else 97 else
95 { 98 {
96 disk_init();
97
98 ret = disk_mount_all(); 99 ret = disk_mount_all();
99 if (ret <= 0) 100 if (ret <= 0)
100 error(EDISK, ret, true); 101 error(EDISK, ret, true);
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c
index 3b852dbaa8..499d9c218c 100644
--- a/bootloader/gigabeat-s.c
+++ b/bootloader/gigabeat-s.c
@@ -21,13 +21,16 @@
21#include "config.h" 21#include "config.h"
22#include "system.h" 22#include "system.h"
23#include <stdio.h> 23#include <stdio.h>
24#include <errno.h>
24#include "../kernel-internal.h" 25#include "../kernel-internal.h"
25#include "gcc_extensions.h" 26#include "gcc_extensions.h"
26#include "string.h" 27#include "string.h"
27#include "adc.h" 28#include "adc.h"
28#include "powermgmt.h" 29#include "powermgmt.h"
29#include "storage.h" 30#include "storage.h"
31#include "file_internal.h"
30#include "dir.h" 32#include "dir.h"
33#include "file.h"
31#include "disk.h" 34#include "disk.h"
32#include "common.h" 35#include "common.h"
33#include "rb-loader.h" 36#include "rb-loader.h"
@@ -219,7 +222,7 @@ static void untar(int tar_fd)
219 222
220 /* Create the dir */ 223 /* Create the dir */
221 ret = mkdir(path); 224 ret = mkdir(path);
222 if (ret < 0 && ret != -4) 225 if (ret < 0 && errno != EEXIST)
223 { 226 {
224 printf("failed to create dir (%d)", ret); 227 printf("failed to create dir (%d)", ret);
225 } 228 }
@@ -233,14 +236,14 @@ static void handle_untar(void)
233 char buf[MAX_PATH]; 236 char buf[MAX_PATH];
234 char tarstring[6]; 237 char tarstring[6];
235 char model[5]; 238 char model[5];
236 struct dirent_uncached* entry; 239 struct dirent* entry;
237 DIR_UNCACHED* dir; 240 DIR* dir;
238 int fd; 241 int fd;
239 int rc; 242 int rc;
240 243
241 dir = opendir_uncached(basedir); 244 dir = opendir(basedir);
242 245
243 while ((entry = readdir_uncached(dir))) 246 while ((entry = readdir(dir)))
244 { 247 {
245 if (*entry->d_name == '.') 248 if (*entry->d_name == '.')
246 continue; 249 continue;
@@ -262,7 +265,6 @@ static void handle_untar(void)
262 verbose = true; 265 verbose = true;
263 printf("Found rockbox binary. Moving..."); 266 printf("Found rockbox binary. Moving...");
264 close(fd); 267 close(fd);
265 remove( BOOTDIR "/" BOOTFILE);
266 int ret = rename(buf, BOOTDIR "/" BOOTFILE); 268 int ret = rename(buf, BOOTDIR "/" BOOTFILE);
267 printf("returned %d", ret); 269 printf("returned %d", ret);
268 sleep(HZ); 270 sleep(HZ);
@@ -365,7 +367,7 @@ void main(void)
365 if(rc) 367 if(rc)
366 error(EATA, rc, true); 368 error(EATA, rc, true);
367 369
368 disk_init(); 370 filesystem_init();
369 371
370 rc = disk_mount_all(); 372 rc = disk_mount_all();
371 if (rc <= 0) 373 if (rc <= 0)
diff --git a/bootloader/gigabeat.c b/bootloader/gigabeat.c
index 52f55a5cdd..4d52407655 100644
--- a/bootloader/gigabeat.c
+++ b/bootloader/gigabeat.c
@@ -30,6 +30,7 @@
30#include "../kernel-internal.h" 30#include "../kernel-internal.h"
31#include "storage.h" 31#include "storage.h"
32#include "fat.h" 32#include "fat.h"
33#include "file_internal.h"
33#include "disk.h" 34#include "disk.h"
34#include "font.h" 35#include "font.h"
35#include "adc.h" 36#include "adc.h"
@@ -185,7 +186,7 @@ void main(void)
185 error(EATA, rc, true); 186 error(EATA, rc, true);
186 } 187 }
187 188
188 disk_init(); 189 filesystem_init();
189 190
190 rc = disk_mount_all(); 191 rc = disk_mount_all();
191 if (rc<=0) 192 if (rc<=0)
diff --git a/bootloader/iaudio_coldfire.c b/bootloader/iaudio_coldfire.c
index 013e8859e8..2f31958a87 100644
--- a/bootloader/iaudio_coldfire.c
+++ b/bootloader/iaudio_coldfire.c
@@ -196,7 +196,7 @@ void main(void)
196 if(rc) 196 if(rc)
197 error(EATA, rc, true); 197 error(EATA, rc, true);
198 198
199 disk_init(); 199 filesystem_init();
200 200
201 rc = disk_mount_all(); 201 rc = disk_mount_all();
202 if (rc<=0) 202 if (rc<=0)
diff --git a/bootloader/imx233.c b/bootloader/imx233.c
index d2562d0676..76fdf884da 100644
--- a/bootloader/imx233.c
+++ b/bootloader/imx233.c
@@ -35,6 +35,7 @@
35#include "rb-loader.h" 35#include "rb-loader.h"
36#include "loader_strerror.h" 36#include "loader_strerror.h"
37#include "storage.h" 37#include "storage.h"
38#include "file_internal.h"
38#include "disk.h" 39#include "disk.h"
39#include "panic.h" 40#include "panic.h"
40#include "power.h" 41#include "power.h"
@@ -171,7 +172,7 @@ void main(uint32_t arg, uint32_t addr)
171 if(ret < 0) 172 if(ret < 0)
172 error(EATA, ret, true); 173 error(EATA, ret, true);
173 174
174 disk_init_subsystem(); 175 filesystem_init();
175 176
176 /* NOTE: disk_mount_all to fail since we can do USB after. 177 /* NOTE: disk_mount_all to fail since we can do USB after.
177 * We need this order to determine the correct logical sector size */ 178 * We need this order to determine the correct logical sector size */
diff --git a/bootloader/ipod.c b/bootloader/ipod.c
index b2d4532168..8580886ce4 100644
--- a/bootloader/ipod.c
+++ b/bootloader/ipod.c
@@ -33,6 +33,7 @@
33#include "../kernel-internal.h" 33#include "../kernel-internal.h"
34#include "ata.h" 34#include "ata.h"
35#include "fat.h" 35#include "fat.h"
36#include "file_internal.h"
36#include "disk.h" 37#include "disk.h"
37#include "font.h" 38#include "font.h"
38#include "adc.h" 39#include "adc.h"
@@ -295,7 +296,7 @@ void* main(void)
295 int rc; 296 int rc;
296 bool haveramos; 297 bool haveramos;
297 bool button_was_held; 298 bool button_was_held;
298 struct partinfo* pinfo; 299 struct partinfo pinfo;
299 unsigned short* identify_info; 300 unsigned short* identify_info;
300 301
301 /* Check the button hold status as soon as possible - to 302 /* Check the button hold status as soon as possible - to
@@ -353,7 +354,8 @@ void* main(void)
353 printf("ATA: %d", i); 354 printf("ATA: %d", i);
354 } 355 }
355 356
356 disk_init(); 357 filesystem_init();
358
357 rc = disk_mount_all(); 359 rc = disk_mount_all();
358 if (rc<=0) 360 if (rc<=0)
359 { 361 {
@@ -361,9 +363,9 @@ void* main(void)
361 fatal_error(); 363 fatal_error();
362 } 364 }
363 365
364 pinfo = disk_partinfo(1); 366 disk_partinfo(1, &pinfo);
365 printf("Partition 1: 0x%02x %ld sectors", 367 printf("Partition 1: 0x%02x %ld sectors",
366 pinfo->type, pinfo->size); 368 pinfo.type, pinfo.size);
367 369
368 if (button_was_held || (btn==BUTTON_MENU)) { 370 if (button_was_held || (btn==BUTTON_MENU)) {
369 /* If either the hold switch was on, or the Menu button was held, then 371 /* If either the hold switch was on, or the Menu button was held, then
diff --git a/bootloader/ipodnano2g.c b/bootloader/ipodnano2g.c
index cdd866f71e..d0a8e0206c 100644
--- a/bootloader/ipodnano2g.c
+++ b/bootloader/ipodnano2g.c
@@ -32,6 +32,7 @@
32#include "lcd.h" 32#include "lcd.h"
33#include "i2c-s5l8700.h" 33#include "i2c-s5l8700.h"
34#include "../kernel-internal.h" 34#include "../kernel-internal.h"
35#include "file_internal.h"
35#include "storage.h" 36#include "storage.h"
36#include "fat.h" 37#include "fat.h"
37#include "disk.h" 38#include "disk.h"
@@ -213,7 +214,8 @@ void main(void)
213 fatal_error(); 214 fatal_error();
214 } 215 }
215 216
216 disk_init(); 217 filesystem_init();
218
217 rc = disk_mount_all(); 219 rc = disk_mount_all();
218 if (rc<=0) 220 if (rc<=0)
219 { 221 {
diff --git a/bootloader/iriver_h1x0.c b/bootloader/iriver_h1x0.c
index 7f236d4510..742d0dd254 100644
--- a/bootloader/iriver_h1x0.c
+++ b/bootloader/iriver_h1x0.c
@@ -31,6 +31,7 @@
31#include "scroll_engine.h" 31#include "scroll_engine.h"
32#include "../kernel-internal.h" 32#include "../kernel-internal.h"
33#include "storage.h" 33#include "storage.h"
34#include "file_internal.h"
34#include "usb.h" 35#include "usb.h"
35#include "disk.h" 36#include "disk.h"
36#include "font.h" 37#include "font.h"
@@ -596,7 +597,7 @@ void main(void)
596 } 597 }
597 598
598 599
599 disk_init(); 600 filesystem_init();
600 601
601 rc = disk_mount_all(); 602 rc = disk_mount_all();
602 if (rc<=0) 603 if (rc<=0)
diff --git a/bootloader/iriver_h300.c b/bootloader/iriver_h300.c
index 362eb947c8..100e660a67 100644
--- a/bootloader/iriver_h300.c
+++ b/bootloader/iriver_h300.c
@@ -31,6 +31,7 @@
31#include "scroll_engine.h" 31#include "scroll_engine.h"
32#include "../kernel-internal.h" 32#include "../kernel-internal.h"
33#include "storage.h" 33#include "storage.h"
34#include "file_internal.h"
34#include "usb.h" 35#include "usb.h"
35#include "disk.h" 36#include "disk.h"
36#include "font.h" 37#include "font.h"
@@ -349,8 +350,7 @@ void main(void)
349 while(!(button_get(true) & BUTTON_REL)); 350 while(!(button_get(true) & BUTTON_REL));
350 } 351 }
351 352
352 353 filesystem_init();
353 disk_init();
354 354
355 rc = disk_mount_all(); 355 rc = disk_mount_all();
356 if (rc<=0) 356 if (rc<=0)
diff --git a/bootloader/main-e200r-installer.c b/bootloader/main-e200r-installer.c
index 490f1f04dd..c5751d3095 100644
--- a/bootloader/main-e200r-installer.c
+++ b/bootloader/main-e200r-installer.c
@@ -26,12 +26,13 @@
26#include <stdlib.h> 26#include <stdlib.h>
27#include "common.h" 27#include "common.h"
28#include "cpu.h" 28#include "cpu.h"
29#include "file.h"
30#include "system.h" 29#include "system.h"
31#include "../kernel-internal.h" 30#include "../kernel-internal.h"
32#include "lcd.h" 31#include "lcd.h"
33#include "font.h" 32#include "font.h"
34#include "storage.h" 33#include "storage.h"
34#include "file_internal.h"
35#include "file.h"
35#include "button.h" 36#include "button.h"
36#include "disk.h" 37#include "disk.h"
37#include "crc32-mi4.h" 38#include "crc32-mi4.h"
@@ -92,7 +93,7 @@ void* main(void)
92 int num_partitions; 93 int num_partitions;
93 int crc32; 94 int crc32;
94 char sector[512]; 95 char sector[512];
95 struct partinfo* pinfo; 96 struct partinfo pinfo;
96 97
97 system_init(); 98 system_init();
98 kernel_init(); 99 kernel_init();
@@ -117,7 +118,7 @@ void* main(void)
117 printf(""); 118 printf("");
118 119
119 i=storage_init(); 120 i=storage_init();
120 disk_init(IF_MV(0)); 121 filesystem_init();
121 num_partitions = disk_mount_all(); 122 num_partitions = disk_mount_all();
122 123
123 if (num_partitions<=0) 124 if (num_partitions<=0)
@@ -125,17 +126,17 @@ void* main(void)
125 error(EDISK, num_partitions, true); 126 error(EDISK, num_partitions, true);
126 } 127 }
127 128
128 pinfo = disk_partinfo(1); 129 disk_partinfo(1, &pinfo);
129 130
130#if 0 /* not needed in release builds */ 131#if 0 /* not needed in release builds */
131 printf("--- Partition info ---"); 132 printf("--- Partition info ---");
132 printf("start: %x", pinfo->start); 133 printf("start: %x", pinfo.start);
133 printf("size: %x", pinfo->size); 134 printf("size: %x", pinfo.size);
134 printf("type: %x", pinfo->type); 135 printf("type: %x", pinfo.type);
135 printf("reading: %x", (START_SECTOR_OF_ROM + ROMSECTOR_TO_HACK)*512); 136 printf("reading: %x", (START_SECTOR_OF_ROM + ROMSECTOR_TO_HACK)*512);
136#endif 137#endif
137 138
138 storage_read_sectors(pinfo->start + START_SECTOR_OF_ROM + ROMSECTOR_TO_HACK, 139 storage_read_sectors(pinfo.start + START_SECTOR_OF_ROM + ROMSECTOR_TO_HACK,
139 1 , sector); 140 1 , sector);
140 crc32 = chksum_crc32 (sector, 512); 141 crc32 = chksum_crc32 (sector, 512);
141 142
@@ -157,7 +158,7 @@ void* main(void)
157 memcpy(&sector[HACK_OFFSET], changedBytes, 158 memcpy(&sector[HACK_OFFSET], changedBytes,
158 sizeof(changedBytes)/sizeof(*changedBytes)); 159 sizeof(changedBytes)/sizeof(*changedBytes));
159 storage_write_sectors( 160 storage_write_sectors(
160 pinfo->start + START_SECTOR_OF_ROM + ROMSECTOR_TO_HACK, 161 pinfo.start + START_SECTOR_OF_ROM + ROMSECTOR_TO_HACK,
161 1 , sector); 162 1 , sector);
162 printf("Firmware unlocked"); 163 printf("Firmware unlocked");
163 printf("Proceed to Step 2"); 164 printf("Proceed to Step 2");
diff --git a/bootloader/main-pp.c b/bootloader/main-pp.c
index 38760a0e58..562cf17ca4 100644
--- a/bootloader/main-pp.c
+++ b/bootloader/main-pp.c
@@ -33,6 +33,7 @@
33#include "lcd.h" 33#include "lcd.h"
34#include "font.h" 34#include "font.h"
35#include "storage.h" 35#include "storage.h"
36#include "file_internal.h"
36#include "adc.h" 37#include "adc.h"
37#include "button.h" 38#include "button.h"
38#include "disk.h" 39#include "disk.h"
@@ -291,7 +292,7 @@ void* main(void)
291 int btn; 292 int btn;
292 int rc; 293 int rc;
293 int num_partitions; 294 int num_partitions;
294 struct partinfo* pinfo; 295 struct partinfo pinfo;
295#if !(CONFIG_STORAGE & STORAGE_SD) 296#if !(CONFIG_STORAGE & STORAGE_SD)
296 char buf[256]; 297 char buf[256];
297 unsigned short* identify_info; 298 unsigned short* identify_info;
@@ -370,7 +371,7 @@ void* main(void)
370 } 371 }
371#endif 372#endif
372 373
373 disk_init(IF_MV(0)); 374 filesystem_init();
374 num_partitions = disk_mount_all(); 375 num_partitions = disk_mount_all();
375 if (num_partitions<=0) 376 if (num_partitions<=0)
376 { 377 {
@@ -381,9 +382,9 @@ void* main(void)
381 that have more than that */ 382 that have more than that */
382 for(i=0; i<NUM_PARTITIONS; i++) 383 for(i=0; i<NUM_PARTITIONS; i++)
383 { 384 {
384 pinfo = disk_partinfo(i); 385 disk_partinfo(i, &pinfo);
385 printf("Partition %d: 0x%02x %ld MB", 386 printf("Partition %d: 0x%02x %ld MB",
386 i, pinfo->type, pinfo->size / 2048); 387 i, pinfo.type, pinfo.size / 2048);
387 } 388 }
388 389
389 /* Now that storage is initialized, check for USB connection */ 390 /* Now that storage is initialized, check for USB connection */
@@ -430,10 +431,10 @@ void* main(void)
430#if (CONFIG_STORAGE & STORAGE_SD) 431#if (CONFIG_STORAGE & STORAGE_SD)
431 /* First try a (hidden) firmware partition */ 432 /* First try a (hidden) firmware partition */
432 printf("Trying firmware partition"); 433 printf("Trying firmware partition");
433 pinfo = disk_partinfo(1); 434 disk_partinfo(1, &pinfo);
434 if(pinfo->type == PARTITION_TYPE_OS2_HIDDEN_C_DRIVE) 435 if(pinfo.type == PARTITION_TYPE_OS2_HIDDEN_C_DRIVE)
435 { 436 {
436 rc = load_mi4_part(loadbuffer, pinfo, MAX_LOADSIZE, 437 rc = load_mi4_part(loadbuffer, &pinfo, MAX_LOADSIZE,
437 usb == USB_INSERTED); 438 usb == USB_INSERTED);
438 if (rc <= EFILE_EMPTY) { 439 if (rc <= EFILE_EMPTY) {
439 printf("Can't load from partition"); 440 printf("Can't load from partition");
diff --git a/bootloader/mini2440.c b/bootloader/mini2440.c
index b3d73d1270..4088065550 100644
--- a/bootloader/mini2440.c
+++ b/bootloader/mini2440.c
@@ -29,6 +29,7 @@
29#include "lcd.h" 29#include "lcd.h"
30#include "../kernel-internal.h" 30#include "../kernel-internal.h"
31#include "storage.h" 31#include "storage.h"
32#include "file_internal.h"
32#include "fat.h" 33#include "fat.h"
33#include "disk.h" 34#include "disk.h"
34#include "font.h" 35#include "font.h"
@@ -88,7 +89,7 @@ int main(void)
88 error(EATA, rc, true); 89 error(EATA, rc, true);
89 } 90 }
90 91
91 disk_init(IF_MD(0)); 92 filesystem_init();
92 rc = disk_mount_all(); 93 rc = disk_mount_all();
93 if (rc<=0) 94 if (rc<=0)
94 { 95 {
diff --git a/bootloader/mpio_hd200_hd300.c b/bootloader/mpio_hd200_hd300.c
index a4e13e1f88..e66732f848 100644
--- a/bootloader/mpio_hd200_hd300.c
+++ b/bootloader/mpio_hd200_hd300.c
@@ -29,6 +29,7 @@
29#include "lcd.h" 29#include "lcd.h"
30#include "../kernel-internal.h" 30#include "../kernel-internal.h"
31#include "storage.h" 31#include "storage.h"
32#include "file_internal.h"
32#include "usb.h" 33#include "usb.h"
33#include "disk.h" 34#include "disk.h"
34#include "font.h" 35#include "font.h"
@@ -202,7 +203,7 @@ static void rb_boot(void)
202 if(rc) 203 if(rc)
203 error(EATA, rc, true); 204 error(EATA, rc, true);
204 205
205 disk_init(); 206 filesystem_init();
206 207
207 rc = disk_mount_all(); 208 rc = disk_mount_all();
208 if (rc <= 0) 209 if (rc <= 0)
diff --git a/bootloader/mrobe500.c b/bootloader/mrobe500.c
index 0b9ffb6281..08ba6f2acd 100644
--- a/bootloader/mrobe500.c
+++ b/bootloader/mrobe500.c
@@ -26,6 +26,7 @@
26#include "lcd.h" 26#include "lcd.h"
27#include "../kernel-internal.h" 27#include "../kernel-internal.h"
28#include "storage.h" 28#include "storage.h"
29#include "file_internal.h"
29#include "fat.h" 30#include "fat.h"
30#include "disk.h" 31#include "disk.h"
31#include "font.h" 32#include "font.h"
@@ -123,8 +124,8 @@ void main(void)
123 error(EATA, rc, true); 124 error(EATA, rc, true);
124 } 125 }
125 126
126 printf("disk"); 127 printf("filesystem");
127 disk_init(); 128 filesystem_init();
128 129
129 printf("mount"); 130 printf("mount");
130 rc = disk_mount_all(); 131 rc = disk_mount_all();
diff --git a/bootloader/ondavx747.c b/bootloader/ondavx747.c
index 3d03c36eae..0f1c504553 100644
--- a/bootloader/ondavx747.c
+++ b/bootloader/ondavx747.c
@@ -33,6 +33,7 @@
33#include "rb-loader.h" 33#include "rb-loader.h"
34#include "loader_strerror.h" 34#include "loader_strerror.h"
35#include "storage.h" 35#include "storage.h"
36#include "file_internal.h"
36#include "disk.h" 37#include "disk.h"
37#include "string.h" 38#include "string.h"
38#include "adc.h" 39#include "adc.h"
@@ -269,6 +270,8 @@ int main(void)
269 270
270 show_logo(); 271 show_logo();
271 272
273 filesystem_init();
274
272 rc = storage_init(); 275 rc = storage_init();
273 if(rc) 276 if(rc)
274 error(EATA, rc, true); 277 error(EATA, rc, true);
diff --git a/bootloader/rk27xx.c b/bootloader/rk27xx.c
index d190ea5a5a..57e5868a87 100644
--- a/bootloader/rk27xx.c
+++ b/bootloader/rk27xx.c
@@ -12,6 +12,7 @@
12#include "button.h" 12#include "button.h"
13#include "common.h" 13#include "common.h"
14#include "storage.h" 14#include "storage.h"
15#include "file_internal.h"
15#include "disk.h" 16#include "disk.h"
16#include "panic.h" 17#include "panic.h"
17#include "power.h" 18#include "power.h"
@@ -146,8 +147,7 @@ void main(void)
146 if(ret < 0) 147 if(ret < 0)
147 error(EATA, ret, true); 148 error(EATA, ret, true);
148 149
149 while(!disk_init(IF_MV(0))) 150 filesystem_init();
150 panicf("disk_init failed!");
151 151
152 while((ret = disk_mount_all()) <= 0) 152 while((ret = disk_mount_all()) <= 0)
153 error(EDISK, ret, true); 153 error(EDISK, ret, true);
diff --git a/bootloader/sansa_as3525.c b/bootloader/sansa_as3525.c
index 8592f2450f..01fb8459b4 100644
--- a/bootloader/sansa_as3525.c
+++ b/bootloader/sansa_as3525.c
@@ -39,6 +39,7 @@
39#include "rb-loader.h" 39#include "rb-loader.h"
40#include "loader_strerror.h" 40#include "loader_strerror.h"
41#include "storage.h" 41#include "storage.h"
42#include "file_internal.h"
42#include "disk.h" 43#include "disk.h"
43#include "panic.h" 44#include "panic.h"
44#include "power.h" 45#include "power.h"
@@ -119,6 +120,8 @@ void main(void)
119 if(ret < 0) 120 if(ret < 0)
120 error(EATA, ret, true); 121 error(EATA, ret, true);
121 122
123 filesystem_init();
124
122#ifdef USE_ROCKBOX_USB 125#ifdef USE_ROCKBOX_USB
123 usb_init(); 126 usb_init();
124 usb_start_monitoring(); 127 usb_start_monitoring();
@@ -128,13 +131,6 @@ void main(void)
128 usb_mode(); 131 usb_mode();
129#endif /* USE_ROCKBOX_USB */ 132#endif /* USE_ROCKBOX_USB */
130 133
131 while(!disk_init(IF_MV(0)))
132#ifdef USE_ROCKBOX_USB
133 usb_mode();
134#else
135 panicf("disk_init failed!");
136#endif
137
138 while((ret = disk_mount_all()) <= 0) 134 while((ret = disk_mount_all()) <= 0)
139 { 135 {
140#ifdef USE_ROCKBOX_USB 136#ifdef USE_ROCKBOX_USB
diff --git a/bootloader/sansaconnect.c b/bootloader/sansaconnect.c
index 48617ec337..5bd59b3ac4 100644
--- a/bootloader/sansaconnect.c
+++ b/bootloader/sansaconnect.c
@@ -21,6 +21,7 @@
21#include "lcd.h" 21#include "lcd.h"
22#include "../kernel-internal.h" 22#include "../kernel-internal.h"
23#include "storage.h" 23#include "storage.h"
24#include "file_internal.h"
24#include "disk.h" 25#include "disk.h"
25#include "font.h" 26#include "font.h"
26#include "backlight.h" 27#include "backlight.h"
@@ -72,7 +73,7 @@ void main(void)
72 if(ret) 73 if(ret)
73 printf("SD error: %d", ret); 74 printf("SD error: %d", ret);
74 75
75 disk_init(IF_MD(0)); 76 filesystem_init();
76 77
77 ret = disk_mount_all(); 78 ret = disk_mount_all();
78 if (ret <= 0) 79 if (ret <= 0)
diff --git a/bootloader/telechips.c b/bootloader/telechips.c
index 17ba509a6c..d2cf10eb21 100644
--- a/bootloader/telechips.c
+++ b/bootloader/telechips.c
@@ -30,6 +30,7 @@
30#include "lcd.h" 30#include "lcd.h"
31#include "../kernel-internal.h" 31#include "../kernel-internal.h"
32#include "storage.h" 32#include "storage.h"
33#include "file_internal.h"
33#include "fat.h" 34#include "fat.h"
34#include "disk.h" 35#include "disk.h"
35#include "font.h" 36#include "font.h"
@@ -162,6 +163,8 @@ void* main(void)
162 error(EATA, rc, true); 163 error(EATA, rc, true);
163 } 164 }
164 165
166 filesystem_init();
167
165 printf("mount"); 168 printf("mount");
166 rc = disk_mount_all(); 169 rc = disk_mount_all();
167 if (rc<=0) 170 if (rc<=0)
diff --git a/bootloader/tpj1022.c b/bootloader/tpj1022.c
index 159dcc63cd..30adb6ba4e 100644
--- a/bootloader/tpj1022.c
+++ b/bootloader/tpj1022.c
@@ -31,6 +31,7 @@
31#include "kernel.h" 31#include "kernel.h"
32#include "thread.h" 32#include "thread.h"
33#include "storage.h" 33#include "storage.h"
34#include "file_internal.h"
34#include "fat.h" 35#include "fat.h"
35#include "disk.h" 36#include "disk.h"
36#include "font.h" 37#include "font.h"
@@ -56,7 +57,7 @@ void* main(void)
56 57
57 i=storage_init(); 58 i=storage_init();
58 59
59 disk_init(); 60 filesystem_init();
60 rc = disk_mount_all(); 61 rc = disk_mount_all();
61 62
62#if 0 63#if 0