Ten64

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+ support

I might need to program a simple driver (see drivers/net/phy/sfp.c from Linux for details) for "sff,sfp" node to setup state polling, perform an initialization of the connected module, gather I2C/GPIO handles before implementing SIOCGI2C ioctl for dpaa2_ni. This is how one of the DPMACs connected to the SFP+ modules is described in the device tree of fsl-ls1088a-ten64.dts:

dpmac1: ethernet@1 {
        compatible = "fsl,qoriq-mc-dpmac";
        reg = <1>;
};

/* XG1 - Upper SFP */
&dpmac1 {
        sfp = <&sfp_xg1>;
        pcs-handle = <&pcs1>;
        phy-connection-type = "10gbase-r";
        managed = "in-band-status";
};

SFP and GPIO nodes look like:

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;
                };
        };
};

DmitrySalychev/TraverseTen64 (last edited 2022-11-18T08:59:04+0000 by DmitrySalychev)