summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-21pinctrl: rockchip: Fix IO mux selection on RK3568Jonas Karlman
IO mux selection is not working correctly for all pins. Sync mux route data from linux to add any missing and update wrong trigger pins to fix this. Also apply the pull-up fix needed for GPIO0 D3-D6. Fixes: 1977d746aa54 ("rockchip: rk3568: add rk3568 pinctrl driver") Signed-off-by: Jonas Karlman <[email protected]>
2023-04-21rockchip: rk3588: Sync sdmmc node from linux-nextJonas Karlman
Sync the sdmmc node from linux-next, include required nodes in SPL and imply Kconfig options required for functional sdmmc clk in SPL and U-Boot proper. This make it possible for both SPL and U-Boot proper to configure sdmmc clocks. In SPL, before TF-A is loaded, scru regs is configured, in U-Boot proper a SCMI message is sent to TF-A. Fixes: 95c8656b72dc ("ARM: dts: rockchip: rk3588s-u-boot: Add sdmmc node") Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: rk3588: Add support for sdmmc clocks in SPLJonas Karlman
Booting from sdmmc on RK3588 currently works because of a workaround in the device tree, clocks are reordered so that the driver use ciu-sample instead of ciu, and the BootRom initializes sdmmc clocks before SPL is loaded into DRAM. The sdmmc clocks are normally controlled by TF-A using SCMI. However, there is a need to control these clocks in SPL, before TF-A has started. This adds a rk3588_scru driver to control the sdmmc clocks in SPL before TF-A has started, using scru regs. It also adds a small glue driver to bind the scmi clock node to the rk3588_scru driver in SPL. Fixes: 7a474df74023 ("clk: rockchip: Add rk3588 clk support") Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21clk: scmi: Add Kconfig option for SPLJonas Karlman
Building U-Boot SPL with CLK_SCMI and SCMI_FIRMWARE Kconfig options enabled and SPL_FIRMWARE disabled result in the following error. drivers/clk/clk_scmi.o: in function `scmi_clk_gate': drivers/clk/clk_scmi.c:84: undefined reference to `devm_scmi_process_msg' drivers/clk/clk_scmi.c:88: undefined reference to `scmi_to_linux_errno' drivers/clk/clk_scmi.o: in function `scmi_clk_get_rate': drivers/clk/clk_scmi.c:113: undefined reference to `devm_scmi_process_msg' drivers/clk/clk_scmi.c:117: undefined reference to `scmi_to_linux_errno' drivers/clk/clk_scmi.o: in function `scmi_clk_set_rate': drivers/clk/clk_scmi.c:139: undefined reference to `devm_scmi_process_msg' drivers/clk/clk_scmi.c:143: undefined reference to `scmi_to_linux_errno' drivers/clk/clk_scmi.o: in function `scmi_clk_probe': drivers/clk/clk_scmi.c:157: undefined reference to `devm_scmi_of_get_channel' make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 make: *** [Makefile:2043: spl/u-boot-spl] Error 2 Add Kconfig option so that CLK_SCMI can be disabled in SPL to fix this. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: rk35xx: Enable fdtoverlay and kernel compressionJonas Karlman
Add fdtoverlay_addr_r, kernel_comp_addr_r and imply use of OF_LIBFDT_OVERLAY on RK3568 and RK3588 to support fdtoverlay and kernel compression. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-04-21rockchip: rk35xx: Fix boot with a large fdt blobJonas Karlman
The TF-A blobs used to boot RK3568 and RK3588 boards is based on atf v2.3. Mainline atf v2.3 contains an issue that could lead to a crash when it fails to parse the fdt blob being passed as the platform param. An issue that was fixed in atf v2.4. The vendor TF-A seem to suffer from a similar issue, and this prevents booting when fdt blob is large enough to trigger this condition. Fix this by implying SPL_ATF_NO_PLATFORM_PARAM to let u-boot pass a NULL pointer instead of the fdt blob as the platform param. This fixes booting Radxa ROCK 3A after recent sync of device tree. Fixes: 073d911ae64a ("rockchip: rk3568-rock-3a: Sync device tree from linux") Signed-off-by: Jonas Karlman <[email protected]>
2023-04-21rockchip: rk3588-rock-5b: Fix sdmmc bootJonas Karlman
Running U-Boot from a SD-card on ROCK 5 Model B fails to load atf using DMA and prints debug_uart messages. <debug_uart> <debug_uart> U-Boot SPL 2023.04-rc3 (Mar 12 2023 - 00:30:16 +0000) Trying to boot from MMC1 ## Checking hash(es) for config config-1 ... OK ## Checking hash(es) for Image atf-1 ... sha256 error! Bad hash value for 'hash' hash node in 'atf-1' image node mmc_load_image_raw_sector: mmc block read error SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ### Use fifo-mode to disable DMA in SPL, add same-as-spl to boot-order and remove DEBUG_UART_ANNOUNCE option to fix this. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: otp: fix misc_read() return valuesJohn Keeping
The documentation for misc_read() says: Return: number of bytes read if OK (may be 0 if EOF), -ve on error The Rockchip efuse driver implements this so it should return the number of bytes read rather than zero on success. Fix this so that the driver follows the usual contract for read operations. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jonas Karlman <[email protected]> Signed-off-by: John Keeping <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: efuse: fix misc_read() return valuesJohn Keeping
The documentation for misc_read() says: Return: number of bytes read if OK (may be 0 if EOF), -ve on error The Rockchip efuse driver implements this so it should return the number of bytes read rather than zero on success. Fix this so that the driver follows the usual contract for read operations. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jonas Karlman <[email protected]> Signed-off-by: John Keeping <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: misc: fix misc_read() return checkJohn Keeping
misc_read() is documented to return the number of bytes read or a negative error value. The Rockchip drivers currently do not implement this correctly and instead return zero on success or a negative error value. In preparation for fixing the drivers, fix the condition here to only error on negative values. Suggested-by: Jonas Karlman <[email protected]> Signed-off-by: John Keeping <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: video: Add support for RK3568 DSI HostChris Morgan
Add support for DSI Host controller on Rockchip RK3568. This driver is heavily based on the Rockchip dw_mipi_dsi_rockchip.c driver in Linux and the stm32_dsi.c driver in U-Boot. It should be easy to add support for other SoCs as the only missing component from the mainline driver is setting the VOP big or VOP little (which the rk3568 does not have). Driver was tested for use in sending commands to a DSI panel in order to obtain the panel ID. Signed-off-by: Chris Morgan <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21drivers: phy: add Innosilicon DSI-DPHY driverChris Morgan
Add support for the Innosilicon DSI-DPHY driver for Rockchip SOCs. The driver was ported from Linux and tested on a Rockchip RK3566 based device to query the panel ID via a DSI command. Signed-off-by: Chris Morgan <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21ram: rk3399: add missing high row detectionJonathan Liu
For 2 GB LPDDR4 single-rank RAM with 16 rows, the Rockchip ddr init bin prints: "Bus Width=32 Col=10 Bank=8 Row=16 CS=1 Die Bus-Width=16 Size=2048MB" U-Boot TPL prints: "BW=32 Col=10 Bk=8 CS0 Row=16/15 CS=1 Die BW=16 Size=2048MB" Add missing high row detection so that U-Boot TPL prints Row=16, same as the Rockchip ddr init bin: "BW=32 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=2048MB" Signed-off-by: Jonathan Liu <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21gpio: rockchip: Add support for RK3568 and RK3588 banksJonas Karlman
The GPIO V2 controller on RK3568 and RK3588 works very similar to prior generation, main difference is the use of a write mask in the upper 16 bits and register address offset have changed. GPIO_VER_ID is a new register at 0x0078 that is used to determine when the driver should use new or old register offsets and values. Earlier generation return 0x0 from this offset. Refactor code and add support for the GPIO V2 controller used in RK3568 and RK3588. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: configs: mk808: enable usb supportJohan Jonker
Enable usb support in the mk808_defconfig. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: configs: mk808: change CONFIG_TPL_TEXT_BASEJohan Jonker
Currently the Rockchip rk3066a u-boot-tpl.bin file needs to add the characters "RK30", while the other SoCs replace the first 4 bytes. Bring this in line with the rest by lowering CONFIG_TPL_TEXT_BASE and update rockchip.rst instructions. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: sync rk3066/rk3188 DT files from linux-next v6.2-rc4Johan Jonker
Sync rk3066/rk3188 DT files from Linux. This is the state as of linux-next v6.2-rc4. New nfc node for MK808 rk3066a. CRU nodes now have a clock property. To prefend dtoc errors a fixed clock must also be included for tpl/spl in the rk3xxx-u-boot.dtsi file. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3188-u-boot: add gpio-rangesJohan Jonker
The gpio node names are made generic, but without gpio bank ID. Add gpio-ranges to rk3188-u-boot.dtsi for now till a better method is found. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3066a-u-boot: add gpio-rangesJohan Jonker
The gpio node names are made generic, but without gpio bank ID. Add gpio-ranges to rk3066a-u-boot.dtsi for now till a better method is found. Disable gpio6 as the driver gives an error code on return as status. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: gpio: rk_gpio: use ROCKCHIP_GPIOS_PER_BANK as dividerJohan Jonker
The current divider to calculate the bank ID can change. Given the Rockchip TRM not all gpio-banks have 32 pins per bank. The "gpio-ranges" syntax allows multiple items with variable number of pins. Use a constant ROCKCHIP_GPIOS_PER_BANK as fixed divider. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3288: partial sync pwm nodesJohan Jonker
In order to better compare the Linux rk3288.dtsi version 6.3 -rc2 with the U-Boot version partial sync the pwm nodes. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21clk: rockchip: clk_rk3288: add PCLK_RKPWMJohan Jonker
The rk3288 pwm nodes synced from Linux make use of PCLK_RKPWM instead of PCLK_PWM. They have the same pclk_cpu parent, so add PCLK_RKPWM to rk3288_clk_get_rate(). Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # chromebook-jerry Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3288: partial sync vop/lvds/mipi/hdmi nodesJohan Jonker
In order to better compare the Linux rk3288.dtsi version 6.3 -rc2 with the U-Boot version partial sync the vop/lvds/mipi/hdmi nodes. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # chromebook-jerry Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3288: partial sync edp nodeJohan Jonker
The rk3288 edp node has a phy node in Linux with a clock property while current U-Boot driver expects this clock on position index 1. Move U-Boot-specific DT clock properties to rk3288-u-boot.dtsi and partially sync the edp node. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # chromebook-jerry Reviewed-by: Kever Yang <[email protected]>
2023-04-21video: rockchip: rk_vop: add rk3288-dp compare stringJohan Jonker
In the current rk3288.dtsi file the compatible string for the DisplayPort(DP) node ends with "edp". The string in the binding ends with "dp" which conflicts with "cdn-dp" as a search term. Add "rk3288-dp" as compare string to select vop_id. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # chromebook-jerry Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3288: partial sync grf and pmu nodesJohan Jonker
In order to better compare the Linux rk3288.dtsi version 6.3 -rc2 with the U-Boot version partial sync the grf and pmu nodes. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # chromebook-jerry Reviewed-by: Kever Yang <[email protected]>
2023-04-21arm: dts: rockchip: rk3288: move io-domains nodesJohan Jonker
In order to better compare the Linux rk3288.dtsi version with the U-Boot version move the io-domains nodes. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: John Keeping <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> # chromebook-jerry Reviewed-by: Kever Yang <[email protected]>
2023-04-21pinctrl: rockchip: support rk3588 pinctrlJianqun Xu
Add support for Rockchip rk3588 variant of pinctrl. The driver is adapted from the Linux driver. Signed-off-by: Jianqun Xu <[email protected]> [[email protected]: port to latest U-boot, bring more changes from Linux use translated pull values table] Signed-off-by: Eugen Hristev <[email protected]> Reviewed-by: Kever Yang <[email protected]> Tested-by: Jonas Karlman <[email protected]> Reviewed-by: Jonas Karlman <[email protected]>
2023-04-21rockchip: rk3288: Use ft_system_setup instead of ft_board_setupJohn Keeping
ft_board_setup() should be availble for use in board files but using it in the rk3288 machine file blocks this functionality. ft_system_setup() is the more appropriate function to use in a machine definition. Signed-off-by: John Keeping <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: Use an external TPL binary on RK3588Jonas Karlman
There is no support to initialize DRAM on RK3588 SoCs using U-Boot TPL and instead an external TPL binary must be used to generate a bootable u-boot-rockchip.bin image. Enable ROCKCHIP_EXTERNAL_TPL by default for RK3588, add build steps for RK3588 to documentation and clean up CONFIG_BINMAN_FDT options. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2023-04-21board: rockchip: Add rk3588 evbKever Yang
rk3588 evb1 v10 is a evalution board from Rockchip, it is a dev board for rockchip and also a reference board for board vendors. Hardware: SoC: RK3588 DRAM: LPDDR4X 8GB Debug: UART2 via USB PCIe: 3x4 *1 SATA *2 HDMI out *2 HDMI IN *1 USB2.0 Host *2 USB3.0 Host *1 Type C *1 MIPI DSI panel dts Sync from Linux v6.2. Signed-off-by: Kever Yang <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2023-04-21rockchip: ringneck-px30: enforce ENV_IS_NOWHERE with Kconfig selectQuentin Schulz
Instead of letting the compiler error out if CONFIG_ENV_IS_NOWHERE is not selected by the user, let's just enforce it when the user builds for Ringneck PX30 so that no check needs to be performed by the compiler and the configuration is always valid. Suggested-by: Tom Rini <[email protected]> Cc: Quentin Schulz <[email protected]> Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: puma-rk3399: enforce ENV_IS_NOWHERE with Kconfig selectQuentin Schulz
Instead of letting the compiler error out if CONFIG_ENV_IS_NOWHERE is not selected by the user, let's just enforce it when the user builds for Puma RK3399 so that no check needs to be performed by the compiler and the configuration is always valid. Suggested-by: Tom Rini <[email protected]> Cc: Quentin Schulz <[email protected]> Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21rockchip: sdhci: rk3568: fix clock setting logicVasily Khoruzhick
mmc->tran_speed is max clock, but currently rk3568_sdhci_set_ios_post uses it if its != 0, regardless of mmc->clock value, and it breaks eMMC controller. Without this patch 'mmc dev 0; mmc dev 1; mmc dev 0' is enough for breaking eMMC, since first initialization sets mmc->mmc_tran speed to non-zero value (26MHz in my case), and on subsequent re-init when mmc layer asks for 400KHz it sets 26MHz instead. Fix it by using MAX(mmc->tran_speed, mmc->clock) Signed-off-by: Vasily Khoruzhick <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2023-04-21efi_loader: Fix flexible array member definitionsIlias Apalodimas
When a structure contains a flexible array member, it is not supposed to be included in arrays or other structs. Quoting the C spec [0] "Such a structure (and any union containing, possibly recursively, a member that is such a structure) shall not be a member of a structure or an element of an array." IOW efi_hii_keyboard_layout should not include struct efi_key_descriptor descriptors[]; since we use it at the declaration of struct efi_hii_keyboard_package. [0] https://www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf chapter 6.7.2.1 Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2023-04-21test: fix launch_efi()Heinrich Schuchardt
We cannot use old_dtb in the finally block if it has not been assigned before the try block. test/py/tests/test_efi_fit.py:458:30: E0601: Using variable 'old_dtb' before assignment (used-before-assignment) Fixes: 8391f955494e ("test/py: Create a test for launching UEFI binaries from FIT images") Signed-off-by: Heinrich Schuchardt <[email protected]>
2023-04-21sandbox: enable CONFIG_EFI_CAPSULE_AUTHENTICATEHeinrich Schuchardt
Without CONFIG_EFI_CAPSULE_AUTHENTICATE=y the following tests are skipped: * test/py/tests/test_efi_capsule/test_capsule_firmware_signed_fit.py * test/py/tests/test_efi_capsule/test_capsule_firmware_signed_raw.py Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-04-21test: fix pylint warning for capsule testsHeinrich Schuchardt
Fix pylint warnings like: * Class inherits from object * Missing module description * Missing class description * First line of comment blank * Superfluous imports Signed-off-by: Heinrich Schuchardt <[email protected]>
2023-04-21efi_loader: remove unused efi_capsule_authenticateHeinrich Schuchardt
Remove an unused implementation of efi_capsule_authenticate(). Signed-off-by: Heinrich Schuchardt <[email protected]>
2023-04-21doc: codingstyle: Python coding styleHeinrich Schuchardt
Indicate that we follow PEP8 and PEP257. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-04-20riscv: Support CONFIG_REMAKE_ELFSamuel Holland
Add flags to tell objcopy what kind of ELF to create. Signed-off-by: Samuel Holland <[email protected]>
2023-04-20riscv: Update alignment for some sections in linker scriptsBin Meng
Some sections in the linker scripts are aligned to 4 bytes, which may cause misaligned exception on some platforms, e.g.: clearing the bss section on 64-bit hardware if __bss_start does not start from a naturally 8 bytes aligned address. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2023-04-20riscv: spl: Remove relocation sectionsBin Meng
U-Boot SPL is not relocable. Drop these relocation sections. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2023-04-20riscv: Avoid updating the link registerBin Meng
board_init_r does not return for U-Boot SPL hence there is no need to update the link register when jumping to board_init_r. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2023-04-20riscv: Change to use positive offset to access relocation entriesBin Meng
The codes currently skip the very first relocation entry, and have an inaccurate comment "skip first reserved entry" indicating that the first entry is reserved, but later it references the elements in the first relocation entry using a minus offset. Change to use a positive offset so that there is no need to skip the first relocation entry. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Leo Yu-Chi Liang <[email protected]>
2023-04-20makefile: riscv: Drop useless argument of prelink-riscvBin Meng
The argv[2] is never used in prelink-riscv. Drop it. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2023-04-20tools: prelink-riscv: Unmap the ELF image when doneBin Meng
The codes forget to call munmap() to unmap the ELF image that was mapped by previous mmap(). Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2023-04-20tools: prelink-riscv: Cosmetic style fixesBin Meng
Some coding convention fixes. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2023-04-20riscv: Optimize loading relocation typeBin Meng
't5' already contains relocation type so don't bother reloading it. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>
2023-04-20riscv: Optimize source end address calculation in start.SBin Meng
The __bss_start is the source end address hence load its address directly into register 't2' for optimization. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Rick Chen <[email protected]>