Sansa E200v1 Bootloader attempt at enabling USB in boot loader

there is a 1MB free region that is used to load the firmware but we
shouldn't need that till after a USB connection

so here is my 2nd try

Change-Id: I2552db3a7fba019d7e7188984432f758ddafe548
This commit is contained in:
William Wilgus 2021-10-02 02:19:10 -04:00 committed by William Wilgus
parent 75524a7eec
commit 7c67a48332
2 changed files with 23 additions and 7 deletions

View File

@ -51,6 +51,9 @@
#if defined(SANSA_E200) || defined(SANSA_C200) || defined(PHILIPS_SA9200)
#include "usb_drv.h"
#endif
#if defined(SANSA_E200) && defined(HAVE_BOOTLOADER_USB_MODE)
#include "core_alloc.h"
#endif
#if defined(SAMSUNG_YH925)
/* this function (in lcd-yh925.c) resets the screen orientation for the OF
* for use with dualbooting */
@ -232,7 +235,6 @@ static int handle_usb(int connect_timeout)
usb = USB_HANDLED;
usb_acknowledge(SYS_USB_CONNECTED_ACK);
usb_wait_for_disconnect(&q);
break;
}
if (connect_timeout != TIMEOUT_BLOCK &&
@ -299,6 +301,9 @@ void* main(void)
int usb = USB_EXTRACTED;
system_init();
#if defined(SANSA_E200) && defined(HAVE_BOOTLOADER_USB_MODE)
core_allocator_init();
#endif
kernel_init();
#ifdef HAVE_BOOTLOADER_USB_MODE

View File

@ -8,16 +8,27 @@
/* not static so it can be discovered by core_get_data() */
struct buflib_context core_ctx;
/* defined in linker script */
#if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(__PCTOOL__)
#if defined(IPOD_VIDEO) && !defined(BOOTLOADER)
extern unsigned char *audiobufend_lds[];
unsigned char *audiobufend;
#else /* !IPOD_VIDEO */
extern unsigned char audiobufend[];
#endif
/* defined in linker script */
extern unsigned char audiobuffer[];
extern unsigned char *audiobufend_lds[];
/* pointer to end of audio buffer filled at runtime allocator_init */
unsigned char *audiobufend;
#elif defined(SANSA_E200) && defined(HAVE_BOOTLOADER_USB_MODE)
/* defined in linker script */
extern unsigned char freebuffer[];
extern unsigned char freebufferend[];
/* map linker symbol to the audiobuffer in order to use core_alloc */
unsigned char *audiobuffer = (unsigned char *)freebuffer;
unsigned char *audiobufend = (unsigned char *)freebufferend;
#else /* !IPOD_VIDEO, !SANSA_E200&&BOOTLOADERUSB */
/* defined in linker script */
extern unsigned char audiobuffer[];
extern unsigned char audiobufend[];
#endif
#else /* PLATFORM_HOSTED */
static unsigned char audiobuffer[((MEMORYSIZE)*1024-768)*1024];
unsigned char *audiobufend = audiobuffer + sizeof(audiobuffer);