From 91ce4b2a60c4cbe8e3568f79c3a73572461ff40d Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Sun, 19 Jun 2011 17:23:18 +0000 Subject: Optional dual-boot support in iAudio X5 and M5 bootloader, based on FS#5289. In order to enable it, #define HAVE_DUALBOOT when building the bootloader. Do not use the automatically created x5_fw.bin or m5_fw.bin, but use mkboot to create a new firmware file from an OF x5_fw.bin resp. m5_fw.bin and bootloader.bin. The dual-boot bootloader boots the OF when pressing Play (main or remote) for more than 3 seconds. Hold it a bit longer because the OF also checks buttons. Short press boots rockbox. As a bonus, the Play button read (for hold check) is done a bit earlier for single-boot mode as well. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30018 a1c6a512-1295-4272-9138-f99709370657 --- bootloader/iaudio_coldfire.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'bootloader/iaudio_coldfire.c') diff --git a/bootloader/iaudio_coldfire.c b/bootloader/iaudio_coldfire.c index 5639a0e59b..9c829c4a34 100644 --- a/bootloader/iaudio_coldfire.c +++ b/bootloader/iaudio_coldfire.c @@ -123,6 +123,10 @@ void check_battery(void) } } +#if defined(IAUDIO_M5) || defined(IAUDIO_X5) +int initial_gpio_read; +#endif + void main(void) { int i; @@ -144,17 +148,13 @@ void main(void) if ((GPIO_READ & 0x80000000) == 0) rc_on_button = true; #elif defined(IAUDIO_M5) || defined(IAUDIO_X5) - int data; - or_l(0x0e000000, &GPIO_FUNCTION); /* main Hold & Power, remote Play */ and_l(~0x0e000000, &GPIO_ENABLE); - - data = GPIO_READ; - - if ((data & 0x04000000) == 0) + + if ((initial_gpio_read & 0x04000000) == 0) on_button = true; - - if ((data & 0x02000000) == 0) + + if ((initial_gpio_read & 0x02000000) == 0) rc_on_button = true; #endif -- cgit v1.2.3