Skip to content

Commit

Permalink
Merge pull request #3935 from timg236/firmware-updates
Browse files Browse the repository at this point in the history
Updates docs for firmware changes for CM5 / Pi500 and other recent firmware changes.
  • Loading branch information
nathan-contino authored Nov 26, 2024
2 parents d45f05f + b19a43e commit 0573f44
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 7 deletions.
8 changes: 8 additions & 0 deletions documentation/asciidoc/computers/config_txt/boot.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,14 @@ Not relevant on Raspberry Pi 5 because there is no `start.elf` file.

Default: `0x0`

[[enable_rp1_uart]]
==== `enable_rp1_uart`

When set to `1`, firmware initialises RP1 UART0 to 115200bps and doesn't reset RP1 before starting the OS (separately configurable using `pciex4_reset=1`).
This makes it easier to get UART output on the 40-pin header in early boot-code, for instance during bare-metal debug.

Default: `0x0`

[[pciex4_reset]]
==== `pciex4_reset`

Expand Down
13 changes: 11 additions & 2 deletions documentation/asciidoc/computers/config_txt/overclocking.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,11 @@ WARNING: Setting any overclocking parameters to values other than those used by
| Forces turbo mode frequencies even when the ARM cores are not busy. Enabling this may set the warranty bit if `over_voltage_*` is also set.

| initial_turbo
| Enables https://forums.raspberrypi.com/viewtopic.php?f=29&t=6201&start=425#p180099[turbo mode from boot] for the given value in seconds, or until cpufreq sets a frequency. The maximum value is `60`.
| Enables https://forums.raspberrypi.com/viewtopic.php?f=29&t=6201&start=425#p180099[turbo mode from boot] for the given value in seconds, or until `cpufreq` sets a frequency. The maximum value is `60`. The November 2024 firmware update made the following changes:

* changed the default from `0` to `60` to reduce boot time
* switched the kernel CPU performance governor from `powersave` to `ondemand`


| arm_freq_min
| Minimum value of `arm_freq` used for dynamic frequency clocking. Note that reducing this value below the default does not result in any significant power savings, and is not currently supported.
Expand Down Expand Up @@ -381,4 +385,9 @@ $ vcgencmd pmic_read_adc EXT5V_V

=== Overclocking problems

Most overclocking issues show up immediately with a failure to boot. If this occurs, hold down the `shift` key during the next boot. This will temporarily disable all overclocking, allowing you to boot successfully and then edit your settings.
Most overclocking issues show up immediately, when the device fails to boot. If your device fails to boot due to an overclocking configuration change, use the following steps to return your device to a bootable state:

. Remove any clock frequency overrides from `config.txt`.
. Increase the core voltage using `over_voltage_delta`.
. Re-apply overclocking parameters, taking care to avoid the previous known-bad overclocking parameters.

12 changes: 10 additions & 2 deletions documentation/asciidoc/computers/raspberry-pi/boot-eeprom.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
== Raspberry Pi boot EEPROM

Raspberry Pi 5, Raspberry Pi 4, 400, Compute Module 4, and Compute Module 4S computers use an EEPROM to boot the system. All other models of Raspberry Pi computer use the `bootcode.bin` file located in the boot filesystem.
The following Raspberry Pi models use an EEPROM to boot the system:

* Flagship models since Raspberry Pi 4
* Compute Module models since CM4 (including CM4S)
* Keyboard models since Pi 400
All other models of Raspberry Pi computer use the `bootcode.bin` file located in the boot filesystem.

NOTE: You can find the scripts and pre-compiled binaries used to create `rpi-eeprom` in the https://github.com/raspberrypi/rpi-eeprom/[rpi-eeprom GitHub repository].

Expand All @@ -13,10 +19,12 @@ If an error occurs during boot, then an xref:configuration.adoc#led-warning-flas

There are multiple ways to update the bootloader of your Raspberry Pi.

==== Raspberry Pi 5, Raspberry Pi 4 and Raspberry Pi 400
==== Flagship models since Raspberry Pi 4; Compute Modules since CM5; Keyboard models since Pi 400

Raspberry Pi OS automatically updates the bootloader for important bug fixes. To manually update the bootloader or change the boot order, use xref:configuration.adoc#raspi-config[raspi-config].

NOTE: Compute Module 4 and Compute Module 4S do not support automatic bootloader updates because the bootrom cannot load the `recovery.bin` file from eMMC. The recommended update mechanism is `rpiboot` or via `flashrom` - see `rpi-eeprom-update -h` for more information.

[[imager]]
==== Use Raspberry Pi Imager to update the bootloader

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Default: `115200`

If `1` then `sudo halt` will run in a lower power mode until either GPIO3 or GLOBAL_EN are shorted to ground.

This setting is not relevant on Raspberry Pi 5 because the xref:raspberry-pi.adoc#power-button[dedicated power button] may always be used to wakeup from `HALT` or `STANDBY`.
This setting is not relevant on Flagship models since Raspberry Pi 5, Compute Modules since CM5, and Keyboard models since Pi 500 because the xref:raspberry-pi.adoc#power-button[dedicated power button] may always be used to wake from `HALT` or `STANDBY`.

Default: `1`

Expand All @@ -60,7 +60,7 @@ Raspberry Pi 400 has a dedicated power button which operates even if the process

On Raspberry Pi 5 this places the PMIC in `STANDBY` mode where all outputs are switched off. There is no need to set `WAKE_ON_GPIO` and pressing the xref:raspberry-pi.adoc#power-button[dedicated power button] will boot the device.

Default: `0`
Default: `1` on Compute Modules since CM5 and Keyboard models since Pi 400; otherwise `0`

[[BOOT_ORDER]]
==== `BOOT_ORDER`
Expand Down Expand Up @@ -398,7 +398,22 @@ This setting is ignored and network install is disabled if `DISABLE_HDMI=1` is s

In order to detect the keyboard, network install must initialise the USB controller and enumerate devices. This increases boot time by approximately 1 second so it may be advantageous to disable network install in some embedded applications.

Default: `1` on Raspberry Pi 4 and Raspberry Pi 400, and `0` on Compute Module 4.
Default: `1` on Flagship models since Raspberry Pi 4 and Keyboard models since Pi 400; `0` on Compute Modules since CM4 (including CM4S).

[[NET_INSTALL_AT_POWER_ON]]
==== `NET_INSTALL_AT_POWER_ON`

When set to `1`, displays the network install UI briefly after a cold boot to make this feature more obvious to new users. Overrides `NET_INSTALL_ENABLED` if the settings conflict.

The default bootloader images set this value to `1` in the bootloader config. To disable the brief network install UI display, use the `Advanced Options` menu in `raspi-config` or manually delete this line in `rpi-eeprom-config`:

[source,console]
----
$ sudo rpi-eeprom-config --edit
----


Default: `0`

[[NET_INSTALL_KEYBOARD_WAIT]]
==== `NET_INSTALL_KEYBOARD_WAIT`
Expand Down

0 comments on commit 0573f44

Please sign in to comment.