summaryrefslogtreecommitdiff
path: root/arch
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-25Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-riscv ↵Tom Rini
into next CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/25323 - board: k1: Add reset driver - board: starfive: Simplify binman config - Some modifications on DTS and configs
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-25Add reset config options for k1Huan Zhou
Add RESET_SPACEMIT_K1 option in config. Signed-off-by: Huan Zhou <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-03-25riscv: dts: k1: add reset controller node in device treeHuan Zhou
Add reset-controller in k1 device tree. Signed-off-by: Huan Zhou <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-03-25riscv: dts: starfive: remove duplicate itb entriesHeinrich Schuchardt
As binman already creates nodes based on CONFIG_OF_LIST we don't need to add extra nodes. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # StarFIve VisionFive 2 Reviewed-by: E Shattow <[email protected]>
2025-03-25riscv: dts: no default configuration for MULTI_DTB_FITHeinrich Schuchardt
JH7110 boards are currently the only use case for multi DTB FIT images on RISC-V. Booting JH7110 systems with a VisionFive 2 device-tree used to kind of work without causing harm to the hardware. But there is no guarantee that this will hold true in future. So we should not rely on it. Before the current patch series booting failed on unsupported boards due to the lack of a device-tree in the binman generated default configuration when reaching main U-Boot. By not setting a default configuration booting will now fail on unsupported boards already in SPL. This allows SPL to continue with the next boot source for a possible recovery. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: E Shattow <[email protected]>
2025-03-25riscv: dts: add OF_LIST handling to binman.dtsiHeinrich Schuchardt
Binman can automatically generate device-tree and configuration entries in the FIT image based on CONFIG_MULTI_DTB_FIT if the binman node includes the right sub-nodes. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: E Shattow <[email protected]>
2025-03-25riscv: dts: cv18xx: Drop unused dummy clocksYao Zi
Introduced in commit 5a4e0625ac77 ("riscv: dts: sophgo: Add ethernet node"), eth_{csrclk,ptpclk} were used as placeholders for ethernet controller. As the real clock controller has been added, drop them to clean the devicetree up. Signed-off-by: Yao Zi <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2025-03-25riscv: dts: spacemit: Update UART compatible for k1Junhui Liu
Update UART compatible in k1 dts to "intel,xscale-uart", introduced in commit 2d84e1519c5b ("serial: ns16550: Add Intel XScale support") recently, aligning dts with the upstream kernel. Tested-by: Huan Zhou <[email protected]> Signed-off-by: Junhui Liu <[email protected]> Reviewed-by: Yixun Lan <[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: pxe: Refactor label_run_boot() to avoid cmdlineSimon Glass
Adjust the remaining call in this function to use the bootm API. This will allow PXE to work without the command line. Signed-off-by: Simon Glass <[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-18x86: Drop the unnecessary base_ptr argument to zboot_dump()Simon Glass
This value is include the bootm_info, so drop the unnecessary parameter. Signed-off-by: Simon Glass <[email protected]>
2025-03-18bootstd: Correct display of kernel versionSimon Glass
The address of the bzImage is not recorded in the bootflow, so we cannot actually locate the version at present. Handle this case, to avoid showing invalid data. Signed-off-by: Simon Glass <[email protected]>
2025-03-18x86: Move the bootm state for zimage into cmd/Simon Glass
Rather than holding the state in the implementation code, move it to the command code. The state is now passed to the implementation functions and can there (with future work) be pass in from bootstd, without going through the commands. Signed-off-by: Simon Glass <[email protected]>
2025-03-18x86: Rename state to bmiSimon Glass
Use the common name for the struct, in preparation for passing it around between functions. Signed-off-by: Simon Glass <[email protected]>
2025-03-18x86: Move x86 zboot state into struct bootm_infoSimon Glass
This structure is supposed to handle any type of booting programmatically, i.e. without needing a command to be executed. Move the x86-specific members into it and use it instead of struct zboot_state. Provide a macro so access is possible without adding lots of #ifdefs to the code. This will allow the struct to be used for all four types of booting (bootm, bootz, booti and zboot). Call bootm_init() to init the state, to match other boot methods. Note that some rationalisation could be performed on this. But this is tricky since addresses are stored as strings in several places. Also some strings combine multiple arguments into one. So to keep this task somewhat manageable, we content ourselves with just getting everything into the same struct Signed-off-by: Simon Glass <[email protected]>
2025-03-18x86: Drop duplicate definition of zimage_dump()Simon Glass
This is now defined in bootm.h so drop the duplicate in the x86 code. Signed-off-by: Simon Glass <[email protected]>
2025-03-18x86: Rename zboot_run() to zboot_run_args()Simon Glass
Rename this function so we can (later) create a zboot_run() function which looks the same as bootm_run() 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