1
0
Fork 0
forked from len0rd/rockbox

iRiver boot: faster startup, don't start with Hold on, always start original when started with the remote, start the original if unable to load rockbox.iriver

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5888 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2005-02-10 21:55:48 +00:00
parent 6da68019b5
commit b8a00d2afe

View file

@ -69,7 +69,7 @@ int load_firmware(void)
if(fd < 0) if(fd < 0)
return -1; return -1;
len = lseek(fd, 0, SEEK_END) - 8; len = filesize(fd) - 8;
snprintf(str, 80, "Length: %x", len); snprintf(str, 80, "Length: %x", len);
lcd_puts(0, line++, str); lcd_puts(0, line++, str);
@ -122,11 +122,10 @@ void start_firmware(void)
asm(" jmp (%a0)"); asm(" jmp (%a0)");
} }
int main(void) void main(void)
{ {
int i; int i;
int rc; int rc;
int button;
char buf[256]; char buf[256];
power_init(); power_init();
@ -141,15 +140,30 @@ int main(void)
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
sleep(HZ/10); /* Allow the button driver to check the buttons */ sleep(HZ/50); /* Allow the button driver to check the buttons */
if(button_status() & BUTTON_REC) { if(button_status() & BUTTON_REC ||
button_status() & BUTTON_RC_ON) {
lcd_puts(0, 8, "Starting original firmware..."); lcd_puts(0, 8, "Starting original firmware...");
lcd_update(); lcd_update();
sleep(HZ);
start_iriver_fw(); start_iriver_fw();
} }
if((button_status() & BUTTON_ON) & button_hold()) {
lcd_puts(0, 8, "HOLD switch on, power off...");
lcd_update();
sleep(HZ/2);
power_off();
}
#if 0
if((button_status() & BUTTON_RC_ON) & remote_button_hold()) {
lcd_puts(0, 8, "HOLD switch on, power off...");
lcd_update();
sleep(HZ/2);
power_off();
}
#endif
rc = ata_init(); rc = ata_init();
if(rc) if(rc)
{ {
@ -186,14 +200,7 @@ int main(void)
if(i == 0) if(i == 0)
start_firmware(); start_firmware();
while(1) { start_iriver_fw();
button = button_get_w_tmo(HZ/2);
if(button)
{
if(button == (BUTTON_OFF | BUTTON_REPEAT))
power_off();
}
}
} }
/* These functions are present in the firmware library, but we reimplement /* These functions are present in the firmware library, but we reimplement