← Ethernet 상세 목차DUJINLABS.COM

Hardware · Ethernet detailed manual 10 · Linux v6.18.37

10. Microchip LAN8841의 RGMII, errata와 IEEE 1588 경계를 읽는다

LAN8841 데이터시트와 Linux micrel driver를 기준으로 KSZ9131 공통 RGMII skew 초기화, LAN8841 전용 analog/latency errata, interrupt output, cable test와 PHY 내부 IEEE 1588 timestamp block을 구분합니다.

상세 표
2
검증 행
18
절차
5 checkpoints
기준
IEEE 802.3 · phylib/phylink · Linux v6.18.37

CHAPTER 10

10. Microchip LAN8841의 RGMII, errata와 IEEE 1588 경계를 읽는다

LAN8841 데이터시트와 Linux micrel driver를 기준으로 KSZ9131 공통 RGMII skew 초기화, LAN8841 전용 analog/latency errata, interrupt output, cable test와 PHY 내부 IEEE 1588 timestamp block을 구분합니다.

공통 기반

Linux lan8841_config_init은 KSZ9131 계열 공통 초기화를 먼저 사용하므로 RGMII skew DT 속성과 pad timing은 micrel 공통 경로까지 함께 읽어야 합니다.

전용 errata

LAN8841 초기화에는 magnetics strap 조건에 따른 10/100 signal tuning, LDO adjustment와 100BASE-T RGMII latency 관련 MMD write가 포함될 수 있습니다.

PTP block

PHY가 ingress/egress frame을 parse하고 timestamp할 수 있습니다. MAC timestamp와 동시에 켜면 어느 clock/point가 packet timestamp의 주인인지 먼저 정합니다.

cable test

TDR 결과는 link-down 진단에 유용하지만 connector, transformer와 cable이 합쳐진 거리/상태입니다. board 내부 위치를 자동으로 확정하지 않습니다.

레지스터와 관측값을 함께 읽는 표

항목소유 블록설정 또는 의미정상 증거실패 해석
PHY ID/modelC22 ID registerLAN8841 driver matchMicrochip LAN8841로 bindKSZ9131/LAN884x variant 오인
RGMII skew controlsKSZ9131-compatible MMDRXC/TXC와 data/control skewDT picosecond 값과 readback 일치단위/허용 code 반올림 오류
operation strap overrideLAN8841 common control MMDinterface와 MagJack 관련 latchboard strap과 일치errata 조건 판정 오류
analog control MMDLAN8841 analog blockPLL/LDO와 10/100 tuningLinux driver sequence 완료다른 revision에 값 복사
INT output/statusLAN8841 interrupt blockopen-drain/buffer와 link/PTP sourceboard pull-up와 IRQ 설정 일치출력 mode 또는 ack 오류
PTP command/parsercommon-control MMDreset/enable, RX/TX parser와 timestamp mode선택한 PTP profile만 처리MAC/PHY timestamp 중복
cable diagnosticPHY DSP/TDRpair status와 fault distanceknown cable baseline과 일치link 중 실행 또는 거리 과신

증상에서 첫 실패 경계를 찾는 표

관측 증상직전 통과 증거우선 확인반증 시험판정
1G 정상, 100M에서 packet 오류PHY ID/RGMII 1G 성공100BT latency errata와 MAC speed 전환100M 전용 counter/loopback속도별 RGMII/errata 경계
shorted-center-tap MagJack 보드만 실패다른 magnetics 정상strap override와 signal tuning errataBOM/strap별 driver sequence 비교magnetics 조건부 초기화
PTP timestamp가 두 번 또는 흔들림packet 전달 정상MAC/PHY timestamp ownership한쪽 timestamp를 끄고 비교timestamp point/clock 중복
PTP IRQ만 없음link IRQ 정상PTP source enable와 INT output modePTP status polling과 pin 비교PHY 내부 interrupt route
cable test가 항상 같은 거리MDIO 접근 정상test start/poll/complete 순서open/short fixture로 교정TDR 실행 또는 해석 오류
resume 후 skew/errata 값 유실cold boot 정상power-down register retentionresume 전후 MMD diff와 config_init 재호출 확인PHY context restore
그림 1. 10. Microchip LAN8841의 RGMII, errata와 IEEE 1588 경계를 읽는다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 rail/reset/strap
02 PHY ID match
03 KSZ9131 common init
04 RGMII skew
05 LAN8841 errata writes
06 interrupt/PTP setup
07 AN/link
08 timestamp/cable test

실제 검증 절차

순서실행남길 증거판정 목적
1board magnetics 종류와 strap override 값을 저장합니다.BOM/strap identity조건부 errata 판단
2RGMII skew DT picosecond 값과 MMD readback을 방향별로 비교합니다.RXC/TXC/data skew ledgertiming 설정 검증
3Linux config_init의 공통 초기화와 LAN8841 전용 write를 순서대로 추적합니다.함수/레지스터 sequence누락 경계 확인
4MAC timestamp와 PHY timestamp를 각각 단독으로 시험해 offset과 jitter를 측정합니다.timestamp owner별 결과PTP 경계 분리
5known-good/open/short fixture로 cable test를 교정합니다.pair별 status/distanceTDR 신뢰 범위 확인

주의LAN8841 analog errata 값은 PHY revision과 magnetics 조건을 확인한 Linux driver 또는 제조사 문서의 sequence로 적용합니다. 다른 Microchip PHY에 복사하지 않습니다.

공개적으로 다시 확인할 수 있는 자료

공개되지 않은 vendor register나 integration별 offset을 추측해서 채우지 않았습니다. 아래 제조사 자료, architecture 문서와 Linux v6.18.37 원본에서 다시 확인할 수 있는 범위만 사용했습니다.

Linux phylink

PHY, fixed-link, in-band PCS와 MAC callback의 관계