工具与软件:
您好、
我使用的是运行 Linux 内核4.14的 TI 处理器 AM3352。 我遇到了一个问题、即 CPSW 驱动程序始终报告默认 MAC 地址70:00:00:00:00:00、而不是从硬件(电子保险丝/EEPROM)或器件树读取正确的地址。 下面是启动过程中的一些日志以及我当前的 dts 代码段。 如需获取有关如何正确配置或检索 MAC 地址的指导、我们将不胜感激。
内核日志:
[10.222944] cpsw 4a100000.ethernet:no slave[1] phy_id、phy-handle 或 fixed-link 属性
[10.231774] cpsw 4a100000.ethernet:DT 中缺少 DUAL_EMAC_res_vlan。
[10.238601] cpsw 4a100000.ethernet:将2用作1个从器件的保留 VLAN
[ 10.245655] cpsw 4a100000.Ethernet:Detected MACID = 70:00:00:00:00:00
[10.252678] cpsw 4a100000.ethernet:initialized cpsw ale version 1.4.
[10.259379] cpsw 4a100000.以太网:ALE 表大小1024
[10.264932] cpsw 4a100000.ethernet:cpts:overflow check period 1250 (Jiffies)
[ 10.273691] cpsw 4a100000.ethernet:cpsw:detected MACID = 70:00:00:00:00
[40.854687] net eth0:初始化 cpsw 版本1.12 (0)
[43.099783] cpsw 4a100000.Ethernet eth0:链路已接通- 100Mbps/全-流控制已关闭
[47.194398] cpsw 4a100000.ethernet eth0:链路断开
[49.242399] cpsw 4a100000.Ethernet eth0:链路接通- 10Mbps/全-流量控制关闭
DTS:
MAC:以太网@4a100000{
compatible ="ti、am335x-cpsw"、"ti、cpsw";
ti、hwmods ="cpgmac0";
Clocks =<&cpsw_125mhz_gclk>、<&cpsw_cpts_rft_clk>;
时钟名称="FOCK"、"CPT";
cpdma_channels =<8>;
ALE_ENTRIES =<1024>;
bd_ram_size =<0x2000>;
MAC_CONTROL =<0x20>;
从器件=<2>;
ACTIVE_SLAVE =<0>;
cpts_clock_mult =<0x80000000>;
CPTS_CLOCK_SHIFT =<29>;
REG =<0x4a100000 0x800
0x4a101200 0x100>;
#address-cells =<1>;
#size-cells =<1>;
interrupts =<40 41 42 43>;
范围;
SYSCON =<&SCM_conf>;
状态="已禁用";
Davinci_MDIO:MDIO@4a101000{
兼容="ti、cpsw-MDIO"、"ti、davinci_mdio";
#address-cells =<1>;
#size-cells =<0>;
TI、hwmods ="davinci_mdio";
bus_freq =<1000000>;
REG =<0x4a101000 0x100>;
状态="已禁用";
};
cpsw_emac0:从器件@4a100200{
MAC-ADDRESS =[ 00 00 00 00 00 ];
};
cpsw_emac1:从器件@4a100300{
MAC-ADDRESS =[ 00 00 00 00 00 ];
};
PHY_SEL:cpsw-phy-sel@44e10650{
兼容="ti、am3352-cpsw-phy-sel";
寄存器=<0x44e10650 0x4>;
reg-names ="gmii-sel";
};
};
Mac (&M){
pinctrl-names ="默认值"、"睡眠";
//pinctrl-0 =<&cpsw_default>;
//pinctrl-1 =<&cpsw_sleep>;
DUAL_EMAC =<1>;
状态="正常";
};
cpsw_emac0{
phy_id =<&Davinci_MDIO>、<0>;
PHY 模式="RGMII";
PHY-Handle =<&vsc8531_0>;
dual_emac_res_vlan =<0>;
};
&Davinci_MDIO{
pinctrl-names ="默认值"、"睡眠";
pinctrl-0 =<&MDIO_PINS_DEFAULT>;
//pinctrl-1 =<&MDIO_PINS_SLEEP>;
状态="正常";
vsc8531_0:以太网-phy@0{
REG =<0>;
compatible="以太网-phy-id0007.0572";
};
};
硬件设计:
