Highly Anticipated and/or Frequently Asked Questions¶
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_eficommand 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.
When booting something using Kernel 5.1 or later the boot fails with IOMMU fault messages
arm-smmu.disable_bypass=nparameter to the kernel command line. This is a temporary fix and hopefully the need to do this will disappear in the near future.
How do I change the default boot order in U-Boot (booting from USB or SD instead of NVMe etc.)
boot_targetsenvironment 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
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.
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.