CHAPTER 01
1. PHY 전원, reset, strap, magnetics부터 확인한다
MDIO ID가 읽혀도 MDI analog 경로가 정상이라는 뜻은 아닙니다. rail, reference clock, reset sampling, PHY address strap, transformer center tap, termination과 connector pair를 독립된 경계로 기록합니다.
Rail 분리
PHY는 core, analog, I/O rail이 나뉠 수 있습니다. 각 rail의 허용 범위뿐 아니라 ramp 순서와 reset 해제 전 settling을 확인합니다.
Strap sampling
PHY address, RGMII delay, master/slave 같은 strap은 reset 해제 순간에 샘플됩니다. boot 후 핀 전압만 재면 실제 latch 값을 놓칠 수 있습니다.
Magnetics
center tap 전원 방식과 transformer ratio, Bob Smith termination은 PHY reference design과 일치해야 합니다. 부품 극성과 pair mapping도 확인합니다.
LED의 한계
LED는 vendor가 선택한 상태를 표시할 뿐입니다. link pulse, activity, speed 중 무엇을 의미하는지 LED control register와 함께 읽습니다.
레지스터와 관측값을 함께 읽는 표
| 항목 | 소유 블록 | 설정 또는 의미 | 정상 증거 | 실패 해석 |
|---|---|---|---|---|
| PHY ID 1/2 | MDIO/PHY digital | OUI와 model/revision | 예상 PHY ID가 반복해서 읽힘 | 0xffff는 pull-up/reset/address, 0x0000은 clock/reset/decode 우선 |
| BMCR reset | PHY control | software reset self-clear | 문서의 최대 시간 안에 0으로 복귀 | 계속 1이면 clock 또는 PHY 내부 reset 정지 |
| strap status | PHY vendor bank | latch된 address/interface/delay | 회로도 strap과 일치 | 외부 저항, pinmux drive, reset timing 충돌 |
| PLL/clock ready | PHY PMA | reference clock과 내부 PLL 상태 | reset 해제 뒤 안정적으로 ready | crystal load, clock mux, rail noise 확인 |
| cable diagnostic | PHY DSP | pair open/short와 대략적 거리 | 정상 cable에서 네 pair가 예상 상태 | connector, transformer, PCB pair 경계 |
| link/symbol counters | PHY PCS/PMA | signal detect와 symbol error | idle에서 안정되고 traffic과 일치 | analog margin 또는 clock 문제 |
증상에서 첫 실패 경계를 찾는 표
| 관측 증상 | 직전 통과 증거 | 우선 확인 | 반증 시험 | 판정 |
|---|---|---|---|---|
| MDIO가 전부 1 | MDC가 실제 toggle함 | MDIO pull-up, PHY address, reset pin | 다른 address를 scan하고 logic analyzer로 turnaround 확인 | 응답 turnaround가 없으면 bus/PHY reset 경계 |
| ID는 정상, cable link 없음 | PHY digital access 정상 | magnetics, pair, MDI termination | known-good short cable과 loopback 비교 | local loopback만 되면 board 외부 MDI 경계 |
| cold boot만 실패 | warm reset 후 link 성공 | rail ramp와 strap sampling | reset low 시간을 늘리고 파형 비교 | reset 시점 민감하면 전원/strap 순서 |
| 특정 board lot만 실패 | software image 동일 | 부품 대체, transformer, strap tolerance | 정상/실패 보드 BOM과 TDR 비교 | 보드 제조 경계로 축소 |
| 특정 pair만 fault | MDIO와 PCS 동작 | connector solder와 pair routing | cable diagnostic와 continuity 측정 | pair 물리 경계 |
| 부하에서 link flap | idle link 안정 | rail droop, thermal, clock jitter | traffic burst와 rail/clock 동시 측정 | 전원 또는 analog margin |
실제 검증 절차
| 순서 | 실행 | 남길 증거 | 판정 목적 |
|---|---|---|---|
| 1 | core/analog/I/O rail과 reset을 한 화면에 capture합니다. | rail 안정 시각과 reset deassert delta | 전원 순서 확정 |
| 2 | reset 해제 직전과 직후 strap 핀 및 latch register를 비교합니다. | 외부 전압과 내부 latch 값 | strap 충돌 확인 |
| 3 | MDC/MDIO 한 transaction을 decode해 preamble, address, turnaround를 저장합니다. | raw frame와 PHY 응답 | 관리 bus 경계 증명 |
| 4 | known-good cable과 PHY internal loopback 결과를 함께 남깁니다. | loopback/외부 link 비교 | digital과 MDI 경계 분리 |
주의PHY ID가 읽힌다는 사실은 transformer, RJ45, cable과 상대 PHY까지 정상이라는 증거가 아닙니다.
공개적으로 다시 확인할 수 있는 자료
공개되지 않은 vendor register나 integration별 offset을 추측해서 채우지 않았습니다. 아래 제조사 자료, architecture 문서와 Linux v6.18.37 원본에서 다시 확인할 수 있는 범위만 사용했습니다.
Linux PHY Abstraction Layer
PHY 장치, MDIO, link 상태와 PHY driver의 공개 Linux 계약
Linux phylink
PHY, fixed-link, in-band PCS와 MAC callback의 관계
Linux Ethernet controller binding
phy-mode, phy-handle, fixed-link와 managed 속성
Linux v6.18.37 phy_device.c
PHY 장치 생성, attach, start/stop과 상태 갱신
Linux v6.18.37 phylink.c
link resolve, MAC config, link up/down 실행 경로
TI DP83867IR/CR datasheet
strap, RGMII/SGMII, extended register, clock, interrupt와 진단 기능
TI DP83867 RGMII timing budget
0.25ns 단계 internal delay와 setup/hold margin 계산 및 측정 절차
Linux DP83867 driver
DT 속성, RGMIIDCTL, FIFO, impedance, interrupt와 downshift 초기화
Linux RTL8211F driver
paged register, RGMII TX/RX delay, ALDPS, CLKOUT, EEE, WOL과 interrupt 처리
Microchip LAN8841 product and datasheet
RGMII, IEEE 1588v2, cable diagnostics와 제조사 데이터시트
Linux LAN8841 driver in micrel.c
KSZ9131 공통 초기화, LAN8841 errata, PTP, interrupt와 cable test 경로