← Ethernet 상세 목차DUJINLABS.COM

Hardware · Ethernet detailed manual 01 · Linux v6.18.37

1. DWMAC release와 합성 capability부터 확정한다

stmmac은 여러 세대의 Synopsys Ethernet IP를 지원합니다. MAC version, HW feature 0~3, DMA channel 수, queue 수, address width, enhanced descriptor와 offload 지원을 먼저 읽어 실제로 존재하는 register와 code path를 고릅니다.

상세 표
2
검증 행
16
절차
4 checkpoints
기준
Synopsys DWMAC · Linux NAPI · Linux v6.18.37

CHAPTER 01

1. DWMAC release와 합성 capability부터 확정한다

stmmac은 여러 세대의 Synopsys Ethernet IP를 지원합니다. MAC version, HW feature 0~3, DMA channel 수, queue 수, address width, enhanced descriptor와 offload 지원을 먼저 읽어 실제로 존재하는 register와 code path를 고릅니다.

세대

GMAC 3.x, GMAC4/5와 XGMAC은 register map과 descriptor semantics가 다릅니다. 이름이 비슷해도 offset을 섞지 않습니다.

합성 옵션

queue/channel, checksum, TSO, RSS, PTP, safety, eDMA와 address width는 integration 시 선택됩니다.

SoC glue

clock, reset, interface mux와 AXI burst는 DWMAC 공통 block 밖의 platform 코드가 설정할 수 있습니다.

capability override

firmware property나 platform data가 HW feature를 제한할 수 있습니다. raw register와 driver가 채운 `dma_cap`을 비교합니다.

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

항목소유 블록설정 또는 의미정상 증거실패 해석
MAC_VERSIONDWMAC coreuser/core versiondriver 선택 세대와 일치다른 register map 사용 가능성
HW_FEATURE0DWMAC corePHY interface, checksum, VLAN, timestamp사용 feature가 실제 setDT 선언만 있고 hardware 미합성
HW_FEATURE1DWMAC coreFIFO size, queue/channel countqueue 설정이 상한 이하존재하지 않는 queue 접근
HW_FEATURE2/3DWMAC coreaddress width, TSO, RSS, safetyDMA mask와 offload 정책 일치고주소 truncate 또는 잘못된 offload
DMA_SYS_BUS_MODEDMA globalburst, enhanced addressing, resetsoftware reset clear와 AXI 정책 반영AXI clock/reset 또는 burst incompatibility
MTL queue mappingMTLTx/Rx queue와 DMA channeldriver queue topology와 일치traffic이 다른 channel로 감

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

관측 증상직전 통과 증거우선 확인반증 시험판정
MAC version 0/ffffMMIO resource 존재clock/reset/address decode다른 ID register와 bus fault 비교DWMAC 접근 경계
queue 1부터 timeoutqueue 0 정상합성 queue 수HW feature와 DT queue count 비교capability 초과
32-bit만 DMA 성공ring과 IRQ 정상address width와 DMA maskbuffer를 4GiB 아래로 제한주소 폭 경계
offload 켜면 corruption기본 frame 정상capability와 descriptor formatfeature별 단독 disable합성/descriptor 해석
특정 SoC만 초기화 실패공통 stmmac code 동일glue clock/reset/AXIplatform register snapshot 비교SoC integration 경계
resume 뒤 feature 값 변화cold boot 정상power domain/context restoresuspend 전후 capability dump전원 복귀/clock 경계
그림 1. 1. DWMAC release와 합성 capability부터 확정한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 MMIO/clock/reset
02 MAC version
03 HW feature decode
04 DMA mask
05 queue/channel 계획
06 descriptor ops 선택
07 feature enable

실제 검증 절차

순서실행남길 증거판정 목적
1MAC version과 모든 HW feature register를 raw hex로 저장합니다.boot별 동일 snapshotIP identity 확정
2driver `dma_cap`과 raw bit를 field별로 비교합니다.override 차이 표software 해석 검증
3DT queue/channel 설정이 합성 상한을 넘지 않는지 확인합니다.topology 대조표잘못된 resource 배제
4offload를 하나씩 켜며 descriptor format과 결과를 기록합니다.feature별 pass/fail문제 feature 격리

주의인터넷의 다른 DWMAC release register dump를 현재 SoC의 reset value 표처럼 사용하지 않습니다. 현재 MAC_VERSION과 integration databook이 기준입니다.

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

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

Linux stmmac driver

Synopsys GMAC/GMAC4/XGMAC, descriptor, NAPI, PTP와 offload 공개 설명

Linux NAPI

schedule, poll budget, completion과 IRQ 재활성화 계약