forked from len0rd/rockbox
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>
This commit is contained in:
parent
46ea8bfe7c
commit
0b29691324
29 changed files with 727 additions and 608 deletions
|
|
@ -39,6 +39,8 @@
|
|||
#include "power.h"
|
||||
#include "file.h"
|
||||
#include "common.h"
|
||||
#include "rb-loader.h"
|
||||
#include "loader_strerror.h"
|
||||
#include "sd.h"
|
||||
#include "backlight-target.h"
|
||||
#include "lcd-target.h"
|
||||
|
|
@ -97,26 +99,23 @@ int main(void)
|
|||
printf("Loading firmware");
|
||||
|
||||
/* Flush out anything pending first */
|
||||
cpucache_invalidate();
|
||||
commit_discard_idcache();
|
||||
|
||||
loadbuffer = (unsigned char*) 0x31000000;
|
||||
buffer_size = (unsigned char*)0x31400000 - loadbuffer;
|
||||
|
||||
rc = load_firmware(loadbuffer, BOOTFILE, buffer_size);
|
||||
if(rc < 0)
|
||||
if(rc <= 0)
|
||||
error(EBOOTFILE, rc, true);
|
||||
|
||||
|
||||
printf("Loaded firmware %d\n", rc);
|
||||
|
||||
/* storage_close(); */
|
||||
system_prepare_fw_start();
|
||||
|
||||
if (rc == EOK)
|
||||
{
|
||||
cpucache_invalidate();
|
||||
kernel_entry = (void*) loadbuffer;
|
||||
rc = kernel_entry();
|
||||
}
|
||||
commit_discard_idcache();
|
||||
kernel_entry = (void*) loadbuffer;
|
||||
rc = kernel_entry();
|
||||
|
||||
/* end stop - should not get here */
|
||||
led_flash(LED_ALL, LED_NONE);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue