Just received your Ten64? Update your firmware (v0.8.7 / 2021-07-07)

Ten64’ s built in the initial production run were shipped with the ‘v0.8’ firmware.

The first firmware update (v0.8.5) includes:

  • Introduction of ‘legacy’ mode toggle for Gigabit Ethernet ports and SFP+, see PHY management / ethernet link status in the documentation.

  • Support for gigabit SFPs. Currently requires flashing a different BL2 binary but no further user configuration will be required.

  • Update recovery firmware

    • Improvements to bare metal appliance store (note: due to schema change, ‘RTM’ firmware is no longer compatible with the live registry)
      • Able to fetch manipulator scripts automatically
      • Set locale and default ‘WAN’ interface for cloud-init appliances (among other settings)
      • Set legacy/managed mode correctly for each appliance/distribution (most distributions require legacy mode for SFP, some require legacy mode for 1GBASE-T as well)
    • Add some missing packages (most notably, u-boot envtools/fw_setenv/fw_printenv)
  • Device Tree: remove broken RTC alert interrupt and change RTC compatible string to “epson,rx8035” explicitly, as drivers which are not aware of the RX8035 will not properly interpret the ‘oscillator stop’ bit. (Requires dkms/update for distributions, TODO, patch here)

  • U-Boot: fix setting of RTC time using the ‘date’ command

  • U-Boot: support booting from SATA drives attached to a PCIe controller (not recommended and not default at this stage, U-Boot has issues working with SATA drives after a warm reboot)

Version v0.8.6 adds:

  • Fix deployment of openSUSE from baremetal-deploy
  • baremetal-deploy will not set environment variables (for legacy network modes) if the U-Boot environment appears to be empty or corrupted
  • ./flash.sh (when flashing from recovery) will prompt you to reset the U-Boot environment to default

Version v0.8.7 updates the recovery image to fix a driver issue with the real time clock (Epson RX-8035) and oscillator stop errors. You should no longer need to do a ‘date reset’ in U-Boot after flashing the firmware.

We expect the next major firmware release (v1.0) to update to U-Boot 21.07 among others.

v0.8.7 (2021-07-07) download links

The best way to flash the firmware package is to use the recovery firmware. Alternatively, you can write the sdcard image to a card and start your Ten64 in sd-boot mode.

Please see “Firmware Update” in the manual for flashing instructions.

TL;DR?:

  1. Turn on Ten64, boot into recovery mode from menu
  2. Set your outgoing network interface with set-wan ethX
  3. Download and flash:
root@recovery000afa2424xx:/tmp# wget https://archive.traverse.com.au/pub/traverse/ls1088firmware/firmware-builds/branches/v0.8.7/332865038/firmware-v0.8.7-332865038.tar.xz
Downloading 'https://archive.traverse.com.au/pub/traverse/ls1088firmware/firmwar                                                                                                e-builds/branches/v0.8.7/332865038/firmware-v0.8.7-332865038.tar.xz'
Connecting to 2605:6400:20:999::1:443
Writing to 'firmware-v0.8.7-332865038.tar.xz'
firmware-v0.8.7-3328 100% |*******************************| 51222k  0:00:00 ETA
Download completed (52451668 bytes)
root@recovery000afa2424xx:/tmp# tar -Jxf firmware-v0.8.7-332865038.tar.xz
root@recovery000afa2424xx:/tmp# cd firmware-v0.8.7-332865038/
root@recovery000afa2424xx:/tmp/firmware-v0.8.7-332865038# ls
README.txt            dtb                   rcw
SHA256SUMS            flash.sh              recovery.itb
arm-trusted-firmware  openwrt-nand.ubi      u-boot
dpaa2                 qoriq-mc-binary
root@recovery000afa2424xx:/tmp/firmware-v0.8.7-332865038# ./flash.sh
Unlocking bl2 ...
Erasing bl2 ...
Unlocking bl2 ...

Writing from arm-trusted-firmware/build/ten64/debug/bl2_qspi.pbl to bl2 ...
Unlocking bl3 ...
Erasing bl3 ...
Unlocking bl3 ...

Writing from arm-trusted-firmware/build/ten64/debug/fip.bin to bl3 ...
Unlocking mcfirmware ...
Erasing mcfirmware ...
Unlocking mcfirmware ...

Writing from qoriq-mc-binary/ls1088a/mc_10.20.4_ls1088a.itb to mcfirmware ...                                                                                                   
Unlocking dpl ...
Erasing dpl ...
Unlocking dpl ...

Writing from dpaa2/dpl/eth-dpl-all.dtb to dpl ...
Unlocking dpc ...
Erasing dpc ...
Unlocking dpc ...

Writing from dpaa2/dpc/dpc.0x1D-0x0D.dtb to dpc ...
Unlocking devicetree ...
Erasing devicetree ...
Unlocking devicetree ...

Writing from dtb/fsl-ls1088a-ten64.dtb to devicetree ...
Unlocking recovery ...
Erasing recovery ...
Unlocking recovery ...

Writing from recovery.itb to recovery ...
ubiformat: mtd9 (nand), size 113246208 bytes (108.0 MiB), 864 eraseblocks of 131                                                                                                072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 863 -- 100 % complete
ubiformat: 864 eraseblocks have valid erase counter, mean value is 6
ubiformat: flashing eraseblock 250 -- 100 % complete
ubiformat: formatting eraseblock 863 -- 100 % complete
Do you wish to reset the U-Boot environment to default? [y/n] y
Unlocking ubootenv ...
Erasing ubootenv ...
Warning: Bad CRC, using default environment
1 Like

Oops, the download URL I posted pointed to the previous release - it has been updated.

This version has a U-Boot version of:

U-Boot 2020.07-rc1-gb47b96d4 (Jun 22 2021 - 04:09:02 +0000)

The recovery firmware does not have an embedded version as such (which we will try and fix), but can be identified by:

# uname -a
Linux recoveryXXXXXXXXXX 5.4.61 #0 SMP PREEMPT Tue May 4 06:47:13 2021 aarch64 GNU/Linux
# opkg info muvirt-appstore
Package: muvirt-appstore
Version: 0.4.2-1
...

Firmware v0.8.6 is out, this rolls in two updates to the recovery firmware and a prompt to reset the U-Boot environment from ./flash.sh:

Do you wish to reset the U-Boot environment to default? [y/n] y
Unlocking ubootenv ...
Erasing ubootenv ...
Warning: Bad CRC, using default environment

(This actually configures U-Boot to reset and save the environment on the next boot)

There are no changes to the other firmware components such as U-Boot or ATF

U-Boot version:

U-Boot 2020.07-rc1-gb47b96d4 (Jun 25 2021 - 01:09:32 +0000)

Recovery is now versioned as well:

 -----------------------------------------------------
 ten64-recovery v0.8.6, 326919195_2021-06-24
 -----------------------------------------------------

Firmware v0.8.7 updates the recovery firmware, integrating a fix to the real time clock driver where the ‘oscillator stop’ flag was not correctly cleared when the clock was updated from a ‘invalid’ state (e.g the first time you powered on a Ten64 out of the box).

There should be no need to run date reset in U-Boot as has been advised for the previous two releases.

There are no other changes.

U-Boot version:

U-Boot 2020.07-rc1-gb47b96d4 (Jul 07 2021 - 00:43:32 +0000)

Recovery version:

 -----------------------------------------------------
 ten64-recovery v0.8.7, 332215009_2021-07-06
 -----------------------------------------------------

There is some work in the background to update U-Boot to 21.07, which should improve distribution compatibility (e.g by implementing the EFI secure boot protocol). I will try to upstream as much as possible in the process.