- Feb 10, 2025
-
-
Jonas Karlman authored
New Rockchip SoCs will typically require use or an external TPL when support for the SoC is added to U-Boot. Move imply ROCKCHIP_EXTERNAL_TPL under SoC Kconfig symbol to remove a future likelihood of a long "default y if" line. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
The ROCKCHIP_COMMON_STACK_ADDR Kconfig option was originally enabled in the SoC specific Kconfig files to ease during the initial migration to use common stack addresses. All boards for the affected SoCs have been migrated to use common stack addresses. Migrate to use an imply under the SoC symbol instead of re-define the symbol in each SoC specific Kconfig file. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
A few Rockchip ARMv7 SoCs use 0x60000000 as DRAM base address instead of the more common 0x0 DRAM base address used on AArch64 SoCs. Add default options that should work for these ARMv7 SoCs. Same offsets as before are used, just below 64 MiB. Hex values have also been padded to improve alignment. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
The Kconfig symbol ROCKCHIP_COMMON_STACK_ADDR currently imply the TPL_ROCKCHIP_COMMON_BOARD option when TPL=y. This is inconvenient for a SoC with very limited SRAM to use a custom tpl.c together with the common stack addresses. Move any imply TPL_ROCKCHIP_COMMON_BOARD to under the SoC symbol, where it belongs. Add the missing imply to RK3328 and PX30 use a SoC specific tpl.c and only expect imply TPL_LIBGENERIC_SUPPORT. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
These power rails must be on very early for the U-Boos TPL banner to be show over debug UART. This reverts commit 4576e65a. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
The PP1500 and PP3000 power rails must be on very early for the U-Boot TPL banner to be shown on debug UART. Enable TPL_GPIO Kconfig option for bob and kevin to allow use of spl_gpio.h functions in TPL. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
These power rails must be on very early for the U-Boos SPL banner to be show over debug UART. This reverts commit af518a1d. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
Most Rockchip SoCs use 0x0 as DRAM base address, however some SoCs use 0x60000000 and RK3576 use 0x40000000 as DRAM base address. CFG_SYS_SDRAM_BASE is defined with correct address for each SoC and U-Boot proper use this to set correct gd->ram_base in setup_dest_addr(). SPL never assign any value to gd->ram_base and instead use the default, 0x0. Set correct gd->ram_base in dram_init() to ensure its correctness in SPL. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Kever Yang <kever.yang@rock-chips.com>
-
Jonas Karlman authored
U-Boot only works correctly when it uses RAM below the 4G address boundary on Rockchip SoCs. Limit usable gd->ram_top to max 4G. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Kever Yang <kever.yang@rock-chips.com>
-
Jonas Karlman authored
Allow the first bank to extend beyond 4 GiB when the blob of space for peripheral is located before start of DRAM, e.g. when start of DRAM is 0x40000000 and continue beyond the 4 GiB mark. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Kever Yang <kever.yang@rock-chips.com>
-
Jonas Karlman authored
When MMC_SDHCI_SDMA=y or MMC_SDHCI_ADMA=y and PIO mode is used dma_unmap_single() is called on an unmapped address, 0x0. This may result in a Synchronous Abort: ## Checking hash(es) for Image atf-1 ... sha256+ OK CMD_SEND:16 ARG 0x00000200 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:18 ARG 0x00004005 "Synchronous Abort" handler, esr 0x96000147 elr: 00000000400015bc lr : 0000000040012b4c x 0: 0000000000008000 x 1: 0000000000092600 x 2: 0000000000000040 x 3: 000000000000003f x 4: 0000000000000030 x 5: 0000000000000001 x 6: 0000000000000001 x 7: 0000000000000000 x 8: 000000000000000a x 9: 0000000000000090 x10: 0000000043dffc68 x11: 0000000043c00440 x12: 0000000043c00440 x13: ffffffffbfe00000 x14: 000000000000031c x15: 0000000240000000 x16: 000000004001145c x17: 0000000000000032 x18: 0000000043dffef0 x19: 0000000043c00000 x20: 0000000043dffbc8 x21: 0000000000000000 x22: 00000000000f3d95 x23: 0000000000000002 x24: 0000000000000493 x25: 0000000000092600 x26: 0000000000000001 x27: 0000000000000001 x28: 0000000000000008 x29: 0000000043dffab0 Code: d2800082 9ac32042 d1000443 8a230000 (d5087620) Resetting CPU ... resetting ... Fix this by only dma_unmap_single() when DMA mode is used and sdhci_prepare_dma() has been called to map host->start_addr. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
The pinmux bits for GPIO2-B0 to GPIO2-B6 actually have 2 bits width, correct the bank flag for GPIO2-B. The pinmux bits for GPIO2-B7 is recalculated so it remain unchanged. Add missing GPIO3-B1 to GPIO3-B7 pinmux data to rk3328_mux_recalced_data as mux register offset for these pins does not follow rockchip convention. This matches changes in following Linux commits: - e8448a6c817c ("pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins") - 5ef6914e0bf5 ("pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins") - 128f71fe014f ("pinctrl: rockchip: correct RK3328 iomux width flag for GPIO2-B pins") Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
BootROM leave GPIO4_D6 configured as SDMMC_PWREN function and DW MMC driver set PWREN high in dwmci_init(). However, HW revision prior to v1.2 must pull GPIO4_D6 low to access sdmmc. For HW revision v1.2 the state of GPIO4_D6 has no impact. Upstream Linux commit 26c100232b09 "arm64: dts: rockchip: Fix sdmmc access on rk3308-rock-s0 v1.1 boards" fixed this issue by adding a vcc_sd regulator. Include the new vcc_sd regulator in SPL and enable required Kconfig options to set GPIO4_D6 low to fix reading sdmmc on v1.1 hw revision. Fixes: 25438c40 ("board: rockchip: Add Radxa ROCK S0") Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Quentin Schulz <quentin.schulz@cherry.de> Reviewed-by:
Kever Yang <kever.yang@rock-chips.com>
-
Jonas Karlman authored
BootROM leave GPIO4_D6 configured as SDMMC_PWREN function and DW MCI driver set PRWEN high on MMC_POWER_UP and low on MMC_POWER_OFF. Similarly U-Boot also set PRWEN high before accessing mmc. However, HW revision prior to v1.2 must pull GPIO4_D6 low to access sdmmc. For HW revision v1.2 the state of GPIO4_D6 has no impact. Model an always-on active low fixed regulator using GPIO4_D6 to fix use of sdmmc on older HW revisions of the board. Fixes: adeb5d2a4ba4 ("arm64: dts: rockchip: Add Radxa ROCK S0") Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Link: https://lore.kernel.org/r/20241119230838.4137130-1-jonas@kwiboo.se Signed-off-by:
Heiko Stuebner <heiko@sntech.de> [ upstream commit: 26c100232b09ced0857306ac9831a4fa9c9aa231 ] (cherry picked from commit ca8e0bedbc790b19b11efc223677d178b8eeb74e) Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
Nothing is calling the function rk_board_init() and the io-domain driver can handle the functions intended purpose based on information from DT. Cleanup by removing the unused rk_board_init() function and re-sort included headers. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Quentin Schulz <quentin.schulz@cherry.de>
-
Jonas Karlman authored
clock/rk3288-cru.h in include/dt-bindings is almost identical to the version in dts/upstream, remove the copy from include/dt-bindings to only use the version from dts/upstream. One clk, SCLK_MAC_PLL, is not part of the upstream bindings, this clk is not used by upstream, in-tree or vendor DTs and can safely be dropped. No functional change to board DTs is intended with this removal. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Kever Yang <kever.yang@rock-chips.com>
-
Jonas Karlman authored
UART pinctrl for serial is typically applied multiple times: - in external TPL - in SPL for DEBUG_UART in board_debug_uart_init() - in SPL using pinctrl from DT - in pre-reloc phase using pinctrl from DT - after relocation using pinctrl from DT Skip including UART pinctrl for the the pre-reloc phase to save time during boot. On a Radxa ROCK 5B this reduce boot time by ~150 ms. After this a warning may be shown with LOGLEVEL=5 (or higher), it is safe to ignore this warning as device probe is successful even when pinctrl cannot be applied: ns16550_serial serial@feb50000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
UART pinctrl for serial is typically applied multiple times: - in external TPL - in SPL for DEBUG_UART in board_debug_uart_init() - in SPL using pinctrl from DT - in pre-reloc phase using pinctrl from DT - after relocation using pinctrl from DT Skip including UART pinctrl for the the pre-reloc phase to save time during boot. On a Radxa ZERO 3W this reduce boot time by ~120 ms. After this a warning may be shown with LOGLEVEL=5 (or higher), it is safe to ignore this warning as device probe is successful even when pinctrl cannot be applied: ns16550_serial serial@fe660000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
UART pinctrl for serial is typically applied multiple times: - in external TPL - in SPL using pinctrl from DT - in pre-reloc phase using pinctrl from DT - after relocation using pinctrl from DT Skip including UART pinctrl for the the pre-reloc phase to save time during boot. On a Radxa ROCK Pi S this reduce boot time by ~80 ms. After this a warning may be shown with LOGLEVEL=5 (or higher), it is safe to ignore this warning as device probe is successful even when pinctrl cannot be applied: ns16550_serial serial@ff0a0000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 Signed-off-by:
Jonas Karlman <jonas@kwiboo.se>
-
Jonas Karlman authored
Remove the rockchip,rk3399-dwc3 compatible from the dwc3-of-simple driver now that all boards have changed to use the dwc3-generic driver. Also remove the amlogic,meson-gxl-dwc3 compatible, it is no longer in use by any device tree in mainline linux or U-Boot. Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Reviewed-by:
Marek Vasut <marex@denx.de> Reviewed-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com> Reviewed-by:
Neil Armstrong <neil.armstrong@linaro.org>
-
Tom Rini authored
Signed-off-by:
Tom Rini <trini@konsulko.com>
-
Simon Glass authored
The rules part of the template makes sure that this doesn't run until specifically requested. Drop the check in the script itself, so it is possible to trigger a run manually without re-pushing the tree. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Tom Rini authored
Judith Mendez <jm@ti.com> says: This patch series enables ESM reset configuration in board_init_f for am62x and am62px devices. This is necessary in order for error events to reset the system. This patches are tested using watchdog to reset the system via ESM. Link: https://lore.kernel.org/r/20250129234403.574766-1-jm@ti.com
-
Santhosh Kumar K authored
Enable CONFIG_SPL_DRIVERS_MISC, CONFIG_SPL_MISC, CONFIG_ESM_K3 to probe the Main ESM and MCU ESM nodes. Signed-off-by:
Santhosh Kumar K <s-k6@ti.com> Signed-off-by:
Judith Mendez <jm@ti.com>
-
Santhosh Kumar K authored
On AM62A and AM62P devices, it is possible to route Main ESM error events to MCU ESM. MCU ESM high error output can trigger the reset logic to reset the device. So, for these devices we have Main ESM and MCU ESM nodes in the device tree. Add functions to probe these nodes if CONFIG_ESM_K3 is enabled. Signed-off-by:
Santhosh Kumar K <s-k6@ti.com> Signed-off-by:
Judith Mendez <jm@ti.com>
-
Nathan Morrisson authored
Add the optargs variable so that we can set optional arguments while booting. Signed-off-by:
Nathan Morrisson <nmorrisson@phytec.com> Signed-off-by:
Daniel Schultz <d.schultz@phytec.de>
-
Andre Przywara authored
The env_fat_get_dev_part() function mostly returns a fixed string, set via some Kconfig variable. However when the first character is a colon, that means that the boot device number is determined at runtime, and patched in. This requires altering the string. So far this was done via some ugly and actually illegal direct write to the .rodata string storage. We got away with this because U-Boot maps everything as read/write/execute so far. A proposed patch set actually enforces read-only (and no-execute) permissions in the page tables, so this routine now causes an exception: ======================= Loading Environment from FAT... "Synchronous Abort" handler, esr 0x9600004f, far 0xfffb7d4c elr: 000000004a054228 lr : 000000004a05421c (reloc) elr: 00000000fff7c228 lr : 00000000fff7c21c ..... ======================= Rewrite the routine to do away with the dodgy string manipulation, instead allocate the string in the r/w .data section, where we can safely manipulate it. Signed-off-by:
Andre Przywara <andre.przywara@arm.com> Acked-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Tom Rini authored
Siddharth Vadapalli <s-vadapalli@ti.com> says: Hello, This series re-enables MUX_MMIO at U-Boot proper on J721E and J7200 SoCs. The commits which introduced support for Hyperflash boot on both of these SoCs disabled MUX_MMIO functionality at U-Boot proper, thereby introducing a regression. Series is based on commit 2b1c8d3b cmd: Fix Kconfig coding style of the master branch of U-Boot. Link: https://lore.kernel.org/r/20250201091809.1894892-1-s-vadapalli@ti.com
-
Siddharth Vadapalli authored
Commit under Fixes introduced support for Hyperflash boot but also disabled MUX_MMIO support at U-Boot proper. MUX_MMIO is required at U-Boot proper to setup the SERDES Lane Mapping as described by the device-tree. On J7200 SoC, PCIe functionality is broken since commit under fixes. Fix this regression by re-enabling MUX_MMIO. Fixes: 038f6fae ("configs: j7200_evm_*_defconfig: Add configs for Hyperflash boot") Signed-off-by:
Siddharth Vadapalli <s-vadapalli@ti.com> Reviewed-by:
Anurag Dutta <a-dutta@ti.com>
-
Siddharth Vadapalli authored
Commit under Fixes introduced support for Hyperflash boot but also disabled MUX_MMIO support at U-Boot proper. MUX_MMIO is required at U-Boot proper to setup the SERDES Lane Mapping as described by the device-tree. Fix this regression by re-enabling MUX_MMIO. Fixes: fd7fcd40 ("configs: j721e_evm_*_defconfig: Add configs for Hyperflash boot") Signed-off-by:
Siddharth Vadapalli <s-vadapalli@ti.com>
-
Michal Simek authored
emul_rtc_probe() is not called from anywhere else that's why make it static. Issue is reported by build with W=1. Signed-off-by:
Michal Simek <michal.simek@amd.com>
-
Michael Chang authored
Support phy io micro voltage setting for NPCM8XX rgmii interface. Signed-off-by:
Michael Chang <zhang971090220@gmail.com>
-
Weijie Gao authored
This patch enables switch auto-detction for mt7981 as some new mt7981 boards will use AN8855 ethernet switch. Signed-off-by:
Weijie Gao <weijie.gao@mediatek.com>
-
Wadim Egorov authored
Enable configs required for detecting and fixing up for different RAM variants. Also resync after savedefconfig. Signed-off-by:
Wadim Egorov <w.egorov@phytec.de> Tested-by:
Daniel Schultz <d.schultz@phytec.de>
-
Wadim Egorov authored
Detect RAM size via EEPROM and adjust DDR size and banks accordingly. Include necessary fixups to handle ECC-enabled configurations. Signed-off-by:
Wadim Egorov <w.egorov@phytec.de> Tested-by:
Daniel Schultz <d.schultz@phytec.de>
-
Wadim Egorov authored
Add bootph-all properties to I2C0 nodes to ensure the bus and EEPROM are accessible across all stages. This enables reading the SoM configuration at any point during the boot process. Signed-off-by:
Wadim Egorov <w.egorov@phytec.de> Tested-by:
Daniel Schultz <d.schultz@phytec.de> Reviewed-by:
Dhruva Gole <d-gole@ti.com>
-
Andrew Goodbody authored
USB tests on ext partitions can fail with the following output test/py/tests/test_usb.py:245: in test_usb_part 'fstype usb %d:%d' % i, part_id E TypeError: not enough arguments for format string So add brackets around the format string arguments to prevent the error. Fixes: a7309479 ("test/py: usb: Distinguish b/w ext2/ext4 partitions") Signed-off-by:
Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by:
Marek Vasut <marex@denx.de> Reviewed-by:
Love Kumar <love.kumar@amd.com>
-
Marek Vasut authored
The -V version parameter is missing in the optional list of parameters in help text. Add it. Signed-off-by:
Marek Vasut <marex@denx.de>
-
Weijie Gao authored
The change from pinctrl to pio was missing in mt7986-u-boot.dtsi and will cause build failure. Now fix it. Fixes: f1775996 (mediatek: mt7986: move gpio-controller up and rename pinctrl to pio) Signed-off-by:
Weijie Gao <weijie.gao@mediatek.com>
-
Weijie Gao authored
This patch add support to read register base address by name if provided. Also devfdt_get_addr_* is changed to dev_read_addr_* to support DT live tree. Signed-off-by:
Weijie Gao <weijie.gao@mediatek.com>
-