summaryrefslogtreecommitdiff
path: root/arch/arm
AgeCommit message (Collapse)Author
2025-03-30arm: dts: mediatek: disable fan node for mt7987Weijie Gao
There's no fan in MedisTek's reference design. Disable it for now. Signed-off-by: Weijie Gao <[email protected]>
2025-03-30pwm: mediatek: add pwm support for MediaTek MT7987 SoCWeijie Gao
This patch adds pwm support for MediaTek MT7987 SoC. Signed-off-by: Sam Shih <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2025-03-30arm: mediatek: remove wmcpu-reserved@50000000 node from mt7987 dtsWeijie Gao
The reserved-memory node 'wmcpu-reserved@50000000' only applies to linux kernel and is useless in u-boot. Remove it in *-u-boot.dtsi to make this memory region usable. Fixes: 2d6962e0618 (arm: mediatek: add support for MediaTek MT7987 SoC) Signed-off-by: Weijie Gao <[email protected]>
2025-03-27Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-sunxi ↵Tom Rini
into next Assorted fixes, refactorings and additions that are ready, and shave off some load from upcoming series'. Improves MMC performance on D1/T113 (missed clock divider), enables eMMC access on the H616 family (never worked, many thanks to Jernej for the fix!), DRAM detection fixes for the H616 (now reportedly stable). Some patches for the upcoming Allwinner A133 SoC support: a few refactorings, plus the DM clock and pinctrl driver. The DRAM init routines work, but need some more polishing, that also holds back the actual enablement patch, which will hopefully follow for v2025.07 still. Also some preparatory patches for the Allwinner A523 SoC support, for now just to improve the FEL save/restore code. There will be more patches coming up for this, ideally also in the coming cycle still. Gitlab CI passed, and I booted that briefly on some boards.
2025-03-27sunxi: update rmr_switch.S source codeAndre Przywara
Because the Allwinner BootROM always runs in AArch32, even on ARMv8 SoCs, we need to switch to AArch64 first, but also need to save the CPU state, when we later may need to return to the BootROM, for continuing with the FEL USB protocol. This is done in 32-bit code, which we include into the AArch64 boot assembly file as a series of .word directives, containing the encoded AArch32 instructions. To be able to change and verify that code, we also kept an assembly file with the respective 32-bit code, but just for reference. As this code is never compiled or assembled - it's just for documentation - it became stale over time: we didn't really update this along with the changes we made to the boot code. In particular the FEL save code was completely missing. Update that 32-bit assembly file, to match the current version used in boot0.h, including the FEL save routine. Also update the build instructions in the comments, to give people an actual chance to assemble this code. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Jernej Skrabec <[email protected]>
2025-03-27sunxi: arm64: boot0.h: move fel_stash_addr variable to the frontAndre Przywara
To be able to return to the BootROM when booting via the FEL USB protocol, we need to save the CPU state very early, which we need to do in the embedded AArch32 code. At the moment the pointer to the buffer for that state is located *after* the code, which makes the PC relative code fragile: adding or removing instructions will change the distance to that pointer variable. The "new" Allwinner A523 SoC requires more state to be saved (GICv3 system registers), but we must do that *only* on that SoC. Conditional compilation sounds like the easiest solution, but would mean that the distance to that pointer would change. Solve this rather easily by moving the pointer to the *front* of the code: we load that pointer in the first instructions, so the distance would always stay the same. Later in the code we won't need PC relative addressing anymore, so this code can grow or shrink easily, for instance due to conditional compilation. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]>
2025-03-27sunxi: armv8: fel: move fel_stash variable to the frontAndre Przywara
To return a 64-bit Allwinner chip back to the 32-bit BootROM code, we have some embedded AArch32 code that restores the CPU state, before branching back to the BootROM. At the moment the pointer to the buffer with that state is located *after* the code, which makes the PC relative code fragile: adding or removing instructions will change the distance to that pointer variable. The "new" Allwinner A523 SoC requires more state to be restored (GICv3 system registers), but we must do that *only* on that SoC. Conditional compilation sounds like the easiest solution, but would mean that the distance to that pointer would change. Solve this rather easily by moving the pointer to the *front* of the code: we load that pointer in the first instruction, so the distance would always stay the same. Later in the code we won't need PC relative addressing anymore, so this code can grow or shrink easily, for instance due to conditional compilation. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]>
2025-03-27sunxi: H616: dram: Improve address wrapping detectionJernej Skrabec
It turns out that checking just one write is not enough. Due to unexplained reasons scan procedure detected double the size. By making 16 dword writes and comparisons that never happens. New procedure is also inverted. Instead of writing two different values to base address and some offset and then reading both and comparing values, simplify this by writing pattern at the base address and then search for this pattern at some offset. Signed-off-by: Jernej Skrabec <[email protected]> Tested-by: Ryan Walklin <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2025-03-27sunxi: h616: dram: Rework size detectionJernej Skrabec
Since there is quite a few possible DRAM configurations in terms of bus width, rank and rows and columns count, size detection algorithm must be very careful not to test combination which would be bigger than H616 is actually capable of handling. Ideally, we should always detect memory aliasing, even for 4 GB memory size, which is the maximum amount of memory that H616 is capable of handling. For this reason, we have to configure minimum amount of supported rows when testing for columns and vice versa. This way test code will never step out of 4 GB boundary. While at it, check for 17 rows maximum. This aligns code with BSP DRAM driver. There is probably no such configuration which would make sense with 4 GB memory. Signed-off-by: Jernej Skrabec <[email protected]> Reviewed-by: Icenowy Zheng <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2025-03-27clk: sunxi: Add support for the A100/A133 CCUAndre Przywara
The Allwinner A100 SoC has been around for a while, and has now seemingly been replaced with its close sibling A133. Add support for the CCU, as far as used by U-Boot proper. Linux has some basic (clock and pinctrl) support for a while, so we can already use the existing binding headers. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Jernej Skrabec <[email protected]>
2025-03-27sunxi: Kconfig: consolidate SYS_CLK_FREQ selectionAndre Przywara
Most Allwinner SoCs (used on 107 out of 172 boards) use a default CPU frequency of 1008 MHz during the initial setup in the SPL. Make this the fallback default, in case nothing else is selected, to simplify the Kconfig stanza and make future additions easier. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Jernej Skrabec <[email protected]>
2025-03-27sunxi: pmic_bus: Move SPL I2C addresses into KconfigAndre Przywara
Some of the X-Power AXP PMICs can be ordered with an alternative I2C address, for instance an AXP717 could be shipped with address 0x34 or with address 0x35. Similarly the AXP803 lists two possible addresses. For DM (DT) based drivers this is no problem, but the Allwinner SPL code relies on exactly one hardcoded address per PMIC so far. Add a Kconfig variable that holds the I2C address used by the PMIC accessed in the SPL, and provide the (mostly only one) supported address as its default, for the PMICs we use. Boards using the other address can easily set this in their defconfig. This effectively moves the hardcoding from C code to Kconfig. That enables to use the AXP717 on some boards with the new Allwinner A523 chip, which use the other I2C address there. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2025-03-27sunxi: sun50i_h6: clock: fix PLL_PERIPH0 rate calculationAndre Przywara
On the Allwinner D1/R528/T113-s3 SoCs (NCAT2) the factors encoded in the PLL register describe the doubled clock rate, as in the other SoCs. Correct for that by always dividing the calculated rate by 2, except on the H6, where we need a divisor of 4 (no change here). This corrects the PERIPH0 clock rate as read by the MMC driver, and actually doubles the MMC performance on those NCAT2 chips. Signed-off-by: Andre Przywara <[email protected]> Reported-by: Kuba Szczodrzyński <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2025-03-27sunxi: kconfig : Make CHIP_DIP_SCAN depend on ARCH_SUNXILiya Huang
The CHIP_DIP_SCAN configuration option is relevant only to ARCH_SUNXI. Make CHIP_DIP_SCAN dependent on ARCH_SUNXI so that it does not show up on other goals. Signed-off-by: Liya Huang <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2025-03-26Merge branch 'staging' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tegra into next - More Tegra video improvements
2025-03-25Merge tag 'u-boot-imx-next-20250325' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/25324 - Imply the i.MX thermal driver by default on imx8, imx9, imx8m. - Add clk_resolve_parent_clk() and fix up iMX clock drivers.
2025-03-25imx: imx9: Imply CPU_IMX by defaultAdam Ford
The imx8_cpu driver is a CPU Driver that supports the i.MX9 family to display the CPU type, temperature grade and current operating temperature. The older file, arch/arm/mach-imx/cpu.c, does not support i.MX9, so this config is enabled in various IMX9 boards. Instead of having this option enabled in every IMX9, select this driver by default for the platform. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-03-25imx: imx8: Imply CPU_IMX by defaultAdam Ford
The imx8_cpu driver is a CPU Driver that supports the i.MX8Q family. When it is enabled, it acts as an alternative to arch/arm/mach-imx/cpu.c, but the imx8_cpu supports the driver model where cpu.c does not. Imply this newer driver by default. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-03-25imx: imx8m: Imply CPU_IMX by defaultAdam Ford
The imx8_cpu driver is a CPU Driver that supports the i.MX8M family, and when it is enabled, it acts as an alternative to arch/arm/mach-imx/cpu.c, but the imx8_cpu supports the driver model where cpu.c does not. Imply this newer driver by default. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-03-25imx: imx8m: Imply IMX_TMUAdam Ford
If the CPU Information is displayed from imx8_cpu, it displays the cpu temperature grade and operating temperature if CONFIG_IMX9 is defined. This behavior is similar to what happens mach-imx/cpu.c, except that the latter checks for IMX_THERMAL or IMX_TMU. In preparation to make imx8_cpu act like the previous implementation for any CPU, make IMX8M imply IMX_TMU so it will be always displayed unless a user decides to disable it. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-03-25imx: imx9: Imply IMX_TMUAdam Ford
If the CPU Information is displayed from imx8_cpu, it displays the cpu temperature grade and operating temperature if CONFIG_IMX9 is defined. This behavior is similar to what happens arch/arm/mach-imx/cpu.c except that the latter checks for CONFIG_IMX_THERMAL or CONFIG_IMX_TMU. In preparation to make imx8_cpu act like the previous implementation for any CPU, make IMX9 imply IMX_TMU, so it will be always displayed unless a user decides to disable it. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-03-24Merge tag 'v2025.04-rc5' into nextTom Rini
Prepare v2025.04-rc5
2025-03-24Merge tag 'qcom-next-20250324' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-snapdragon into next qcom-next-20230324: * msm8916 gets proper sysreset and spin-table support * The first new IPQ platform is added - the IPQ9574. The IPQ series are used in routers. The flashing process is also documented * mach-snapdragon gains the ability to boot with an internal FDT and still parse memory from an externally provided one * SC7280 gets a pinctrl driver and various clock driver improvements. * Qualcom clock drivers will now actually return an error when attempting to enable a clock which isn't described. * Qualcomm pinctrl drivers will now return an error when attempting to configure an invalid function mux
2025-03-19board: ouya: add Ouya Game Console supportSvyatoslav Ryhel
The Ouya microconsole is build on Nvidia Tegra 3 (T33) SoC, featuring a quad-core 1.7 GHz ARM Cortex-A9 CPU and a ULP GeForce GPU, paired with 1GB of DDR3 RAM and 8GB of internal flash storage. Running a modified Android 4.1 (Jelly Bean) OS with a custom launcher, it aimed for open-source gaming via a digital storefront. This implementation is mostly based on upstream Linux device tree and fragments of work done by previous developers. Co-developed-by: Peter Geis <[email protected]> Signed-off-by: Peter Geis <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19ARM: tegra: dts: fix lock, io-reset and open-drain propertiesSvyatoslav Ryhel
Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19pinctrl: tegra20: fix function naming mismatchesSvyatoslav Ryhel
The names used for displaya, displayb and i2c1 do not align with their corresponding Linux counterparts. This inconsistency can cause pins to be configured incorrectly, potentially breaking existing functionality. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19pinctrl: tegra: adjust pin state listsSvyatoslav Ryhel
Modify the pin state lists for lock, io-reset, rcv-sel, and e-io-hv properties by repositioning the default value to the end. This change addresses conflicts with device tree representations of TEGRA_PIN_DISABLE and TEGRA_PIN_ENABLE. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19ARM: tegra: tf700t: upgrade video bindingsSvyatoslav Ryhel
Align TF700T bindings with existing upstream device trees. OF_UPSTREAM migration is possible already but resulting size of binary exceeds maximum allowed size with full size trees. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19ARM: tegra: p1801-t: configure HDMI bindingSvyatoslav Ryhel
Bind HDMI for ASUS AiO P1801-t to provide full panel support and improve usability. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19ARM: tegra: endeavoru: upgrade video bindingsSvyatoslav Ryhel
Upgrade HTC One X device tree to comply possible upstream Linux device tree. Once Linux catches up, HTC One X can be switched to OF_UPSTREAM. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-19ARM: tegra: lg_x3: upgrade video bindingsSvyatoslav Ryhel
Upgrade LG P895 and P880 device tree bindings according to preliminary upstream Linux tree. Once Linux catches up, LG X3 can be switched to OF_UPSTREAM without regressions. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-18Merge patch series "pxe: Precursor series for supporting read_all() in ↵Tom Rini
extlinux / PXE" Simon Glass <[email protected]> says: This series includes some patches related to allowing read_all() to be used with the extlinux / PXE bootmeths. These patches were split out from the stb4 series, since it will need to have additional patches for LWIP, to avoid breaking PXE booting when LWIP is used. Link: https://lore.kernel.org/r/[email protected]
2025-03-18boot: arm: riscv: sandbox: Add a format for the booti fileSimon Glass
Arm invented a new format for arm64 and something similar is also used with RISC-V. Add this to the list of supported formats and provide a way for the format to be detected on both architectures. Update the genimg_get_format() function to support this. Fix up switch() statements which don't currently mention this format. Booti does not support a ramdisk, so this can be ignored. Signed-off-by: Simon Glass <[email protected]>
2025-03-18Merge tag 'u-boot-amlogic-20250318' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-amlogic into next - odroid-n2: Update docs for signing - support Amlogic chip_id v1 and v2
2025-03-18Merge patch series "*** Various Improvements for phyCORE-AM62/A SoMs ***"Tom Rini
Wadim Egorov <[email protected]> says: This patch series syncs the phyCORE-AM62Ax feature-wise with our other K3-based SoMs by adding SoM overlay handling and capsule updates. It also introduces support for USBDFU boot and includes various minor fixes. Link: https://lore.kernel.org/r/[email protected]
2025-03-18arch: arm: meson: support Amlogic chip_id v1 and v2Evgeny Bachinin
Patch introduces: * chip_id API - useful for various things, but used now for device_id (did) generation as mentioned in [1] on our private board code. Our device_id is calculated by means of permutations of chip_id value. * new SoCs (a1, s4, etc) are usually coming with the support of chip_id v2 right away, whereas secure monitors on old SoCs (like axg, g12b, g12a, etc) may support only chip_id v1. Chip_id API handles both cases * meson_sm_get_serial() is described via chip_id API. Links: [1] https://lore.kernel.org/linux-arm-kernel/[email protected]/T/#m630fbeea6a6e7d531290b5c0af205af4fb979757 Signed-off-by: Viacheslav Bocharov <[email protected]> Co-developed-by: Arseniy Krasnov <[email protected]> Signed-off-by: Arseniy Krasnov <[email protected]> Signed-off-by: Evgeny Bachinin <[email protected]> Link: https://lore.kernel.org/r/20250210-meson_chip_id_all_vers-v1-3-b98f8b6880b8@salutedevices.com Signed-off-by: Neil Armstrong <[email protected]>
2025-03-18arm: meson: sm: get rid of SM_CHIP_ID_SIZEEvgeny Bachinin
SM_CHIP_ID_SIZE is used nowhere. Moreover, it specifies wrong chip_id size: Amlogic chip_id v1 and v2 is always 16 bytes long. Signed-off-by: Evgeny Bachinin <[email protected]> Link: https://lore.kernel.org/r/20250210-meson_chip_id_all_vers-v1-2-b98f8b6880b8@salutedevices.com Signed-off-by: Neil Armstrong <[email protected]>
2025-03-18arm: meson: unify type being used for socinfoEvgeny Bachinin
socinfo_ API uses u32 type, hence let's use it everywhere for consistency. Signed-off-by: Evgeny Bachinin <[email protected]> Link: https://lore.kernel.org/r/20250210-meson_chip_id_all_vers-v1-1-b98f8b6880b8@salutedevices.com Signed-off-by: Neil Armstrong <[email protected]>
2025-03-18arm: dts: k3-am62a-phycore-som-binman: Add SoM overlaysWadim Egorov
Include SoM dt-overlays that handle variants of our SoMs into u-boot's FIT image. Signed-off-by: Wadim Egorov <[email protected]>
2025-03-18arch: arm: dts: k3-am625-phyboard-lyra: Add missing boot phase tagWadim Egorov
Add the bootph-all tag to usb0_phy_ctrl node to ensure it is properly initialized during the boot process. This fixes the following issue: dwc3-am62 dwc3-usb@f900000: unable to get ti,syscon-phy-pll-refclk regmap Signed-off-by: Wadim Egorov <[email protected]>
2025-03-18arch: arm: dts: k3-am62a7-phyboard-lyra: Add missing boot phase tagWadim Egorov
Add the bootph-all tag to usb0_phy_ctrl node to ensure it is properly initialized during the boot process. This fixes the following issue: dwc3-am62 dwc3-usb@f900000: unable to get ti,syscon-phy-pll-refclk regmap Signed-off-by: Wadim Egorov <[email protected]>
2025-03-18arm: dts: k3-am62a-phycore-som-binman: Provide capsule nodesWadim Egorov
Fill in phycore-am62ax capsule GUID properties of the base binman capsule nodes. Signed-off-by: Wadim Egorov <[email protected]>
2025-03-18board: beagle: Add support for BeagleY-AIRobert Nelson
Basic board support for BeagleY-AI. Information on this board can be found at https://beagleboard.org/beagley-ai Signed-off-by: Robert Nelson <[email protected]> Signed-off-by: Nishanth Menon <[email protected]> Signed-off-by: Andrew Davis <[email protected]>
2025-03-18mach-snapdragon: always select SYSRESET_PSCI for ARCH_SNAPDRAGONCaleb Connolly
Since removing reset_cpu() in mach-snapdragon, all Qualcomm platforms now depend on CONFIG_SYSRESET and will fail to build without it. Move the dependency from qcom_defconfig to kconfig so that we use SYSRESET for all platforms. Fixes: 61a1a1b8ca73 ("mach-snapdragon: use PSCI sysreset driver") Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17Merge branch 'nand-next' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-nand-flash into next CI: https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/25178 This merge request add support for cadence raw nand driver for agilex board and add a fix to meson driver.
2025-03-17Merge tag 'efi-2025-04-rc5' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2025-04-rc5 CI: * https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/25196 UEFI: * Export _start symbol from crt0_*_efi stubs * Move .dynamic out of .text in EFI * scripts/Makefile.lib: Preserve the .dynstr section as well Documentation: * net: miiphybb: Convert documentation to rst
2025-03-17mach-snapdragon: use PSCI sysreset driverSam Day
Drop the `board_reset` function from mach-snapdragon board code, and instead use the standard PSCI sysreset driver. Signed-off-by: Sam Day <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17mach-snapdragon: handle platforms without PSCI supportSam Day
Most MSM8916 devices shipped without PSCI support. The history is quite nuanced (a good overview can be found in [1]), but the end result is that the upstream DTs for this SoC pretend that PSCI exists, and it's expected that the bootloader handles the case where it doesn't. This is codified by the de-facto bootloader for MSM8916 devices, lk2nd [2]. So we handle it here by deleting the /psci node if we detect the absence of PSCI. We need to do this early to ensure sysreset works correctly, since the PSCI firmware driver is PRE_RELOC and binds the PSCI sysreset driver. Additionally, show_psci_version is updated to check that PSCI exists. Currently this banner outputs "PSCI: 65535.65535" on devices without PSCI support, which isn't very useful :) [1]: https://github.com/msm8916-mainline/linux/issues/388 [2]: https://github.com/msm8916-mainline/lk2nd/blob/8183ea2/lk2nd/smp/spin-table/spin-table.c#L237 Signed-off-by: Sam Day <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17mach-snapdragon: support parsing memory info from external FDTSam Day
qcom_parse_memory is updated to return a -ENODATA error if the passed FDT does not contain a /memory node, or that node is incomplete (size=0) board_fdt_blob_setup first tries to call qcom_parse_memory with the internal FDT (if present+valid). If that fails, it tries again with the external FDT (again, if present+valid). When booting with an internal FDT from upstream, it's likely that this change results in a slight performance hit, since virtually all upstream qcom DTs lack a fully specified memory node. The impact should be negligible, though. qcom_parse_memory was given a detailed docstring adapted from Caleb's original commit message that introduced the function. Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Sam Day <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17dts: ipq9574-rdp433-u-boot: add override dtsiVaradarajan Narayanan
Add initial support for the IPQ9574 MMC based RDP platforms. Define memory layout statically. Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Varadarajan Narayanan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>