Nearly a completely open-source boot chain for Rockchip’s RK3588!
Eugen Hristev
February 21, 2024
Now included in our Debian photos & accessible through our GitLab, you’ll be able to construct an entire, working BL31 (Boot Loader stage 3.1), and change the closed binary blob with an open-source binary that anybody can compile.
In resuming our efforts in getting Rockchip’s RK3588 supported upstream, we are able to see that just lately the boot-chain has improved within the sense that the open-source BL31 (Boot Loader stage 3.1) from TF-A is now included in our Debian photos, that are revealed on our GitLab. Beforehand, to construct U-Boot, the stage 2 SPL (Secondary Program Loader) and stage 3 U-Boot correct, it was necessary to incorporate a closed-source DDR coaching binary blob and in addition a pre-built BL31 blob from the seller.
TF-A is the Trusted-Firmware for Cortex-A cores (that are additionally the forms of cores utilized by the RK3588). At the moment this mission is the defacto commonplace trusted firmware for ARM SoCs, but it surely doesn’t assist the RK3588. Nevertheless Rockchip have despatched a number of patches to the TF-A mission here to assist this product. We had the possibility to take a look at these patches, attempt them out, and put them collectively in a dedicated repository on our RK3588 enablement effort’s web page. From TF-A we are able to now construct an entire working BL31 and change the closed binary blob with an open-source binary that we are able to compile ourselves.
Here’s a log of RK3588 booting utilizing the open-source TF-A BL31 stage:
U-Boot SPL 2024.01-g5557bfdc (Jan 21 2024 - 02:43:56 +0000) Attempting in addition from MMC2 ## Checking hash(es) for config config-1 ... OK ## Checking hash(es) for Picture atf-1 ... sha256+ OK ## Checking hash(es) for Picture u-boot ... sha256+ OK ## Checking hash(es) for Picture fdt-1 ... sha256+ OK ## Checking hash(es) for Picture atf-2 ... sha256+ OK NOTICE: BL31: v2.10.0 (launch):002d8e8 NOTICE: BL31: Constructed : 02:43:49, Jan 21 2024
This is a superb step in direction of making the boot chain fully open, extra dependable, and simpler to tweak. Beforehand, closed supply binary blobs had been opaque, no one (besides Rockchip) knew what the software program was doing and no one (besides Rockchip) may apply bug fixes, updates, or adjustments. With this new risk, we are able to clear up points, enhance safety , present new options, and rather more because of the truth that everybody has entry and might evaluate the code in TF-A.
There are nonetheless some lacking components and crucial that’s remaining proper now’s the DDR coaching blob, which continues to be closed supply.
In the meanwhile of writing this text, we now have recognized a number of variations from the binary blob beforehand used, which we are able to spotlight as following:
There may very well be extra points which are unknown in the intervening time and customers ought to pay attention to it.
As all the time, our Notes repository holds all the data and a tutorial on how you can construct and flash the bootloader photos on boards just like the Radxa’s Rock-5B here. In case you are eager on attempting prebuilt photos, our Debian recipes repository builds them day by day with the most recent improvement and you can download them directly from here!