What is /boot/firmware? What is it used for?

Ivanov

This is my partition layout on Raspberry Pi 4 (Ubuntu 20.04 LTS image)

root@jk4:/home/ubuntu# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  3.7T  0 disk
└─sda1        8:1    0  3.7T  0 part
mmcblk0     179:0    0 29.1G  0 disk
├─mmcblk0p1 179:1    0  256M  0 part /boot/firmware
└─mmcblk0p2 179:2    0 28.9G  0 part /

I wonder what /boot/firmware is? Is it Raspberry specific?

In Wikipedia I found only /boot, this is also what I learned from books many years ago.

root@jk4:/home/ubuntu# ls -al /boot/firmware
total 99020
drwxr-xr-x 3 root root     4096 Jan  1  1970 .
drwxr-xr-x 4 root root     4096 Jul  4 05:29 ..
-rwxr-xr-x 1 root root    26247 Jul  4 05:29 bcm2710-rpi-2-b.dtb
-rwxr-xr-x 1 root root    26247 Jul  4 05:28 bcm2710-rpi-2-b.dtb.bak
-rwxr-xr-x 1 root root    27288 Jul  4 05:29 bcm2710-rpi-3-b.dtb
-rwxr-xr-x 1 root root    27288 Jul  4 05:28 bcm2710-rpi-3-b.dtb.bak
-rwxr-xr-x 1 root root    27907 Jul  4 05:29 bcm2710-rpi-3-b-plus.dtb
-rwxr-xr-x 1 root root    27907 Jul  4 05:28 bcm2710-rpi-3-b-plus.dtb.bak
-rwxr-xr-x 1 root root    26102 Jul  4 05:29 bcm2710-rpi-cm3.dtb
-rwxr-xr-x 1 root root    26102 Jul  4 05:28 bcm2710-rpi-cm3.dtb.bak
-rwxr-xr-x 1 root root    46368 Jul  4 05:29 bcm2711-rpi-4-b.dtb
-rwxr-xr-x 1 root root    46368 Jul  4 05:28 bcm2711-rpi-4-b.dtb.bak
-rwxr-xr-x 1 root root    19924 Jul  4 05:29 bcm2837-rpi-3-a-plus.dtb
-rwxr-xr-x 1 root root    19924 Jul  4 05:28 bcm2837-rpi-3-a-plus.dtb.bak
-rwxr-xr-x 1 root root    20373 Jul  4 05:29 bcm2837-rpi-3-b.dtb
-rwxr-xr-x 1 root root    20373 Jul  4 05:28 bcm2837-rpi-3-b.dtb.bak
-rwxr-xr-x 1 root root    20793 Jul  4 05:29 bcm2837-rpi-3-b-plus.dtb
-rwxr-xr-x 1 root root    20793 Jul  4 05:28 bcm2837-rpi-3-b-plus.dtb.bak
-rwxr-xr-x 1 root root    19700 Jul  4 05:29 bcm2837-rpi-cm3-io3.dtb
-rwxr-xr-x 1 root root    19700 Jul  4 05:28 bcm2837-rpi-cm3-io3.dtb.bak
-rwxr-xr-x 1 root root    52304 Apr 23 15:12 bootcode.bin
-rwxr-xr-x 1 root root     2603 Jul  4 05:29 boot.scr
-rwxr-xr-x 1 root root     2603 Jul  4 05:28 boot.scr.bak
-rwxr-xr-x 1 root root      141 Apr 23 15:12 cmdline.txt
-rwxr-xr-x 1 root root     1117 Apr 23 15:12 config.txt
-rwxr-xr-x 1 root root     3112 Apr 23 15:12 fixup4cd.dat
-rwxr-xr-x 1 root root     6200 Apr 23 15:12 fixup4.dat
-rwxr-xr-x 1 root root     9192 Apr 23 15:12 fixup4db.dat
-rwxr-xr-x 1 root root     9192 Apr 23 15:12 fixup4x.dat
-rwxr-xr-x 1 root root     2656 Apr 23 15:12 fixup_cd.dat
-rwxr-xr-x 1 root root     6745 Apr 23 15:12 fixup.dat
-rwxr-xr-x 1 root root     9817 Apr 23 15:12 fixup_db.dat
-rwxr-xr-x 1 root root     9819 Apr 23 15:12 fixup_x.dat
-rwxr-xr-x 1 root root 29527996 Jul  4 05:29 initrd.img
-rwxr-xr-x 1 root root 29528551 Jul  4 05:28 initrd.img.bak
-rwxr-xr-x 1 root root      240 Apr 23 15:12 meta-data
-rwxr-xr-x 1 root root      770 Apr 23 15:12 network-config
-rwxr-xr-x 1 root root     1371 Jul  4 05:29 overlay_map.dtb
-rwxr-xr-x 1 root root     1371 Jul  4 05:28 overlay_map.dtb.bak
drwxr-xr-x 2 root root    34816 Jul  4 05:29 overlays
-rwxr-xr-x 1 root root     1514 Apr 23 15:12 README
-rwxr-xr-x 1 root root   784316 Apr 23 15:12 start4cd.elf
-rwxr-xr-x 1 root root  4593508 Apr 23 15:12 start4db.elf
-rwxr-xr-x 1 root root  2784800 Apr 23 15:12 start4.elf
-rwxr-xr-x 1 root root  3546468 Apr 23 15:12 start4x.elf
-rwxr-xr-x 1 root root   690884 Apr 23 15:12 start_cd.elf
-rwxr-xr-x 1 root root  4859912 Apr 23 15:12 start_db.elf
-rwxr-xr-x 1 root root  2883204 Apr 23 15:12 start.elf
-rwxr-xr-x 1 root root  3797384 Apr 23 15:12 start_x.elf
-rwxr-xr-x 1 root root      327 Apr 23 15:12 syscfg.txt
-rwxr-xr-x 1 root root   493528 Apr 23 15:12 uboot_rpi_3.bin
-rwxr-xr-x 1 root root   492824 Apr 23 15:12 uboot_rpi_4.bin
-rwxr-xr-x 1 root root      200 Apr 23 15:12 usercfg.txt
-rwxr-xr-x 1 root root     2114 Apr 23 15:12 user-data
-rwxr-xr-x 1 root root  8381742 Jul  4 05:29 vmlinuz
-rwxr-xr-x 1 root root  8381742 Jul  4 05:28 vmlinuz.bak

I recognize a few files like the Linux Kernel. The bcm* looks like Broadcom stuff. Please provide details about it.

Rinzwind

Is it Raspberry specific?

Yes. Sort of. The files to me are more important and are indeed for a PI installation. /boot/firmware is not a default Linux directory.

Regarding the content: see raspberrypi's topic on "boot":

start.elf, start_x.elf, start_db.elf, start_cd.elf, start4.elf, start4x.elf, start4cd.elf, start4db.elf

These are binary blobs (firmware) that are loaded on to the VideoCore in the SoC, which then take over the boot process. start.elf is the basic firmware, start_x.elf includes camera drivers and codec, start_db.elf is a debug version of the firmware, and start_cd.elf is a cut-down version with no support hardware blocks like codecs and 3D, and for use when gpu_mem=16 is specified in config.txt. More information on how to use these can be found in the config.txt section.

start4.elf, start4x.elf, start4cd.elf, and start4db.elf are firmware files specific to the Pi 4.

Some other files are listed too.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related