Hold "Play" to boot the OF, or boot it from the recovery menu
by holding "Vol. Up". If you had the hosted port installed on your
player before installing the native port, you'll still have to go
through the hosted bootloader.
A couple notes:
- When booting from the menu, the recovery menu disappears, then
reappears before going into the OF.
- You need to hold the play button for like a half second after the
blue light comes on in order to get into the OF.
The recovery appears to be there, but it doesn't seem to be intended
for end users - it just says "Updater V1.1 - Insert TF Pls". I haven't
tested it beyond seeing that it boots, so I'm going to comment it out
for now.
Change-Id: Ie271ee479bb628cc74141b7fe07273b3f193f358
Screenshots of the recovery menu will be useful for documentation.
This can be disabled by turning off HAVE_BOOTLOADER_SCREENDUMP in
the target config file if the bootloader should ever run up against
max size limits.
Change-Id: I62ec1e465df2ca7a8a0e78625d88b31f6c4ef078
Bad blocks in a kernel flash partition seem to be handled by skipping
ahead to the next block; this is a common bad block management scheme
for simple software like bootloaders (and is the default method for
reading NAND partitions in u-boot).
Extend the uImage flash reader to skip bad blocks while reading.
Change-Id: I815875e83a2418e2642f736e04a3437c31b354ba
Add a debug menu to invoke two new actions, dumping the OF kernel
and recovery images from flash to the SD card.
Change-Id: I3ca943fac22e725a2d56b84d62f4a04821042fed
The M3K's kernel has an incredibly stupid function that mangles the
kernel args and copies them to a 100-byte buffer without any kind of
bounds checking. So, if the kernel arguments are more than 99 chars
the stack may be corrupted, sometimes crashing the kernel.
Fortunately, most of the arguments the OF uses are useless, and the
truly necessary arguments fit within the absurd 99-char limit.
Change-Id: I01ef4513298f79d3c08538239802c21e88509631
Basically, there's longstanding bug in Linux with self-extracting
kernels on MIPS which just happened to manifest now on the M3K as
a hang on boot. The fix is applied to the M3K and Q1 since they
both use this type of kernel image.
Change-Id: I17d2bad6eebd677cd6d2e0bf146450c71fcf1229
This adds a *very basic* Linux loader to the Rockbox bootloader,
which allows running a mainline Linux kernel using the following
file layout on the SD card:
- /uImage
- /linux_cmdline.txt
The command line arguments are listed in linux_cmdline.txt, all
lines are concatenated together and whitespace is converted into
spaces. Comments aren't supported however.
The loader doesn't support the modern devicetree boot protocol,
so it can only pass command line arguments. It would be easy to
support an appended dtb though.
Change-Id: I373f465dbbdafe94738f619748cbb0278fc2c25f
Adds the ability to boot the OF's player or recovery kernels
from the bootloader. Works on Shanling Q1 but broken on the
FiiO M3K (kernel hang) so leave it disabled for the M3K.
Change-Id: I26b973fba1c22afb906a78865963a96dd2107932
Adds loaders for uImages on the SD card or on a raw flash partition.
These work similarily to load_rockbox() and return a buflib alloc
and size. Booting the image is left up to the caller.
Change-Id: I0d58e8c6a61d8349bc5223431cdd06dfdf2503fa
Separate loading out into its own routine with a file name
parameter in preparation for multiboot support.
Change-Id: Ic651e9fa7738ea97789e4a9669834c4e3ef22d66
Now that everything has been refactored into separate files the
main routine is the only thing left to move. Put it in main.c.
Change-Id: I53aba87ed281b52944fb80d9a62beaec1c87f152
Drop init_usb(), instead initialize USB early in the main function
so the hardware is placed into a known good state after a USB boot.
The impact on boot time should be minimal.
Change-Id: I9774ddfc2c27811363bdb0c54cb0e57b5ca59d73
Add check_disk() to query the disk insertion status and prompt the
user if necessary. Use this in place of init_disk().
Perform an unconditional disk_mount_all() from the main function.
Change-Id: I9a8cc42266edf99cd15ece3aee8fa25835df04ae