After a very long time, I am pleased to announce the release of Ten64 firmware v0.9.0.
This firmware is intended as a stepping stone to an eventual “1.0” release. It is not being marked as “stable” yet as there is still more work to do.
The key change is an update to U-Boot 2023.07-rc2 (vs 2020.07 in the current series), which brings:
-
U-Boot’s new standard boot system
This replaces the previous script based distroboot system and is much more robust. The previous Ten64 firmware releases contained a lot of fine tuning to distroboot which is no longer necessary. Aside from EFI, there is the possibility of using Verified Boot for Embedded and other methods (syslinux/extlinux). -
Compatibility with major Linux distributions is improved as U-Boot now implements the TCG2 (TPM) EFI protocol, meaning “shim” wrapped boot-loaders (seen on Fedora and Ubuntu) will work without problems.
We can’t do full UEFI secure boot yet A new TPM chip is required for full secure boot, a retrofit option may be available for current Ten64 boards later in 2023 -
A single device tree source for both U-Boot and operating system. In other words, the device tree blob used by U-Boot is the same that is passed to Linux/FreeBSD/etc.
Thedevicetree
partition on the flash is no longer used. It will be repurposed for device tree overlays
These three changes solve many of the interoperability issues affecting the Ten64 until now. There is still some other issues to solve (like the DPAA2<->IOMMU setup) but this solves many of them.
The focus of this specific release is on disk-based distributions (Debian,Fedora,openSUSE,OpenWrt armsr,Ubuntu). It can boot OpenWrt-NAND but this is currently outside the new “standard boot” system.
If you want to boot straight into OpenWrt-NAND, use these U-Boot commands to set it as the default:
setenv bootcmd 'run bootcmd_openwrt_nand'
saveenv
On next restart, U-Boot will proceed to boot OpenWrt.
Other planned features for coming v0.9.x releases are device tree overlay support, and firmware updates via distribution standard mechanisms (e.g fwupdate)
Features not yet supported
- 1.2GHz CPU speed: 1.2GHz CPU binaries are generated, but the firmware does not change the CPU voltage yet.
- DPAA2 VFIO/passthrough: This firmware includes DPAA2/MC Firmware 10.37. Changes to kernel and/or qemu are required to get passthrough working on more recent versions. You can try downgrading to MC Firmware 10.20.
How to download and install
You can download the v0.9.0 release from https://archive.traverse.com.au/pub/traverse/ls1088firmware/firmware-builds/releases/v0.9.0/
It is recommended to do the flash from the recovery firmware.
Some older recovery firmware versions have TLS certificate trust issues downloading from archive.traverse.com.au . You may want to use another method to transfer the firmware file, or [carefully!] bypass certificate verification (curl -k -O …)
These new firmware releases also come with a self-extracting installer - ten64-firmware-update-v0.9.0.bin
root@recovery000afa242d95:/tmp# sh ten64-firmware-update-v0.9.0.bin
Extracting ten64 update
Unlocking bl2 ...
Erasing bl2 ...
Unlocking bl2 ...
....
Writing from recovery.itb to recovery ...
Do you wish to reflash the OpenWrt-NAND version (do not say "y" if you are currently using it) [y/n] y
...
Do you wish to reset the U-Boot environment to default? [y/n] y
Unlocking ubootenv ...
Erasing ubootenv ...
# Do a reboot
/sbin/reboot
On the first boot, U-Boot will write a clean copy of it’s environment variables to flash and reset. Do not interrupt this process.
Menu Change
The boot menu behaviour has been changed.
U-Boot will proceed to the bootcmd
by default.
To bring up the boot options menu, press the “s” key at the prompt below:
Autoboot in 10 seconds, press 's' to stop and bring up the boot menu
This will bring up the boot options menu: