summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/CONTRIBUTE.rst2
-rw-r--r--doc/README.gpt2
-rw-r--r--doc/board/apple/m1.rst15
-rw-r--r--doc/board/emulation/qemu-arm.rst88
-rw-r--r--doc/board/index.rst1
-rw-r--r--doc/board/nxp/imx8mq_evk.rst4
-rw-r--r--doc/board/rockchip/rockchip.rst1
-rw-r--r--doc/board/ti/k3.rst94
-rw-r--r--doc/board/toradex/index.rst1
-rw-r--r--doc/board/toradex/verdin-imx95.rst171
-rw-r--r--doc/board/tq/index.rst12
-rw-r--r--doc/board/tq/tqma7.rst77
-rw-r--r--doc/build/documentation.rst2
-rw-r--r--doc/develop/codingstyle.rst6
-rw-r--r--doc/develop/pytest/test_fit.rst10
-rw-r--r--doc/develop/pytest/usage.rst4
-rw-r--r--doc/develop/release_cycle.rst16
-rw-r--r--doc/device-tree-bindings/bootcount-syscon.txt2
-rw-r--r--doc/device-tree-bindings/pinctrl/apple,pinctrl.yaml106
-rw-r--r--doc/mkeficapsule.12
-rw-r--r--doc/sphinx/requirements.txt2
-rw-r--r--doc/usage/cmd/bdinfo.rst7
-rw-r--r--doc/usage/cmd/part.rst6
-rw-r--r--doc/usage/cmd/reset.rst12
-rw-r--r--doc/usage/cmd/sntp.rst2
-rw-r--r--doc/usage/cmd/wget.rst2
-rw-r--r--doc/usage/spl_boot.rst2
27 files changed, 503 insertions, 146 deletions
diff --git a/doc/CONTRIBUTE.rst b/doc/CONTRIBUTE.rst
index a47dfdca221..a6e1cd1fb68 100644
--- a/doc/CONTRIBUTE.rst
+++ b/doc/CONTRIBUTE.rst
@@ -22,7 +22,7 @@ Repository
The official U-Boot repository is located at https://source.denx.de/u-boot/u-boot
Further more detailed documentation can be found at the following link:
-https://docs.u-boot.org/en/latest/index.html
+https://docs.u-boot-project.org/en/latest/index.html
Contributions
-------------
diff --git a/doc/README.gpt b/doc/README.gpt
index 386ac2e0fc8..a6e1fd7ce8d 100644
--- a/doc/README.gpt
+++ b/doc/README.gpt
@@ -286,6 +286,8 @@ Some strings can be also used at the place of known GUID :
(E6D6D379-F507-44C2-A23C-238F2A3DF928)
"u-boot-env" = PARTITION_U_BOOT_ENVIRONMENT
(3DE21764-95BD-54BD-A5C3-4ABE786F38A8)
+ "xbootldr" = PARTITION_XBOOTLDR
+ (BC13C2FF-59E6-4262-A352-B275FD6F7172)
"uuid_disk=...;name=u-boot,size=60MiB,uuid=...;
name=kernel,size=60MiB,uuid=...,type=linux;"
diff --git a/doc/board/apple/m1.rst b/doc/board/apple/m1.rst
index 8fa7637629e..900c5e6d91e 100644
--- a/doc/board/apple/m1.rst
+++ b/doc/board/apple/m1.rst
@@ -8,21 +8,24 @@ developed by the Asahi Linux project. At this point the machines with
the following SoCs work:
- Apple M1 SoC (t8103)
+ - Apple M2 SoC (t8112)
- Apple M1 Pro SoC (t6000)
- Apple M1 Max SoC (t6001)
- Apple M1 Ultra SoC (t6002)
+ - Apple M2 Pro SoC (t6020)
+ - Apple M2 Max SoC (t6021)
+ - Apple M2 Ultra SoC (t6022)
On these SoCs the following hardware is supported:
- S5L serial port
- - SPI keyboard (on laptops)
+ - SPI keyboard (on M1 laptops)
- Framebuffer
- NVMe storage
- USB 3.1 Type-C ports
-Device trees are currently provided for the M1 Mac mini (2020, J274),
-M1 MacBook Pro 13" (2020, J293), M1 MacBook Air (2020, J313) and M1
-iMac (2021, J456/J457).
+Device trees are provided in dts/upstream/src/arm64/apple/ and available
+for all M1 and M2 (t8103, t8112, t600x and t602x) devices.
Building U-Boot
---------------
@@ -77,7 +80,7 @@ supported SoCs.
* - SoC
- Base Address
- * - M1 (t8103)
+ * - M1 (t8103) and M2 (t8112)
- 0x235200000
- * - M1 Pro/Max/Ultra (t6000/t6001/t6002)
+ * - M1 Pro/Max/Ultra (t6000/t6001/t6002) and M2 Pro/Max/Ultra (t6020/t6021/t6022)
- 0x39b200000
diff --git a/doc/board/emulation/qemu-arm.rst b/doc/board/emulation/qemu-arm.rst
index 1c91c7f3ac6..9e993ca9783 100644
--- a/doc/board/emulation/qemu-arm.rst
+++ b/doc/board/emulation/qemu-arm.rst
@@ -24,8 +24,78 @@ Additionally, a number of optional peripherals can be added to the PCI bus.
See :doc:`../../develop/devicetree/dt_qemu` for information on how to see
the devicetree actually generated by QEMU.
-Building U-Boot
----------------
+Building (secure)
+-----------------
+
+U-Boot
+^^^^^^
+
+- For AArch64::
+
+ make qemu_arm64_defconfig
+ make
+
+On successful build 'u-boot.bin' should be created. It's necessary in the following
+steps (building TF-A).
+
+OP-TEE
+^^^^^^
+
+- For AArch64::
+
+ git clone https://github.com/OP-TEE/optee_os.git
+ cd optee_os
+ git checkout 4.9.0
+ export CROSS_COMPILE64=aarch64-none-elf-
+ export CROSS_COMPILE32=arm-none-eabi-
+ make PLATFORM=vexpress-qemu_armv8a CFG_TRANSFER_LIST=y CFG_MAP_EXT_DT_SECURE=y
+
+At least OP-TEE v4.9.0 for AArch64 needs both compiler (64-Bit and 32-Bit edition) for
+a successful build. On a successful build following files should be created under the
+directory 'out/arm-plat-vexpress/core' from OP-TEE::
+
+ optee_os/out/arm-plat-vexpress/core/tee-header_v2.bin
+ optee_os/out/arm-plat-vexpress/core/tee-pageable_v2.bin
+ optee_os/out/arm-plat-vexpress/core/tee-pager_v2.bin
+
+TF-A
+^^^^
+
+- For AArch64::
+
+ git clone https://github.com/ARM-software/arm-trusted-firmware.git
+ cd arm-trusted-firmware
+ git submodule update --init
+ git checkout v2.14.0
+ export CROSS_COMPILE=aarch64-none-elf-
+ export BL32=path/to/tee-header_v2.bin
+ export BL32_EXTRA1=path/to/tee-pager_v2.bin
+ export BL32_EXTRA2=path/to/tee-pageable_v2.bin
+ export BL33=path/to/u-boot.bin
+ make PLAT=qemu BL32_RAM_LOCATION=tdram SPD=opteed TRANSFER_LIST=1 all fip
+
+On successful build the following files should be created under the directory
+'build/qemu/release' from TF-A::
+
+ arm-trusted-firmware/build/qemu/release/bl1.bin
+ arm-trusted-firmware/build/qemu/release/fip.bin
+
+The following file is at least created with TF-A v2.14.0 and can be directly passed
+with the '-bios' option to QEMU::
+
+ arm-trusted-firmware/build/qemu/release/qemu_fw.bios
+
+If the single file ('qemu_fw.bios') doesn't exist, 'bl1.bin' and 'fip.bin' can be
+concatenated with the command 'dd' alternatively::
+
+ dd if=bl1.bin of=qemu_fw.bios bs=4096 conv=notrunc
+ dd if=fip.bin of=qemu_fw.bios seek=64 bs=4096 conv=notrunc
+
+Building (non-secure)
+---------------------
+
+U-Boot
+^^^^^^
Set the CROSS_COMPILE environment variable as usual, and run:
- For ARM::
@@ -38,8 +108,18 @@ Set the CROSS_COMPILE environment variable as usual, and run:
make qemu_arm64_defconfig
make
-Running U-Boot
---------------
+Running U-Boot (secure)
+-----------------------
+
+- For AArch64::
+
+ qemu-system-aarch64 -machine virt,secure=on,virtualization=on \
+ -nographic -cpu cortex-a57 -bios qemu_fw.bios
+
+For additional QEMU command description see running U-Boot in non-secure state.
+
+Running U-Boot (non-secure)
+---------------------------
The minimal QEMU command line to get U-Boot up and running is:
- For ARM::
diff --git a/doc/board/index.rst b/doc/board/index.rst
index 7870f1bc246..fcb4224bae3 100644
--- a/doc/board/index.rst
+++ b/doc/board/index.rst
@@ -71,6 +71,7 @@ Board-specific doc
theobroma-systems/index
ti/index
toradex/index
+ tq/index
variscite/index
wexler/index
xen/index
diff --git a/doc/board/nxp/imx8mq_evk.rst b/doc/board/nxp/imx8mq_evk.rst
index 4b0624e7e86..4a9d9e404c5 100644
--- a/doc/board/nxp/imx8mq_evk.rst
+++ b/doc/board/nxp/imx8mq_evk.rst
@@ -45,11 +45,11 @@ Build U-Boot
$ make imx8mq_evk_defconfig
$ make
-Burn the flash.bin to MicroSD card offset 33KB:
+Burn the flash.bin to MicroSD card offset 32KB:
.. code-block:: bash
- $sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=33 conv=notrunc
+ $sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32 conv=notrunc
Boot
----
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index 141071f528a..a31ee7100b9 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -143,6 +143,7 @@ List of mainline supported Rockchip boards:
- ArmSoM Sige5 (sige5-rk3576)
- Firefly ROC-RK3576-PC (roc-pc-rk3576)
- FriendlyElec NanoPi M5 (nanopi-m5-rk3576)
+ - FriendlyElec NanoPi R76S (nanopi-r76s-rk3576)
- Generic RK3576 (generic-rk3576)
- Luckfox Omni3576 (omni3576-rk3576)
- Radxa ROCK 4D (rock-4d-rk3576)
diff --git a/doc/board/ti/k3.rst b/doc/board/ti/k3.rst
index 74ece0c9acf..21973d53b15 100644
--- a/doc/board/ti/k3.rst
+++ b/doc/board/ti/k3.rst
@@ -651,6 +651,17 @@ Refer (:ref:`U-boot ARMV8 build <k3_rst_include_start_build_steps_uboot>`)
This will need to be explicitly disabled by changing the boot_targets to
disallow fallback during testing.
+DDR Configuration
+-----------------
+
+The K3 DDRSS driver (drivers/ram/k3-ddrss/k3-ddrss.c) configures the DDR during
+the R5 SPL stage. The driver utilizes an auto-generated configuration file
+containing necessary settings for the DDR. It configures the frequency, timing
+parameters, training algorithms etc. for DDR initialization. The configuration
+DTSI can be generated using the `Sysconfig tool <https://dev.ti.com/sysconfig>`_
+and selecting the software product as "DDR Configuration for \*" as well as the
+required device.
+
Saving environment
------------------
@@ -1258,3 +1269,86 @@ Currently, OpenOCD does not support tracing for K3 platforms. Tracing
function could be beneficial if the bug in code occurs deep within
nested function and can optionally save developers major trouble of
stepping through a large quantity of code.
+
+Firmware TPM (fTPM) Support
+---------------------------
+
+K3 family of devices with **eMMC** are capable of supporting firmware TPM
+(fTPM) functionality through OP-TEE, providing TPM 2.0 capabilities
+without requiring discrete TPM hardware.
+The fTPM Trusted Application runs in OP-TEE secure world and uses
+eMMC Replay Protected Memory Block (RPMB) for secure persistent
+storage.
+
+The fTPM implementation consists of:
+
+* **fTPM TA**: Microsoft's fTPM Trusted Application (TA) running in OP-TEE
+* **RPMB Storage**: eMMC RPMB partition for persistent TPM NV storage
+* **U-Boot Support**: TPM commands and RPMB access via OP-TEE
+
+fTPM can be used to enable security features such as:
+
+* Measured boot
+* Secure key storage
+* Platform attestation
+
+Enabling fTPM in U-Boot
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The following are the steps to enable fTPM in uboot:
+
+1. Programming Keys into eMMC RPMB
+""""""""""""""""""""""""""""""""""
+
+Since fTPM uses RPMB for persistent storage, the eMMC RPMB must be
+provisioned with an authentication key on first boot. This requires
+building optee_os with the ``CFG_RPMB_WRITE_KEY=y`` flag
+
+.. prompt:: bash $
+
+ # inside optee_os source
+ make CROSS_COMPILE=$CC32 CROSS_COMPILE64=$CC64 CFG_ARM64_core=y \
+ PLATFORM=$OPTEE_PLATFORM CFG_RPMB_WRITE_KEY=y
+
+.. warning::
+
+ Programming the RPMB key is a **one-time, irreversible operation**.
+ The key is derived from the Hardware Unique Key (HUK) and cannot
+ be changed once programmed. For further details, refer
+ `Secure Storage <https://optee.readthedocs.io/en/latest/architecture/secure_storage.html>`_
+
+On first boot with this configuration, OP-TEE will automatically program
+the RPMB authentication key. Subsequent boots should use OP-TEE built
+without this flag.
+
+2. Generate fTPM TA binary
+""""""""""""""""""""""""""
+
+To generate fTPM TA binary, follow the
+`Building the TA <https://github.com/OP-TEE/optee_ftpm#building-the-ta>`_
+steps mentioned in the OP-TEE fTPM Github repository
+
+3. Build OP-TEE with TA:
+""""""""""""""""""""""""
+
+With the TA generated from last step, build optee-os with RPMB and early
+TA enabled:
+
+.. prompt:: bash $
+
+ # inside optee_os source
+ make CROSS_COMPILE=$CC32 CROSS_COMPILE64=$CC64 CFG_ARM64_core=y \
+ PLATFORM=$OPTEE_PLATFORM CFG_RPMB_FS=y CFG_REE_FS=n \
+ CFG_EARLY_TA=y CFG_RPMB_ANNOUNCE_PROBE_CAP=n \
+ EARLY_TA_PATHS=/path/to/ftpm_ta.stripped.elf
+
+Expected Outcome
+^^^^^^^^^^^^^^^^
+
+To verify fTPM support is working, run tpm2 commands in u-boot prompt:
+
+.. code-block:: console
+
+ => tpm2 info
+ Microsoft OP-TEE fTPM
+ => tpm2 init
diff --git a/doc/board/toradex/index.rst b/doc/board/toradex/index.rst
index 27f059542e6..2a45bde6991 100644
--- a/doc/board/toradex/index.rst
+++ b/doc/board/toradex/index.rst
@@ -16,3 +16,4 @@ Toradex
verdin-am62p
verdin-imx8mm
verdin-imx8mp
+ verdin-imx95
diff --git a/doc/board/toradex/verdin-imx95.rst b/doc/board/toradex/verdin-imx95.rst
new file mode 100644
index 00000000000..d252277cc20
--- /dev/null
+++ b/doc/board/toradex/verdin-imx95.rst
@@ -0,0 +1,171 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Verdin iMX95 Module
+==========================
+
+- SoM: https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95
+- Carrier board: https://www.toradex.com/products/carrier-board/verdin-development-board-kit
+
+Quick Start
+-----------
+
+- Setup environment
+- Get ahab-container.img
+- Get DDR PHY Firmware Images
+- Get and Build OEI Images
+- Get and Build System Manager Image
+- Get and Build the ARM Trusted Firmware
+- Build the Bootloader Image
+- Boot
+
+Setup environment
+-----------------
+
+Suggested current toolchains are ARM 14.3 (https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads):
+
+- https://developer.arm.com/-/media/Files/downloads/gnu/14.3.rel1/binrel/arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
+- https://developer.arm.com/-/media/Files/downloads/gnu/14.3.rel1/binrel/arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
+
+.. code-block:: console
+
+ $ export TOOLS=<path/to/directory/with/toolchains>
+ $ export CROSS_COMPILE_32=<path/to/arm/toolchain/bin/>arm-none-linux-gnueabihf-
+ $ export CROSS_COMPILE_64=<path/to/arm64/toolchain/bin/>aarch64-none-linux-gnu-
+
+Get ahab-container.img
+----------------------
+
+Note: `$srctree` is the U-Boot source directory
+
+.. code-block:: console
+
+ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin
+ $ sh firmware-ele-imx-2.0.2-89161a8.bin --auto-accept
+ $ cp firmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img $(srctree)
+
+Get DDR PHY Firmware Images
+---------------------------
+
+Note: `$srctree` is the U-Boot source directory
+
+.. code-block:: console
+
+ $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin
+ $ sh firmware-imx-8.28-994fa14.bin --auto-accept
+ $ cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr4x*v202409.bin $(srctree)
+
+Get and Build OEI Images
+------------------------
+
+Note: `$srctree` is the U-Boot source directory
+Get OEI from: https://git.toradex.com/cgit/imx-oei-toradex.git/
+branch: main
+
+.. code-block:: console
+
+ $ git clone -b main https://git.toradex.com/cgit/imx-oei-toradex.git/
+ $ cd imx-oei-toradex
+
+ $ make board=toradex-verdin-imx95 oei=ddr DEBUG=1 r=B0 all
+ $ cp build/toradex-verdin-imx95/ddr/oei-m33-ddr.bin $(srctree)
+
+The Makefile will set `DDR_CONFIG` automatically based on the selected silicon
+revision.
+
+Get and Build the System Manager Image
+--------------------------------------
+
+Note: `$srctree` is the U-Boot source directory
+Get System Manager from: https://git.toradex.com/cgit/imx-sm-toradex.git/
+branch: main
+
+.. code-block:: console
+
+ $ git clone -b main https://git.toradex.com/cgit/imx-sm-toradex.git/
+ $ cd imx-sm-toradex
+ $ make config=verdin-imx95 all
+ $ cp build/verdin-imx95/m33_image.bin $(srctree)
+
+Get and Build the ARM Trusted Firmware
+--------------------------------------
+
+Note: `$srctree` is the U-Boot source directory
+Get ATF from: https://github.com/nxp-imx/imx-atf/
+branch: lf_v2.12
+
+.. code-block:: console
+
+ $ export CROSS_COMPILE=$CROSS_COMPILE_64
+ $ unset LDFLAGS
+ $ unset AS
+ $ git clone -b lf_v2.12 https://github.com/nxp-imx/imx-atf.git
+ $ cd imx-atf
+ $ make PLAT=imx95 bl31
+ $ cp build/imx95/release/bl31.bin $(srctree)
+
+Build the Bootloader Image
+--------------------------
+
+.. code-block:: console
+
+ $ export CROSS_COMPILE=$CROSS_COMPILE_64
+ $ make verdin-imx95_defconfig
+ $ make
+
+Flash to eMMC
+-------------
+
+.. code-block:: console
+
+ > tftpboot ${loadaddr} flash.bin
+ > setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
+ > mmc dev 0 1 && mmc write ${loadaddr} 0x0 ${blkcnt}
+
+As a convenience, instead of the last two commands, one may also use the update
+U-Boot wrapper:
+
+.. code-block:: console
+
+ > run update_uboot
+
+Boot
+----
+
+Boot sequence is:
+
+* SPL ---> ATF (TF-A) ---> U-Boot proper
+
+Output:
+
+.. code-block:: console
+
+ U-Boot SPL 2026.04-00756-ge7053d7cab88 (Apr 15 2026 - 12:27:34 +0200)
+ SYS Boot reason: pmic, origin: -1, errid: -1
+ SYS shutdown reason: pmic, origin: -1, errid: -1
+ Trying to boot from MMC1
+ Primary set selected
+ Load image from MMC/SD 0xca000
+ NOTICE: BL31: v2.12.0(release):lf-6.12.20-2.0.0
+ NOTICE: BL31: Built : 17:34:12, Oct 21 2025
+
+
+ U-Boot 2026.04-00756-ge7053d7cab88 (Apr 15 2026 - 12:27:34 +0200)
+
+ CPU: NXP i.MX95 Rev2.0 A55 at 1800 MHz - invalid sensor data
+ DRAM: 7.8 GiB
+ Core: 323 devices, 28 uclasses, devicetree: separate
+ MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
+ Loading Environment from MMC... Reading from MMC(0)... OK
+ In: serial@44380000
+ Out: serial@44380000
+ Err: serial@44380000
+ Model: Toradex 0089 Verdin iMX95 Hexa 8GB WB IT V1.0B
+ Serial#: 12594936
+
+ BuildInfo:
+ - ELE firmware version 2.0.2-2a118457
+
+ Setting variant to wifi
+ Net: No ethernet found.
+ Hit any key to stop autoboot: 0
+ Verdin iMX95 #
diff --git a/doc/board/tq/index.rst b/doc/board/tq/index.rst
new file mode 100644
index 00000000000..d6dc6101c2c
--- /dev/null
+++ b/doc/board/tq/index.rst
@@ -0,0 +1,12 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later or CC-BY-4.0
+
+.. Copyright (c) 2024-2026 TQ-Systems GmbH <[email protected]>,
+.. D-82229 Seefeld, Germany.
+
+TQ-Systems
+==========
+
+.. toctree::
+ :maxdepth: 2
+
+ tqma7
diff --git a/doc/board/tq/tqma7.rst b/doc/board/tq/tqma7.rst
new file mode 100644
index 00000000000..60fd883968d
--- /dev/null
+++ b/doc/board/tq/tqma7.rst
@@ -0,0 +1,77 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+.. Copyright (c) 2020-2026 TQ-Systems GmbH <[email protected]>,
+.. D-82229 Seefeld, Germany.
+
+########################################
+U-Boot for the TQ-Systems TQMa7x modules
+########################################
+
+This file contains information for the port of
+U-Boot to the TQ-Systems TQMa7x modules.
+
+***********
+Boot source
+***********
+
+The following boot sources are supported:
+
+- SD/eMMC
+- USB (SDP)
+
+QSPI boot is functional but requires an additional prepended NXP header
+image. This currently unsupported in u-boot.
+
+********
+Building
+********
+
+To build U-Boot for the TQ-Systems TQMa7x modules:
+
+.. code-block:: bash
+
+ make tqma7_mba7_<boot>_defconfig
+ make
+
+**boot** is a placeholder for the boot device:
+
++------+-----------+
+| mmc | SD/eMMC |
++------+-----------+
+| uuu | USB (SDP) |
++------+-----------+
+
+The default build artifact is named ``u-boot-with-spl.imx``.
+
+*****************************************
+Serial Download Protocol (SDP) / USB boot
+*****************************************
+
+The complete system image can be programmed with ``uuu``
+(https://github.com/nxp-imx/mfgtools) to eMMC.
+
+Serial Download Protocol is supported on the Micro-B USB port (X5) of MBa7x.
+The command ``fastboot usb 0`` is used to enable the fastboot gadget.
+
+Build SDP enabled U-Boot image
+==============================
+
+.. code-block:: bash
+
+ make <som>_mba7_uuu_defconfig
+ make
+
+Booting
+=======
+
+With UUU
+
+.. code-block:: bash
+
+ uuu -b spl <UUU U-Boot image>
+
+************
+Support Wiki
+************
+
+See `TQ Embedded Wiki for TQMa7x <https://support.tq-group.com/en/arm/tqma7x>`_.
diff --git a/doc/build/documentation.rst b/doc/build/documentation.rst
index b55a4666643..65f767440bd 100644
--- a/doc/build/documentation.rst
+++ b/doc/build/documentation.rst
@@ -40,7 +40,7 @@ The *htmldocs* target is used to build the HTML documentation. It uses the
# Display the documentation in a graphical web browser
x-www-browser doc/output/index.html
-The HTML documentation is published at https://docs.u-boot.org. The build
+The HTML documentation is published at https://docs.u-boot-project.org. The build
process for that site is controlled by the file *.readthedocs.yml*.
Infodoc documentation
diff --git a/doc/develop/codingstyle.rst b/doc/develop/codingstyle.rst
index 2a69162fa95..26881cf3900 100644
--- a/doc/develop/codingstyle.rst
+++ b/doc/develop/codingstyle.rst
@@ -80,8 +80,10 @@ Code Formatting with clang-format
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
U-Boot provides a `.clang-format` configuration file that was copied directly
-from the Linux kernel without any modifications, ensuring complete compatibility
-with kernel coding standards. Here are common ways to use clang-format:
+from the Linux kernel, ensuring complete compatibility with kernel coding
+standards.
+
+Here are common ways to use clang-format:
**Basic usage for single files:**
diff --git a/doc/develop/pytest/test_fit.rst b/doc/develop/pytest/test_fit.rst
new file mode 100644
index 00000000000..3a2359f1e89
--- /dev/null
+++ b/doc/develop/pytest/test_fit.rst
@@ -0,0 +1,10 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+test_fit
+========
+
+.. automodule:: test_fit
+ :synopsis:
+ :member-order: bysource
+ :members:
+ :undoc-members:
diff --git a/doc/develop/pytest/usage.rst b/doc/develop/pytest/usage.rst
index e9296fd1f44..6002244d608 100644
--- a/doc/develop/pytest/usage.rst
+++ b/doc/develop/pytest/usage.rst
@@ -546,11 +546,11 @@ following annotation for a test requires ``CONFIG_EFI_LOADER=y``:
Sometimes multiple configuration option supply the same functionality. If
multiple arguments are passed to ``buildconfigspec()``, only one of the
configuration options needs to be set. The following annotation requires that
-either of ``CONFIG_NET`` or ``CONFIG_NET_LWIP`` is set:
+either of ``CONFIG_NET_LEGACY`` or ``CONFIG_NET_LWIP`` is set:
.. code-block:: python
- @pytest.mark.buildconfigspec('net', 'net_lwip')
+ @pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
The ``notbuildconfigspec()`` annotation can be used to require a configuration
option not to be set. The following annotation requires ``CONFIG_RISCV=n``:
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index 69678f2897a..1e3e179d77f 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -55,10 +55,10 @@ Current Status
* U-Boot v2026.04 was released on Monday, 06 April 2026.
-* The Merge Window for the next release (|next_ver|) is **open** until the -rc1
+* The Merge Window for the next release (|next_ver|) is **closed** with the -rc1
release on Monday, 27 April 2026.
-* The next branch is now **closed** until the -rc2 release on Monday, 11
+* The next branch is now **open** with the -rc2 release on Monday, 11
May 2026.
* Release "|next_ver|" is scheduled for Monday, 06 July 2026.
@@ -69,15 +69,17 @@ Future Releases
.. The following commented out dates are for when release candidates are
planned to be tagged.
-.. For the next scheduled release, release candidates were made on:
+For the next scheduled release, release candidates were made on:
-.. * U-Boot |next_ver|-rc1 was released on Mon 11 May 2026.
+* U-Boot |next_ver|-rc1 was released on Mon 27 April 2026.
-.. * U-Boot |next_ver|-rc2 was released on Mon 25 May 2026.
+* U-Boot |next_ver|-rc2 was released on Mon 11 May 2026.
-.. * U-Boot |next_ver|-rc3 was released on Mon 08 June 2026.
+* U-Boot |next_ver|-rc3 was released on Mon 25 May 2026.
-.. * U-Boot |next_ver|-rc4 was released on Mon 22 June 2026.
+* U-Boot |next_ver|-rc4 was released on Mon 08 June 2026.
+
+.. * U-Boot |next_ver|-rc5 was released on Mon 22 June 2026.
Please note that the following dates are planned only and may be deviated from
as needed.
diff --git a/doc/device-tree-bindings/bootcount-syscon.txt b/doc/device-tree-bindings/bootcount-syscon.txt
index ea27b246c8a..8e6060a711e 100644
--- a/doc/device-tree-bindings/bootcount-syscon.txt
+++ b/doc/device-tree-bindings/bootcount-syscon.txt
@@ -1,6 +1,6 @@
Bootcount Configuration
This is the implementation of the feature as described in
-https://docs.u-boot.org/en/latest/api/bootcount.html
+https://docs.u-boot-project.org/en/latest/api/bootcount.html
Required Properties:
- compatible: must be "u-boot,bootcount-syscon".
diff --git a/doc/device-tree-bindings/pinctrl/apple,pinctrl.yaml b/doc/device-tree-bindings/pinctrl/apple,pinctrl.yaml
deleted file mode 100644
index d50571affd1..00000000000
--- a/doc/device-tree-bindings/pinctrl/apple,pinctrl.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Apple GPIO controller
-
-maintainers:
- - Mark Kettenis <[email protected]>
-
-description: |
- The Apple GPIO controller is a simple combined pin and GPIO
- controller present on Apple ARM SoC platforms, including various
- iPhone and iPad devices and the "Apple Silicon" Macs.
-
-properties:
- compatible:
- items:
- - const: apple,t8103-pinctrl
- - const: apple,pinctrl
-
- reg:
- maxItems: 1
-
- clocks:
- maxItems: 1
-
- gpio-controller: true
-
- '#gpio-cells':
- const: 2
-
- gpio-ranges:
- maxItems: 1
-
- interrupts:
- description: One interrupt for each of the (up to 7) interrupt
- groups supported by the controller sorted by interrupt group
- number in ascending order.
- minItems: 1
- maxItems: 7
-
- interrupt-controller: true
-
-patternProperties:
- '-pins$':
- type: object
- $ref: pinmux-node.yaml#
-
- properties:
- pinmux:
- description:
- Values are constructed from pin number and alternate function
- configuration number using the APPLE_PINMUX() helper macro
- defined in include/dt-bindings/pinctrl/apple.h.
-
- required:
- - pinmux
-
- additionalProperties: false
-
-required:
- - compatible
- - reg
- - gpio-controller
- - '#gpio-cells'
- - gpio-ranges
-
-additionalProperties: false
-
-examples:
- - |
- #include <dt-bindings/interrupt-controller/apple-aic.h>
- #include <dt-bindings/pinctrl/apple.h>
-
- soc {
- #address-cells = <2>;
- #size-cells = <2>;
-
- pinctrl: pinctrl@23c100000 {
- compatible = "apple,t8103-pinctrl", "apple,pinctrl";
- reg = <0x2 0x3c100000 0x0 0x100000>;
- clocks = <&gpio_clk>;
-
- gpio-controller;
- #gpio-cells = <2>;
- gpio-ranges = <&pinctrl 0 0 212>;
-
- interrupt-controller;
- interrupt-parent = <&aic>;
- interrupts = <AIC_IRQ 16 IRQ_TYPE_LEVEL_HIGH>,
- <AIC_IRQ 17 IRQ_TYPE_LEVEL_HIGH>,
- <AIC_IRQ 18 IRQ_TYPE_LEVEL_HIGH>,
- <AIC_IRQ 19 IRQ_TYPE_LEVEL_HIGH>,
- <AIC_IRQ 20 IRQ_TYPE_LEVEL_HIGH>,
- <AIC_IRQ 21 IRQ_TYPE_LEVEL_HIGH>,
- <AIC_IRQ 22 IRQ_TYPE_LEVEL_HIGH>;
-
- pcie_pins: pcie-pins {
- pinmux = <APPLE_PINMUX(150, 1)>,
- <APPLE_PINMUX(151, 1)>,
- <APPLE_PINMUX(32, 1)>;
- };
- };
- };
diff --git a/doc/mkeficapsule.1 b/doc/mkeficapsule.1
index d6653ec4247..ed296730eeb 100644
--- a/doc/mkeficapsule.1
+++ b/doc/mkeficapsule.1
@@ -153,4 +153,4 @@ The directory in which all capsule files be placed
Written by AKASHI Takahiro <[email protected]>
.SH HOMEPAGE
-http://www.u-boot.org/
+http://www.u-boot-project.org/
diff --git a/doc/sphinx/requirements.txt b/doc/sphinx/requirements.txt
index c616c75fefc..20a99005d71 100644
--- a/doc/sphinx/requirements.txt
+++ b/doc/sphinx/requirements.txt
@@ -23,4 +23,4 @@ sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
-urllib3==2.6.3
+urllib3==2.7.0
diff --git a/doc/usage/cmd/bdinfo.rst b/doc/usage/cmd/bdinfo.rst
index 46046e55e06..6226d14bd66 100644
--- a/doc/usage/cmd/bdinfo.rst
+++ b/doc/usage/cmd/bdinfo.rst
@@ -124,12 +124,12 @@ Build
current eth
name of the active network device
- Only shown if CONFIG_NET=y or CONFIG_NET_LWIP=y.
+ Only shown if CONFIG_NET=y.
IP addr
network address, value of the environment variable *ipaddr*
- Only shown if CONFIG_NET=y or CONFIG_NET_LWIP=y.
+ Only shown if CONFIG_NET=y.
fdt_blob
address of U-Boot's own device tree, NULL if none
@@ -173,5 +173,4 @@ The bdinfo command is available if CONFIG_CMD_BDI=y.
The options to bdinfo are only available if CONFIG_GETOPT=y.
-The ``-e`` option is additionally only available if CONFIG_NET=y or
-CONFIG_NET_LWIP=y.
+The ``-e`` option is additionally only available if CONFIG_NET=y.
diff --git a/doc/usage/cmd/part.rst b/doc/usage/cmd/part.rst
index b91f6541f7f..a0e7be08a9a 100644
--- a/doc/usage/cmd/part.rst
+++ b/doc/usage/cmd/part.rst
@@ -52,7 +52,7 @@ The 'part list' command prints or sets an environment variable to the list of pa
an optional environment variable to store the list of partitions value into.
The 'part start' command sets an environment variable to the start of the partition (in blocks),
-part can be either partition number or partition name.
+part can be either partition number, partition UUID or partition name.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
@@ -64,7 +64,7 @@ part can be either partition number or partition name.
a variable to store the current start of the partition value into.
The 'part size' command sets an environment variable to the size of the partition (in blocks),
-part can be either partition number or partition name.
+part can be either partition number, partition UUID or partition name.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
@@ -76,7 +76,7 @@ part can be either partition number or partition name.
a variable to store the current size of the partition value into.
The 'part number' command sets an environment variable to the partition number using the partition name,
-part must be specified as partition name.
+part must be specified as partition UUID or partition name.
interface
interface for accessing the block device (mmc, sata, scsi, usb, ....)
diff --git a/doc/usage/cmd/reset.rst b/doc/usage/cmd/reset.rst
index 126db21cdb8..79bc8b9deca 100644
--- a/doc/usage/cmd/reset.rst
+++ b/doc/usage/cmd/reset.rst
@@ -11,7 +11,9 @@ Synopsis
::
- reset [-w]
+ reset
+ reset -w
+ reset -edl
Description
-----------
@@ -20,8 +22,14 @@ Perform reset of the CPU. By default does COLD reset, which resets CPU,
DDR and peripherals, on some boards also resets external PMIC.
-w
- Do warm WARM, reset CPU but keep peripheral/DDR/PMIC active.
+ Do WARM reset: reset CPU but keep peripheral/DDR/PMIC active.
+All other options require CONFIG_SYSRESET_CMD_RESET_ARGS=y.
+
+-edl
+ Boot to Emergency DownLoad mode on supported Qualcomm platforms. Unsupported
+ platforms will print an error message but the command will successfully
+ return (having done nothing). Requires CONFIG_SYSRESET_QCOM_PSCI=y.
Return value
------------
diff --git a/doc/usage/cmd/sntp.rst b/doc/usage/cmd/sntp.rst
index 2046828130d..433884f18b2 100644
--- a/doc/usage/cmd/sntp.rst
+++ b/doc/usage/cmd/sntp.rst
@@ -24,7 +24,7 @@ the server's IP address to be given on the command line or via the
`ntpserverip` environment variable.
The address of the NTP server does not need to be given if the DHCP server
-provides one. The legacy network stack (`CONFIG_NET=y`) can only use the
+provides one. The legacy network stack (`CONFIG_NET_LEGACY=y`) can only use the
first NTP server provided in the `ntp-servers` DHCP option.
When the network stack is lwIP (`CONFIG_NET_LWIP=y`) and DNS resolution
diff --git a/doc/usage/cmd/wget.rst b/doc/usage/cmd/wget.rst
index e6c42f967b9..f661d739a19 100644
--- a/doc/usage/cmd/wget.rst
+++ b/doc/usage/cmd/wget.rst
@@ -26,7 +26,7 @@ In order to use HTTPS you will need to compile wget with lwIP support.
Legacy syntax
~~~~~~~~~~~~~
-The legacy syntax is supported by the legacy network stack (CONFIG_NET=y)
+The legacy syntax is supported by the legacy network stack (CONFIG_NET_LEGACY=y)
as well as by the lwIP base network stack (CONFIG_NET_LWIP=y). It supports HTTP
only.
diff --git a/doc/usage/spl_boot.rst b/doc/usage/spl_boot.rst
index 93419f158af..64b8083e007 100644
--- a/doc/usage/spl_boot.rst
+++ b/doc/usage/spl_boot.rst
@@ -253,7 +253,7 @@ Ethernet
a TFTP server and binary name. The binary is downloaded via the TFTP
protocol. Required configuration settings include:
- * CONFIG_SPL_NET=y or CONFIG_TPL_NET=y
+ * CONFIG_SPL_NET=y
* CONFIG_SPL_ETH_DEVICE=y or CONFIG_DM_USB_GADGET=y