What's new - December 2021

Hello everyone! We have been busy at Traverse working on variants of Ten64 for OEM customers, but in the meantime we continue to develop on the software/firmware side.

Latest OpenWrt and muvirt
OpenWrt 21.02.1+
muvirt
OpenWrt master (preview for upstream submission)

An issue was found in the sysupgrade script upgrading between ext4 images with different partition setups, causing the configuration to be lost in the upgrade. All these images contain a fix for this issue.

New: Setup scripts for Qualcomm 5G (MHI) modems

Newer Qualcomm chipset (e.g SDX55) modems have a PCI Express mode, which is important as USB3 is starting to be a bottleneck for this application (both throughput and overheads of USB itself)

The PCI Express mode is based on Qualcomm’s modem host interface (MHI) which provides an abstraction between “internal” (e.g Snapdragon smartphone SoCs) and “external” use cases (PCIe) and is also used by ath11k WiFi 6 cards.

These modems require slightly different setup than USB (e.g some modems won’t boot unless a MHI driver takes control quickly, some are ‘flashless’), so we have posted some scripts to help. Future Ten64 variants will include tweaks to help these modems work better.

At the moment, we don’t recommend using modems in PCIe/MHI mode unless you absolutely need the performance. The driver stack is quite new and I am aware of quite a few issues on arm64 that need to be debugged. There isn’t any support for these modems in OpenWrt yet, though we want to backport them to our 21.02 branch once the drivers stabilize.

Kernel changes of note

Kernel 5.16 finally includes the SFP mode setting support for DPAA2, so once distributions adopt it, it will no longer be necessary to run SFPs in legacy mode.

Also included in 5.16 is (optional) interrupt coalescing which can improve performance at very high packet rates.

I am aware of an issue in recent kernel versions that causes reboots to hang. The issue has been narrowed down to a potential race issue when “unplugging” DPAA2 objects from the drivers and futher debugging will be done in the new year. In the mean time, if you experience reboot hang issues, you should switch to legacy network management mode

VyOS port refresh
VyOS is an open source router and firewall OS which is a descendant of the Vyatta product line. It’s feature set puts it closer to major commercial products as opposed to OS’es like OpenWrt.

Just prior to Ten64 going into production, I managed to port VyOS to ARM64/EFI. There appears to be renewed interest in this port recently, so I have refreshed the build scripts. If you are using this please speak up, it would be good to know how widely it’s being used.

Upstreaming status

  • A basic device tree for Ten64 was submitted and included in kernel 5.15, alongside other bits known to be missing for the LS1088A.
    The main intention of this was to provide an upstream for u-boot and other projects that want it to be there.
    This intentionally excluded some of the sensor devices whose drivers haven’t been submitted yet. After 5.15 was released an issue was discovered both in this version and our firmware releases with a redundant gpio-keys declaration. This fix is now in the 5.15 stable tree.
  • A lot of work has been done, and continues to be done on getting U-Boot up to the most recent version. Feedback was provided for an initial patch and an updated submission is coming soon. A preview branch for U-Boot 2022.01 can be found in u-boot/ten64_2021_12
  • A preview of OpenWrt for upstream submission is available at owrt_master_2021-12-10. This will likely be submitted once we come back from our summer break.

Thanks for all your support! We continue to invest in the Ten64 platform and we hope to be able to bring some of the innovations from our OEM variants back into the retail versions.

4 Likes

Nice work this with all the work on the ten64, looking forward to next year :slight_smile:

Thanks Matt! A quick question: Is an official patch set for 5.15, with those intentional exclusions, in the works? Would be nice to finally land an LTS kernel.

The missing ones from the device tree are just I2C sensor drivers, so far these have lived out of tree in traverse-sensors and been included with our OpenWrt and Debian kernel packages.

The fan controller (EMC230x) is likely to be the first to be submitted for upstream, the rest need a bit more code cleanup first.

I’m not aware of any other major out of tree patches floating around for >=5.15 except for special purposes like MHI bus or VFIO.

1 Like

I am using the VyOS port - I have forked that version, but ran into a couple of issues. It works, but throughput / jitter is not great for me at the moment.
I saw there is a proposal to have “flavours” for the vyos-build repo, so I am thinking of holding off until that work is completed to do an overhaul though - it would make the patching a lot easier, along with an apt repo with the packages currently built by your scripts each time.

I just bought a Ten64 because hardware-wise it seems exactly like what I want.
I will be using the VyOS port, as that is what I have experience using.

EDIT: I am also wondering if all the needed kernel patches are already applied to the VyOS port? Or is it just a stuck VyOS built for ARM64?