diff options
Diffstat (limited to 'bootloader/gigabeat-s.c')
-rw-r--r-- | bootloader/gigabeat-s.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c index a4e6391c7e..f3e2917131 100644 --- a/bootloader/gigabeat-s.c +++ b/bootloader/gigabeat-s.c | |||
@@ -52,16 +52,27 @@ char buf[MAX_PATH]; | |||
52 | char basedir[] = "/Content/0b00/00/"; /* Where files sent via MTP are stored */ | 52 | char basedir[] = "/Content/0b00/00/"; /* Where files sent via MTP are stored */ |
53 | char model[5]; | 53 | char model[5]; |
54 | int (*kernel_entry)(void); | 54 | int (*kernel_entry)(void); |
55 | extern void reference_system_c(void); | ||
56 | |||
57 | /* Dummy stub that creates C references for C functions only used by | ||
58 | assembly - never called */ | ||
59 | void reference_files(void) | ||
60 | { | ||
61 | reference_system_c(); | ||
62 | } | ||
55 | 63 | ||
56 | void main(void) | 64 | void main(void) |
57 | { | 65 | { |
58 | lcd_clear_display(); | 66 | lcd_clear_display(); |
59 | printf("Hello world!"); | 67 | printf("Hello world!"); |
60 | printf("Gigabeat S Rockbox Bootloader v.00000002"); | 68 | printf("Gigabeat S Rockbox Bootloader v.00000003"); |
69 | system_init(); | ||
61 | kernel_init(); | 70 | kernel_init(); |
62 | printf("kernel init done"); | 71 | printf("kernel init done"); |
63 | int rc; | 72 | int rc; |
64 | 73 | ||
74 | set_interrupt_status(IRQ_FIQ_ENABLED, IRQ_FIQ_STATUS); | ||
75 | |||
65 | rc = ata_init(); | 76 | rc = ata_init(); |
66 | if(rc) | 77 | if(rc) |
67 | { | 78 | { |
@@ -109,11 +120,13 @@ void main(void) | |||
109 | printf("Loading firmware"); | 120 | printf("Loading firmware"); |
110 | 121 | ||
111 | unsigned char *loadbuffer = (unsigned char *)0x0; | 122 | unsigned char *loadbuffer = (unsigned char *)0x0; |
112 | int buffer_size = 1024*1024; | 123 | int buffer_size = 31*1024*1024; |
113 | 124 | ||
114 | rc = load_firmware(loadbuffer, buf, buffer_size); | 125 | rc = load_firmware(loadbuffer, buf, buffer_size); |
115 | if(rc < 0) | 126 | if(rc < 0) |
116 | error(buf, rc); | 127 | error((int)buf, rc); |
128 | |||
129 | system_prepare_fw_start(); | ||
117 | 130 | ||
118 | if (rc == EOK) | 131 | if (rc == EOK) |
119 | { | 132 | { |