@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][1]. 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][2]. 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. You can also find some more information in [this][3] answer. [1]: https://github.com/raspberrypi/firmware/ [2]: https://github.com/raspberrypi/firmware/wiki/Mailboxes [3]: http://raspberrypi.stackexchange.com/questions/7122/level-of-hackability-of-raspberry-pi/7126#7126