Skip to content

# 2.5. ETH的配置

Note: Acore ETH支持SGMII模式

## 2.5.1. pinctrl

dts配置如下：

SGMII其他pin保持默认配置即可，仅需要配置mdio和mdc：

    peri_emac: peri_emac_func {
            pinmux {
                    function = "peri_emac";
                    pins = "peri_emac_mdc_hsi0", "peri_emac_mdio_hsi0";
            };
            pinconf {
                    pins = "peri_emac_mdc_hsi0", "peri_emac_mdio_hsi0";
                    drive-strength = <8>;
            };
    };

pinmux：配置pin的管脚复用；

pinconf：配置电气属性，主要关注drive-strength，drive-strength表示驱动能力，需要结合信号质量测试确定；

## 2.5.2. Phy

dts如下：

确保在phy使用前完成了复位，并处于解复位状态。

uboot dts配置如下：

    eth0: eth0 {
            status = "disabled";
            compatible = "hobot,j6-gmac";
            phy-handle = <&phy1>;
            phy-mode = "sgmii";
            pinctrl-names = "default";
            pinctrl-0 = <&peri_emac>;
            #address-cells = <1>;
            #size-cells = <0>;
            phy1: phy@1 {
                    compatible = "ethernet-phy-ieee802.3-c22";
                    reg = <0xe>;
            };
    };

phy-mode：phy interface模式；

pinctrl-names：pinctrl选择的配置组名，此处表示使用默认配置；

pinctrl-0：pinctrl的引用节点；

compatible: phy的匹配类型，支持C22/C45；

reg：表示phy的mdio地址；

kernel dts配置如下：

    ethernet0: ethernet@0x330f0000 {
            status = "okay";
            compatible = "hobot,hobot_gmac";
            phy-handle = <&phy1>;
            phy-mode = "sgmii";
            hobot,managed = "sgmii-autoneg";
            pinctrl-names = "default";
            pinctrl-0 = <&peri_emac>;
            mdio {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    phy1: phy@1 {
                            compatible = "nxp,tja1120","ethernet-phy-ieee802.3-c45";
                            reg = <0x3>;
                    };
            };
    };

phy-mode：phy interface模式；

hobot,managed：外接PHY时xpcs的管理模式；

pinctrl-names：pinctrl选择的配置组名，此处表示使用默认配置；

pinctrl-0：pinctrl的引用节点；

compatible: phy的匹配类型，支持C22/C45；

reg：表示phy的mdio地址；

## 2.5.3. switch

使用前请确保switch的port口模式配置正确。

    ethernet1: ethernet@0x33100000 {
            status = "okay";
            compatible = "hobot,hobot_gmac";
            fixed-link {
                    speed = <1000>;
                    full-duplex;
            };
    };

speed：固定速率1000M；

full-duplex: 表示全双工；