I seek to use the Pi as an educational tool to learn about programming a machine from the ground-up. In a perfect scenario, the first instruction executed after the firmware on ROM, and everything thereafter, should be something I write.
Unfortunately, as far as I'm aware, there is no way around this for the Pi. Broadcom stuck basically all the cool stuff into their closed-source GPU blob which we are forced to load.
With this in mind, is there any way to actually do what the Pi was meant to do? I.e. learn about how all this stuff works?
For example, drawing to a screen. From what I've found, the lowest-level available solution on the Pi is to request a frame buffer from VideoCore using the mailbox system, then write into that buffer, and the GPU checks that buffer and magically outputs to the screen. But how does the contents of the buffer actually get written to the screen? It's still just as much as a mystery as using something like Win32 to blit a buffer to the screen.