aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/dts/rockchip-u-boot.dtsi
Commit message (Collapse)AuthorAgeFilesLines
* rockchip: Support OP-TEE for ARM in FIT images created by binmanAlex Bee2023-07-281-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIG_SPL_OPTEE_IMAGE option is used during DRAM size detection for Rockchip ARM platform to indicate that an OP-TEE binary was already loaded and a Trusted Execution Environment (TEE) is available in order to block/reserve a memory-region for it. This adds a bunch of new `#if's` to u-boot-rockchip.dtsi to include the OP-TEE binary in the FIT image for ARM SOCs if CONFIG_SPL_OPTEE_IMAGE is selected. That makes it a little harder to read, but I opted for that, because all the duplicates in an extra ARM-OP-TEE-specfic .dtsi would be the greater evil, IMHO. Besides it's more likley being "forgotten" to sync when changes in u-boot-rockchip.dtsi are made. The no longer required rockchip-optee.dtsi and it's inclusions are dropped. The hardcoded load address is common across all OP-TEE implemenations for Rockchip (vendor and upstream). The OP-TEE-binary is non-optional if CONFIG_SPL_OPTEE_IMAGE is selected and there will be an error if the file does not exist and/or `TEE=` build option is missing. Signed-off-by: Alex Bee <knaerzche@gmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
* rockchip: Use an external TPL binary on RK3568Jonas Karlman2023-02-281-2/+8
| | | | | | | | | | | | | | | | | | | Rockchip SoCs typically use U-Boot TPL to initialize DRAM, then jumps back to BootRom to load next stage, U-Boot SPL, into DRAM. BootRom then jumps to U-Boot SPL to continue the normal boot flow. However, there is no support to initialize DRAM on RK35xx SoCs using U-Boot TPL and instead an external TPL binary must be used to generate a bootable u-boot-rockchip.bin image. Add CONFIG_ROCKCHIP_EXTERNAL_TPL to indicate that an external TPL should be used. Build U-Boot with ROCKCHIP_TPL=/path/to/ddr.bin to generate a bootable u-boot-rockchip.bin image for RK3568. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Tested-by: Eugen Hristev <eugen.hristev@collabora.com>
* Revert "rockchip: Only call binman when TPL available"Jagan Teki2023-01-301-1/+1
| | | | | | | | | | | | | | | | | | This reverts commit f5315dd6290a588434e4f79bfd2886bb7df9210d. [why] TPL is not mandatory for not all Rockchip SoCs, some SoCs like RK356x, and RK3588 still use mainline u-boot without TPL as their ddr init programs are accessed via binaries provided by Rockchip instead of ddr source code. Marking TPL build makes it not able to build u-boot.itb on RK356x targets so revert this so that it can build an SPL build that would support all across Rockchip platforms. Suggested-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Signed-off-by: Jagan Teki <jagan@edgeble.ai> Tested-by: Anand Moon <linux.amoon@gmail.com> # CM3
* rockchip: Use atf as firmware and move u-boot to loadables in FITJonas Karlman2023-01-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The FIT generated after the switch to using binman is using different values for firmware and loadables properties compared to the old script. With the old script: firmware = "atf-1"; loadables = "u-boot", "atf-2", ...; After switch to binman: firmware = "u-boot"; loadables = "atf-1", "atf-2", ...; This change result in SPL jumping directly into U-Boot proper instead of initializing TF-A. With this patch the properties change back to: firmware = "atf-1"; loatables = "u-boot", "atf-2", ...; Fixes: e0c0efff2a02 ("rockchip: Support building the all output files in binman") Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org>
* rockchip: Add sha256 hash to FIT imagesJonas Karlman2023-01-261-0/+20
| | | | | | | Add sha256 hash to FIT images when CONFIG_SPL_FIT_SIGNATURE=y. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org>
* rockchip: Align FIT image data to SD/MMC block lengthJonas Karlman2023-01-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | SPL load FIT images by reading the data aligned to block length. Block length aligned image data is read directly to the load address. Unaligned image data is written to an offset of the load address and then the data is memcpy to the load address. This adds a small overhead of having to memcpy unaligned data, something that normally is not an issue. However, TF-A may have a segment that should be loaded into SRAM, e.g. vendor TF-A for RK3568 has a 8KiB segment that should be loaded into the 8KiB PMU SRAM. Having the image data for such segment unaligned result in segment being written to and memcpy from beyond the SRAM boundary, in the end this results in invalid data in SRAM. Aligning the FIT and its external data to MMC block length to work around such issue. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Simon Glass <sjg@chromium.org>
* rockchip: Support building the all output files in binmanSimon Glass2023-01-181-6/+72
| | | | | | | | | | | | | | | | | | | Add the required binman images to replace the Makefile rules which are currently used. This includes subsuming: - tpl/u-boot-tpl-rockchip.bin if TPL is enabled - idbloader.img if either or both of SPL and TPL are enabled - u-boot.itb if SPL_FIT is enabled - u-boot-rockchip.bin if SPL is used, either using u-boot.itb when SPL_FIT is enabled or u-boot.img when it isn't Note that the intermediate files are dropped with binman, since it producing everything in one pass. This means that tpl/u-boot-tpl-rockchip.bin is not created, for example. Note that for some 32-bit rk3288 boards, rockchip-optee.dtsi is included. Signed-off-by: Simon Glass <sjg@chromium.org>
* rockchip: Only call binman when TPL availableKever Yang2022-12-191-1/+1
| | | | | | | | | Rockchip platform use TPL to do the DRAM initialize for all the SoCs, if TPL is not available, means no available DRAM init program, and the u-boot-rockchip.bin is not functionable. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Change-Id: I2299f1eddce5aa7d5fb1a3fb4d8aeaa995b397fa
* rockchip: add u-boot-rockchip-spi.bin image for booting from SPI-NOR flashQuentin Schulz2022-09-041-0/+30
| | | | | | | | | | This new image is similar to u-boot-rockchip.bin except that it's destined to be flashed on SPI-NOR flashes. Cc: Quentin Schulz <foss+uboot@0leil.net> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* rockchip: generate u-boot-rockchip.bin with binman for ARM64 boardsQuentin Schulz2022-09-041-0/+5
| | | | | | | | | This allows to build u-boot-rockchip.bin binary with binman for Rockchip ARM64 boards instead of the legacy Makefile way. Cc: Quentin Schulz <foss+uboot@0leil.net> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* rockchip: generate idbloader.img content for u-boot-rockchip.bin with binman ↵Quentin Schulz2022-09-041-1/+10
| | | | | | | | | | | | | | for ARM idbloader.img content - currently created by way of Makefile - can be created by binman directly. So let's do that for Rockchip ARM platforms. Cc: Quentin Schulz <foss+uboot@0leil.net> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
* mediatek: Makefile: Drop explicit targets built by binmanSimon Glass2020-07-281-0/+2
| | | | | | | | | | | | | | | On mediatek various files that need to be created by binman. It does not make sense to enumerate these in the Makefile. They are described in the configuration (devicetree) for each board and we can simply run binman (always) to generate them. This avoid sprinkling the Makefile with arch-specific code. Also update the binman definition so that idbloader.img is only needed when SPL is actually being used. Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* rockchip: Enable building a SPI ROM image on jerrySimon Glass2020-07-281-1/+7
| | | | | | | | | | Add a simple binman config and enable CONFIG_HAS_ROM so that U-Boot produces a ROM for jerry. Change the binman image definition to support multiple images, since it may be used to build both u-boot-rockchip.bin and u-boot.rom Signed-off-by: Simon Glass <sjg@chromium.org>
* rockchip: Add Single boot image (with binman, pad_cat)Jagan Teki2020-01-301-0/+21
All rockchip platforms support TPL or SPL-based bootloader in mainline with U-Boot proper as final stage. For each stage we need to burn the image on to flash with respective offsets. This patch creates a single boot image component using - binman, for arm32 rockchip platforms - pad_cat, for arm64 rockchip platforms. This would help users to get rid of burning different boot stage images. The new image called 'u-boot-rockchip.bin' which can burn into flash like: ₹ sudo dd if=u-boot-rockchip.bin of=/dev/sda seek=64 This would support all rockchip platforms, except rk3128 since it doesn't support for SPL yet. Cc: Matwey V. Kornilov <matwey.kornilov@gmail.com> Cc: Wadim Egorov <w.egorov@phytec.de> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>