※ 本文轉寄自 ptt.cc, 文章原始頁面
看板LinuxDev
標題

[問題] Multiple interrupt handling 問題

最新2023-11-23 12:30:00
留言33則留言,3人參與討論
推噓1 ( 1032 )
各位版友好 描述一下我的問題 我在driver透過CPU GPIO註冊一個IRQ, 當有中斷來 會在handling處理 架構是CPU GPIO pin接到CPLD在接到Dev A,B,C的中斷 流程是 當CPU收到中斷後 再透過CPLD I2C Register去看是哪個Device發的中斷 現在我只要收Dev A的中斷 Dev B,C設定不發中斷 有先Mask掉B,C的中斷 但是很奇怪 我在IRQ都沒看到有中斷發生 手動測試GPIO都會收到中斷 但掛上driver就收不到了 我理解為只要CPU收到中斷, 應該會就近到handing 然後我在handing判斷CPLD哪個Device就好 會跟Multiple device 中斷有關係嗎? single device 就會收到? 我code大概這樣寫 gpio_request(gpio_pin) gpio_to_irq(gpio_pin) request_irq(IRQF_TRIGGER_FALLING | IRQF_SHARED) or request_threaded_irq(IRQF_TRIGGER_FALLING | IRQF_SHARED) 系統架構 如下 GPIO_Pin I2C CPU ---- CPLD ---- Dev A ---- Dev B ---- Dev C -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.66.208 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1700488569.A.C60.html

33 則留言

dces4212, 1F
你說的「手動測試會收到」可以再說詳細點嗎?沒註冊irq

dces4212, 2F
也收得到?

howard6066, 3F
就是在/sys/class 把gpio開起來 設成input

howard6066, 4F
Dev A發中斷 就會變成pull low狀態這樣

leolarrel, 5F
gpio driver 有在dts 中宣告 #interrupt-controller 嗎

leolarrel, 6F
你可能要先好好研究kernel的irq domain,gpio subsystem

howard6066, 7F
CPU intel的 沒有dts, call intel gpio driver

leolarrel, 8F
那只能往ACPI & 你說的那個intel gpio 的code , 對照

leolarrel, 9F
kernel 的irq doman 的觀念下去debug.我手上沒code沒得

leolarrel, 10F
debug

leolarrel, 11F
另外,手邊沒電路圖不知道你的設計,也不知道你的intel

leolarrel, 12F
cpu 是哪一顆.一般消費型intel cpu 有自己的中斷控制硬

leolarrel, 13F
體,gpio 我猜那個gpio是不是要接到cpu 的硬體中斷控制

leolarrel, 14F
器那邊?

howard6066, 15F
這位大大謝謝 好不想debug driver…

howard6066, 16F
Cpu是atom c3538, cpu 同一根gpio pin去接其他硬體

howard6066, 17F
call pinctrl-intel.c, 奇怪的是我irq都長出來了 但

howard6066, 18F
沒收到中斷 中間init過程 也沒有error

leolarrel, 19F
查了這個cpu , 他應該沒錯也是走APIC 概念的中斷控制器

leolarrel, 20F
那麼你就要去確定這根GPIO 是否可以設定成"中斷觸發"模

leolarrel, 21F
式,或這跟GPIO 是否有納入APIC 控制器的管轄,因如果連

leolarrel, 22F
APIC 都無法知道某跟硬體pin有發出中斷的話,你軟體再怎

leolarrel, 23F
麼神通都沒用.

howard6066, 24F
更新一下 問題解了 bios那邊要設定gpio irq

howard6066, 25F
不過bios不是我負責的 細節不太清楚

howard6066, 26F
之前都是用arm base的平台 我忘記了uboot dev tree要

howard6066, 27F
先設定gpio irq相關嗎? 不然driver掛起來 會沒中斷

leolarrel, 28F
uboot 不用,進 kernel 用dts 控管及可

howard6066, 29F
我看之前用的Nxp ls1046a 在uboot dts有GIC IRQ, gpi

howard6066, 30F
Gpio irq相關定義

howard6066, 31F
這個是用在uboot而已嗎 跟kernel分開來看?

howard6066, 32F
應該是不會影響到driver? 再次感謝大大

leolarrel, 33F
這個是用在uboot而已嗎 跟kernel分開來看? <-是的

howard6066 作者的近期文章

[討論] 半導體產線缺 怎麼內捲成這樣?
各位大大好 不是2024景氣準備要迎來一波榮景嗎 AI PC, AI Server, 各種車用, 記憶體復甦 剛剛在狄卡看到 真實慘況是四大新鮮人 連晶圓二哥 三哥 四哥 產線仔 2 3線系統廠 都人人搶破頭要進 內捲成這樣... 好慘 啊
14LoL
[閒聊] WBG生死局 逆轉解法
看前兩局 死在一樣的套路 中上 差距 打野 還給我選坦克型 必輸 中路基本上沒救 小虎心態已經輸了 對線想的是保持不死 CS不輸 每次都在躲FAKER的進攻 從來不主動展開會戰 都在打反守為攻 問題就是T1 根本就不是反守能贏的隊伍 阿璃連
更多 howard6066 作者的文章...