Merge tag 'u-boot-socfpga-next-20251217' of https://source.denx.de/u-boot/custodians/u-boot-socfpga into next

This pull request brings together a set of fixes and enhancements across
the SoCFPGA platform family, with a focus on MMC/SPL robustness, EFI
boot enablement, and Agilex5 SD/eMMC support.

CI: https://source.denx.de/u-boot/custodians/u-boot-socfpga/-/pipelines/28776

Highlights:

  *
    SPL / MMC:
      o
        Fix Kconfig handling for
        SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
      o
        Correct raw sector calculations and respect explicit sector values
        when loading U-Boot from MMC in SPL
      o
        Adjust raw MMC loading logic for SoCFPGA platforms
  *
    EFI boot:
      o
        Permit EFI booting on SoCFPGA platforms
      o
        Disable mkeficapsule tool build for Arria 10 where unsupported
  *
    Agilex5:
      o
        Upgrade SDHCI controller from SD4HC to SD6HC
      o
        Enable MMC and Cadence SDHCI support in defconfig
      o
        Add dedicated eMMC device tree and defconfig for Agilex5 SoCDK
      o
        Revert incorrect GPIO configuration for SDIO_SEL
      o
        Refine U-Boot DT handling for SD and eMMC boot variants
  *
    SPI:
      o
        Allow disabling the DesignWare SPI driver in SPL via Kconfig
  *
    Board / configuration fixes:
      o
        Enable random MAC address generation for Cyclone V
      o
        Fix DE0-Nano-SoC boot configuration
      o
        Remove obsolete or conflicting options from multiple legacy
        SoCFPGA defconfigs
This commit is contained in:
Tom Rini
2025-12-18 08:06:10 -06:00
73 changed files with 679 additions and 196 deletions

View File

@@ -162,7 +162,7 @@ List of mainline supported Rockchip boards:
- Pine64 QuartzPro64 (quartzpro64-rk3588)
- Radxa ROCK 5 ITX (rock-5-itx-rk3588)
- Radxa ROCK 5A (rock5a-rk3588s)
- Radxa ROCK 5B (rock5b-rk3588)
- Radxa ROCK 5B/5B+/5T (rock5b-rk3588)
- Radxa ROCK 5C (rock-5c-rk3588s)
- Rockchip Toybrick TB-RK3588X (toybrick-rk3588)
- Theobroma Systems RK3588-SBC Jaguar (jaguar-rk3588)

View File

@@ -32,24 +32,47 @@ It provides the following features:
Here is the step-by-step to boot to U-Boot on SBC-RK3588-AMR Jaguar from Theobroma
Systems.
Get the TF-A and DDR init (TPL) binaries
----------------------------------------
Get DDR init (TPL) binary
-------------------------
.. prompt:: bash
git clone https://github.com/rockchip-linux/rkbin
cd rkbin
export RKBIN=$(pwd)
export BL31=$RKBIN/bin/rk35/rk3588_bl31_v1.47.elf
export ROCKCHIP_TPL=$RKBIN/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.18.bin
export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1)
sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt
./tools/ddrbin_tool rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL"
sed -i 's/^uart iomux=.*$/uart iomux=0/' tools/ddrbin_param.txt
python3 ./tools/ddrbin_tool.py rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL"
./tools/boot_merger RKBOOT/RK3588MINIALL.ini
export RKDB=$RKBIN/rk3588_spl_loader_v1.11.112.bin
export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1)
This will setup all required external dependencies for compiling U-Boot. This will
be updated in the future once upstream Trusted-Firmware-A supports RK3588 or U-Boot
gains support for open-source DRAM initialization in TPL.
be updated in the future once U-Boot gains support for open-source DRAM initialization
in TPL.
Get TF-A
--------
There are two possible options, pick one or the other. Note that the instructions need
to be run from the ``rkbin`` directory.
Prebuilt binary from Rockchip
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. prompt:: bash
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
Upstream
~~~~~~~~
.. prompt:: bash
cd ../
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
cd trusted-firmware-a
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3588 bl31
export BL31=$PWD/build/rk3588/release/bl31/bl31.elf
Build U-Boot
------------
@@ -59,6 +82,11 @@ Build U-Boot
cd ../u-boot
make CROSS_COMPILE=aarch64-linux-gnu- jaguar-rk3588_defconfig all
.. note::
If using upstream TF-A, one should disable ``SPL_ATF_NO_PLATFORM_PARAM`` symbol in
U-Boot config (via e.g. ``make CROSS_COMPILE=aarch64-linux-gnu- menuconfig``) which
will, among other things, enable console output in TF-A.
This will build ``u-boot-rockchip.bin`` which can be written to an MMC device
(eMMC or SD card).

View File

@@ -95,8 +95,9 @@ To flash U-Boot on the eMMC with ``rkdeveloptool``:
git clone https://github.com/rockchip-linux/rkbin.git
cd rkbin
./tools/boot_merger RKBOOT/RK3399MINIALL.ini
export RKDB=$(readlink -f rk3399_loader_v*.bin | head -1)
cd ..
./rkdeveloptool db rkbin/rk3399_loader_v1.30.130.bin
./rkdeveloptool db "$RKDB"
./rkdeveloptool wl 64 ../u-boot-rockchip.bin
NOR-Flash
@@ -121,7 +122,8 @@ To flash U-Boot on the SPI with ``rkdeveloptool``:
git clone https://github.com/rockchip-linux/rkbin.git
cd rkbin
./tools/boot_merger RKBOOT/RK3399MINIALL_SPINOR.ini
export RKDB=$(readlink -f rk3399_loader_spinor_v*.bin | head -1)
cd ..
./rkdeveloptool db rkbin/rk3399_loader_spinor_v1.30.114.bin
./rkdeveloptool db "$RKDB"
./rkdeveloptool ef
./rkdeveloptool wl 0 ../u-boot-rockchip-spi.bin

View File

@@ -90,6 +90,7 @@ To flash U-Boot on the eMMC with ``rkdeveloptool``:
git clone https://github.com/rockchip-linux/rkbin.git
cd rkbin
./tools/boot_merger RKBOOT/PX30MINIALL.ini
export RKDB=$(readlink -f px30_loader_v*.bin | head -1)
cd ..
./rkdeveloptool db rkbin/px30_loader_v2.08.135.bin
./rkdeveloptool db "$RKDB"
./rkdeveloptool wl 64 ../u-boot-rockchip.bin

View File

@@ -39,25 +39,47 @@ It provides the following feature set:
Here is the step-by-step to boot to U-Boot on SOM-RK3588-Q7 Tiger from Theobroma
Systems.
Get the TF-A and DDR init (TPL) binaries
----------------------------------------
Get DDR init (TPL) binary
-------------------------
.. prompt:: bash
git clone https://github.com/rockchip-linux/rkbin
cd rkbin
export RKBIN=$(pwd)
export BL31=$RKBIN/bin/rk35/rk3588_bl31_v1.47.elf
export ROCKCHIP_TPL=$RKBIN/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.18.bin
export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1)
sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt
sed -i 's/^uart iomux=.*$/uart iomux=2/' tools/ddrbin_param.txt
./tools/ddrbin_tool rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL"
python3 ./tools/ddrbin_tool.py rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL"
./tools/boot_merger RKBOOT/RK3588MINIALL.ini
export RKDB=$RKBIN/rk3588_spl_loader_v1.11.112.bin
export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1)
This will setup all required external dependencies for compiling U-Boot. This will
be updated in the future once upstream Trusted-Firmware-A supports RK3588 or U-Boot
gains support for open-source DRAM initialization in TPL.
be updated in the future once U-Boot gains support for open-source DRAM initialization
in TPL.
Get TF-A
--------
There are two possible options, pick one or the other. Note that the instructions need
to be run from the ``rkbin`` directory.
Prebuilt binary from Rockchip
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. prompt:: bash
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
Upstream
~~~~~~~~
.. prompt:: bash
cd ../
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
cd trusted-firmware-a
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3588 bl31
export BL31=$PWD/build/rk3588/release/bl31/bl31.elf
Build U-Boot
------------
@@ -67,6 +89,11 @@ Build U-Boot
cd ../u-boot
make CROSS_COMPILE=aarch64-linux-gnu- tiger-rk3588_defconfig all
.. note::
If using upstream TF-A, one should disable ``SPL_ATF_NO_PLATFORM_PARAM`` symbol in
U-Boot config (via e.g. ``make CROSS_COMPILE=aarch64-linux-gnu- menuconfig``) which
will, among other things, enable console output in TF-A.
This will build ``u-boot-rockchip.bin`` which can be written to an MMC device
(eMMC or SD card).

View File

@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
.. sectionauthor:: Apurva Nandan <a-nandan@ti.com>
J784S4 and AM69 Platforms
=========================
J742S2, J784S4 and AM69 Platforms
=================================
Introduction
------------
@@ -37,6 +37,11 @@ Platform information:
* https://www.ti.com/tool/J784S4XEVM
* https://www.ti.com/tool/SK-AM69
J742S2 is derivative of J784S24 SOC, More info can be found in
* TRM : https://www.ti.com/lit/ug/spruje3/spruje3.pdf
* Platform Information : https://www.ti.com/tool/J742S2XH01EVM
Boot Flow
---------
Below is the pictorial representation of boot flow:
@@ -99,6 +104,13 @@ Set the variables corresponding to this platform:
export UBOOT_CFG_CORTEXR=am69_sk_r5_defconfig
export UBOOT_CFG_CORTEXA=am69_sk_a72_defconfig
For J742S2-EVM, use the following U_BOOT_CFG instead:
.. prompt:: bash
export UBOOT_CFG_CORTEXR=j742s2_evm_r5_defconfig
export UBOOT_CFG_CORTEXA=j742s2_evm_a72_defconfig
.. j784s4_evm_rst_include_start_build_steps
1. Trusted Firmware-A
@@ -143,14 +155,21 @@ variant (GP, HS-FS, HS-SE) requires a different source for these files.
* tiboot3-j784s4-gp-evm.bin from :ref:`step 3.1 <j784s4_evm_rst_u_boot_r5>`
* tispl.bin_unsigned, u-boot.img_unsigned from :ref:`step 3.2 <j784s4_evm_rst_u_boot_a72>`
.. note::
For J742S2, GP variant is not available.
- HS-FS
* tiboot3-j784s4-hs-fs-evm.bin from :ref:`step 3.1 <j784s4_evm_rst_u_boot_r5>`
* tiboot3-j742s2-hs-fs-evm.bin from :ref:`step 3.1 <j784s4_evm_rst_u_boot_r5>`
* tispl.bin, u-boot.img from :ref:`step 3.2 <j784s4_evm_rst_u_boot_a72>`
- HS-SE
* tiboot3-j784s4-hs-evm.bin from :ref:`step 3.1 <j784s4_evm_rst_u_boot_r5>`
* tiboot3-j742s2-hs-evm.bin from :ref:`step 3.1 <j784s4_evm_rst_u_boot_r5>`
* tispl.bin, u-boot.img from :ref:`step 3.2 <j784s4_evm_rst_u_boot_a72>`
Image formats

View File

@@ -653,9 +653,9 @@ Refer (:ref:`U-boot ARMV8 build <k3_rst_include_start_build_steps_uboot>`)
Saving environment
------------------
SAVEENV is disabled by default and for the new flow uses Uenv.txt as the default
way for saving the environments. This has been done as Uenv.txt is more granular
then the saveenv command and can be used across various bootmodes too.
SAVEENV is disabled by default and for the new flow uses uEnv.txt as the default
way for saving the environments. This has been done as uEnv.txt is more granular
than the saveenv command and can be used across various bootmodes too.
**Writing to MMC/EMMC**

View File

@@ -83,7 +83,7 @@ part must be specified as partition name.
dev
device number
part
partition number
partition name
varname
a variable to store the current partition number value into