Ten64
It's a networking-focused board based on eight-core NXP’s LS1088A SoC with individual network controllers per 8 Ethernet gigabit ports and 2 SFP+ cages. Traverse Technologies (and Mathew McBride personally) donated the board itself to support DPAA2 drivers development and consulted me extensively. Thank you There's a great documentation prepared for Ten64 as well.
Status
# date && uname -apKU Mon Nov 7 10:41:42 CET 2022 FreeBSD guardian 14.0-CURRENT FreeBSD 14.0-CURRENT #5 main-n258621-204a5f5800a0: Sun Oct 16 12:15:04 CEST 2022 root@guardian:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64 aarch64 1400072 1400068
# dmesg | grep "no driver" | grep -v "disabled" simplebus0: <crypto@8000000> mem 0x8000000-0x80fffff irq 24 compat fsl,sec-v5.0 (no driver attached) simplebus0: <iommu@5000000> mem 0x5000000-0x57fffff irq 28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103 compat arm,mmu-500 (no driver attached) simplebus0: <console@8340020> mem 0x8340020-0x8340021 compat fsl,dpaa2-console (no driver attached) simplebus0: <ptp-timer@8b95000> mem 0x8b95000-0x8b950ff compat fsl,dpaa2-ptp (no driver attached) simplebus0: <wdt@c000000> mem 0xc000000-0xc000fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c010000> mem 0xc010000-0xc010fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c020000> mem 0xc020000-0xc020fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c030000> mem 0xc030000-0xc030fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c100000> mem 0xc100000-0xc100fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c110000> mem 0xc110000-0xc110fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c120000> mem 0xc120000-0xc120fff compat arm,sp805-wdt (no driver attached) simplebus0: <wdt@c130000> mem 0xc130000-0xc130fff compat arm,sp805-wdt (no driver attached) simplebus0: <power-controller@1e34040> mem 0x1e34040-0x1e34057 compat fsl,ls1088a-rcpm (no driver attached) simplebus0: <timer@2800000> mem 0x2800000-0x280ffff irq 104 compat fsl,ls1088a-ftm-alarm (no driver attached) ofwbus0: <buttons> compat gpio-keys (no driver attached) ofwbus0: <dpmac2_sfp> compat sff,sfp (no driver attached) ofwbus0: <dpmac1_sfp> compat sff,sfp (no driver attached)
SFP topology
Example from fsl-ls1088a-ten64.dts and fsl-ls1088a.dtsi:
fsl_mc: fsl-mc@80c000000 { compatible = "fsl,qoriq-mc"; ... dpmacs { ... /* XG1 - Upper SFP */ dpmac1: ethernet@1 { compatible = "fsl,qoriq-mc-dpmac"; reg = <1>; sfp = <&sfp_xg1>; pcs-handle = <&pcs1>; phy-connection-type = "10gbase-r"; managed = "in-band-status"; }; ... }; }; pcs_mdio1: mdio@8c07000 { compatible = "fsl,fman-memac-mdio"; reg = <0x0 0x8c07000 0x0 0x1000>; little-endian; #address-cells = <1>; #size-cells = <0>; pcs1: ethernet-phy@0 { reg = <0>; }; }; sfp_xg1: dpmac1-sfp { compatible = "sff,sfp"; i2c-bus = <&sfpupper_i2c>; tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>; tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>; los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>; maximum-power-milliwatt = <2000>; }; &i2c3 { i2c-switch@70 { compatible = "nxp,pca9540"; #address-cells = <1>; #size-cells = <0>; reg = <0x70>; sfpupper_i2c: i2c@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; }; }; }; &i2c0 { sfpgpio: gpio@76 { compatible = "ti,tca9539"; reg = <0x76>; #gpio-cells = <2>; gpio-controller; admin_led_lower { gpio-hog; gpios = <13 GPIO_ACTIVE_HIGH>; output-low; }; }; };
PHY topology
Example from fsl-ls1088a-ten64.dts and fsl-ls1088a.dtsi:
fsl_mc: fsl-mc@80c000000 { compatible = "fsl,qoriq-mc"; ... dpmacs { ... dpmac7: ethernet@7 { compatible = "fsl,qoriq-mc-dpmac"; reg = <7>; phy-handle = <&mdio1_phy1>; phy-connection-type = "qsgmii"; pcs-handle = <&pcs7_0>; managed = "in-band-status"; }; ... }; }; pcs_mdio7: mdio@8c1f000 { compatible = "fsl,fman-memac-mdio"; reg = <0x0 0x8c1f000 0x0 0x1000>; little-endian; #address-cells = <1>; #size-cells = <0>; status = "disabled"; pcs7_0: ethernet-phy@0 { reg = <0>; }; ... }; emdio1: mdio@8b96000 { compatible = "fsl,fman-memac-mdio"; reg = <0x0 0x8b96000 0x0 0x1000>; little-endian; #address-cells = <1>; #size-cells = <0>; clock-frequency = <2500000>; clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(1)>; ... mdio1_phy1: ethernet-phy@1c { reg = <0x1c>; }; };