@TevoD is almost right in what he wrote in his answer - RaspberryPi is using closed source firmware binary as a bootloader. The current version can be found here. The two files that makes the firmware are bootcode.bin
(2nd stage bootloader) and start.elf
(GPU "firmware"). What is interesting and quite unique to RaspberryPi is that it starts from GPU
(graphics chip) and this is where bootloader actually runs. GPU
then starts ARM CPU
and runs Linux kernel.
After Linux is started, code on GPU
is not unloaded, however. Instead it runs it's own simple OS, called VCOS
(Video Core Operating System
). Linux kernel communicates with its services using special mailbox protocol
and using interrupts (GPU can produce ARM interrupts). You can read some information about mailbox protocol used for framebuffer
here. GPU is responsible not only for graphic things - it also controls clocks and produces audio, for example. In this regard, GPU firmware can be considered something similar to BIOS
from normal PC computers. You can find more information on this reading RaspberryPi Linux kernel drivers.