- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Are interrupts implemented correctly in the socfpga Linux source??? git tag ACDS17.1_REL_GSRD_UPDATE1_PR
I will ultimately be performing interrupt driven data transfer from the FPGA to the HPS, but right now I'm just getting used to how interrupts work. I'm requesting an interrupt for the first push button on the Arria 10 SoC dev board using the following sequence in my kernel module:
gpio_request(448, "blah")
int_number = gpio_to_irq(448)
request_irq(int_number, int_handler, 0, "blahint", intcharDevice);
Linux seems happy when inserting the module:
insmod interrupts.ko
intchar: Initializing intchar driver
intchar: registered correctly with major number 248
intchar: device class registered correctly
intchar: device class created correctly
intchar: gpio 448, result 0
intchar: gpio_to_irq result 39
intchar: request_irq result 0
root@arria10:~# cat /proc/interrupts
CPU0 CPU1
16: 476620 490875 GIC-0 29 Level twd
17: 0 0 GIC-0 147 Level timer
22: 0 0 GIC-0 115 Level ffda1000.dma
31: 4627 0 GIC-0 143 Level serial
32: 33852 0 GIC-0 124 Level eth0
33: 0 0 GIC-0 134 Level dw_spi65535
34: 75 0 GIC-0 138 Level ffc02300.i2c
35: 4293572 0 GIC-0 130 Level dw-mci
36: 0 0 GIC-0 127 Level ffb00000.usb, ffb00000.usb, dwc2_hsotg:usb1
39: 29 0 altera-gpio 0 Edge blahint
IPI0: 0 0 CPU wakeup interrupts
IPI1: 0 0 Timer broadcast interrupts
IPI2: 4700 592576 Rescheduling interrupts
IPI3: 9 5 Function call interrupts
IPI4: 0 0 CPU stop interrupts
IPI5: 0 0 IRQ work interrupts
IPI6: 0 0 completion interrupts
Err: 29
However, when I press the button I get this:
irq 39, desc: ef238c00, depth: 0, count: 0, unhandled: 0
->handle_irq(): c016ec60, handle_bad_irq+0x0/0x288
->irq_data.chip(): c0b47ff8, 0xc0b47ff8
->action(): eebe2380
->action->handler(): bf018000, int_handler+0x0/0x28
IRQ_NOPROBE set
unexpected IRQ trap at vector 27
I've tried all different combinations of the flags parameter when requesting the interrupt, for example IRQF_SHARED, IRQF_PROBE_SHARED. Nothing helps. I was trying to use the exact git tag that was specified for the GSRD 17.1, but that tag seems to be COMPLETELY MISSING. How exactly should I be interpreting that? Anybody else successfully using interrupts in Linux with the Arria 10 SoC? Any pointers appreciated. Thanks.
Link Copied
0 Replies
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page