4. 通过GPIO/外围soc模拟MDIO时序的方式 4.1 控制器平台设备在设备树中的大致描述方式(不完全准确,主要描述匹配的规则) # linux-4.9.225\Documentation\devicetree\bindings\soc\fsl\cpm_qe\network.txt * MDIO Currently defined compatibles: fsl,pq1-fec-mdio (reg is same as first resource of FEC device)...
因为mdio中读取的phy只提供5bit的字节即最高11111 转成十进制就是31即0-31就是32个,但这是从读取的方式判断的,而mdio读取是依照phy芯片本身地址空间就5为。 为什么说reg地址最多32个 同样mdio中读取的reg只提供5bit的字节即最高11111 转成十进制就是31即0-31就是32个 PHY 芯片寄存器地址空间为 5 位,地址...
使用mii dump命令可以查看phy的0~5的6个寄存器(使用mii read命令不存在这个说法,所有寄存器都能看 )。因为我们的PHY地址是0x04,所以mii dump里的addr我们填0x04,reg部分我们从0填到5就能看全所有的寄存器了。现在是插着网线的,所以可以看到“(0004:0004) 1. 2 = 1 link status”表示link成功了,拔掉网线这里...
因为mdio中读取的phy只提供5bit的字节即最高11111 转成十进制就是31即0-31就是32个,但这是从读取的方式判断的,而mdio读取是依照phy芯片本身地址空间就5为。 为什么说reg地址最多32个 同样mdio中读取的reg只提供5bit的字节即最高11111 转成十进制就是31即0-31就是32个 PHY 芯片寄存器地址空间为 5 位,地址...
reg [4-1:0] state_c = 0,state_n = 0; wire idle2wait,wait2rd_phy,rd_phy2check,check2idle,check2wait; wire link_up; reg [16-1:0] rd_memory [0:1]; reg [ (17-1):0] ms_cnt =0 ; wire add_ms_cnt ; wire end_ms_cnt ; ...
reg=<0x0>;//PHY的地址 }; }; 3.2 控制器平台驱动代码走读 3.2.1 控制器平台驱动的注册 staticconststructof_device_idfs_enet_mdio_bb_match[]={ { .compatible="fsl,cpm2-mdio-bitbang",//匹配平台设备的名称 }, {}, }; MODULE_DEVICE_TABLE(of,fs_enet_mdio_bb_match); ...
[4 : 0] probe_out2.probe_out2(reg_addr),// output wire [4 : 0] probe_out3.probe_out3(data_phy)// output wire [15 : 0] probe_out4);//---//---mdc generate---//mdc should be 0~12.5MHz, the module is n*2 Dividemdio_clk #(.Divider(25))U_mdio_clk(.reset(reset),....
-> addr = of_mdio_parse_addr(&mdio->dev, child)// 从子节点的"reg"属性中获得PHY设备的地址 -> of_property_read_u32(np,"reg", &addr) ->if(addr <0) scanphys =true;continue;// 如果未获得子节点的"reg"属性,则在后面再启用扫描可能存在的PHY的,然后注册 ...
因为我们的PHY地址是0x04,所以mii dump里的addr我们填0x04,reg部分我们从0填到5就能看全所有的寄存器了。现在是插着网线的,所以可以看到“(0004:0004) 1. 2 = 1 link status”表示link成功了,拔掉网线这里就=0了((0004:0000) 1. 2 = 0 link status)。这也同时印证了PHY的MDIO是通的。还是那句话,...
-> addr = of_mdio_parse_addr(&mdio->dev, child)// 从子节点的"reg"属性中获得PHY设备的地址 -> of_property_read_u32(np,"reg", &addr) ->if(addr <0) scanphys =true;continue;// 如果未获得子节点的"reg"属性,则在后面再启用扫描可能存在的PHY的,然后注册 ...