1
0
Fork 0
forked from len0rd/rockbox

iriver bootloader: Better handling of the Hold buttons, turn on the remote backlight when booting, look for /.rockbox/rockbox.iriver before trying /rockbox.iriver

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7976 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2005-11-19 01:33:28 +00:00
parent d5f3e9ba83
commit bbe919bdcb

View file

@ -97,9 +97,13 @@ int load_firmware(void)
unsigned char *buf = (unsigned char *)DRAM_START;
char str[80];
fd = open("/rockbox.iriver", O_RDONLY);
fd = open("/.rockbox/" BOOTFILE, O_RDONLY);
if(fd < 0)
return -1;
{
fd = open("/" BOOTFILE, O_RDONLY);
if(fd < 0)
return -1;
}
len = filesize(fd) - 8;
@ -190,15 +194,32 @@ void main(void)
if ((data & 0x40) == 0)
rc_on_button = true;
/* Backlight ON */
or_l(0x00020000, &GPIO1_ENABLE);
or_l(0x00020000, &GPIO1_FUNCTION);
/* Set the default state of the hard drive power to OFF */
ide_power_enable(false);
power_init();
/* Turn off if neither ON button is pressed */
if(!(on_button || rc_on_button))
power_off();
/* Backlight ON */
or_l(0x00020000, &GPIO1_ENABLE);
or_l(0x00020000, &GPIO1_FUNCTION);
and_l(~0x00020000, &GPIO1_OUT);
/* Remote backlight ON */
#ifdef HAVE_REMOTE_LCD
#ifdef IRIVER_H300_SERIES
or_l(0x00000002, &GPIO1_ENABLE);
and_l(~0x00000002, &GPIO1_OUT);
#else
or_l(0x00000800, &GPIO_ENABLE);
or_l(0x00000800, &GPIO_FUNCTION);
and_l(~0x00000800, &GPIO_OUT);
#endif
#endif
/* Power on the hard drive early, to speed up the loading */
if(!((on_button && button_hold()) ||
(rc_on_button && remote_button_hold()))) {
@ -246,6 +267,15 @@ void main(void)
lcd_puts(0, 8, "HOLD switch on, power off...");
lcd_update();
sleep(HZ*2);
/* Backlight OFF */
#ifdef HAVE_REMOTE_LCD
#ifdef IRIVER_H300_SERIES
or_l(0x00000002, &GPIO1_OUT);
#else
or_l(0x00000800, &GPIO_OUT);
#endif
#endif
/* Reset the cookie for the crt0 crash check */
asm(" move.l #0,%d0");
asm(" move.l %d0,0x10017ffc");