< NET > PHY

本文介绍了网络适配器中的两个关键组件:PHY(物理层)和MAC(数据链路层)。PHY负责处理电信号与光信号,而MAC则进行寻址、数据帧构建等操作。两者通过PCI总线连接。

转自:

http://baike.baidu.com/view/727826.htm


PHY指物理层,OSI的最底层。 一般指与外部信号接口的芯片。 以太网PHY芯片 。小小的不起眼但又无处不在的网卡。如果在5年前,或许网卡与您无关,但在如今这网络的时代,无论是上网冲浪还是联网玩游戏,都离不开网卡,更何况,就算您不食人间烟火,多数主板上也会为您集成一块板载网卡。所以,对于想迈入网络之门的读者而言,先认识网卡,会让您在进行各种网络应用时更得心应手。

网卡工作在osi的最后两层,物理层(PHY)和数据链路层(MAC)。
物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。
数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。

很多网卡的这两个部分是做到一起的。
他们之间的关系是pci总线接mac总线,mac接phy,phy接网线

這是目前的nvethernet.ko (ether_linux.c) 我使用RTL8211F,RGMII Phy 並且設定了Device tree、GPIO、Pinmux 但目前有個狀況,只要我設定MDIO ENABLE (nvidia,enable-input = <TEGRA_PIN_ENABLE>;) 就會導致開機時,無法進入系統 我嘗試移除nveth這個driver,雖然可以進入系統,但是並沒有產生eth0,所以此driver是必要存在的 請幫我檢查為啥MDIO設定成ENABLE,就會導致我的RTL8211F Phy出問題 DTS: eth0:ethernet@2310000 { status = "okay"; phy-mode = "rgmii-id"; phy-handle = <&phy>; nvidia,mac-addr-idx = <0>; nvidia,max-platform-mtu = <16383>; nvidia,pause_frames = <1>; nvidia,phy-reset-gpio = <&gpio TEGRA234_MAIN_GPIO(G, 5) 0>; mdio { compatible = "nvidia,eqos-mdio"; #address-cells = <1>; #size-cells = <0>; phy: phy@1 { reg = <1>; nvidia,phy-rst-pdelay-msec = <224>; /* msec */ nvidia,phy-rst-duration-usec = <10000>; /* usec */ interrupt-parent = <&gpio>; interrupts = <TEGRA234_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>; }; }; }; nvpps { status = "okay"; compatible = "nvidia,tegra234-nvpps"; primary-emac = <&eth0>; sec-emac = <&eth0>; reg = <0x0 0xc6a0000 0x0 0x1000>; }; GPIO: gpio_main_default: default { gpio-input = < TEGRA234_MAIN_GPIO(G, 4) >; gpio-output-high = < TEGRA234_MAIN_GPIO(G, 5) >; }; Pinmux: (Tx、Rx、MDC/MDIO、Reset、Interrupt) eqos_txc_pe0 { nvidia,pins = "eqos_txc_pe0"; nvidia,function = "eqos"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; eqos_td0_pe1 { nvidia,pins = "eqos_td0_pe1"; nvidia,function = "eqos"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; eqos_td1_pe2 { nvidia,pins = "eqos_td1_pe2"; nvidia,function = "eqos"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; }; eqos_td2_pe3 { nvidia,pins = "eqos_td2_pe3"; nvidia,function = "eqos"; nv
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值