Koeshi wrote: 6by9 wrote:
Koeshi wrote:Pure USB booting would require adding a BIOS to the board, a fairly major change I would think. Feel free to correct me as I am not as knowledgeable as many on here.
On Pi, the equivalent to the BIOS is the bootrom. That has been updated on Pi3 and supports talking to USB mass storage, and ethernet.
The bootrom has always existed, but until Pi3 it only supported booting form SD card, eMMC flash (as used on the Compute Module), or a few methods that aren't applicable to Pi.
There is a second stage loader that still needs some work before USB or ethernet boot is fully functional - Pi Towers are on it.
Forgive me if I am mistaken, as said I am not as knowledgeable as many.
I thought the only way to boot from USB was to have an SD card in place that functioned as the BIOS. Wouldn't adding a BIOS (or bootROM) capable of booting straight from the USB with no SDcard input require a significant change, as in something that couldn't be done to pre-existing Pis but instead at the manufacturing stage?
@fruitoftheloom, I appreciate the link but sadly it doesn't mean much to me
You are correct...as far as you've gone. The key thing missing is that the change *was* made to the 2837 chip by adding code to the boot ROM that is part of the chip. The next step is bootloader code on the targetted external device.
The logic is probably something like:
1. Look for an SD or eMMC.
--if found, load the second stage boot from it.
2. If not found, look for a USB device with a second state boot file.
--if found, load the second stage boot code from that device.
What needs to happen (and is--apparently--pretty close to working) is for the second stage boot code that will be able to determine what device it cam from (SD, eMMC, USB device) and get the third and subsequent code stages from the same device.
(I'll let those with systems programming experience tell me if I've gotten that wrong beyond just oversimplification.)