diff options
author | William Wilgus <wilgus.william@gmail.com> | 2021-10-02 02:19:10 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2021-10-04 10:56:33 -0400 |
commit | 7c67a48332d0519c43618efd943f19d2e4bf5788 (patch) | |
tree | 98b20f656f3d79f426bde2a6f625dc605655c77b /firmware | |
parent | 75524a7eeca2a5771486762b65c7e0e5ad3e4a65 (diff) |
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
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/core_alloc.c | 19 |
1 files changed, 15 insertions, 4 deletions
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); |