您好, 我有一个MT7620主板,并且想要使用RGMII端口,在数据表自带的主板上,它显示了我发布的图表。红圈区。显示RGMII以某种方式进入交换机端口,根据我的理解,它是板上的LAN端口。
我的问题是如何启用RGMII,并将其连接到我的设备(我应连接的主板上的哪个端口)。它是一个自动配置还是我需要为它做一些事情(例如,DTS)。
我是新手,所以请回答更多细节。如果我做不清楚的事,请问。谢谢
答案 0 :(得分:0)
已经过了几天,但没有人来回答,只是发布了我的问题。
我从实验室借一些机器,以便我可以检查船上的信号。我将电路板连接到互联网,将笔记本电脑连接到另一侧。并在浏览器上打开视频页面。所以在主板和我的笔记本电脑之间会有一些数据流。
我用机器检查电路板上显示的电路图上的引脚属于RGMII。但没有任何东西,没有信号出现。这意味着RGMII引脚默认不起作用。
所以我假设我需要编辑一些DTS来启用RGMII信号。但我现在不知道该怎么做。如果有人知道的话。请写下来。谢谢。
答案 1 :(得分:0)
我不确定您使用的是哪个板,但是是的,必须配置RGMII引脚。如果将PHY连接到微控制器,则需要指定TX和RX时钟以及其他数据引脚的协商速度。与此类似-
const IfxGeth_Eth_RgmiiPins Rgmiipins = {
//Set the reference clock
.txClk = &IfxGeth_TXCLK_P11_4_OUT ,
.txd0 = &IfxGeth_TXD0_P11_3_OUT ,
.txd1 = &IfxGeth_TXD1_P11_2_OUT ,
.txd2 = &IfxGeth_TXD2_P11_1_OUT ,
.txd3 = &IfxGeth_TXD3_P11_0_OUT ,
.txCtl = &IfxGeth_TXCTL_P11_6_OUT ,
.rxClk = &IfxGeth_RXCLKA_P11_12_IN ,
.rxd0 = &IfxGeth_RXD0A_P11_10_IN ,
.rxd1 = &IfxGeth_RXD1A_P11_9_IN ,
.rxd2 = &IfxGeth_RXD2A_P11_8_IN ,
.rxd3 = &IfxGeth_RXD3A_P11_7_IN ,
.rxCtl = &IfxGeth_RXCTLA_P11_11_IN ,
.mdc = &IfxGeth_MDC_P12_0_OUT ,
.mdio = &IfxGeth_MDIO_P12_1_INOUT ,
.grefClk = &IfxGeth_GREFCLK_P11_5_IN ,
};
现在,您说您正在将其连接到笔记本电脑。我没有完全理解您的问题,但是如果某个地方涉及Linux内核,那么您需要修改设备树。 Here是您可以开始的链接。这是一个示例,取自同一来源-
ethernet@e000b000 {
compatible = "cdns,zynq-gem", "cdns,gem";
reg = <0xe000b000 0x1000>;
status = "okay";
interrupts = <0x0 0x16 0x4>;
clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>;
clock-names = "pclk", "hclk", "tx_clk";
#address-cells = <0x1>;
#size-cells = <0x0>;
local-mac-address = [00 0a 35 00 00 00];
phy-mode = "rgmii-id";
xlnx,ptp-enet-clock = <0x6750918>;
phy-handle = <0x4>;
mdio {
#address-cells = <0x1>;
#size-cells = <0x0>;
phy@1 {
compatible = "realtek,RTL8211E";
device_type = "ethernet-phy";
reg = <0x1>;
linux,phandle = <0x4>;
phandle = <0x4>;
};
};
};
希望这会帮助您入门。