rockbox/firmware/include
William Wilgus e9de9c1452 Add boot from other volumes in bootloader on targets with HAVE_MULTIVOLUME
Adds the ability to load firmware from other drives on MULTIVOLUME targets
Mihail Zenkov <mihail.zenkov@gmail.com> had posted a hard coded patch
to allow this on several Sansa players, I made it more universal

Redirect file rockbox_main.<name> should placed in root of
drive you would like to be main, if this file empty or there a single
slash '/' firmware will be loaded from /.rockbox in root of this drive
If instead a /<*DIRECTORY*> is supplied in rockbox_main.<name> then
firmware will be loaded from /<dir>/.rockbox/

NOTES*

The directory can have multiple levels however..
leading slash MUST be included
trailing slash can be omitted
(eg. /test/.rockbox would be simply '/test' in the redirect file)

Redirect file will not work on internal drive (whatever is default boot drive)

Volume with the highest index containing redirect file will be loaded
first.

Firmware file is checked for boot data region, if missing, firmware
image will not be loaded.

On failure or if no redirect file is found load will fallback to
internal drive

Currently only Sansa Fuze+, Sansa Clip+,
Sansa Clip Zip, Sansa Fuzev2, and Sansa Fuzev1 are implemented.

Players (with HAVE_MULTIVOLUME)
will need #define HAVE_BOOTDATA and #define BOOT_REDIR "rockbox_main.<name>"
added to their config file

boot_data is implemented in crt0.s file (See g#1552)
ARM and IMX233 have aleady been implemented

Once these conditions are met <HAVE_MULTIBOOT> will be defined by config.h

Partitions on the drives are able to have a redirect as
well.

Change-Id: Iada3263919f6bcad7d0d7d8279b4239aafa07ee9
2017-10-29 17:53:04 +01:00
..
_ansi.h
assert.h
bitarray.h Add multi-reader, single-writer locks to kernel. 2014-08-06 02:47:47 +02:00
buflib.h Improve core_alloc() / buflib_alloc() documentation 2015-01-02 18:51:15 +01:00
core_alloc.h buflib: Properly support allocations without any name, to avoid wasting space 2014-02-02 19:40:38 +01:00
crc32-mi4.h crc-mi4: use const lookup table for crc 2014-07-07 12:54:50 +02:00
crc32-rkw.h
crc32.h buflib: Add crc field protecting buflib cookie integrity 2014-01-16 10:17:39 +01:00
dbgcheck.h
diacritic.h
dir.h Fix path handling snafu for CheckWPS tool 2017-01-16 07:30:39 -05:00
dircache.h Restore dircache hookup in the database ramcache. 2017-02-10 05:05:23 -05:00
dircache_redirect.h Do some debug and preparatory work for ramcache and playlist 2017-01-17 14:35:36 -05:00
disk_cache.h Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
file.h Fix path handling snafu for CheckWPS tool 2017-01-16 07:30:39 -05:00
file_internal.h Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
fileobj_mgr.h Do some debug and preparatory work for ramcache and playlist 2017-01-17 14:35:36 -05:00
filesystem-native.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
font_cache.h fonts: Do not unload completely on USB. 2014-01-15 23:37:39 +01:00
format.h
fs_attr.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
fs_defines.h Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
gcc_extensions.h
linked_list.h Add common linked list functions 2014-08-16 00:27:01 -04:00
loader_strerror.h Move load_firmware() to separate file 2013-06-27 13:50:11 +02:00
lru.h
memset16.h
rb-loader.h Add boot from other volumes in bootloader on targets with HAVE_MULTIVOLUME 2017-10-29 17:53:04 +01:00
rbendian.h Support using swapxx() and bswap_xx() for byteswaps in rbendian.h 2017-01-15 12:37:46 -05:00
rbunicode.h Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
strcasecmp.h
strcasestr.h
string-extra.h Hopefully fix most of the errors and warnings from the last push 2014-08-29 23:36:11 -04:00
strlcat.h
strlcpy.h
strnatcmp.h
strtok_r.h
timefuncs.h
version.h Prevent spurious recompiles on account of changed version. 2014-08-28 15:48:56 +02:00