Home > Broadcom BCMxxxx, Linux > Preliminary Open Source Bootloader for Raspberry Pi Boards Released

Preliminary Open Source Bootloader for Raspberry Pi Boards Released

Raspberry Pi boards require a closed-source binary to boot. I understand it this is handled by VideoCore IV GPU,  and so  far the Raspberry Pi foundation are not release source code for the bootloader, possibly due to legal reason (e.g. NDA to Broadcom). But I noticed people chatting about an open source bootloader for Raspberry Pi on sunxi-linux IRC channel.

Raspberry_Pi-3

The bootloaded called rpi-open-firmware has been developed by Kristina Brooks (christinaa), who previously did some work on the VideoCore IV GPU, as you can see on her blog and github account.

Kristina describe the project as follows:

This is a small firmware for RPi VPU (VideoCore4) versions 1/2/3 that is capable of initializing VPU PLL (PLLC), UART, SDRAM and ARM itself. It’s intended to be used instead of stock bootcode.bin on RPi’s SD card. You need to have UART to see anything meaningful as far as output goes.

This has been tested on RPi1 Model B (Hynix PoP DDR), RPi 2 Model B and RPi 3 Model B (both Elpida DDR).

Bear in mind that this is all work in progress, and it’s not capable of booting Linux right now. The media part of the VPU is also not handled by this driver, and probably never will. There are multiple license used for the code, with some source  licensed under “Broadcom Corporation”, which the license explains is itself released under a BSD 3-Clause License, as well as code released under GPLv2+.

You can check the code and instructions on Github. There’s also a discussion in Hacker News with some more bits of info.

  1. Methanoid
    May 16th, 2016 at 18:39 | #1

    And what is the significance of this? I have no idea!!

  2. cortex-a72
    May 16th, 2016 at 19:54 | #2

    This hybrid approach, when the system is owned by different CPU’s and the main CPU is like a co-processor for some hidden crappy not documented thing behind the scene, is so lame. I heard that vpu runs the whole OS, so this “replacement” hardly is usable. Working individually on firmware for arm boards, I avoid raspberry pi exactly because of this mess. I don’t like this approach.

  3. ssvb
    May 17th, 2016 at 00:21 | #3

    @Methanoid
    The significance of this work is that we are moving towards finally getting rid of the closed source proprietary code, which runs in the background on every Raspberry Pi device. Nobody has audited this proprietary code to ensure the absence of hidden backdoors and/or vulnerabilities.

  4. Drone
    May 17th, 2016 at 10:47 | #4

    Ah Grasshopper – audit if you must, but you can never truly know if you are totally in control.

  5. jqpabc123
    May 17th, 2016 at 11:06 | #5

    Looks like a lame attempt at copy protection — designed to prevent cloning or make it more difficult..

  6. BiugMike
    May 18th, 2016 at 03:21 | #6

    A solution looking for a problem. When there was no problem they just made one up.

  7. May 18th, 2016 at 13:07 | #7

    nice

  8. Justin
    May 20th, 2016 at 22:56 | #8

    Does this mean OpenBSD might be ported to the Pi? I thought the main reason they refuse to support the Pi is because of the closed source boot-loader. However I don’t think that is likely.

  9. KarenHeinz
    December 9th, 2016 at 15:43 | #9

    Good post

  1. No trackbacks yet.