← Interrupt 상세 목차DUJINLABS.COM

Hardware · Interrupt detailed manual 03 · Linux v6.18.37

3. Redistributor discovery, wake와 PPI를 PE별로 검증한다

각 PE의 GICR frame을 GICR_TYPER affinity로 찾고 ProcessorSleep/ChildrenAsleep handshake를 완료한 뒤 SGI/PPI bank와 LPI table을 설정합니다.

상세 표
2
검증 행
14
절차
4 checkpoints
기준
Arm GICv3 · Linux irqchip · Linux v6.18.37

CHAPTER 03

3. Redistributor discovery, wake와 PPI를 PE별로 검증한다

각 PE의 GICR frame을 GICR_TYPER affinity로 찾고 ProcessorSleep/ChildrenAsleep handshake를 완료한 뒤 SGI/PPI bank와 LPI table을 설정합니다.

frame discovery

연속 frame의 GICR_TYPER Affinity_Value를 MPIDR과 매칭합니다.

wake handshake

ProcessorSleep을 내린 뒤 ChildrenAsleep이 0이 될 때까지 기다립니다.

banked state

SGI/PPI enable, priority와 config는 해당 redistributor의 SGI frame에 있습니다.

CPU hotplug

offline 시 sleep, online 시 wake와 private interrupt 복원이 필요합니다.

레지스터·번호·소유권 대조

항목소유자값의 의미정상 증거오류 해석
GICR_TYPERRedistributoraffinity, Last, VLPIS각 online PE와 1:1잘못된 frame 매칭
GICR_WAKERRedistributorProcessorSleep/ChildrenAsleepwake 후 둘 다 0전원/handshake timeout
GICR_IGROUPR0SGI frameSGI/PPI grouptimer/SGI 정책 일치EL/group routing 오류
GICR_ISENABLER0SGI frameprivate enableCPU별 예상 bit다른 CPU frame 수정
GICR_ICFGR1/IPRIORITYRSGI framePPI trigger/priorityfirmware 기술과 일치timer interrupt masking

실패 경계 판정

증상직전 통과우선 확인반증 시험판정
CPU1만 timer 없음CPU1 onlineGICR frame/PPI enableCPU0/1 register diffper-CPU redistributor
ChildrenAsleep 고정rail/clock 요청power controller와 WAKER 순서firmware wake와 비교redistributor power
hotplug 후 PPI 손실재부팅 시 정상online restore callbackoffline/online snapshot diffCPU hotplug lifecycle
SGI target 불일치sender write 성공target affinity와 RSSMPIDR/SGI1R decodeaffinity encoding
LPI만 특정 CPU 실패SPI/PPI 정상property/pending table와 redistributorLPI table base diffLPI setup
그림 1. 3. Redistributor discovery, wake와 PPI를 PE별로 검증한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 MPIDR
02 GICR_TYPER scan
03 frame match
04 WAKER wake
05 SGI/PPI config
06 private enable
07 CPU online

실제 검증 절차

순서실행남길 증거판정 목적
1모든 GICR_TYPER와 MPIDR을 표로 만듭니다.PE↔frame mapdiscovery 검증
2WAKER write와 ChildrenAsleep 변화 시간을 잽니다.wake latencypower handshake
3PPI enable/priority를 CPU별로 dump합니다.banked state 차이restore 검증
4CPU hotplug를 반복하며 timer/SGI/LPI를 각각 발생시킵니다.종류별 countlifecycle 검증

주의현재 CPU의 GICR frame을 찾았다는 이유로 다른 CPU frame에도 같은 offset을 쓰지 않습니다. affinity 매칭이 먼저입니다.

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

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