09-13-2019, 12:24 AM
(08-24-2019, 04:37 PM)Der Geist der Maschine Wrote:(08-24-2019, 09:18 AM)fire219 Wrote: At this point, most if not all of the boards(+laptops+Pinephone) can run almost completely libre. The issues in that regard are largely isolated to WiFi/BT driver blobs, and the initial stage 1 bootloader (which does DRAM initialization).
When it comes to the pinebook pro, I think you mean the stage 2 loader - that's the binary blob which is does the DDR init and loads uboot. There is a stage 1 loader, but it resides in ROM and can never be replaced.
Rockchip's documentation is somewhat cryptic. Some time ago I tried to understand the boot process and made notes. You can read about it on my website (click my "website icon" below).
I'd be excited about a libre ARM64 product in form factor more extensible than the Librem phone that someone mentioned. And I think an open source-- or at least transparent-- bootloader and boot process would be appealing to many coreboot/libreboot users and others focused primarily on security who mistrust the Intel ME. So I wanted to understand what aspects of the boot process are still opaque.
Thanks for your notes, Der Geist der Maschine! I also found Rockchip's documentation a little cryptic, but from looking at "Build Rockchip U-Boot" it's documented that make.sh creates a "pre-loader", a "trust image", and a u-boot image.
Taking the RK3399 as an example, inputs to this process are the binary blobs like rk3399_ddr_800MHz_v1.23.bin for SDRAM initialization; rk3399_usbplug_v1.19.bin for USB; and files that create the "trust" image, e.g. rk3399_bl31_v1.29.elf. These files are processed by executables in the "tools" directory such as trust_merger; there's no source provided for these.
Is open sourcing this toolchain part of Pine64's eventual roadmap? Or is it too heavily encumbered by licensing or trade secrets or whatever for that to be realistic?
And what about the Stage 1 loader in ROM? It would be very exciting to get something like stage0 in there.
I'd be very interested in any thoughts, or pointers to places to learn more. Thanks!