Just received your Ten64? Update your firmware

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)

Firmware can be downloaded from:

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:
cd /tmp && wget https://archive.traverse.com.au/pub/traverse/ls1088firmware/firmware-builds/branches/v0.8.5/324869464/firmware-v0.8.5-324869464.tar.xz
tar -Jxvf tar -Jxf firmware-v0.8.5-324869464.tar.xz
cd firmware-v0.8.5-324869464/
/tmp/firmware-v0.8.5-324869464# ./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 ubootenv ...
Erasing ubootenv ...
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 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 863 -- 100 % complete
ubiformat: 863 eraseblocks have valid erase counter, mean value is 2
ubiformat: 1 bad eraseblocks found, numbers: 491
ubiformat: flashing eraseblock 250 -- 100 % complete
ubiformat: formatting eraseblock 863 -- 100 % complete

On the first boot after reflash, interrupt boot (wait for “Hit any key to stop autoboot: X” in the console) and type:

date reset && saveenv
boot # To continue the normal sequence

This works around an issue with the oscillator stop flag not cleared + no 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
...