4 ms·
A major product challenge of eMMC in a design is the requirement to supply a means of flashing data onto the storage device when the CPU can't boot from the eMM
by mrlambchop 7y ago
A major product challenge of eMMC in a design is the requirement to supply a means of flashing data onto the storage device when the CPU can't boot from the eMMC (or the disk is corrupted).
The SDCard solves this problem fairly well (although the solution requires a reasonable level of computer literacy due to the filesystems and raw block device access needed, however its a good fit for the Pi user demographic).
Other systems solve this chicken/egg problem by having a tool that runs on a PC that can perform the programming of attached storage, often by downloading code and data into a CPUs RAM and then having it flash to the disk. Exposing JTAG to Pi customers however is a step too far and would require more expensive external JTAG hardware to be needed per customer as well.
If I was Pi, I'd put a 10cent USB stick IC onto the board that connects in parallel to the eMMC and enable the board to be plugged into any USB host and mounted as external storage. Some programmable logic (get one of the Silego 10cent programmable logic ICs) would be needed to prevent the USB from being mounted when the system was running - I'd probably add in a button or switch that is read at power on and determines which interface gets to see the eMMC. It would need to hold either the Pi chip or the USB IC in reset depending on which function was selected.
A second option would be to put an USB eMMC protocol stack into the BootROM, but this would need LittleKernel or something similar in the BootROM and its non-trivial to get right!
- pedrocx486 7y agoThey could go the "Android way" and have a fastboot of sorts to boot software like a recovery OS to reflash the main os.
- mrlambchop 7y agoI believe fast boot relies on having a stable, on PCB storage device (eMMC or NAND) to ensure that the recovery method doesn't have any opportunity to get wiped / trashed. Using an SDCard doesn't ensure this and thus something in hardware would be needed instead.