summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-12-12clk: Propagate clk_set_rate() if CLK_SET_PARENT_RATE presentSam Protsenko
Sometimes clocks provided to a consumer might not have .set_rate operation (like gate or mux clocks), but have CLK_SET_PARENT_RATE flag set. In that case it's usually possible to find a parent up the tree which is capable of setting the rate (div, pll, etc). Implement a simple lookup procedure for such cases, to traverse the clock tree until .set_rate capable parent is found, and use that parent to actually change the rate. The search will stop once the first .set_rate capable clock is found, which is usually enough to handle most cases. Signed-off-by: Sam Protsenko <[email protected]>
2024-12-12Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-usbTom Rini
- USB onboard-hub fix
2024-12-12Merge tag 'xilinx-for-v2025.01-rc5' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx changes for v2025.01-rc5 - Fix reset issue for SOM
2024-12-12boot: fdt: Handle already reserved memory in boot_fdt_reserve_region()Sam Protsenko
The boot_fdt_add_mem_rsv_regions() function can be called twice, e.g. first time during the board init (as a part of LMB init), and then when booting the OS with 'booti' command: lmb_add_region_flags lmb_reserve_flags boot_fdt_reserve_region boot_fdt_add_mem_rsv_regions ^ | +-----------------------+ | (1) | (2) lmb_reserve_common image_setup_linux lmb_init ... initr_lmb do_booti board_init_r 'booti' That consequently leads to the attempt of reserving the same memory areas (described in the 'reserved-memory' dts node) in LMB. The lmb_add_region_flags() returns -EEXIST error code in such cases, but boot_fdt_reserve_region() handles all negative error codes as a failure to reserve fdt memory region, printing corresponding error messages, which are essentially harmless, but misleading. For example, this is the output of 'booti' command on E850-96 board: => booti $loadaddr - $fdtaddr ... ERROR: reserving fdt memory region failed (addr=bab00000 size=5500000 flags=2) ERROR: reserving fdt memory region failed (addr=f0000000 size=200000 flags=4) ... Starting kernel ... The mentioned false positive error messages are observed starting with commit 1d9aa4a283da ("lmb: Fix the allocation of overlapping memory areas with !LMB_NONE"), which removes the check for the already added memory regions in lmb_add_region_flags(), making it return -1 for !LMB_NONE cases. Another commit 827dee587b75 ("fdt: lmb: add reserved regions as no-overwrite") changes flags used for reserving memory in boot_fdt_add_mem_rsv_regions() from LMB_NONE to LMB_NOOVERWRITE. So together with the patch mentioned earlier, it makes lmb_add_region_flags() return -1 when called from boot_fdt_reserve_region(). Since then, the different patch was implemented, returning -EEXIST error code in described cases, which is: lmb: Return -EEXIST in lmb_add_region_flags() if region already added Handle -EEXIST error code as a normal (successful) case in lmb_reserve_flags() and don't print any messages. Fixes: 1d9aa4a283da ("lmb: Fix the allocation of overlapping memory areas with !LMB_NONE") Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Michal Simek <[email protected]>
2024-12-12lmb: Return -EEXIST in lmb_add_region_flags() if region already addedSam Protsenko
An attempt to add the already added LMB region using lmb_add_region_flags() ends up in lmb_addrs_overlap() check, which eventually leads to either returning 0 if 'flags' is LMB_NONE, or -1 otherwise. It makes it impossible for the user of this function to catch the case when the region is already added and differentiate it from regular errors. That in turn may lead to incorrect error handling in the caller code, like reporting misleading errors or interrupting the normal code path where it could be treated as the normal case. An example is boot_fdt_reserve_region() function, which might be called twice (e.g. during board startup in initr_lmb(), and then during 'booti' command booting the OS), thus trying to reserve exactly the same memory regions described in the device tree twice, which produces an error message on second call. Return -EEXIST error code in case when the added region exists and it's not LMB_NONE; for LMB_NONE return 0, to conform to unit tests (specifically test_alloc_addr() in test/lib/lmb.c) and the preferred behavior described in commit 1d9aa4a283da ("lmb: Fix the allocation of overlapping memory areas with !LMB_NONE"). The change of lmb_add_region_flags() return values is described in the table below: Return case Pre-1d9 1d9 New ----------------------------------------------------------- Added successfully 0 0 0 Failed to add -1 -1 -1 Already added, flags == LMB_NONE 0 0 0 Already added, flags != LMB_NONE 0 -1 -EEXIST Rework all affected functions and their documentation. Also fix the corresponding unit test which checks reserving the same region with the same flags to account for the changed return value. No functional change is intended (by this patch itself). Fixes: 1d9aa4a283da ("lmb: Fix the allocation of overlapping memory areas with !LMB_NONE") Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Michal Simek <[email protected]>
2024-12-12configs: am62x_evm_*: Fix USB DFU configurationRoger Quadros
CONFIG_USB_XHCI_DWC3 is not required for AM62x as the XHCI driver is registered through the dwc3-generic driver. CONFIG_USB_XHCI_DWC3 causes problems by hijacking the USB controller even if it is not set for Host mode in device tree. 'dm tree' output after 'usb start' is fixed from simple_bus 5 [ + ] dwc3-am62 | |-- dwc3-usb@f900000 usb_gadget 0 [ ] dwc3-generic-periphe | | |-- usb@31000000 usb 0 [ + ] xhci-dwc3 | | `-- usb@31000000 usb_hub 0 [ + ] usb_hub | | `-- usb_hub simple_bus 6 [ + ] dwc3-am62 | |-- dwc3-usb@f910000 usb 1 [ + ] dwc3-generic-host | | |-- usb@31100000 usb_hub 1 [ + ] usb_hub | | | `-- usb_hub usb 1 [ + ] xhci-dwc3 | | `-- usb@31100000 usb_hub 2 [ + ] usb_hub | | `-- usb_hub [notice that 'xhci-dwc3' and 'usb_hub' drivers are probed for both USB instances although the first instance is supposed to be 'peripheral' only] to simple_bus 5 [ ] dwc3-am62 | |-- dwc3-usb@f900000 usb_gadget 0 [ ] dwc3-generic-periphe | | `-- usb@31000000 simple_bus 6 [ + ] dwc3-am62 | |-- dwc3-usb@f910000 usb 1 [ + ] dwc3-generic-host | | `-- usb@31100000 usb_hub 0 [ + ] usb_hub | | `-- usb_hub Fixes: dfc2dff5a844 ("configs: am62x_evm_*: Enable USB and DFU support") Signed-off-by: Roger Quadros <[email protected]> Reviewed-by: Siddharth Vadapalli <[email protected]>
2024-12-11Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
- Fix some spelling mistakes
2024-12-11Merge tag 'rpi-2025.01-rc5' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-raspberrypi Updates for RPi for 2025.01: - Enable capsule updates - Pass CMA through from firmware DT
2024-12-11board: rpi: Enable capsule updatesIlias Apalodimas
Since RPI works well using EFI and has no size limitations with regards to U-Boot, add the needed structures to support capsule updates. While at it update the most commonly used defconfigs and include capsule support and U-Boot commands needed by EFI Tested-by: Sughosh Ganu <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2024-12-11video: zynqmp: Add support for resetMichal Simek
In Kria SOM configuration DP is under reset and access to DP is causing hang that's why call reset at probe to avoid this situation. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/0504474a91a9839828aecd37f8855fd154cdf2e1.1733742708.git.michal.simek@amd.com
2024-12-11board: rpi: Pass CMA through from firmware DTPeter Robinson
For a lot of usecases, such as display, camera, media the Raspberry Pi needs a lot more CMA than distros configure as default so we should pass this parameter through so things work as expected. Fix a spelling mistake while we're at it. Signed-off-by: Peter Robinson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Matthias Brugger <[email protected]>
2024-12-11usb: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11spi: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11serial: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11pinctrl: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11phy: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11pci: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11mtd: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11mmc: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Comment changes only, no functional change. Reviewed-by: Jaehoon Chung <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2024-12-11i2c: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11gpio: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11clk: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11ARM: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11ARM: dts: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Comment change only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11usb: onboard-hub: Update the bind function based on peer-hub propertyVenkatesh Yadav Abbarapu
As the "peer-hub" property is optional, don't error out just skip the bind function. Fixes: 57e30b09fc ("usb: onboard-hub: Bail out if peer hub is already probed") Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Acked-by: Michal Simek <[email protected]> Reviewed-by: Patrice Chotard <[email protected]> Tested-by: Patrice Chotard <[email protected]>
2024-12-09Merge tag 'v2025.01-rc4' into nextTom Rini
Prepare v2025.01-rc4
2024-12-09Prepare v2025.01-rc4v2025.01-rc4Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-12-09Merge tag 'u-boot-imx-next-20241209' 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/23736 - Add support for the NXP i.MX91 EVK board. - Improve EEPRON suport on i.MX8MP DHCOM board. - Switch phycore_imx8mm to using environment text files and improve environment handling.
2024-12-09Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
2024-12-08arm64: renesas: Disable AVB1 and AVB2 on R8A779G0 V4H White Hawk boardMarek Vasut
The U-Boot is currently not capable of handling ethernet-phy-ieee802.3-c45 PHYs correctly, and also does not handle MDIO bus wide reset-gpios property. Until proper C45 PHY support lands in U-Boot, disable AVB1/AVB2 interfaces. This only disables the two MACs with 88Q2110/88Q2112 100/1000BASE-T1 PHYs on ethenet sub-board, the main board AVB0 ethernet is unaffected. Signed-off-by: Marek Vasut <[email protected]>
2024-12-08pinctrl: rzg2l: Drop unnecessary scopePaul Barker
In rzg2l_pinconf_set(), there are no new variables defined in the case statement for PIN_CONFIG_INPUT_ENABLE so no additional scope is needed. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-08pinctrl: rzg2l: Support Ethernet TXC output enablePaul Barker
On the RZ/G2L SoC family, the direction of the Ethernet TXC/TX_CLK signal is selectable to support an Ethernet PHY operating in either MII or RGMII mode. By default, the signal is configured as an input and MII mode is supported. The ETH_MODE register can be modified to configure this signal as an output to support RGMII mode. As this signal is be default an input, and can optionally be switched to an output, it maps neatly onto an `output-enable` property in the device tree. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-08pinctrl: rzg2l: Support 2.5V PVDD for Ethernet interfacesPaul Barker
The Ethenet interfaces on the Renesas RZ/G2L SoC family can operate at multiple power supply voltages: 3.3V (default value), 2.5V and 1.8V. rzg2l_pinconf_set() is extended to support the 2.5V setting, with a check to ensure this is only used on Ethernet interfaces as it is not supported on the SD & QSPI interfaces. While we're modifying rzg2l_pinconf_set(), drop the unnecessary default value for pwr_reg as it is set in every branch of the following if condition. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-08net: ravb: Simplify max-speed handling in ravb_of_to_platPaul Barker
We can call dev_read_u32_default() instead of calling fdt_getprop() then fdt32_to_cpu(). Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-08clk: rzg2l: Ignore enable for core clocksPaul Barker
In the RZ/G2L family, core clocks are always on and can't be disabled. However, drivers which are shared with other SoCs may call clk_enable() or clk_enable_bulk() for a clock referenced in the device tree which happens to be a core clock on the RZ/G2L. To avoid the need for conditionals in these drivers, simply ignore attempts to enable a core clock. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-07board: dhelectronics: Sync env variable dh_som_serial_number with SNChristoph Niedermaier
The env variable "SN" is used to store the serial number on DH electronics SoMs. New SoMs will use the variable "dh_som_serial_number". To ensure compatibility, these env variables are synchronized. This is achieved using callback functions. Signed-off-by: Christoph Niedermaier <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-07lib: hashtable: Prevent recursive calling of callback functionsChristoph Niedermaier
In case there are two variables which each implement env callback that performs env_set() on the other variable, the callbacks will call each other recursively until the stack runs out. Prevent such a recursion from happening. Example which triggers this behavior: static int on_foo(...) { env_set("bar", 0); ... } static int on_bar(...) { env_set("foo", 0); ... } U_BOOT_ENV_CALLBACK(foo, on_foo); U_BOOT_ENV_CALLBACK(bar, on_bar); Signed-off-by: Christoph Niedermaier <[email protected]> Suggested-by: Marek Vasut <[email protected]>
2024-12-07arm64: imx8mp: Read values from M24C32-D write-lockable page on DHCOM i.MX8MPChristoph Niedermaier
The new i.MX8M Plus DHCOM rev.200 is populated with M24C32-D EEPROM that contains an additional write-lockable page called ID page, which is populated with a structure containing ethernet MAC addresses, DH item number and DH serial number. Because the write-lockable page is not present on rev.100 i.MX8MP DHCOM SoM, test whether EEPROM ID page exists by setting up the i2c driver. There may be multiple EEPROMs with an ID page on this platform, always use the first one. The evaluation of the EEPROM ID page is done in two steps. First, the content is read and checked. This is done to cache the content of the EEPROM ID page. Second, the content is extracted from the EEPROM buffer by requesting it. For the ethernet MAC address the i.MX8M Plus DHCOM currently supports parsing address from multiple sources in the following priority order: 1) U-Boot environment 'ethaddr'/'eth1addr' environment variable 2) SoC OTP fuses 3) On-SoM EEPROM Add support for parsing the content of this new EEPROM ID page and place it between 2) and 3) on the priority list. The new entry is 2.5) On-SoM EEPROM write-lockable page. Signed-off-by: Christoph Niedermaier <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-07arm64: dts: imx8mp: Add aliases for the access to the EEPROM ID page nodeChristoph Niedermaier
The new i.MX8M Plus DHCOM rev.200 is populated with M24C32-D EEPROM that contains an additional write-lockable page called ID page. Add aliases eeprom0wl and eeprom1wl for the access to the EEPROM ID page node. Signed-off-by: Christoph Niedermaier <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-07imx: Support i.MX91 11x11 EVK boardPeng Fan
Add i.MX91 11x11 EVK Board support. - Four ddr scripts included w/o inline ecc feature. - SDHC/NETWORK/I2C/UART supported - PCA9451 supported, default nominal drive mode - Documentation added. Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2024-12-07arm64: dts: add NXP i.MX91 device treePeng Fan
Add the i.MX91 device tree from [1]. These files could be synced to linux upstream after [1] merged to linux source tree. [1] https://lore.kernel.org/all/[email protected]/ Signed-off-by: Peng Fan <[email protected]>
2024-12-07pinctrl: imx93: support i.MX91Peng Fan
Reuse i.MX93 pinctrl driver for i.MX91, because i.MX91 follows same design as i.MX93 in IOMUXC controller. Signed-off-by: Peng Fan <[email protected]>
2024-12-07ddr: imx: Add new rates for i.MX91Ye Li
iMX91 reuses iMX93 controller and PHY, but with lower speed, so add new DDR rates for i.MX91. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2024-12-07clk: imx: clk-fracn-gppll: Add new PLL rateYe Li
Add new rates to integer and frac PLL to support iMX91 Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2024-12-07clk: imx93: support i.MX91Peng Fan
i.MX91 is a derived from i.MX93, and most clocks could be reused from i.MX93. Also Update imx93-clock.h to sync with linux next. Signed-off-by: Peng Fan <[email protected]>
2024-12-07imx: Add iMX91 supportPeng Fan
iMX91 is reduced part from iMX93 with part number: i.MX9131/11/01 It removed A55_1, M33, MIPI DSI, LVDS, etc. i.MX9131: - Support 2.4GT/s DDR and HWFFC at 1.2GT/s i.MX9121: - A55 at 800Mhz and DDR at 1600MTS, with low drive mode. i.MX9111: - Support 1.6GT/s DDR and HWFFC at 800MT/s i.MX9101: - Support 800Mhz ARM clock - Support 1.6GT/s DDR and HWFFC at 800MT/s - No parallel display, eQOS, flexcan Updated Clock/Container/CPU and etc for i.MX91 Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2024-12-07imx93: Update 9x9 part fuses checkingYe Li
According to iMX93 fuse burn plan, all 9x9 parts will have USB2, ENET1 (FEC), LVDS1, CSI1 and DSI1 disabled. The codes missed ENET1 fuse when detecting 9x9. Although it still can detect 9x9 correctly, we add the ENET1 fuse to the check to be more accurate. Fixes: 58da865e27f ("imx9: add i.MX93 variants support") Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2024-12-07imx9: gpio: include types.h headerPeng Fan
Include types.h header for u32, following Linux Coding Style to include necessary headers. Signed-off-by: Peng Fan <[email protected]>
2024-12-07imx9: trdc: correct DEBUG usagePeng Fan
Replace '#if DEBUG' with '#ifdef DEBUG', otherwise '#define DEBUG 1' should be used and conflict with '#define DEBUG' in include/log.h Fixes: 5fda95fb944 ("imx: imx9: Add TRDC driver for TRDC init") Signed-off-by: Peng Fan <[email protected]>
2024-12-07gpio: imx_rgpio2p: Move 8ulp_data to data sectionPeng Fan
have_dual_base is set to false, so the 8ulp_data will be put in BSS section which conflicts with the area of u-boot.dtb which padded just after u-boot-nodtb.bin. So move 8ulp_data to data section to avoid its content being corrupted by dtb. Fixes: 51cfa66f2c4 ("gpio: imx_rgpio2p: support one address") Signed-off-by: Peng Fan <[email protected]>