1

개발중인 임베디드 ARM FPGA 시스템에서 자일링스 인터럽트 컨트롤러 드라이버를 사용하려고합니다.IRQCHIP_DECLARE : init 함수가 실행되고 있지 않습니다.

IRQCHIP_DECLARE(xilinx_intc_xps, "xlnx,xps-intc-1.00.a", xilinx_intc_of_init);

내가 인터럽트 컨트롤러에 대한 내 장치 트리에서 항목을 추가 한 : (https://github.com/torvalds/linux/blob/master/drivers/irqchip/irq-xilinx-intc.c)이 드라이버의 끝에서

라인입니다.

xil_intc: [email protected] {   
     compatible = "xlnx,xps-intc-1.00.a";          
     interrupt-parent = <&intc>; 
     interrupts = <0x0 0x1e 0x04>; 
     reg = <0x41810000 0x10000>; 
     interrupt-controller; 
     #interrupt-cells = <2>; 
     xlnx,kind-of-intr = <0x0>; 
     xlnx,num-intr-inputs = <0x1>; 
    }; 

그러나, 나는 무엇을 말할 수에서의 xilinx_intc_of_init 기능은 시작하는 동안 호출되지 않습니다. 함수의 시작 부분에 pr_info을 추가했지만 호출 된 것을 본 적이 없습니다. 문제를 나타낼 것으로 보인다

유일한 메시지는 다음과 같습니다

[ 0.177772] irq: no irq domain found for /amba/[email protected] !

내가 성공적으로 기록 및 기타 장치 드라이버를 컴파일, 장치 트리에 항목을 추가하고이 dmesg에서로드 쇼 있었다 ,하지만 어떤 이유로 나는 이것을 작동시킬 수 없다.

디버깅에 대한 제안 사항이 있습니까?

그게 무슨 가치가 있는지, 나는 커널 모듈에 드라이버를 컴파일하고, modules_install을 사용하여 설치하고 시작시로드하기 위해 /etc/modules에 항목을 추가했습니다.

편집 : 4.6 커널을 사용 중입니다.

답변

0

나는/lib/modules에서 irqchip 드라이버를로드하는 것이 부팅 과정에서 너무 늦었다 고 결론을 내 렸습니다.

이 드라이버를 포함하도록 수정 된 구성으로 전체 커널을 다시 빌드 한 다음 초기화 작업이 올바르게 수행되었습니다.

IRQCHIP 드라이버를 커널에 컴파일해야하고 다른 장치 드라이버처럼 커널 모듈로 작동하지 않아야한다는 교훈을 얻었습니까? 내가 말하는 문서를 찾을 수는 없지만 그것이 내가 관찰 한 행동입니다.