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:
parent
6da68019b5
commit
b8a00d2afe
1 changed files with 21 additions and 14 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue