Sansa AMS bootloader: consider the bootloader finished
Be verbose only if a keypress has been detected.
Use enable/disable_irq() instead of inline assembly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19213 a1c6a512-1295-4272-9138-f99709370657
diff --git a/bootloader/sansa_as3525.c b/bootloader/sansa_as3525.c
index d59e7e7..6da546f 100644
--- a/bootloader/sansa_as3525.c
+++ b/bootloader/sansa_as3525.c
@@ -52,22 +52,17 @@
ascodec_init(); /* Required for backlight on e200v2 */
_backlight_on();
-#if 0 /* remove me when the bootloader can be considered finished */
+ button_init_device();
int btn = button_read_device();
/* Enable bootloader messages if any button is pressed */
if (btn)
-#endif
{
lcd_clear_display();
verbose = true;
}
- asm volatile(
- "mrs r0, cpsr \n"
- "bic r0, r0, #0x80 \n" /* enable interrupts */
- "msr cpsr, r0 \n"
- : : : "r0" );
+ enable_irq();
ret = storage_init();
if(ret < 0)
@@ -90,11 +85,7 @@
if(ret < 0)
error(EBOOTFILE, ret);
- asm volatile(
- "mrs r0, cpsr \n"
- "orr r0, r0, #0x80 \n" /* disable interrupts */
- "msr cpsr, r0 \n"
- : : : "r0" );
+ disable_irq(); /* disable irq until we have copied the new vectors */
if (ret == EOK)
{