From a643a808f9c70c7d553f1657e439de085076187b Mon Sep 17 00:00:00 2001 From: Kat Shann Date: Tue, 30 Sep 2025 09:17:28 +0100 Subject: [PATCH 1/5] Move some options that are incorrectly in the legacy section. --- .../asciidoc/computers/config_txt/boot.adoc | 11 ++++++++ .../asciidoc/computers/config_txt/gpio.adoc | 27 +++++++++++++++++++ .../asciidoc/computers/legacy_config_txt.adoc | 2 -- .../computers/legacy_config_txt/boot.adoc | 5 ---- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/documentation/asciidoc/computers/config_txt/boot.adoc b/documentation/asciidoc/computers/config_txt/boot.adoc index 2eddd43c6..c636bfa4f 100644 --- a/documentation/asciidoc/computers/config_txt/boot.adoc +++ b/documentation/asciidoc/computers/config_txt/boot.adoc @@ -54,6 +54,12 @@ The following Raspberry Pi models support this flag: Flagship models since Raspberry Pi 5, Compute Modules since CM5, and Keyboard models since Pi 500 _only_ support the 64-bit kernel. Models that only support a 64-bit kernel ignore this flag. +=== `armstub` + +`armstub` is the filename on the boot partition from which to load the ARM stub. The default ARM stub is stored in firmware and is selected automatically based on the Raspberry Pi model and various settings. + +The stub is a small piece of ARM code that is run before the kernel. Its job is to set up low-level hardware like the interrupt controller before passing control to the kernel. + === `ramfsfile` `ramfsfile` is the optional filename on the boot partition of a `ramfs` to load. @@ -173,6 +179,11 @@ By default, the PCIe x4 controller used by `RP1` is reset before starting the op Default: `1` +[[sha256]] +==== `sha256` + +If set to non-zero, enables the logging of SHA256 hashes for loaded files (the kernel, initramfs, Device Tree .dtb file, and overlays), as generated by the `sha256sum` utility. The logging output goes to the UART if enabled, and is also accessible via `sudo vclog --msg`. This option may be useful when debugging boot problems, but at the cost of potentially adding _many_ seconds to the boot time. Defaults to 0 on all platforms. + [[uart_2ndstage]] ==== `uart_2ndstage` diff --git a/documentation/asciidoc/computers/config_txt/gpio.adoc b/documentation/asciidoc/computers/config_txt/gpio.adoc index 2508cbd06..041ff543f 100644 --- a/documentation/asciidoc/computers/config_txt/gpio.adoc +++ b/documentation/asciidoc/computers/config_txt/gpio.adoc @@ -40,3 +40,30 @@ GPIO changes made through this mechanism do not have any direct effect on the ke Note also that there is a delay of a few seconds between power being applied and the changes taking effect - longer if booting over the network or from a USB mass storage device. +=== `enable_jtag_gpio` + +Setting `enable_jtag_gpio=1` selects Alt4 mode for GPIO pins 22-27, and sets up some internal SoC connections, enabling the JTAG interface for the Arm CPU. It works on all models of Raspberry Pi. + +|=== +| Pin # | Function + +| GPIO22 +| ARM_TRST + +| GPIO23 +| ARM_RTCK + +| GPIO24 +| ARM_TDO + +| GPIO25 +| ARM_TCK + +| GPIO26 +| ARM_TDI + +| GPIO27 +| ARM_TMS +|=== + + diff --git a/documentation/asciidoc/computers/legacy_config_txt.adoc b/documentation/asciidoc/computers/legacy_config_txt.adoc index 0b020dad3..e16a75db3 100644 --- a/documentation/asciidoc/computers/legacy_config_txt.adoc +++ b/documentation/asciidoc/computers/legacy_config_txt.adoc @@ -2,8 +2,6 @@ include::legacy_config_txt/legacy.adoc[] include::legacy_config_txt/boot.adoc[] -include::legacy_config_txt/gpio.adoc[] - include::legacy_config_txt/overclocking.adoc[] include::legacy_config_txt/conditional.adoc[] diff --git a/documentation/asciidoc/computers/legacy_config_txt/boot.adoc b/documentation/asciidoc/computers/legacy_config_txt/boot.adoc index b7e735639..2c224a22d 100644 --- a/documentation/asciidoc/computers/legacy_config_txt/boot.adoc +++ b/documentation/asciidoc/computers/legacy_config_txt/boot.adoc @@ -75,11 +75,6 @@ The `boot_delay_ms` command means wait for a given number of milliseconds in `st On the Raspberry Pi 4B, if this value is set to `0` then the interrupts will be routed to the Arm cores using the legacy interrupt controller, rather than via the GIC-400. The default value is `1`. -[[sha256]] -=== `sha256` - -If set to non-zero, enables the logging of SHA256 hashes for loaded files (the kernel, initramfs, Device Tree .dtb file, and overlays), as generated by the `sha256sum` utility. The logging output goes to the UART if enabled, and is also accessible via `sudo vclog --msg`. This option may be useful when debugging boot problems, but at the cost of potentially adding _many_ seconds to the boot time. Defaults to 0 on all platforms. - === `uart_2ndstage` Setting `uart_2ndstage=1` causes the second-stage loader (`bootcode.bin` on devices prior to the Raspberry Pi 4, or the boot code in the EEPROM for Raspberry Pi 4 devices) and the main firmware (`start*.elf`) to output diagnostic information to UART0. From 51c16493d02c68eba69c415ba6eafbbffff99b12 Mon Sep 17 00:00:00 2001 From: Kat Shann Date: Tue, 30 Sep 2025 09:29:20 +0100 Subject: [PATCH 2/5] Remove duplicate entry --- .../asciidoc/computers/legacy_config_txt/boot.adoc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/documentation/asciidoc/computers/legacy_config_txt/boot.adoc b/documentation/asciidoc/computers/legacy_config_txt/boot.adoc index 2c224a22d..720eb35ae 100644 --- a/documentation/asciidoc/computers/legacy_config_txt/boot.adoc +++ b/documentation/asciidoc/computers/legacy_config_txt/boot.adoc @@ -75,12 +75,6 @@ The `boot_delay_ms` command means wait for a given number of milliseconds in `st On the Raspberry Pi 4B, if this value is set to `0` then the interrupts will be routed to the Arm cores using the legacy interrupt controller, rather than via the GIC-400. The default value is `1`. -=== `uart_2ndstage` - -Setting `uart_2ndstage=1` causes the second-stage loader (`bootcode.bin` on devices prior to the Raspberry Pi 4, or the boot code in the EEPROM for Raspberry Pi 4 devices) and the main firmware (`start*.elf`) to output diagnostic information to UART0. - -Be aware that output is likely to interfere with Bluetooth operation unless it is disabled (`dtoverlay=disable-bt`) or switched to the other UART (`dtoverlay=miniuart-bt`), and if the UART is accessed simultaneously to output from Linux, then data loss can occur leading to corrupted output. This feature should only be required when trying to diagnose an early boot loading problem. - [[upstream_kernel]] === `upstream_kernel` From 6ce6ccd608c68528bf9c7532c62a863370a7d875 Mon Sep 17 00:00:00 2001 From: Kat Shann Date: Tue, 30 Sep 2025 09:30:41 +0100 Subject: [PATCH 3/5] Missed one. --- .../asciidoc/computers/legacy_config_txt/boot.adoc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/documentation/asciidoc/computers/legacy_config_txt/boot.adoc b/documentation/asciidoc/computers/legacy_config_txt/boot.adoc index 720eb35ae..a570062de 100644 --- a/documentation/asciidoc/computers/legacy_config_txt/boot.adoc +++ b/documentation/asciidoc/computers/legacy_config_txt/boot.adoc @@ -29,12 +29,6 @@ WARNING: This setting is deprecated. Use `arm_64bit` instead to enable 64-bit ke Sets board-specific control bits. -=== `armstub` - -`armstub` is the filename on the boot partition from which to load the ARM stub. The default ARM stub is stored in firmware and is selected automatically based on the Raspberry Pi model and various settings. - -The stub is a small piece of ARM code that is run before the kernel. Its job is to set up low-level hardware like the interrupt controller before passing control to the kernel. - === `arm_peri_high` Set `arm_peri_high` to `1` to enable high peripheral mode on Raspberry Pi 4. It is set automatically if a suitable DTB is loaded. From 25a2b00566095db3416baabd480a41543964c27a Mon Sep 17 00:00:00 2001 From: Kat Shann Date: Tue, 30 Sep 2025 12:17:05 +0100 Subject: [PATCH 4/5] Remove vestigial file. --- .../computers/legacy_config_txt/gpio.adoc | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 documentation/asciidoc/computers/legacy_config_txt/gpio.adoc diff --git a/documentation/asciidoc/computers/legacy_config_txt/gpio.adoc b/documentation/asciidoc/computers/legacy_config_txt/gpio.adoc deleted file mode 100644 index b564be601..000000000 --- a/documentation/asciidoc/computers/legacy_config_txt/gpio.adoc +++ /dev/null @@ -1,28 +0,0 @@ -== Legacy GPIO control -(See also xref:config_txt.adoc#gpio-control[config.txt GPIO control].) - -=== `enable_jtag_gpio` - -Setting `enable_jtag_gpio=1` selects Alt4 mode for GPIO pins 22-27, and sets up some internal SoC connections, enabling the JTAG interface for the Arm CPU. It works on all models of Raspberry Pi. - -|=== -| Pin # | Function - -| GPIO22 -| ARM_TRST - -| GPIO23 -| ARM_RTCK - -| GPIO24 -| ARM_TDO - -| GPIO25 -| ARM_TCK - -| GPIO26 -| ARM_TDI - -| GPIO27 -| ARM_TMS -|=== From d5dc461ad13274a0da7c20f7498cdfeec5de20bb Mon Sep 17 00:00:00 2001 From: Kat Shann Date: Tue, 30 Sep 2025 14:28:43 +0100 Subject: [PATCH 5/5] Andrew review changes --- .../asciidoc/computers/config_txt/boot.adoc | 4 ++-- .../asciidoc/computers/config_txt/gpio.adoc | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/documentation/asciidoc/computers/config_txt/boot.adoc b/documentation/asciidoc/computers/config_txt/boot.adoc index c636bfa4f..dbaed7961 100644 --- a/documentation/asciidoc/computers/config_txt/boot.adoc +++ b/documentation/asciidoc/computers/config_txt/boot.adoc @@ -56,9 +56,9 @@ Flagship models since Raspberry Pi 5, Compute Modules since CM5, and Keyboard mo === `armstub` -`armstub` is the filename on the boot partition from which to load the ARM stub. The default ARM stub is stored in firmware and is selected automatically based on the Raspberry Pi model and various settings. +`armstub` is the filename on the boot partition from which to load the Arm stub. The default Arm stub is stored in firmware and is selected automatically based on the Raspberry Pi model and various settings. -The stub is a small piece of ARM code that is run before the kernel. Its job is to set up low-level hardware like the interrupt controller before passing control to the kernel. +The stub is a small piece of Arm code that is run before the kernel. Its job is to set up low-level hardware like the interrupt controller before passing control to the kernel. === `ramfsfile` diff --git a/documentation/asciidoc/computers/config_txt/gpio.adoc b/documentation/asciidoc/computers/config_txt/gpio.adoc index 041ff543f..39d9c64bd 100644 --- a/documentation/asciidoc/computers/config_txt/gpio.adoc +++ b/documentation/asciidoc/computers/config_txt/gpio.adoc @@ -48,22 +48,22 @@ Setting `enable_jtag_gpio=1` selects Alt4 mode for GPIO pins 22-27, and sets up | Pin # | Function | GPIO22 -| ARM_TRST +| `ARM_TRST` | GPIO23 -| ARM_RTCK +| `ARM_RTCK` | GPIO24 -| ARM_TDO +| `ARM_TDO` | GPIO25 -| ARM_TCK +| `ARM_TCK` | GPIO26 -| ARM_TDI +| `ARM_TDI` | GPIO27 -| ARM_TMS +| `ARM_TMS` |===