diff options
Diffstat (limited to 'bootloader')
| -rw-r--r-- | bootloader/sansa_as3525.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/bootloader/sansa_as3525.c b/bootloader/sansa_as3525.c index 9248921..e63bb2c 100644 --- a/bootloader/sansa_as3525.c +++ b/bootloader/sansa_as3525.c @@ -27,6 +27,11 @@ #include <inttypes.h> #include "config.h" #include "lcd.h" +#ifdef USE_ROCKBOX_USB +#include "usb.h" +#include "usb_core.h" +#include "sysfont.h" +#endif /* USE_ROCKBOX_USB */ #include "backlight.h" #include "button-target.h" #include "common.h" @@ -82,6 +87,29 @@ void main(void) if(ret < 0) error(EATA,ret); +#ifdef USE_ROCKBOX_USB + usb_init(); + if(usb_detect() == USB_INSERTED) + { + const char msg[] = "Bootloader USB mode"; + reset_screen(); + lcd_putsxy( (LCD_WIDTH - (SYSFONT_WIDTH * sizeof(msg))) / 2, + (LCD_HEIGHT - SYSFONT_HEIGHT) / 2, msg); + lcd_update(); + + usb_core_enable_driver(USB_DRIVER_MASS_STORAGE, true); + usb_enable(true); + + while(usb_detect() == USB_INSERTED) + sleep(HZ); + + usb_enable(false); + + reset_screen(); + lcd_update(); + } +#endif /* USE_ROCKBOX_USB */ + if(!disk_init(IF_MV(0))) panicf("disk_init failed!"); |