summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-09-05configs: imx93-phycore_defconfig: Disable CONFIG_AHAB_BOOTPrimoz Fiser
By default, lets disable configuration option CONFIG_AHAB_BOOT=y on the phyCORE-i.MX93 based boards. This option is only used in the secureboot context which is not provided by default anyway. Lets remove it from the defconfig to not give false impressions it is supported out of the box for this board. On the other hand, in the context of PHYTEC secureboot, this option is selected by the distro which enables CONFIG_AHAB_BOOT among other secure boot related options and tweaks needed to properly support it. Signed-off-by: Primoz Fiser <[email protected]> Reviewed-by: Martin Schwan <[email protected]>
2025-09-05arm: dts: imx93-phyboard-segin-u-boot: Clean-up already upstream nodesPrimoz Fiser
Clean-up "imx93-phyboard-segin-u-boot.dtsi" internal device-tree from nodes already part of the upstream device-tree since commit 79f3e77133bd ("Subtree merge tag 'v6.16-dts' of dts repo [1] into dts/upstream"). No functional change is made with this commit. Signed-off-by: Primoz Fiser <[email protected]>
2025-09-05tools: imx8image: Make imx8image_check_params() staticIlias Apalodimas
We are trying to enable -Wmissing-prototypes and this functiion is only used locally. Mark it as static. Signed-off-by: Ilias Apalodimas <[email protected]> Acked-by: Peng Fan <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Switch to OF_UPSTREAMFrieder Schrempf
Use the upstream devicetrees instead of the local ones. Signed-off-by: Frieder Schrempf <[email protected]> [fabio: Remove imx6ul-kontron-bl.dtb and imx6ull-kontron-bl.dtb from Makefile]
2025-09-05imx: kontron-sl-mx6ul: Force default environment for serial loader bootEberhard Stoll
In case of booting from serial loader (USB) we want to always use the default environment in order to get a defined state that is independent of any environment stored in persistent memory. This way we can avoid corruption of the boot process during development and manufacturing by existing environment settings in flash. Signed-off-by: Eberhard Stoll <[email protected]> Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Enable CONFIG_ENV_IS_NOWHEREEberhard Stoll
For some cases it is beneficial to not store the environment in persistent memory, but instead use the default environment and keep it in volatile RAM only. Allow this by enabling CONFIG_ENV_IS_NOWHERE. Signed-off-by: Eberhard Stoll <[email protected]> Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Enable watchdog and sysresetFrieder Schrempf
Enable the watchdog and sysreset drivers and the wdt command. This also fixes the non-working 'reset' command. Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Autostart fastboot if booted from USBAnnette Kobou
For booting via USB we want to automatically start the fastboot command in order to access the board via uuu or other tools. This allows for easier bringup of new boards during development and manufacturing. Signed-off-by: Annette Kobou <[email protected]> Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Enable redundant environmentOualid Derouiche
This aligns the MTD partitions on the SPI NOR with the kernel devicetree and enables the redundant environment. Signed-off-by: Oualid Derouiche <[email protected]> Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Enable fastboot supportAnnette Kobou
Enable support for fastboot commands via USB. Signed-off-by: Annette Kobou <[email protected]> Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Enable second ethernet interfaceFrieder Schrempf
This ensures both interfaces can be used in U-Boot and both MAC addresses are exported to the Linux kernel devicetree. Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Set CONFIG_SDP_LOADADDR to fix SDP bootFrieder Schrempf
We need to set CONFIG_SDP_LOADADDR to a valid RAM address to make SDP boot work. Use the end of the DDR (256 MiB minimum) as other boards do. Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Enable standard boot and disable legacy distro bootFrieder Schrempf
Disable the legacy distro boot and use bootstd instead. Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-05imx: kontron-sl-mx6ul: Fix include statements for local headerFrieder Schrempf
The header from the local directory should use double quotes instead of brackets. Otherwise the compiler might not search the local directory. Fixes: 93935acc6f1d ("imx: imx6ul: kontron-sl-mx6ul: Select correct boot and env device") Signed-off-by: Frieder Schrempf <[email protected]>
2025-09-03Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegraTom Rini
Branch contains minor improvents for ASUS SL101 and Jetson Nano along with support for Microsoft Surface 2 tablet.
2025-09-03Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
- Fix an issue reported by smatch in rzg2l pinctrl driver
2025-09-03spi: exynos: Remove extra term from testAndrew Goodbody
In spi_rx_tx there comes a test for execution of a code block that allows execution if rxp is not NULL or stopping is true. However all the code in this block relies on rxp being valid so allowing entry just if stopping is true does not make sense. So remove this from the test expression leaving just a NULL check for rxp. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-03pinctrl: rzg2l: Variable may not have been assigned toAndrew Goodbody
In rzg2l_pinconf_set and rzg2l_get_pin_muxing if the call to rzg2l_selector_decode fails then the variable pin may not have been assigned to. Remove the use of pin from the error message. Also update the error message to show the invalid selector used instead of port which will be the error code returned. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2025-09-02Merge patch series "memtest performance improvements"Tom Rini
Rasmus Villemoes <[email protected]> says: The first two patches make memtest run ~40x faster (when, as it should be, dcache is disabled), with the second patch being responsible for most of that. At least on the beagleboneblack which I used for testing; other boards and configurations will likely see different numbers. This is for CONFIG_SYS_ALT_MEMTEST=y and CONFIG_SYS_ALT_MEMTEST_BITFLIP=n; one could probably get a similar improvement in the bitflip case since that also has a schedule() call in the inner loop. Link: https://lore.kernel.org/r/[email protected]
2025-09-02memtest: remove use of vu_long typedef in mem_test_altRasmus Villemoes
Hiding a qualifier such as "volatile" inside a typedef makes the code much harder to understand. Since addr and dummy being volatile-qualified are important for the correctness of the test code, make it more obvious by spelling it out as "volatile ulong". Signed-off-by: Rasmus Villemoes <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-09-02memtest: only call schedule() once for every 256 wordsRasmus Villemoes
A function call itself for every word written or read+written in these loops is bad enough. But since the memory test must be run with dcache disabled, the schedule() call, traversing the linked list of registered cyclic clients, and accessing the 'struct cyclic_info' for each to see if any are due for a callback, is quite expensive. On a beagleboneblack, testing a modest 16MiB region takes 2.5 minutes: => dcache off => time mtest 0x81000000 0x82000000 0 1 Testing 81000000 ... 82000000: Iteration: 1 Tested 1 iteration(s) with 0 errors. time: 2 minutes, 28.946 seconds There is really no need for calling schedule() so frequently. It is quite easy to limit the calls to once for every 256 words by using a u8 variable. With that, the same test as above becomes 37 times faster: => dcache off => time mtest 0x81000000 0x82000000 0 1 Testing 81000000 ... 82000000: Iteration: 1 Tested 1 iteration(s) with 0 errors. time: 4.052 seconds Note that we are still making a total of 3 loops * (4 * 2^20 words/loop) / (256 words/call) = 49152 calls during those ~4000 milliseconds, so the schedule() calls are still done less than 0.1ms apart. These numbers are just for a beagleboneblack, other boards may have a slower memory, but we are _two orders of magnitude_ away from schedule() "only" being called at 100Hz, which is still more than enough to ensure any watchdog is kept happy. Signed-off-by: Rasmus Villemoes <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-09-02memtest: don't volatile-qualify local variablesRasmus Villemoes
It is obviously important that the addr pointer used to access the memory region being tested is volatile-qualified, to prevent the compiler from optimizing out the "write this value, read it back, check that it is what we expect". However, none of these auxiliary variables have any such need for, effectively, being forced to live on the stack and cause each and every reference to them to do a memory access. This makes the memtest about 15% faster on a beagleboneblack. Before: => dcache off => time mtest 0x81000000 0x81100000 0 1 Testing 81000000 ... 81100000: Iteration: 1 Tested 1 iteration(s) with 0 errors. time: 10.868 seconds After: => dcache off => time mtest 0x81000000 0x81100000 0 1 Testing 81000000 ... 81100000: Iteration: 1 Tested 1 iteration(s) with 0 errors. time: 9.209 seconds [Without the 'dcache off', there's no difference in the time, about 0.6s, but the memtest cannot usefully be done with dcache enabled.] Signed-off-by: Rasmus Villemoes <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-09-01Merge tag 'mmc-power-next-2025-09-01' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mmc into next CI: https://source.denx.de/u-boot/custodians/u-boot-mmc/-/pipelines/27536 - Update compatibles for PMICs used by exynos devices - Support system reset and reset status for pca9450 - Fix for pca9450 LDO5 registers and drop deprecated sd-vsel-gpios - Two minor fixes found by smatch
2025-09-01Merge tag 'u-boot-rockchip-20250831' 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/27522 - New Board support: rk3588 Xunlong Orange Pi 5 Ultra; rk3588s GameForce Ace; rk3576 ArmSoM Sige5; - rk3328 soc fixes; - usb controller and phy fixes; - new rk3328 ddr timing; - other board level updates;
2025-09-01Merge tag 'efi-2025-10-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request efi-2025-10-rc4. CI: * https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/27527 Documentation: * Rephrasing and text corrections for buildman UEFI: * Serial: Use correct EFI status type * Let EFI_HTTP_BOOT select CMD_DHCP * Let EFI_VARIABLES_PRESEED depend on !COMPILE_TEST
2025-09-01ARM: exynos: pinmux: add newlines to debug messagesHenrik Grimler
To make stdout messages easier to read and understand. Signed-off-by: Henrik Grimler <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01ARM: exynos: pinmux: fix parentheses alignmentsHenrik Grimler
For multi-line commands the lines should preferably be aligned with the opening parenthesis. Signed-off-by: Henrik Grimler <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01ARM: exynos: use correct exynos4210-origen SoC in KconfigHenrik Grimler
There exists both a Origen board based on exynos4210, and a board based on exynos4412. U-boot only supports the one based on exynos 4210, but Kconfig string was accidentally written as Exynos4412 Origen in previous migration to Kconfig. Fix the string to clear up confusion, and to not give the impression that both types of Origen boards are supported. Fixes: 72df68cc6b73 ("exynos: kconfig: move board select menu and common settings") Signed-off-by: Henrik Grimler <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: transformer-t20: add separate env for SL101Svyatoslav Ryhel
SL101 unlike TF101/G has no Lid sensor, so lets add a separate env for SL101 without Lid sensor used. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-09-01ARM: tegra20: transformer: fix Hall sensor behaviorSvyatoslav Ryhel
Hall sensor found in SL101 is not used for closed dock detection as on TF101 or TF101G, it is used to detect if keyboard slider is out. To address this, lets move Lid sensor switch into TF101/G trees and add Tablet mode switch into SL101 tree. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-09-01configs: e850-96: Enable EthernetSam Protsenko
LAN9514 is a chip on E850-96 board which acts as a USB host hub and Ethernet controller. It's controlled via USB lines when DWC3 is configured to be in USB host role (by setting the "dr_mode" property to "host" value in e850-96 dts file). Enable network support and LAN9514 chip support. This makes Ethernet functional on E850-96 board. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01configs: e850-96: Enable USB host supportSam Protsenko
Exynos850 SoC has a dual-role USB controller which can be configured in USB host role. As it's the only one USB controller on the board, it's shared between "device" USB connector (micro-USB) and host USB connectors. The hardware automatically powers on the host related parts when the micro-USB cable (for device role) is being disconnected. Also, as U-Boot lacks dynamic USB role switching capability, the only way to switch the role at the moment is to modify "dr_mode" property in U-Boot's device tree file here: dts/upstream/src/arm64/exynos/exynos850-e850-96.dts This won't affect the dynamic role switching later in Linux kernel, as a separate (different) device tree blob is provided to the kernel. Enable the USB host support and corresponding commands to make it functional in E850-96 board. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01configs: e850-96: Disable CONFIG_DEFAULT_FDT_FILESam Protsenko
Linux kernel should use some separate device tree obtained from another source anyway. For example the dtb file can be read from /boot directory in eMMC rootfs partition, either by GRUB or U-Boot. Using U-Boot's device tree blob to provide it to the kernel (when CONFIG_DEFAULT_FDT_FILE is set and nobody else overrides this choice) might lead to undesired effects when booting the OS. For example, if a user sets "dr_mode" property to "host" value in U-Boot's dts to enable USB host capabilities in U-Boot, it might confuse usb-conn-gpio driver in Linux kernel later like this: platform connector: deferred probe pending: usb-conn-gpio: failed to get role switch Disable CONFIG_DEFAULT_FDT_FILE option to avoid any possible confusion. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: samsung: e850-96: Add bootdev var to choose boot deviceSam Protsenko
Provide a way for the user to select which storage to load the LDFW firmware from, by setting the corresponding environment variables: - bootdev: block device interface name - bootdevnum: block device number - bootdevpart: partition number This might be useful when the OS is flashed and booted from a different storage device than eMMC (e.g. USB flash drive). In this case it should be sufficient to just set: => setenv bootdev usb => env save assuming that the USB drive layout follows the same partitioning scheme as defined in $partitions. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: samsung: e850-96: Extract device info from fw loading codeSam Protsenko
Make it possible to provide the information about storage device where LDFW firmware resides to the firmware loading routine. The firmware loader code shouldn't have that data hard-coded anyway, and it also allows for implementing more dynamic behavior later, like choosing the storage device containing LDFW via some environment variables. No functional change. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: samsung: e850-96: Configure PMIC regulatorsSam Protsenko
Make use of PMIC configuration routines and enable all LDOs that might be useful for bootloader and kernel. The most crucial regulator being enabled at the moment is LDO24 which provides power to LAN9514 chip. That makes Ethernet controller and USB hub functional. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: samsung: e850-96: Add PMIC codeSam Protsenko
Add functions for configuring voltage regulators on S2MPU12 PMIC chip for E850-96 board. The chip is accessed by commanding APM core (via ACPM IPC protocol) to perform corresponding transfers over I3C bus. The most important regulator being set up is LDO24 used for LAN9514 chip power. As LAN9514 implements USB hub and Ethernet controller functionality, it's crucial to enable and configure LDO24 to be able to use it further. While at it, configure the rest of regulators that might be needed later, both in the bootloader and in kernel. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: samsung: e850-96: Add ACPM codeSam Protsenko
Add functions to access I3C bus via APM (Active Power Management) core by using ACPM IPC protocol. It will be further used for configuring PMIC chip voltage regulators. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01board: samsung: e850-96: Set ethaddrSam Protsenko
Set the environment variable for Ethernet MAC address (ethaddr). Use the SoC ID to make sure it's unique. It'll be formatted in a way that follows the consecutive style of the serial number ("serial#" variable), i.e.: OTP_CHIPID0 = 0xf51c8113 OTP_CHIPID1 = 0x236 get_chip_id() = 0x236f51c8113 serial# = 00000236f51c8113 ethaddr = 02:36:f5:1c:81:13 where corresponding bytes of the MAC address are: mac_addr[0] = 0x02 // OTP_CHIPID1[15:8] mac_addr[1] = 0x36 // OTP_CHIPID1[7:0] mac_addr[2] = 0xf5 // OTP_CHIPID0[31:24] mac_addr[3] = 0x1c // OTP_CHIPID0[23:16] mac_addr[4] = 0x81 // OTP_CHIPID0[15:8] mac_addr[5] = 0x13 // OTP_CHIPID0[7:0] because OTP_CHIPID1 has only 16 significant bits (with actual ID values), and all 32 bits of OTP_CHIPID0 are significant. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01usb: host: dwc3-of-simple: Add exynos850 compatibleSam Protsenko
Enable support for Exynos850 SoC in DWC3 host glue layer driver. Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01clk: exynos: Fix always true testAndrew Goodbody
In exynos7420_peric1_get_rate the variable ret is declared as an 'unsigned int' but is then used to receive the return value of clk_get_by_index which returns an int. The value of ret is then tested for being less than 0 which will always fail for an unsigned variable. Fix this by declaring ret as an 'int' so that the test for the error condition is valid. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-09-01mmc: core: drop space before newline in trace printfBhimeswararao Matsa
Remove unnecessary whitespace before '\n' in trace printf format strings (checkpatch warning QUOTED_WHITESPACE_BEFORE_NEWLINE). No functional change intended. Signed-off-by: Bhimeswararao Matsa <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01mmc: iproc_sdhci: Cannot test unsigned variable for negativeAndrew Goodbody
In sdhci_iproc_execute_tuning the variable tuning_loop_counter is unsigned and therefore will always fail the test for it being less than 0. Fix this by changing the variable type to be s8. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01power: pmic: pca9450: Add support for reset statusPrimoz Fiser
PCA9450 PMIC supports reading the reset status from the PWRON_STAT register. Bits 7-4 give indication of the PMIC reset cause: - PWRON (BIT7) - Power ON triggered by PMIC_ON_REQ input line, - WDOGB (BIT6) - Boot after cold reset by WDOGB pin (watchdog reset), - SW_RST (BIT5) - Boot after cold reset initiated by the software, - PMIC_RST (BIT4) - Boot after PMIC_RST_B input line trigger. Add support for reading reset status via the sysreset framework in a convenient printable format. Signed-off-by: Primoz Fiser <[email protected]> Reviewed-by: Paul Geurts <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01power: pmic: pca9450: Add support for system resetPrimoz Fiser
The family of PCA9450 PMICs have the ability to perform system resets. Restarting via PMIC is preferred method of restarting the system as all the peripherals are brought to a know state after a power-cycle. The PCA9450 features a cold restart procedure which is initiated by an I2C command 0x14 to the SW_RST register. Support in Linux for restarting via PCA9450 PMIC has been added by Linux commit 6157e62b07d9 ("regulator: pca9450: Add restart handler"). Now add support for it also in the U-Boot via sysreset framework. Signed-off-by: Primoz Fiser <[email protected]> Reviewed-by: Paul Geurts <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01board: samsung: odroid: drop exynos_power_initHenrik Grimler
exynos_power_init sets up regulators for the emmc and sdcard, but these regulators are already marked as always-on and boot-on and hence are handled already by the regulator-uclass. Since we currently try to set them up twice we get error -114 (EALREADY) from exynos_power_init on every boot: LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling (ret: -114) LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling (ret: -114) LDO21@TFLASH_2.8V: set 2800000 uV; enabling (ret: -114) Remove the superfluous exynos_power_init to silence these errors. Signed-off-by: Henrik Grimler <[email protected]> Reviewed-by: Anand Moon <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01ARM: dts: trats: rename max8997-pmic regulators nodeHenrik Grimler
Linux uses just regulators { }; instead of voltage-regulators { };, so this change aligns the DTSes found in the two projects. The max8997 driver does not yet parse the regulators node, so we can safely change its name without breaking anything. Signed-off-by: Henrik Grimler <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01power: pmic: max8997: drop maxim,max8997 compatibleHenrik Grimler
All u-boot users now use maxim,max8997-pmic instead, as does Linux's DTSes, so we can now safely drop the maxim,max8997 compatible. Signed-off-by: Henrik Grimler <[email protected]> Reviewed-by: Anand Moon <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01ARM: dts: exynos4210-trats: use maxim,max8997-pmic compatibleHenrik Grimler
Instead of maxim,max8997. Linux uses maxim,max8997-pmic, so with this change we align the trats DTS with its linux counterpart. Signed-off-by: Henrik Grimler <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-09-01power: pmic: max8997: support maxim,max8997-pmic compatible as wellHenrik Grimler
Linux's DTSes uses maxim,max8997-pmic, so check for this compatible as well so that max8997 pmic driver can support both u-boot and Linux's DTSes. Signed-off-by: Henrik Grimler <[email protected]> Signed-off-by: Peng Fan <[email protected]>