whatisgithub

What is firmware?

raspberrypi/firmware — explained in plain English

Analysis updated 2026-06-26

5,515Audience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

Pre-compiled boot files and kernel binaries for Raspberry Pi devices, the low-level software the hardware loads before your operating system starts, provided as ready-to-use files rather than source code you compile yourself.

Mindmap

mindmap
  root((rpi firmware))
    What it contains
      GPU firmware
      Bootloader files
      Linux kernel image
      Kernel modules
    Folder structure
      boot folder
      extra folder
      modules folder
    Who updates it
      Raspberry Pi OS installer
      OS update utility
      Manual replacement
    Licensing
      Broadcom proprietary GPU
      GPL kernel and modules
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Manually update the boot files and kernel on a Raspberry Pi when the OS package manager is unavailable or broken.

USE CASE 2

Pull a specific firmware version from this repository to pin a Raspberry Pi project to a known-good kernel.

USE CASE 3

Replace device tree files to support custom hardware attached to a Raspberry Pi's GPIO or I2C bus.

USE CASE 4

Debug a broken Raspberry Pi boot by swapping individual files from this repository to isolate the faulty component.

What is it built with?

LinuxARMDevice Tree

How does it compare?

raspberrypi/firmwarekillbill/killbillswiftonsecurity/sysmon-config
Stars5,5155,5155,515
LanguageJava
Setup difficultymoderatehardmoderate
Complexity3/54/52/5
Audiencedeveloperpm founderops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

GPU firmware is under a proprietary Broadcom license, typically managed automatically by Raspberry Pi OS, manual replacement risks a non-booting device.

The Linux kernel image and modules are GPL, the GPU firmware and bootloader are under a proprietary Broadcom license described in a separate file in the repository.

So what is it?

This repository holds the pre-compiled binary files needed to boot and run a Raspberry Pi. A Raspberry Pi is a small, inexpensive single-board computer made by the Raspberry Pi Foundation and widely used for education, hobby projects, and embedded systems. When a Raspberry Pi powers on, it needs several low-level programs in place before the main operating system can start. This repository provides those programs as ready-to-use files rather than source code. The contents fall into three categories. The boot folder contains GPU firmware and bootloader files that the hardware loads first, a compiled Linux kernel image, and device tree files that describe the hardware layout to the operating system. The extra folder holds kernel symbol map files used for debugging. The modules folder contains pre-built kernel modules, which are additional pieces of driver code that the kernel can load as needed. Because these are binary files built by the Raspberry Pi Foundation, users do not compile them themselves. Typically, the official Raspberry Pi OS installer or an update utility handles downloading the correct versions automatically. Developers who need to update or replace these files on a Pi manually can pull them from this repository. The licensing is split: the GPU firmware and bootloader are covered by a Broadcom license described in a separate file, while the Linux kernel image, device tree files, and modules are released under the GPL, the license that covers the Linux kernel. The README is brief and mainly describes the folder structure and where to find the applicable license files for each component.

Copy-paste prompts

Prompt 1
My Raspberry Pi won't boot after an update. Walk me through manually replacing the boot firmware files from the raspberrypi/firmware repository to restore a working state.
Prompt 2
Explain what the boot folder, extra folder, and modules folder in this repository each contain and when I would need to replace each type of file.
Prompt 3
I want to pin my Raspberry Pi project to a specific firmware version. How do I find and use a particular commit from this repo rather than the latest files?
Prompt 4
What is a device tree file and why does Raspberry Pi firmware include them? Help me understand when I would need to replace the default device tree files for a custom hardware project.
Prompt 5
Explain the difference between the Broadcom GPU firmware license and the GPL kernel license in this repository, and what each one allows or restricts.

Frequently asked questions

What is firmware?

Pre-compiled boot files and kernel binaries for Raspberry Pi devices, the low-level software the hardware loads before your operating system starts, provided as ready-to-use files rather than source code you compile yourself.

What license does firmware use?

The Linux kernel image and modules are GPL, the GPU firmware and bootloader are under a proprietary Broadcom license described in a separate file in the repository.

How hard is firmware to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is firmware for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.