summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2025-11-06Merge patch series "Fix AArch32 compilation with Clang"Tom Rini
Dmitrii Sharshakov <[email protected]> says: I faced some minor compatibility issues when choosing Clang as the cross-compiler for my target. Please review these two fixes, aiming at enabling Clang-based builds (still using GNU binutils) for 32-bit ARM targets. Tested to fix build with (also run-tested on qemu arm and arm64 with clang): make ARCH=arm HOSTCC=clang CROSS_COMPILE=arm-none-eabi- CC=clang imx6ulz_smm_m2b_defconfig make ARCH=arm HOSTCC=clang CROSS_COMPILE=arm-none-eabi- CC=clang -j20 Link: https://lore.kernel.org/r/[email protected]
2025-11-06arm64: renesas: Use reset macro from common headerHai Pham
Clean up to avoid more reset macro duplication. Signed-off-by: Hai Pham <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2025-11-06arm64: renesas: Use BIT() macro in R-Car Gen3 headerMarek Vasut
Use the BIT() macro consistently in R-Car Gen3 header. Fix indent with spaces to tabs at the same time. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-11-06arm64: renesas: Drop encoded file name from R-Car Gen3/Gen4 headerMarek Vasut
Checkpatch warns that it's generally not useful to have the filename in the file. The warning is valid, drop the encoded file name. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-11-06spl: fit: Add ability to jump to Linux via OPTEE-OS on ARMv7aMarek Vasut
Add support for jumping to Linux kernel through OPTEE-OS on ARMv7a to SPL. This is already supported on ARMv8a, this patch adds the ARMv7a support. Extend the SPL fitImage loader to record OPTEE-OS load address and in case the load address is non-zero, use the same bootm-optee.S code used by the U-Boot fitImage jump code to start OPTEE-OS first and jump to Linux next. Signed-off-by: Marek Vasut <[email protected]>
2025-11-06ARM: bootm: Add support for starting Linux through OPTEE-OS on ARMv7aMarek Vasut
Add support for jumping to Linux kernel through OPTEE-OS on ARMv7a. This is only supported if U-Boot runs in PL1 secure. This change adds two components, one is fitImage OPTEE-OS loadable handler, which makes a note of OPTEE-OS being loaded and stores the load address for later jump to it. The second part is the actual jump to Linux through OPTEE-OS. The jump through OPTEE-OS requires set up of multiple CPU registers, r1 and r2 are passed through, r0 and r3 have to be set to 0, lr is set to Linux kernel entry point. This setup is done by new assembler function boot_jump_linux_via_optee(). The boot_jump_linux_via_optee() also includes STM32MP13xx late TZC configuration write, this cannot be moved easily, hence the ifdef. Signed-off-by: Marek Vasut <[email protected]>
2025-11-06arch: arm: build: only set -mgeneral-regs-only for AArch64Dmitrii Sharshakov
This option is not available for 32-bit ARM targets and causes an error when building with Clang: clang: error: unsupported option '-mgeneral-regs-only' for target 'arm-none-eabi' This fixes the following patch (also seems to only concern AArch64): Link: https://lists.denx.de/pipermail/u-boot/2021-August/458067.html Signed-off-by: Dmitrii Sharshakov <[email protected]>
2025-11-06acpi: use U-Boot ACPI vendor IDHeinrich Schuchardt
The U-Boot project has been assigned the vendor ID 'UBOO' [1]. Use this vendor ID and our release version in the ACPI table headers. [1] ACPI ID Registry https://uefi.org/ACPI_ID_List Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2025-11-06armv8: implement workaround for broken CNTFRQ_EL0 valueKaustabh Chakraborty
In devices where the U-Boot is used as a secondary bootloader, we rely on the device's primary bootloader to implement CNTFRQ_EL0. However, this reliance may lead to a non-functional timer in broken firmware. For instance, some versions of Samsung's S-Boot don't implement it. It's also not possible to set it in the U-Boot, because it's booted in a lower exception level. CNTFRQ_EL0 is reported to be 0. Use gd->arch.timer_rate_hz to override the queried value if set. This setting needs to be done in the board file, preferrably in timer_init(). This feature is present only when the CONFIG_ARMV8_CNTFRQ_BROKEN is enabled. Signed-off-by: Kaustabh Chakraborty <[email protected]>
2025-11-04Merge tag 'u-boot-imx-master-20251104' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/28144 - Extend USB support for the i.MX9 family. - Update memory controller for imx6ulz_smm_m2. - Add remoteproc support for several i.MX boards. - Add support for iMX95 15x15 EVK.
2025-11-04arm: armv8: mmu: fix mem_map_from_dram_banksAnshul Dalal
mem_map_from_dram_banks calls fdtdec_setup_memory_banksize to setup the dram banks though that is expected to be done by dram_init_banksize as part of board_r sequence. This has the side effect of modifying gd->bd->bi_dram as well, therefore this patch removes the call and updates spl_enable_cache for K3 to call dram_init_banksize. Signed-off-by: Anshul Dalal <[email protected]> Reported-by: Francesco Dolcini <[email protected]> Closes: https://lore.kernel.org/u-boot/20251027165225.GA71553@francesco-nb/ Fixes: fe2647f2a0d4 ("arm: armv8: mmu: add mem_map_from_dram_banks") Tested-by: Emanuele Ghidoli <[email protected]>
2025-11-04imx95_evk: Add basic support for iMX95 15x15 EVKYe Li
Add boot support and peripherals like eMMC/SD, UART, I2C, GPIO, ENETC0/1 and PCIE0/1 for iMX95 15x15 LPDDR4X EVK. Updated doc for build instructions. Signed-off-by: Ye Li <[email protected]>
2025-11-04arm: dts: imx95-15x15-evk: Add -u-boot.dtsi for SPL and binmanYe Li
Add -u-boot.dtsi for iMX95 15x15 EVK used by SPL and binman. iMX95 15x15 EVK uses LPDDR4X which needs dedicated DDR FW. Signed-off-by: Ye Li <[email protected]>
2025-11-04imx93: Enable remoteproc for i.MX93-EVK/QSB/FRDMPeng Fan
Select configs to enable remoteproc for i.MX93-EVK/QSB/FRDM Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-11-04imx8mq: Enable remoteproc for i.MX8MQ EVKPeng Fan
Select configs to enable remoteproc for i.MX8MQ EVK Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-11-04imx8mn: Enable remoteproc for i.MX8MN EVKPeng Fan
Select configs to enable remoteproc for NXP i.MX8MN EVK boards Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-11-04imx8mm: Enable remoteproc for i.MX8MM EVKPeng Fan
Select configs for remoteproc on i.MX8MM EVK boards Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-11-04imx8mp: Enable remoteproc for i.MX8MP EVKPeng Fan
Select configs to enable remoteproc for NXP i.MX8MP EVK Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-11-04arm: dts: imx8m: Add remoteproc nodePeng Fan
Add CM7/4 nodes for i.MX8MQ/M/N/P. Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-11-04arm64: dts: imx8mp: Add missing LED enumerators for DH electronics i.MX8M ↵Marek Vasut
Plus DHCOM on PDK2 The LED enumerators are missing, which prevents the LEDs from being accurately told apart by label. Fill in the enumerators the same way they are already present on PDK3. Put this into local DT extras until matching kernel patch lands in Linux. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2025-11-04arm64: imx8ulp: Split SRAM0 mapping to isolate the SCMI shared memory as ↵Alice Guo
non-cacheable This patch splits the 2MB SRAM0 mapping into three regions: - 0x22000000~0x2201f000: cacheable normal memory - 0x2201f000~0x22020000: non-cacheable device memory - 0x22020000~0x22200000: cacheable normal memory The change ensures the SCMI shared memory is non-cacheable, which avoids cache-related issues after removing mmu_set_region_dcache_behaviour() from scmi_dt_get_smt_buffer(). Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-11-04imx9: scmi: Drop parenthesis around enableMarek Vasut
Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2025-11-04imx943_evk: Enable ENETC1 and ENETC2Alice Guo
With this patch, both ENETC1 and ENETC2 are functional on the i.MX943 EVK board and can be used for networking. Signed-off-by: Alice Guo <[email protected]>
2025-11-04imx943_evk: Add support for booting from USB SDP on USB3.0Alice Guo
This patch is used to enable USB Gadget in SPL to make i.MX943 evk board can use SDP on USB3.0 interface. Signed-off-by: Alice Guo <[email protected]>
2025-11-04Add serial# for SPL SDP downloadFrank Li
After update this, uuu(>1.6) can use below command to filter out devices when multi boards connected. uuu -ms <serial#> ... [sudo] uuu -lsusb can list known devices with serial# informaiton. Serial number is retrieved via get_board_serial() and passed to g_dnl_set_serialnumber(). This part is conditionally compiled for i.MX94 only now. Signed-off-by: Frank Li <[email protected]> Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Ye Li <[email protected]>
2025-11-04imx943_evk: Enable USB 2.0 controller host modeAlice Guo
This patch enables the USB 2.0 controller to operate in host mode on the i.MX943 EVK board. It updates the device tree files to configure the USB 2.0 controller appropriately and modifies the defconfig to include necessary support. Signed-off-by: Alice Guo <[email protected]>
2025-11-04arm: arch-imx9: Add USB2.0 and USB3.0 base address definitionsAlice Guo
Add USB1_BASE_ADDR and USB2_BASE_ADDR for i.MX9 platform, and define USB_BASE_ADDR as an alias to USB2_BASE_ADDR. Signed-off-by: Alice Guo <[email protected]>
2025-11-03arm: mach-k3: enable support for falcon modeAnshul Dalal
With CONFIG_SPL_OS_BOOT enabled, U-Boot checks for the return value of spl_start_uboot to select between falcon or the regular boot flow. Where a return value of 0 means 'boot to linux'. This patch overrides the weak definition form common/spl/spl.c to allow K3 devices to use falcon mode with SPL_OS_BOOT_SECURE enabled for the A-Core SPL. Signed-off-by: Anshul Dalal <[email protected]>
2025-11-03Merge patch series "Remove usage of CMD_BOOTx from SPL code"Tom Rini
Anshul Dalal <[email protected]> says: Hi all, We currently make use of CMD_BOOTI and CMD_BOOTZ in the SPL boot flow in falcon mode, this isn't correct since all CMD_* configs are only meant for U-Boot proper and not the SPL. Therefore this patch set adds new LIB_BOOT[IMZ] configs that allow for more granular selection of their respective compilation targets. Additionally, this also allows us to more easily disable support for raw images from secure falcon mode (SPL_OS_BOOT_SECURE) by doing the following: config LIB_SPL_BOOTI ... depends on SPL_OS_BOOT && !SPL_OS_BOOT_SECURE ... Link: https://lore.kernel.org/r/[email protected]
2025-11-03spl: remove usage of CMD_BOOTx from image parsingAnshul Dalal
Using CMD_* configs from spl doesn't make logical sense. Therefore this patch replaces the checks for CMD_BOOTx with newly added library symbols LIB_BOOT[IMZ] and SPL_LIB_BOOT[IMZ] which are enabled by their respective CMD_* or SPL_* counterparts. On platforms with non-secure falcon mode, SPL_BOOTZ is enabled by default for 32-bit ARM systems and SPL_BOOTI is enabled by default for 64-bit ARM and RISCV. The respective C files (image.c/zimage.c) are compiled based on library symbols $(PHASE_)LIB_BOOTx instead which are in turn selected by both CMD_BOOTx and SPL_BOOTx as required. Signed-off-by: Anshul Dalal <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-11-02Merge tag 'u-boot-rockchip-20251101' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/28119 - New Boards support: rk3588: MNT Reform2 rk3528: Radxa ROCK 2A/2F rk3576: ArmSoM Sige1, Luckfox Omni3576, FriendlyElec NanoPi M5, Radxa ROCK 4D rk3568: Lunzn FastRhino R66S - Other board level updates.
2025-11-02rockchip: Ensure env in SPI Flash can work correctlyJonas Karlman
Ensure that the spi/sfc node for SPI flash is aviliable during pre-reloc phase so that env can successfully be loaded from SPI Flash. No boards with these SoCs seem to be affected as there is no default use of ENV_IS_IN_SPI_FLASH=y. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: spl-boot-order: Defer probe of boot deviceJonas Karlman
Boot devices are being probed when SPL boot order is determined. This may delay boot slightly and can prevent booting from SPI Flash on boards that use same pins for SPI Flash and eMMC due to pinctrl being applied prior to booting. Instead defer probe of the boot device until SPL try to load image from the boot device by using uclass_find_device_by_of_offset() instead of the get variant. Signed-off-by: Jonas Karlman <[email protected]>
2025-11-02board: rockchip: add Lunzn FastRhino R66STianling Shen
Lunzn Fastrhino R66S is a high-performance mini router. Specification: - Rockchip RK3568 - 1/2GB LPDDR4 RAM - SD card slot - 2x USB 3.0 Port - 2x 2500 Base-T (PCIe, r8125b) - 12v DC Jack Signed-off-by: Tianling Shen <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: imply most symbols for ARCH_ROCKCHIPQuentin Schulz
Forcing all those symbols on means we cannot make the binary smaller or with unnecessary features or drivers disabled. This is especially useful for security, auditing and certification where less code built means less to look at (and less surface attack) and less to patch, but also for making binary images smaller which typically means faster boot. It is possible to have boards without MMC, NAND or SPI flashes, without anything on SPI or I2C buses, nothing to control over PWM or GPIO or for which we have no interest in regulator control or serial output so make it possible to remove all that if desired. No intended change in default selected symbols. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-02rockchip: spl_common: fix TIMER_FMODE constantQuentin Schulz
The free running mode is 0 at bit offset 1. User mode is 1 at bit offset 1. Currently, free running mode is 1 at offset 0, which is already the case thanks to TIME_EN. So, this essentially does not change the actual value written to the register as it is TIME_EN | TIMER_FMODE which currently is 0x1 | BIT(0) = 0b1, and will become 0x1 | (0 << 1) = 0b1. I checked PX30, RK3128, RK3188, RK3228, RK3288, RK3308, RK3328, RK3368 RK3506, RK3562 and RK3568 TRMs. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3399: fix TIMER_FMODE constantQuentin Schulz
The free running mode is 0 at bit offset 1. User mode is 1 at bit offset 1. Currently, free running mode is 1 at offset 0, which is already the case thanks to TIME_EN. So, this essentially does not change the actual value written to the register as it is TIME_EN | TIMER_FMODE which currently is 0x1 | BIT(0) = 0b1, and will become 0x1 | (0 << 1) = 0b1. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3036: use rockchip_stimer_init from spl_common.oQuentin Schulz
The only difference with the implementation in spl_common.c is that we check whether the timer has already been enabled. Considering this is running in SPL, the first stage on RK3036, I feel like it's guaranteed to not be enabled by default. No public TRM though and I don't have access to an RK3036 device so take this as a guess. Size of SPL binary increases by 8B for evb-rk3036. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: px30: use rockchip_stimer_init from spl_common.o for TPLQuentin Schulz
Instead of redefining what is essentially the same code in secure_timer_init, let's simply use rockchip_stimer_init from spl_common.o instead. This increases the size of the TPL by 16B, due to the added check of STIMER already being enabled. Experimentally, STIMER is not already enabled when in TPL. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add ArmSoM Sige1Jonas Karlman
The Sige1 is a single board computer developed by ArmSoM, based on the Rockchip RK3528A SoC. Add support for the ArmSoM Sige1 board. Features tested on a ArmSoM Sige1 v1.1: - SD-card boot - eMMC boot - Ethernet - USB host (with pending DT changes) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add Radxa ROCK 2A/2FJonas Karlman
The ROCK 2 Family is a high-performance SBC (Single Board Computer) developed by Radxa, based on the Rockchip RK3528A. The Radxa E20C shares some board characteristics with the ROCK 2 family boards. Add support for the ROCK 2A and 2F boards. The radxa-e20c-rk3528 target is also extended to support booting ROCK 2 boards. Features tested on a ROCK 2A v1.202: - SD-card boot - Ethernet - USB host (with pending DT changes) Features tested on a ROCK 2F v1.016: - SD-card boot - eMMC boot - USB host (with pending DT changes) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add FriendlyElec NanoPi M5Jonas Karlman
FriendlyElec NanoPi M5 with Rockchip RK3576 SoC (4x Cortex-A72, 4x Cortex-A53, Mali-G52 MC3 GPU, 6 TOPS NPU). Features tested on a NanoPi M5 2411: - SD-card boot - SPI flash boot - Ethernet - LEDs - PCIe/NVMe - USB HOST/OTG - USER button Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add Luckfox Omni3576Jonas Karlman
Luckfox Omni3576 Carrier Board with Core3576 Module, powered by the Rockchip RK3576 SoC with four Cortex-A72 cores, four Cortex-A53 cores, and a Mali-G52 MC3 GPU. Features tested with a Core3576 Rev1.1 on a Omni3576 carrier board: - SD-card boot - eMMC boot - LED - PCIe/NVMe - USB2.0 HOST Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add Radxa ROCK 4DJonas Karlman
The Radxa ROCK 4D is a compact single-board computer (SBC) featuring numerous top-tier functions, features, and expansion options. Equipped with the Rockchip RK3576 or RK3576J SoC, the ROCK 4D boasts an octa-core CPU (4x Cortex-A72 + 4x Cortex-A53), Mali-G52 GPU, and a powerful 6 TOPS NPU, making it ideal for AI and multimedia tasks. Features tested on a Radxa ROCK 4D v1.112: - SPI Flash boot - Ethernet - PCIe/NVMe - USB host ROCK 4D boards with SPI Flash is configured to boot from FSPI0->UFS->USB, or directly from USB when the MASKROM button is pressed, booting directly from SD-card is not possible on these boards. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3576: Add SPI Flash boot supportJonas Karlman
The bootsource ids reported by BootROM of RK3576 for SPI NOR and USB differs slightly compared to prior SoCs: - Booting from sfc0 (ROCK 4D) report the normal bootsource id 0x3. - Booting from sfc1 M1 (NanoPi M5) report a new bootsource id 0x23. - Booting from sfc1 M0 has not been tested (no board using this config). - Booting from USB report a new bootsource id 0x81. Add a RK3576 specific read_brom_bootsource_id() function to help decode the new bootsource id values and the required boot_devices mapping of sfc0 and sfc1 to help support booting from SPI flash on RK3576. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3528: Implement read_brom_bootsource_id()Jonas Karlman
The bootsource ids reported by BootROM of RK3528 for e.g. USB differs compared to prior SoCs: - Booting from USB report a new bootsource id 0x81. Add a RK3528 specific read_brom_bootsource_id() function to help decode this new bootsource id value to help support booting from USB on RK3528. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: spl: Add a read_brom_bootsource_id() helperJonas Karlman
The bootsource ids reported by BootROM of RK3528 and RK3576 for e.g. SPI NOR and USB differs slightly compared to prior SoCs: - Booting from sfc0 (ROCK 4D) report the normal bootsource id 0x3. - Booting from sfc1 M1 (NanoPi M5) report a new bootsource id 0x23. - Booting from sfc1 M0 has not been tested (no board using this config). - Booting from USB report a new bootsource id 0x81 on RK3528 and RK3576. Add a helper function to read the bootsource id. This helper function will be used to translate the new values to the common BROM_BOOTSOURCE enum values on RK3528 and RK3576. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3528-radxa-e20c: Drop eMMC HS200 prop from board u-boot.dtsiJonas Karlman
The commit f8cb3fde935e ("arm: dts: rockchip: Fix eMMC write on RK3528") added a missing mmc-hs200-1_8v prop to boart u-boot.dtsi. Remove this boart u-boot.dtsi mmc-hs200-1_8v prop now that the board dt from dts/upstream after the v6.17-dts sync includes this prop. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02arm: dts: rockchip: Include OTP in U-Boot pre-reloc phase for RK3326Jonas Karlman
Update rk3326-u-boot.dtsi to include OTP in U-Boot pre-reloc phase for checkboard() to be able to read information about the running SoC model and variant from OTP and print it during boot: U-Boot 2025.07 (Jul 13 2025 - 10:07:16 +0000) Model: ODROID-GO Super SoC: RK3326 DRAM: 1 GiB (total 1022 MiB) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: odroid-go2: Turn on the blue LED at bootJonas Karlman
Use default-state prop to ensure that the blue heartbeat LED turns on at boot to inticate that U-Boot proper has been reached. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>