At this stage we access the VideoCore IV processor in your Raspberry Pi by replacing bootcode.bin on the SD card. This seems to be the earliest stage of intercepting execution. At this stage the ARM processor is held in reset and the VideoCore IV is master of the show. Your system clock will be a pedestrian 19MHz or so and the processor is not yet ready to talk to SDRAM.
Let's make your Raspberry Pi status led flash using pure VideoCore IV code.
Prepare a SD card for bare metal VideoCore IV programming by the following:
To understand how it works, check out the notes at https://github.com/hermanhermitage/videocoreiv/blob/master/blinker01/.
Because we are running very small programs and exploring the device the only IO capability we have is GPIO and Serial via the Mini UART on the GPIO header. (Over time we hope to add IO support for SD Media, USB, Ethernet and TV/Monitor output).
To see how to set up a serial connection, check out https://github.com/dwelch67/raspberrypi. Choices of converter at different price points include:
I went with the spark fun board and a set of male:female jumpers.
All our samples will be configured to run at 115200 baud, 8 data bits, no parity, 1 stop bit, and NO flow control. Don't forget to dial that up in your serial program.