You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/asciidoc/computers/compute-module/cm-emmc-flashing.adoc
+10-53
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,8 @@ The Compute Module has an on-board eMMC device connected to the primary SD card
4
4
5
5
Please also read the section in the xref:compute-module.adoc#datasheets-and-schematics[Compute Module Datasheets]
6
6
7
+
IMPORTANT: For mass provisioning of CM3, CM3+ and CM4 the https://github.com/raspberrypi/cmprovision[Raspberry Pi Compute Module Provisioning System] is recommended.
8
+
7
9
=== Steps to Flash the eMMC
8
10
9
11
To flash the Compute Module eMMC, you either need a Linux system (a Raspberry Pi is recommended, or Ubuntu on a PC) or a Windows system (Windows 10 is recommended). For BCM2837 (CM3), a bug which affected the Mac has been fixed, so this will also work.
@@ -44,60 +46,9 @@ Please ensure you are not writing to any USB devices whilst the installer is run
44
46
. Once the driver installation is complete, run the `RPiBoot.exe` tool that was previously installed.
45
47
. After a few seconds, the Compute Module eMMC will pop up under Windows as a disk (USB mass storage device).
46
48
47
-
==== Building `rpiboot` on your host system (Cygwin/Linux)
48
-
49
-
We will be using Git to get the rpiboot source code, so ensure Git is installed. In Cygwin, use the Cygwin installer. On a Raspberry Pi or other Debian-based Linux machine, use the following command:
50
-
51
-
[,bash]
52
-
----
53
-
sudo apt install git
54
-
----
55
-
56
-
Git may produce an error if the date is not set correctly. On a Raspberry Pi, enter the following to correct this:
57
-
58
-
[,bash]
59
-
----
60
-
sudo date MMDDhhmm
61
-
----
62
-
63
-
where `MM` is the month, `DD` is the date, and `hh` and `mm` are hours and minutes respectively.
`libusb` must be installed. If you are using Cygwin, please make sure `libusb` is installed as previously described. On Raspberry Pi OS or other Debian-based Linux, enter the following command:
74
-
75
-
[,bash]
76
-
----
77
-
sudo apt install libusb-1.0-0-dev
78
-
----
79
-
80
-
Now build and install the `usbboot` tool:
81
-
82
-
[,bash]
83
-
----
84
-
make
85
-
----
49
+
==== Building `rpiboot` on your host system.
86
50
87
-
Run the `usbboot` tool and it will wait for a connection:
88
-
89
-
[,bash]
90
-
----
91
-
sudo ./rpiboot
92
-
----
93
-
94
-
Now plug the host machine into the Compute Module IO board USB slave port and power the CMIO board on. The `rpiboot` tool will discover the Compute Module and send boot code to allow access to the eMMC.
95
-
96
-
For more information run
97
-
98
-
----
99
-
./rpiboot -h
100
-
----
51
+
Instructions for building and running the latest release of `rpiboot` are documented in the https://github.com/raspberrypi/usbboot/blob/master/Readme.md#building[usbboot readme] on Github.
101
52
102
53
==== Writing to the eMMC (Windows)
103
54
@@ -140,6 +91,12 @@ The default bootloader configuration on CM4 is designed to support bringup and d
140
91
141
92
N.B. The Compute Module 4 ROM never runs `recovery.bin` from SD/EMMC and the `rpi-eeprom-update` service is not enabled by default. This is necessary because the EMMC is not removable and an invalid `recovery.bin` file would prevent the system from booting. This can be overridden and used with `self-update` mode where the bootloader can be updated from USB MSD or Network boot. However, `self-update` mode is not an atomic update and therefore not safe in the event of a power failure whilst the EEPROM was being updated.
142
93
94
+
==== Flashing NVMe / other storage devices.
95
+
The new Linux-based https://github.com/raspberrypi/usbboot/blob/master/mass-storage-gadget/README.md[mass-storage gadget] supports flashing of NVMe, EMMC and USB block devices.
96
+
This is normally faster than using the `rpiboot` firmware driver and also provides a UART console to the device for easier debug.
97
+
98
+
See also: https://github.com/raspberrypi/usbboot/blob/master/Readme.md#compute-module-4-extensions[CM4 rpiboot extensions]
Copy file name to clipboardExpand all lines: documentation/asciidoc/computers/config_txt/memory.adoc
+3-1
Original file line number
Diff line number
Diff line change
@@ -24,9 +24,11 @@ The recommended maximum values are as follows:
24
24
| `384`
25
25
26
26
| 1GB or greater
27
-
| `512`, `256` on the Raspberry Pi 4
27
+
| `512`, `76` on the Raspberry Pi 4
28
28
|===
29
29
30
+
IMPORTANT: The default camera stack (libcamera2) on Raspberry Pi OS - Bullseye uses Linux CMA memory to allocate buffers instead of GPU memory so there is no benefit in increasing the GPU memory size.
31
+
30
32
It is possible to set `gpu_mem` to larger values, however this should be avoided since it can cause problems, such as preventing Linux from booting. The minimum value is `16`, however this disables certain GPU features.
31
33
32
34
You can also use `gpu_mem_256`, `gpu_mem_512`, and `gpu_mem_1024` to allow swapping the same SD card between Raspberry Pis with different amounts of RAM without having to edit `config.txt` each time:
Copy file name to clipboardExpand all lines: documentation/asciidoc/computers/configuration/device-tree.adoc
+31
Original file line number
Diff line number
Diff line change
@@ -921,6 +921,37 @@ The root hub port number that the boot device is connected to - possibly via oth
921
921
922
922
The Logical Unit Number for the mass-storage device.
923
923
924
+
==== NVMEM nodes
925
+
The firmware provides read-only, in-memory copies of portions of the bootloader EEPROM via the https://www.kernel.org/doc/html/latest/driver-api/nvmem.html[NVMEM] Subsystem.
926
+
927
+
Each region appears as an NVMEM device under `/sys/bus/nvmem/devices/` with a named alias under `/sys/firmware/devicetree/base/aliases`.
928
+
929
+
Example shell script code for reading an NVMEM mode from https://github.com/raspberrypi/rpi-eeprom/blob/master/rpi-eeprom-update[rpi-eeprom-update]
The `blconfig` alias refers to an NVMEM device that stores a copy of the bootloader EEPROM config file.
948
+
949
+
`blpubkey`
950
+
951
+
The `blpubkey` alias points to an NVMEM device that stores a copy of the bootloader EEPROM public key (if defined) in binary format.
952
+
The https://github.com/raspberrypi/usbboot/blob/master/tools/rpi-bootloader-key-convert[rpi-bootloader-key-convert] utility can be used to convert the data into PEM format for use with OpenSSL.
953
+
954
+
See also: https://github.com/raspberrypi/usbboot#secure-boot[secure-boot]
Copy file name to clipboardExpand all lines: documentation/asciidoc/computers/raspberry-pi/bootflow-2711.adoc
+1-1
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ If `secure-boot` is enabled then `tryboot` mode will cause `tryboot.img` to be l
90
90
91
91
=== TRYBOOT_A_B mode
92
92
If the `tryboot_a_b` property in xref:config_txt.adoc#autoboot-txt[autoboot.txt] is set to `1` then `config.txt` is loaded instead of `tryboot.txt`.
93
-
This is because the `tryboot` switch has already been made at a higher level (the partition) and so it's unecessary to have a `tryboot.txt` file within alternate partition itself.
93
+
This is because the `tryboot` switch has already been made at a higher level (the partition) and so it's unnecessary to have a `tryboot.txt` file within alternate partition itself.
94
94
95
95
N.B. The `tryboot_a_b` property is implicitly set to `1` when loading files from within a `boot.img` ramdisk.
0 commit comments