I'm reasonably familiar with the boot process having read
http://www.ipodlinux.org/Firmware.html and
https://www.rockbox.org/wiki/IpodPatcher.html#Overview_of_the_ipod_firmware_partition.
I have an ipodvideo and while its great that the OFW can see all of the 512G disk, I will never use the official firmare.
I came up with a clever way to prevent the OFW from booting after reading the bootloader source:
* So, once the bootloader has control:
*
* 1) If the hold switch is on, or the menu button is being held,
* try to boot the Apple firmware.
* 1a) First, it looks for apple_os.ipod on the FAT32 partition,
* in .rockbox or the root directory. If found it loads that
* without further checking and runs it.
* 1b) Next, it checks to see if the OSOS image already loaded
* into RAM is in fact the Apple firmware with the bootloader
* appended. It looks at DRAM_START+0x20 for the string
* "portalplayer", and if it's there, just jumps back to
* DRAM_START where the entry point was before the bootloader
* was appended.
* 1c) If neither of those worked, it displays an error and dies.
So I copied .rockbox/rockbox.ipod to .rockbox/apple_os.ipod and now if I boot my ipodvideo with the hold switch on it will boot rockbox instead of the OFW. Booting is much faster as a result!
I am interested in the comments further down:
* Loading from OSOS is somewhat faster than loading from FAT32,
* because the Apple ROM doesn't have to deal with filesystems or
* fragmentation, and is already loading from OSOS anyway. Thus,
* the fastest boot configuration that still allows dual booting
* is to install Rockbox into OSOS with the bootloader appended
* (and delete/rename rockbox.ipod from the FAT32 partition).
*
* It is of course faster to just install Rockbox to OSOS alone,
* but then it's impossible to boot the Apple firmware.
It is of course faster to just install Rockbox to OSOS alone, but then it's impossible to boot the Apple firmware.
Has installing Rockbox to OSOS been documented anywhere? I realise I would probably have to rewrite the OSOS each time I update rockbox but that doesn't seem too tedious.