rmttt
2024年1月25日 10時20分
お世話になります。
ENET_QOSと接続されているKSZ9131RNXのピン割り当てについてご教授いただけますでしょうか。
知りたい理由としては、M7コアでENET_QOSを使って通信を行いたいためです。
① 以下で合っていますか?(armadillo_iotg_g4.dtsを参考)
IOMUXC_ENET_MDC_ENET_QOS_MDC - MDC
IOMUXC_ENET_MDIO_ENET_QOS_MDIO - MDIO
IOMUXC_ENET_RD0_ENET_QOS_RGMII_RD0 - RXD0
IOMUXC_ENET_RD1_ENET_QOS_RGMII_RD1 - RXD1
IOMUXC_ENET_RD2_ENET_QOS_RGMII_RD2 - RXD2
IOMUXC_ENET_RD3_ENET_QOS_RGMII_RD3 - RXD3
IOMUXC_ENET_RX_CTL_ENET_QOS_RGMII_RX_CTL - RX_CTL
IOMUXC_ENET_RXC_CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK - RXC
IOMUXC_ENET_TD0_ENET_QOS_RGMII_TD0 - TXD0
IOMUXC_ENET_TD1_ENET_QOS_RGMII_TD1 - TXD1
IOMUXC_ENET_TD2_ENET_QOS_RGMII_TD2 - TXD2
IOMUXC_ENET_TD3_ENET_QOS_RGMII_TD3 - TXD3
IOMUXC_ENET_TX_CTL_ENET_QOS_RGMII_TX_CTL - TX_CTL
IOMUXC_ENET_TXC_CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK - TXC
IOMUXC_SAI2_RXC_GPIO4_IO22 - RESET_N
IOMUXC_SAI1_RXFS_GPIO4_IO00 - LED_MODE
② 他に動かすために必要なピンはありますか?
コメント
rmttt
at_dominique.m…
rmtttさん、
マルティネです。
> PHYAD0~2は、それぞれpull-upかpull-downのどちらか教えてもらいますか?
>
> アクセスするためにPHYアドレスが必要になるため、こちらの情報が必要になります。
ひとまずその点だけを返事させてください。
アドレスは armadillo_iotg_g4.dts のとおりに 3 です。
u-boot で確認できます:
u-boot=> mii device MII devices: 'FEC0' 'ethernet@30bf0000' Current device: 'FEC0' # eqos の方に切り替え u-boot=> mii device ethernet@30bf0000 u-boot=> mii device MII devices: 'FEC0' 'ethernet@30bf0000' Current device: 'ethernet@30bf0000' u-boot=> mii info 3 PHY 0x03: OUI = 0x0885, Model = 0x24, Rev = 0x02, 10baseT, HDX # phy id 確認:0022, 164X で KSZ9131 となります。 u-boot=> mii read 3 2-3 addr=03 reg=02 data=0022 addr=03 reg=03 data=1642
(まだ必要でしたら PHYAD の設定も確認できますので、言ってください)
よろしくお願いします。
rmttt
at_dominique.m…
rmtttさん
> > アドレスは armadillo_iotg_g4.dts のとおりに 3 です。
> ちなみに参考までにどこに書かれていたのでしょうか、気づきませんでした。
分かりにくいですが、phy のアドレスは「reg = <3>
」で設定してあります (&eqos
の phy-handle
である mdio { eqosphy0: eqos-phy@3 {}}
の方の reg です;ものすごく分かりにくいですが、eqosphy1
は Armadillo X2 の場合(厳密では phy id の確認した際)に u-boot で自動的に切り替えていますので Armadillo IoT G4 で無視していいです)
(eqos-phy@3 の @3 部分も phy のアドレスですが、デバグ用だけで使われてません)
確認してみたら、reg の設定が無くても linux が自動的にデバイスを認識すると思いますが、その reg で device tree の情報をつなぎます:
drivers/net/phy/mdio_bus.c: /* Walk the list of subnodes of a mdio bus and look for a node that * matches the mdio device's address with its 'reg' property. If * found, set the of_node pointer for the mdio device. This allows * auto-probed phy devices to be supplied with information passed in * via DT. */
マニアックな話ですので、簡単に「dts のとおり」を言っておいて失礼しました。
また何かあれば遠慮なく聞いてください。
よろしくお願いします。
at_dominique.m…
2024年1月26日 17時37分
rmtttさん
お世話になっています、
マルティネです。
> ENET_QOSと接続されているKSZ9131RNXのピン割り当てについてご教授いただけますでしょうか。
> 知りたい理由としては、M7コアでENET_QOSを使って通信を行いたいためです。
> ① 以下で合っていますか?(armadillo_iotg_g4.dtsを参考)
はい、あっています。
> IOMUXC_SAI1_RXFS_GPIO4_IO00 - LED_MODE
(細かいですが、ここは mode というより、左の LED はこのピンと phy の LED ピンの差で色が決まりますので、これを設定することで 1gps (緑)と 100mbps (オレンジ)の設定ができます。phy の LED制御の設定は imx-boot の uboot-imx/board/atmark-techno/armadillo_x2/board.c の ksz9131_setup_led で確認できます。)
> ② 他に動かすために必要なピンはありますか?
u-boot 側で操作していますので M7 コアでも不要ですが、参考までに以下のピンも関係しています:
SAI1_TXD6__GPIO4_IO18 -> EQOS 用の regulator ON
SAI2_RXFS__GPIO4_IO21 -> interrupt (INT_N, linux のドライバで使用されていないようにみえます)
よろしくお願いします。