Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12589 Discussions

Unexpected IRQ trap at vector xxx, Arria 10 SoC, Linux

Altera_Forum
Honored Contributor II
2,048 Views

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.
0 Kudos
0 Replies
Reply