Ten64
The Ten64 networking platform is a product by Traverse Technologies and they kindly provided me with a full system. It's a NXP LS1088a based platform featuring DPAA2 (FreeBSD driver development) support with 8xGE + 2xSFP+, USB3, multiple mPCIe slots, .. See their excellent documentation for all the details.
insert nice photos of the machine here
Traverse Technologies recently published a FreeBSD preview for Ten64 image.
I am just jotting down my notes regarding FreeBSD support here.
Current status (20220921)
- FDT support for MDIO for GE0-7 (copper ports) was developed for DmitrySalychev's DPAA2 driver DPAA2: FDT MDIO support #16 pull request
- FreeBSD is lacking (generic) SFP+ FDT support currently; to be added another day.
- Support for the PCA9540 I2C MUX for the SFP+s was done:
Review D35701commit to main and commit to stable/13.
- LS1088a clockgen support was developed
FreeBSD review D35617commit to main commit to stable/13 and helps:- SD card probes properly. I tested with MMCCAM and reading the SD card was fine.
- Mathew McBride's ds1307 extensions for the Epson RX-8035 is out-of-tree work in progress. Compiling the
device ds1307into the kernel or loading the module from loader seems to make things happy.- If loaded as module from multi-user we do not get the time set even if manually triggering a
sysctl debug.clock_do_io=1. Reason for this is thatvfs_moutroot()is responsible to have the clock set and callsCLOCK_GETTIME()indirectly so that log files or other timestamps do not appear to go backwards (if no RTC is found it'll use the vfs root node date?). Look for theinittodr()call. - There seems to be still an issue restoring hours; I lost 8 of them over night … to be investigated. Matt might have solved this.
- SSD seems to work fine
- USB3 and PCIe (M.2) put something in each and was detected flawlessly.
- We need more I2C mux bits for SFP and Admin LED from what I can see. Should be quick to do.
- First one done (see PCA9540 above)
- Second one (ti,tca9539) here
Review D35702commit to main commit to stable/13 gives you Admin led support (and other bits); need to compile into the kernel or load from loader it seems … try this:sh -c 'while : ; do echo "0" > /dev/led/ten64:admin && sleep 1 && echo "1" >> /dev/led/ten64:admin && sleep 3; done'will turn the LED off for 1s and then on for 3s. Look at led(4) for more ideas like morse …
- Optional and only nice to have would be proper VSC8514 mii support.
I need to go and see what else then. soctherm timeouts probably? That's WIP now. Review D35759 limits the number of sites to the values found in device-tree for the SoC as a first step. Next is to deal with the differences of the SoCs, Review D35764. commit 1 to main and commit 2 to main, commit to stable/13, commit to stable/13.
hw.temperature.core-cluster: 58.0C hw.temperature.soc: 57.0C root@ten64-01:~ # sysctl hw.temperature hw.temperature.core-cluster: 55.0C hw.temperature.soc: 55.0C
uart0: console (115131,n,8,1) - where does this odd value come from?
Here's a list of device compat strings, not disabled, with no driver attached:
1 arm,mmu-500 (no driver attached) -- iommu 8 arm,sp805-wdt (no driver attached) 1 fsl,dpaa2-console (no driver attached) -- I got code for DDB for this already 1 fsl,dpaa2-ptp (no driver attached) 1 fsl,ls1088a-ftm-alarm (no driver attached) 1 fsl,ls1088a-rcpm (no driver attached) 1 fsl,sec-v5.0 (no driver attached) 1 gpio-keys (no driver attached)
How to switch between MDIO and FIXED for interfaces
If you want to make use of link-state and media information and be able to set it for the 8 GE ports you want to follow the documentation and do the following in the U-Boot console once:
env delete gbemode saveenv reset
You do not want to do the same for sfpmode just yet until FreeBSD grows FDT/SFP support.
How to netboot
I am not sure what the proper method is but I ended up adjusting the U-Boot menu and added a run setup_distroboot_efi && before the run dhcp which makes sure all the bits needed for DPAA2 are loaded.