summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2025-07-28arm: mach-k3: Fix typo for TIFSSTUB_GP in IMAGE_ID enumAndrew Davis
Signed-off-by: Andrew Davis <afd@ti.com>
2025-07-28treewide: fix Casey's nameCasey Connolly
I updated the mailmap a while back but it's nice to have authorship comments adjusted too. Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-27sunxi: add basic A523 supportAndre Przywara
Add the basic Kconfig options, addresses and other values for the existing Kconfig settings for the new Allwinner A523/T527/H728 SoC. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: A523: add DDR3 DRAM supportMikhail Kalashnikov
Add reverse engineered code to add support for DDR3 DRAM chips on the Allwinner A523 DRAM controller. The timings are copying what boot0 set up on the X96QPro+ TV box, though they seem quite suboptimal, with longer latencies that would be required for DDR3-1600. The chips are also actually capable of DDR3-1833, so there is room for future improvement. Signed-off-by: Mikhail Kalashnikov <iuncuim@gmail.com> [Andre: rework to copy from H616 DDR3 driver, calculate timings] Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: A523: add DRAM initialisation routineJernej Skrabec
DRAM init code, as per reverse engineering and matching against previous SoCs. As usual no real documentation, and the DRAM controller is the usual mixture of close-to-previous IP and new inventions. This version supports LPDDR4 for now only, as seen on the early boards. This needs improvements, but it can be done later. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: sun50i_h6: add A523 SPL clock setup codeJernej Skrabec
This adds the early A523 clock setup code, for the basic peripheral PLL and the basic bus clocks (APB/AHB). This is quite close to the existing H6 and H616 clock code, so this shares the same file. A few bits and bobs are different, though, so filter for the A523 in a few occasions. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: update cpu_sunxi_ncat2.hAndre Przywara
The cpu_sunxi_ncat2.h header file contains addresses of some peripherals that are needed for the SPL, for chips that belong to the "NCAT2" generation. The Allwinner A523 is a member of this group, but a few addresses differ, and we need a few more addresses, for playing with the core reset, for instance. Add the new addresses needed for the A523 and guard existing definitions that conflict with that new chip. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: spl: add support for Allwinner A523 watchdogAndre Przywara
The watchdog in the Allwinner A523 SoC differs a bit from the one in the previous SoCs: it lives in a separate register frame, so no longer inside some timer device, and it manages to shuffle around some registers a bit. But it also conveniently adds a direct reset functionality, so we don't need to use a dummy timeout period. Avoid introducing a new MMIO register frame C struct, but just define the one needed register offset as a macro. Then just trigger this new direct reset functionality in the A523 specific reset_cpu() implementation. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: clock: H6: add A523 CPU PLL supportAndre Przywara
The Allwinner A523 features 8 CPU cores, organised in two clusters, both driven by separate PLLs. Also there is the DSU PLL, which clocks the hardware that connects the cores to the rest of the system. And while the PLL registers itself are very similar, they are located in a separate register frame, outside the main CCU, and also the register controlling the CPU clock source (mux) is different. Provide a separate function that reparents the two clusters and the DSU, while their PLLs are programmed. For the actual PLL programming, we rely on the existing shared routine. The selection between the new A523 routine and the existing code is made with C if statements, but since the choice is effectively made at compile time already, the compiler optimises away the other code paths, leaving just the one required function in. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: clock: H6: factor out H6/H616 CPU clock setupAndre Przywara
When we program the CPU PLL, we need to switch the CPU clock source away from the PLL temporarily, then switch it back, once the PLL has stabilised. The CPU CLK register will be different on the A523, so move the current code into a separate function, to allow using a different version of that later for the A523. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: clock: H6: factor out clock_set_pll()Andre Przywara
The SPL initial clock setup code for the Allwinner H6 and H616 SoCs uses a simple CPU PLL setup routine, which programs all register bits at once, then waits for the LOCK bit to clear. The manual suggests to follow a certain procedure for bringing up any PLLs, which involves several register writes, one at a time, and some delays. Also the H616 and the new A523 require some tiny changes in this sequence, and the different SoCs also feature some extra bits here and there, which we should not just clear. So factor out the PLL setup routine, and make it follow the manual's suggestion. This will read the PLL register at the beginning, then tweak the bits we need to manipulate, and writes the register several times on the way. This allows to cover the specific bits for different SoCs. Besides improving the reliability of the PLL setup, this helps with the A523, which requires *three* CPU PLLs to be programmed. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-27sunxi: clock: H6: unify PLL control bit definitionsAndre Przywara
The Allwinner PLLs share most of their control bits, they differ mostly in the factors and dividers. Drop the PLL specific definition of those common bits, and use one shared macro, for all PLLs. This requires changing the users in the SPL clock and DRAM code. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-07-26efi: Rename CONFIG_EFI to CONFIG_EFI_CLIENTSimon Glass
The generic name 'EFI' would be more useful for common EFI features. At present it just refers to the EFI app and stub, which is confusing. Rename it to EFI_CLIENT Signed-off-by: Simon Glass <sjg@chromium.org>
2025-07-24Merge tag 'u-boot-imx-master-20250724' 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/27149 - Add support for the NXP imx93 frdm board. - imx93_evk and phycore-imx93 cleanups. - Convert imx6dl-sielaff to OF_UPSTREAM and fix serial download mode boot. - Fix crash in imx power-domain. - Migrate Phytec imx8mm boards to standard boot. - Fix smatch warnings.
2025-07-24Merge patch series "Add support for K3 BIST"Tom Rini
Neha Malcom Francis <n-francis@ti.com> says: This series implements a driver for the BIST (Built-In Self Test) module for K3 devices. The BIST driver must ideally support triggering of BIST tests, both PBIST (Memory BIST) and LBIST (Logic BIST) on a core. Both tests are destructive in nature. Please see links [1] and [2] for further information regarding the two. At boot up, BIST is executed by hardware for the MCU domain automatically as part of HW POST. So BIST has been checked only for the MCU domain when U-Boot comes up in the usual U-Boot to Linux boot flow. To facilitate the use-case where some safe firmware is intended to be run on a safe core, it is best to have triggered the BIST tests on that core. As an example, we take triggering the BIST tests on the MAIN R52_x cores. The triggering patch is kept as DONOTMERGE. The general procedure for triggering BIST on a core is: 1. Power on the core under test following a sequence 2. Trigger the BIST test 3. Reset the core under test following a sequence BIST tests are triggered from A72 SPL where the DM (Device Manager firmware that handles power management) is already up and can perform these power sequences for us. Boot logs (with LOG_DEBUG and CONFIG_K3_BIST enabled) and DT node kept (already merged to ti-k3-dts-next [3]): https://gist.github.com/nehamalcom/3fed504d038b54e3e05ba3874d73d603 [1] https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/sdl/sdl_docs/userguide/j721e/modules/pbist.html#introduction [2] https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/sdl/sdl_docs/userguide/j721e/modules/lbist.html#introduction [3] https://lore.kernel.org/all/175205725858.918402.3771835070085533874.b4-ty@ti.com/ Link: https://lore.kernel.org/r/20250716062156.2564297-1-n-francis@ti.com
2025-07-24arm: dts: k3: use SPL_TEXT_BASE for R5 SPL load addressBryan Brattlof
The load address for the R5's SPL is defined in Kconfig by SPL_TEXT_BASE. Rather than hard coding the load address which could lead to hard to debug issues if this value is changed, just use the SPL_TEXT_BASE value. Reviewed-by: Andrew Davis <afd@ti.com> Signed-off-by: Bryan Brattlof <bb@ti.com> Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2025-07-24arm: dts: ast2600.dtsi: Fix typo of uart11 reg addressRebecca Cran
The uart11 reg address was a copy of the value for uart10. Update it to the correct value. Signed-off-by: Rebecca Cran <rebecca@os.amperecomputing.com>
2025-07-24arm: mach-k3: j784s4_init: Trigger LBIST and PBIST on MAIN R5 2_0Neha Malcom Francis
Trigger all tests of PBIST and LBIST using appropriate calls to set the core under test (MAIN R5 2_0) to it's required state. Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2025-07-24imx93_frdm: Add initial board supportFabio Estevam
Add the initial board support for the NXP i.MX93 FRDM board: https://www.nxp.com/design/design-center/development-boards-and-designs/frdm-i-mx-93-development-board:FRDM-IMX93 Based on the NXP U-Boot code. There were attempts to upstream the board devicetree, but it has not been accepted upstream yet: https://lore.kernel.org/linux-arm-kernel/20250526-fpg-nxp-imx93-frdm-v2-2-e5ad0efaec33@pengutronix.de/ Once it reaches upstream, we can switch to OF_UPSTREAM. Signed-off-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-07-24imx6dl-sielaff: Convert to OF_UPSTREAMFrieder Schrempf
Switch to OF_UPSTREAM to make use of the upstream devicetree. Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-07-24arm64: zynqmp: Let fit-dtb.blob generated all the timeMichal Simek
There is a value to generate fit-dtb.blob even for cases without SPL because flows with FSBL also require it. Reviewed-by: Neha Malcom Francis <n-francis@ti.com> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/c2952da3c064d67821cd166d2392db39c1d23b2c.1752822270.git.michal.simek@amd.com
2025-07-23Merge patch series "mkimage: validate default configuration reference"Tom Rini
Aristo Chen <jj251510319013@gmail.com> says: This patch series introduces a validation step in `mkimage` to ensure that the `default` property under the `/configurations` node in a FIT image references a valid subnode. If the referenced node does not exist, mkimage now prints an error and fails early. This helps prevent runtime failures when U-Boot attempts to boot using an undefined configuration. The first patch implements the validation logic in `fit_image.c`. The second patch fixes an invalid default configuration reference exposed by this new check in the `k3-am65-iot2050-boot-image.dtsi`. The final patch adds a test case to verify that mkimage correctly fails when an invalid default configuration is present in the ITS file. This series improves the robustness of FIT image generation and helps catch malformed image trees during build time. Link: https://lore.kernel.org/r/20250715130317.3886-1-aristo.chen@canonical.com
2025-07-23arm: k3-am65-iot2050: Fix invalid default configuration referenceAristo Chen
mkimage introduced a validation step to ensure that the 'default' property under the /configurations node in a FIT image refers to a valid subnode. This exposed an issue in the k3-am65-iot2050-boot-image.dtsi, where the 'default' property was set to "ti/k3-am6528-iot2050-basic" and "ti/k3-am6528-iot2050-basic-pg2", which do not correspond to actual configuration node names. This patch updates both /configurations nodes to reference the correct subnode. Without this fix, mkimage will fail with an error: "ERROR: Default configuration 'ti/k3-am6528-iot2050-basic' not found under /configurations" An upcoming commit will validate the if the default configuration exists Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
2025-07-22arm: ls1021a-pg-wcom: add i2c mux node and eepromHolger Brunck
We are now using the DM code for the i2c mux and to read out the inventory eeprom. Therefore we need to add the nodes to the specific DTS files. Signed-off-by: Holger Brunck <holger.brunck@hitachienergy.com>
2025-07-22configs: KASLR OPTEE RNG support for K3 devicesGokul Praveen
KASLR, or Kernel Address Space Layout Randomization, is a security feature in the Linux kernel that randomizes the memory location where the kernel is loaded during boot. OP-TEE RNG is a Random Number Generator (RNG) component within the Open Portable Trusted Execution Environment (OP-TEE) which provides a random number to U-BOOT and U-BOOT provides this random number as seed value to the LINUX kernel for KASLR. Add KASLR OPTEE RNG support across K3 devices by enabling the required configs. Signed-off-by: Gokul Praveen <g-praveen@ti.com> Reviewed-by: Bryan Brattlof <bb@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2025-07-18sandbox: Add dummy sync()Tom Rini
In order to compile more drivers, add an empty sync() function. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-17Merge tag 'u-boot-imx-master-20250717' 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/27088 - Add support for the i.MX95 B0 version. - Enable standard boot for phycore-imx8mp. - Kconfig fixes for i.MX MMC and FSL_SEC_MON. - Support 4Gb single die variant of the i.MX8MM Venice board.
2025-07-17armv8: ls1043a: make some erratas dependent from USBHolger Brunck
These erratas are only useful if USB is enabled. If it is disabled these erratas might cause issues. Signed-off-by: Holger Brunck <holger.brunck@hitachienergy.com>
2025-07-17soc: imx8ulp: Add celsius unit for temperatureDavid Zang
Make temperature unit (celsius) more clear to reduce confusion. Signed-off-by: David Zang <davidzangcs@gmail.com>
2025-07-17nxp: Move FSL_SEC_MON related options to arch/Kconfig.nxpTom Rini
The options related to FSL_SEC_MON are part of the chain of trust related options and should be under that menu, so move it there. Furthermore we don't need to prompt for the driver itself but do need to allow for configuration of the monitor endianess. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-17arm: imx: Remove unused mxcmmc driverTom Rini
As no platforms use this driver anymore, remove it. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-17imx95_evk: Add i.MX95 B0 supportAlice Guo
i.MX95 B0 uses image container format v2 and needs DUMMY_DDR so that update imximage.cfg and container.cfg for it. Signed-off-by: Alice Guo <alice.guo@nxp.com>
2025-07-17spl: imx: Add support for new PQC containerYe Li
To support PQC container format which is used for post quantum authentication on new i.MX parts like i.MX94 The major changes compared to legacy container format is in signature block, new container tag and version, and new alignment of container header. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Acked-by: Peng Fan <peng.fan@nxp.com>
2025-07-17arm: imx: Update ELE get_info structure for i.MX94Ye Li
Since i.MX94, the ELE get_info structure is updated to add OEM PQC SRK hash, so update it. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Acked-by: Peng Fan <peng.fan@nxp.com>
2025-07-17riscv: dts: th1520: Describe GMACs and enable them on Lichee Pi 4AYao Zi
TH1520 SoC ships two MAC controllers based on Designware Ethernet IP that are capable of Gigabit operation. Describe them in SoC devicetree and enable them for Lichee Pi 4A. Signed-off-by: Yao Zi <ziyao@disroot.org> Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-07-17riscv: cpu: th1520: Limit upper RAM boundary to 4 GiBYao Zi
TH1520 SoC ships DMA peripherals that could only reach the first 32-bit range of memory, for example, the GMAC controllers. Let's limit the usable top of RAM below 4GiB to ensure DMA allocations are accessible to all peripherals. Signed-off-by: Yao Zi <ziyao@disroot.org> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-07-16arm: dts: am335x-evm: remove duplicate chosen nodeRasmus Villemoes
The stdout-path property is already set to this value in the other chosen node ~15 lines above. Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-07-11global: Make ARCH_MISC_INIT a selected symbolTom Rini
This symbol is not something that the user should be enabling or disabling but rather the developer for a particular board should select it when required. This is mostly size neutral, however a few places do have changes. In the case of i.MX6ULL systems, it is always the case that arch_misc_init() could call setup_serial_number() and do useful work, but was not enabled widely, but now is. In the case of i.MX23/28 systems, we should be able to call mx28_fixup_vt() again here, so do so. Finally, some platforms were calling arch_misc_init() and then not doing anything and this results in removing the option. Acked-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-11Merge patch series "Create uclass for HW AES cryptographic devices"Tom Rini
Svyatoslav Ryhel <clamor95@gmail.com> says: Add uclass for HW AES cryptographic devices found on some devices, like Tegra20/Tegra30 SoC AES engine. Link: https://lore.kernel.org/r/20250629105711.24687-1-clamor95@gmail.com
2025-07-11test: dm: add AES engine testSvyatoslav Ryhel
Create a basic test suit for AES DM uclass that covers all available operations. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-07-11Merge tag 'u-boot-imx-master-20250710' 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/27010 - Fix the i.MX8M Nano GPU path. - Enable RNG support for KASLR on Toradex i.MX8 boards. - Enable watchdog and clock driver for imx6ulz_smm_m2b. - Tighten dependencies on CMD_BLOB. - Remove the rest of i.MX31 support.
2025-07-10Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
- SH Ether clean ups, RZ/A1 clean ups, RZ/A1 Genmai support - Gen3 EEPROM DT node clean up - V4H SA0 BootROM compatible binman etype, SCIF compatible SREC generation for Gen4
2025-07-10ARM: renesas: Add support for the r7s72100 Genmai boardMagnus Damm
Add r7s72100 Genmai board support. Serial console, NOR Flash and Ethernet are known to work however on-board SDRAM is not yet enabled. Signed-off-by: Magnus Damm <damm@opensource.se>
2025-07-10arm64: renesas: Switch R-Car V4H to renesas_rcar4_sa0 binman etypeMarek Vasut
Replace current ad-hoc generation of SA0 header with renesas_rcar4_sa0 binman etype on Renesas R-Car V4H. The new binman etype generates header which is almost identical to the current ad-hoc SA0 header, with one difference, the load length matches the actual payload size, which slightly improves boot time. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-07-10arm64: dts: renesas: Clean up sysinfo EEPROM DT description on R-Car Gen3Marek Vasut
Most of the sysinfo EEPROM node eeprom@50 is now part of the core DTs, remove duplicate DT properties from *-u-boot.dtsi . Adjust the phandle reference to i2c-eeprom in sysinfo node using <&{i2c_*/eeprom@50}> to avoid need for DT label. No functional change. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-07-10arm64: renesas: Add Renesas R-Car Gen4 SCIF/HSCIF loader SREC generationMarek Vasut
Add Renesas R-Car Gen4 SCIF/HSCIF loader compatible SREC generation. This is a regular U-Boot SPL SREC augmented with a short header which describes where to store the received data and how much data to store. This header is interpreted by the R-Car Gen4 BootROM SCIF/HSCIF loader. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-07-10arm64: renesas: Convert SCIF SREC from u-boot-spl.binMarek Vasut
Convert u-boot-spl.bin instead of u-boot-spl ELF into SCIF loader compatible SREC. The u-boot-spl.bin includes SPL DT, while the ELF does not, which leads to failure to start SPL via SCIF loader due to missing SPL DT. Fix this by using u-boot-spl.bin which includes the DT. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-07-10sandbox: Add some missing {clr,set,clrset}bits variantsTom Rini
Add the 16, 32 and 64bit versions of the non-endian {clr,set,clrset}bits macros. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-10arm: imx: imx8m: soc: Fix i.MX8M Nano GPU pathsAlexander Stein
The SoC node is called 'soc@0', even on NXP branch 6.6-fslc. This fixes the boot on i.MX8M Nano DualLite, as there is no GPU. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
2025-07-10arm: imx: Remove the rest of i.MX31 supportTom Rini
With the removal of the last i.MX31 platform we can remove the rest of the underlying architecture code as well. Fixes: f247354708ec ("arm: Remove mx31pdk board") Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Peng Fan <peng.fan@nxp.com>