Skip to content

Highly Anticipated and/or Frequently Asked Questions

Common issues

  1. Shortly after the kernel loads, the console turns to garbage (also PCI Express devices fail to enumerate)

    This occurs when the device tree passed to the kernel has not been 'fixed up' by U-Boot. On the LS1088 the fixup process sets up clocks, IOMMU and PCIe streams and other runtime properties. These are dependent on what peripherals are installed, so cannot be statically set in the device tree.

    In our U-Boot configuration this is performed by the setup_distroboot_efi command before the main boot sequence:

    setup_distroboot_efi=sf read 0x80001000 0x580000 0x40000 &&
      fsl_mc lazyapply dpl 0x80001000;  sf read $fdt_addr_r 0x600000 0x40000 &&
      fdt addr $fdt_addr_r &&
      fdt resize 10000 &&
      fdt rm /soc/spi &&
      fdt boardsetup
    bootcmd=run setup_distroboot_efi; run distro_bootcmd
    

    Due to issues with stream ID's not being set correctly on successive fixup invocations, the fixup handler for the Ten64 board will only apply fixups once (e.g when 'fdt boardsetup' is called).

    If the device tree passed to the kernel is not the same as the fixed copy, the same situation will arise.

  2. When booting something using Kernel 5.1 or later the boot fails with IOMMU fault messages

    Add the arm-smmu.disable_bypass=n parameter to the kernel command line. This is a temporary fix and hopefully the need to do this will disappear in the near future.

    See the Distributions and Kernel page for more information.

Boot

  1. How do I change the default boot order in U-Boot (booting from USB or SD instead of NVMe etc.)

    Change the boot_targets environment variable in U-Boot:

      => print boot_targets
      boot_targets=nvme0 mmc0 usb0 scsi0 dhcp
      

      => setenv boot_targets 'usb0 nvme0 mmc0 scsi0 dhcp'
      => saveenv
      Saving Environment to SPI Flash... Erasing SPI flash...Writing to SPI flash...done
      OK
      

Software

  1. Does FreeBSD (and related distributions, pfsense, FreeNAS etc) run on the Ten64?

    Not natively, unfortunately. FreeBSD does not have any of the drivers for NXP's DPAA2, and we estimate this will take a significant amount of work to implement. On the plus side, NXP has dual-licensed their driver code with the BSD license so any effort won't need to start from scratch. We (Traverse) would certainly like to see FreeBSD running on NXP DPAA2 platforms and would consider funding such an effort.

    FreeBSD 12 and later do work as an ARM Virtual Machine so there is a path to run FreeBSD if you need to.

    Update FreeBSD 13 snapshots will boot on the Ten64, but only from a USB drive. There is no support for the Layerscape PCIe controller and DPAA2 networking at this time.

    See boot log/dmesg.

  2. Are there any 'binary blobs' needed for hardware on the Ten64?

    Yes, the DPAA2 hardware (Ethernet ports and some crypto acceleration functions) require the "management complex" firmware to be loaded. This runs on a microcontroller code inside the LS1088 - not the Cortex-A53's.

    The management complex firmware is loaded by U-Boot, just before hitting the command prompt (or default bootcmd). We do NOT expect distributions to ship this as part of their firmware repository.