From 7c67a48332d0519c43618efd943f19d2e4bf5788 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Sat, 2 Oct 2021 02:19:10 -0400 Subject: 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 --- firmware/core_alloc.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'firmware') diff --git a/firmware/core_alloc.c b/firmware/core_alloc.c index df1b4d3213..bf2f8e8298 100644 --- a/firmware/core_alloc.c +++ b/firmware/core_alloc.c @@ -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) +/* 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; -#else /* !IPOD_VIDEO */ -extern unsigned char audiobufend[]; -#endif +#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); -- cgit v1.2.3