Перейти к содержимому

Gigabit Ethernet Bring-up on a Custom i.MX Board: RGMII Schematic, U-Boot, Linux & Link-Up | 88E1512

BSP Blueprint

0:00 / 0:00

Gigabit Ethernet Bring-up on a Custom i.MX Board: RGMII Schematic, U-Boot, Linux & Link-Up | 88E1512

46 просмотров · 5 дней назад
BSP Blueprint
95 подписчиков
46 просмотров · 5 дней назад
From schematic to "Link is Up - 1Gbps/Full": the complete Gigabit Ethernet bring-up of a custom i.MX board with a Marvell 88E1512 PHY. We follow the whole path. The i.MX ENET/FEC MAC connects over RGMII to the 88E1512 PHY, then through the magnetics and the RJ45, over a Cat 5e cable to a test PC. We bring the port up in U-Boot and Linux, then go step by step through what happens on the wire before the link comes up. What you'll learn: ✔ All 12 RGMII signals, and how DDR clocking gives 1 Gbps from a 125 MHz clock ✔ The #1 RGMII bug: the 2 ns clock delay, and when to use phy-mode = "rgmii-id" ✔ MDC/MDIO wiring, the pull-up, the Clause 22 frame and PHY address strapping ✔ 25 MHz reference clock, reset timing and strap latching ✔ MDI pairs, isolation magnetics, Bob Smith termination and the T568B RJ45 pinout ✔ Device tree, pinctrl and defconfig for U-Boot, plus the Linux kernel config ✔ U-Boot checks: mii info, mii read, decoding BMSR 0x796D, ping ✔ Linux checks: PHY driver matching, ip link, ethtool, ping ✔ Auto-negotiation: Fast Link Pulses, Link Code Words, Auto MDI/MDI-X, next pages ✔ Master/slave, loop timing and 1000BASE-T training (PAM-5, echo cancellation) ✔ How phylib and fec_enet_adjust_link() switch the carrier on ✔ A debug checklist for the most common Ethernet bring-up failures Chapters 0:00 Introduction 0:22 System overview 1:20 RGMII signals 2:39 RGMII clock delay 3:41 MDIO management bus 4:53 Clock, reset and straps 5:38 MDI, magnetics and RJ45 6:52 U-Boot: device tree and config 7:35 U-Boot: console checks 8:12 Linux bring-up 8:51 How the link comes up 9:29 Auto-negotiation: fast link pulses 10:16 Resolution: speed and master/slave 10:44 1000BASE-T training 11:22 Link up! 12:18 Debug checklist 13:03 Recap Note: pin names, GPIOs and addresses use the i.MX8M Mini as an example. Always check your own SoC reference manual and the Marvell 88E1512 datasheet and reference design. Which board are you bringing up next? Tell me in the comments! #EmbeddedLinux #Ethernet #RGMII #UBoot #DeviceTree #iMX #BSP #LinuxKernel