Hi. I was wondering what components are in a DAP besides primary storage, particularly with respect to booting and USB.
In a PC for instance, control starts at a BIOS (EEP)ROM, which (usually) looks at the first logical block of the harddrive to determine how to load a bootloader, which proceeds to load itself and the operating system. I don't understand how this works when booting from a flash storage device. Assuming the BIOS can implement the USB Mass Storage protocol and get access to the flash as a block device, what does it do from there? Is there some kind of master boot record in the first block? Is it well-standardized or a de facto standard?
Now consider a DAP like the Sansa e200. In the Rockbox wiki/documentation there's talk of multiple bootloaders that occupy different spaces. It sounds like both the proprietary and Rockbox operating systems are on the flash, and the Rockbox secondary bootloader replaces the proprietary one on flash (analogous to GRUB replacing the windows loader on a hard drive). But there's still a primary proprietary loader that isn't replaced; where does it reside? According to
this wiki page, the primary bootloader is in "special flash memory" - does that mean it is or isn't accessible in the same way the firmware is?
What about when we connect the device via USB to a PC? The PC sees a mass storage device, but how is the player's boot procedure different and what operating system is running on it? I assume the player can be flashed even if the flash itself is wiped; what if the primary bootloader is somehow lost as well? How is that updated or recovered, and does it make sense to talk about open source substitutes for it? And don't forget the whole MSC versus whatever-the-MS-alternative-is aspect - where is that setting stored and what is responsible for changing it?
Thanks.