Thank you. Meanwhile, I tried ipipe-arm kernel with latest xenomai from git on NanoPi-NEO. Interrupts configured from sysfs interface works, doesn't display any message, but when requested with rtdm_irq_request
//request_irq(irq, irig_r_isr_test, 0, DRIVER_NAME, NULL); //this works rtdm_irq_request(&irq_handle, irq, irig_r_isr_test, RTDM_IRQTYPE_EDGE, DRIVER_NAME, NULL); //this not irq_set_irq_type(irq, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING); rtdm_irq_enable(&irq_handle); sunxi_pinctrl_irq_handler(struct irq_desc *desc) routine never get called. Branislav > I should have access to a beaglebone green this week. I wasn't able to > reproduce it with a zynq or raspberry Pi 2 board. > > Greg > > > > Original Message > From: [email protected] > Sent: March 5, 2018 3:24 AM > To: [email protected] > Cc: [email protected] > Subject: Re: [Xenomai] interrupt on edge problem, unexpected IRQ trap > > Nothing? :| > > >> Thank you for your help Greg & Philippe! >> >> I merged gpio-omap.c from 4.14 kernel to my 4.11 kernel, result is >> freezed >> cpu after interrupt. Then, I compiled 4.14 latest ipipe-arm kernel from >> git (nothing added, nothing removed), and similar thing happens. Only I >> could see some time after, until complete freeze, are messages >> >> [ 62.463002] unexpected IRQ trap at vector 3f >> [ 63.643847] unexpected IRQ trap at vector 3f >> [ 63.648204] unexpected IRQ trap at vector 3f >> [ 65.605123] unexpected IRQ trap at vector 3f >> [ 66.418225] unexpected IRQ trap at vector 3f >> >> Tested through sysfs gpio interface. >> >> >> Branislav >> >> >> >>> As Philippe mentioned, they are some missing pieces that need to be >>> added to the ipipe. The link Philippe provided will give you guidance >>> on how to make those changes to your custom kernel. The other option >>> is you could use the ipipe-arm tree and the mainline kernel. Also, >>> unrelated, the gpios that are exposed in sysfs are not RTDM gpios. >>> There currently isn't a RTDM driver for beaglebone gpio, but one can >>> be added very easily. >>> >>> >>> -Greg >>> >>> On Mon, Feb 26, 2018 at 1:05 PM, >>> <[email protected]> wrote: >>>> Xenomai 3.0.6, and ipipe-core-4.9.51-arm-3, patched on sunxi 4.11.2 >>>> kernel >>>> (with BeagleBone patches applied too). Same situation with this kernel >>>> -> >>>> https://github.com/beagleboard/linux/tree/4.9-xenomai >>>> >>>> >>>> Just as Giulio wrote, GPIO is configured with: >>>> >>>> echo 60 > /sys/class/gpio/export >>>> echo both > /sys/class/gpio/gpio60/edge >>>> >>>> or in kernel module init routine with: >>>> >>>> gpio_request(gpio, "test"); >>>> gpio_direction_input(gpio); >>>> irq = gpio_to_irq(gpio); >>>> irq_set_irq_type(irq, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING); >>>> rtdm_irq_request(&irq_handle, irq, test_isr, RTDM_IRQTYPE_EDGE, >>>> DRIVER_NAME, NULL); >>>> rtdm_irq_enable(&irq_handle); >>>> >>>> >>>> Both reproduce the problem. In the second case, when requested with >>>> rtdm_irq_request, IRQ is visible both in /proc/interrupts, and in >>>> /proc/xenomai/irq >>>> >>>> >>>> Thanks! >>>> >>>> >>>> Branislav >>>> >>>> >>>>> Can you provide what version of Xenomai you are using and what ipipe >>>> patch you are using? It also may be helpful if you could provide some >>>> sort of sample code that reproduces the problem. >>>>> >>>>> -Greg >>>>> >>>>> On Mon, Feb 26, 2018 at 8:46 AM, >>>>> <[email protected]> wrote: >>>>>> Hello, >>>>>> I have a problem with new I-pipe patch, which was not existing with >>>>>> legacy >>>>>> patch on 3.14 kernel, on BeagleBone platform. >>>>>> When GPIO pin is configured as input with edge interrupt enable, on >>>>>> IRQ >>>> occurrence the following message appears: >>>>>> [ 303.331386] irq 88, desc: dc1be400, depth: 0, count: 0, >>>>>> unhandled: >>>>>> 0 >>>> [ 303.331401] ->handle_irq(): c01a810c, >>>>>> [ 303.331435] handle_edge_irq+0x0/0x194 >>>>>> [ 303.331442] ->irq_data.chip(): dc097b50, >>>>>> [ 303.331454] 0xdc097b50 >>>>>> [ 303.331461] ->action(): da097380 >>>>>> [ 303.331467] ->action->handler(): c078dce4, >>>>>> [ 303.331483] gpio_sysfs_irq+0x0/0x24 >>>>>> [ 303.331493] IRQ_NOPROBE set >>>>>> [ 303.331503] unexpected IRQ trap at vector 58 >>>>>> [ 303.335814] ------------[ cut here ]------------ >>>>>> [ 303.335832] WARNING: CPU: 0 PID: 0 at kernel/irq/chip.c:883 >>>>>> __ipipe_ack_bad_irq+0x3c/0x48 >>>>>> [ 303.335839] Modules linked in: >>>>>> [ 303.335863] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.9.82 #2 [ >>>> 303.335871] Hardware name: Generic AM33XX (Flattened Device Tree) [ >>>> 303.335878] I-pipe domain: Linux >>>>>> [ 303.335918] [<c0113520>] (unwind_backtrace) from [<c010d320>] >>>> (show_stack+0x20/0x24) >>>>>> [ 303.335946] [<c010d320>] (show_stack) from [<c073c99c>] >>>>>> (dump_stack+0xbc/0xec) >>>>>> [ 303.335968] [<c073c99c>] (dump_stack) from [<c013dddc>] >>>>>> (__warn+0xe4/0x110) >>>>>> [ 303.335984] [<c013dddc>] (__warn) from [<c013de38>] >>>>>> (warn_slowpath_null+0x30/0x38) >>>>>> [ 303.335998] [<c013de38>] (warn_slowpath_null) from [<c01a74a0>] >>>> (__ipipe_ack_bad_irq+0x3c/0x48) >>>>>> [ 303.336027] [<c01a74a0>] (__ipipe_ack_bad_irq) from [<c020ccdc>] >>>> (__ipipe_dispatch_irq+0x80/0x1e4) >>>>>> [ 303.336048] [<c020ccdc>] (__ipipe_dispatch_irq) from [<c0790630>] >>>> (omap_gpio_irq_handler+0x15c/0x1d0) >>>>>> [ 303.336066] [<c0790630>] (omap_gpio_irq_handler) from >>>>>> [<c01a3874>] >>>> (__handle_irq_event_percpu+0x68/0x2bc) >>>>>> [ 303.336081] [<c01a3874>] (__handle_irq_event_percpu) from >>>>>> [<c01a3af4>] >>>>>> (handle_irq_event_percpu+0x2c/0x68) >>>>>> [ 303.336095] [<c01a3af4>] (handle_irq_event_percpu) from >>>>>> [<c01a3b78>] >>>> (handle_irq_event+0x48/0x6c) >>>>>> [ 303.336111] [<c01a3b78>] (handle_irq_event) from [<c01a8348>] >>>> (handle_level_irq+0xa8/0xfc) >>>>>> [ 303.336127] [<c01a8348>] (handle_level_irq) from [<c01a2ea0>] >>>> (generic_handle_irq+0x28/0x38) >>>>>> [ 303.336141] [<c01a2ea0>] (generic_handle_irq) from [<c01a3014>] >>>> (__handle_domain_irq+0x8c/0x10c) >>>>>> [ 303.336164] [<c01a3014>] (__handle_domain_irq) from [<c0109c28>] >>>> (handle_IRQ+0x2c/0x30) >>>>>> [ 303.336182] [<c0109c28>] (handle_IRQ) from [<c0117990>] >>>>>> (__ipipe_do_IRQ+0x38/0x40) >>>>>> [ 303.336198] [<c0117990>] (__ipipe_do_IRQ) from [<c020c4b4>] >>>>>> (__ipipe_do_sync_stage+0x268/0x278) >>>>>> [ 303.336214] [<c020c4b4>] (__ipipe_do_sync_stage) from >>>>>> [<c020c820>] >>>> (ipipe_unstall_root+0x50/0x5c) >>>>>> [ 303.336244] [<c020c820>] (ipipe_unstall_root) from [<c0cbb4c8>] >>>> (default_idle_call+0x54/0x7c) >>>>>> [ 303.336271] [<c0cbb4c8>] (default_idle_call) from [<c0187c4c>] >>>> (cpu_startup_entry+0xd0/0x144) >>>>>> [ 303.336289] [<c0187c4c>] (cpu_startup_entry) from [<c0cb5c80>] >>>> (rest_init+0x80/0x98) >>>>>> [ 303.336315] [<c0cb5c80>] (rest_init) from [<c1300d08>] >>>>>> (start_kernel+0x370/0x3d8) >>>>>> [ 303.336327] ---[ end trace fd2436447809c122 ]--- >>>>>> [ 303.336343] irq 88, desc: dc1be400, depth: 0, count: 0, >>>>>> unhandled: >>>>>> 0 >>>> [ 303.336349] ->handle_irq(): c01a810c, >>>>>> [ 303.336361] handle_edge_irq+0x0/0x194 >>>>>> [ 303.336367] ->irq_data.chip(): dc097b50, >>>>>> [ 303.336376] 0xdc097b50 >>>>>> [ 303.336382] ->action(): da097380 >>>>>> [ 303.336389] ->action->handler(): c078dce4, >>>>>> [ 303.336399] gpio_sysfs_irq+0x0/0x24 >>>>>> [ 303.336406] IRQ_NOPROBE set >>>>>> [ 303.336413] unexpected IRQ trap at vector 58 >>>>>> [ 306.761879] irq 88, desc: dc1be400, depth: 0, count: 1, >>>>>> unhandled: >>>>>> 0 >>>> [ 306.761893] ->handle_irq(): c01a810c, >>>>>> [ 306.761928] handle_edge_irq+0x0/0x194 >>>>>> [ 306.761935] ->irq_data.chip(): dc097b50, >>>>>> [ 306.761947] 0xdc097b50 >>>>>> [ 306.761954] ->action(): da097380 >>>>>> [ 306.761960] ->action->handler(): c078dce4, >>>>>> [ 306.761976] gpio_sysfs_irq+0x0/0x24 >>>>>> [ 306.761985] IRQ_NOPROBE set >>>>>> [ 306.761995] unexpected IRQ trap at vector 58 >>>>>> [ 306.766311] irq 88, desc: dc1be400, depth: 0, count: 1, >>>>>> unhandled: >>>>>> 0 >>>> [ 306.766318] ->handle_irq(): c01a810c, >>>>>> [ 306.766330] handle_edge_irq+0x0/0x194 >>>>>> [ 306.766336] ->irq_data.chip(): dc097b50, >>>>>> [ 306.766344] 0xdc097b50 >>>>>> [ 306.766351] ->action(): da097380 >>>>>> [ 306.766357] ->action->handler(): c078dce4, >>>>>> [ 306.766366] gpio_sysfs_irq+0x0/0x24 >>>>>> [ 306.766373] IRQ_NOPROBE set >>>>>> [ 306.766380] unexpected IRQ trap at vector 58 >>>>>> [ 306.892617] irq 88, desc: dc1be400, depth: 0, count: 2, >>>>>> unhandled: >>>>>> 0 >>>> [ 306.892634] ->handle_irq(): c01a810c, >>>>>> [ 306.892666] handle_edge_irq+0x0/0x194 >>>>>> [ 306.892673] ->irq_data.chip(): dc097b50, >>>>>> [ 306.892683] 0xdc097b50 >>>>>> [ 306.892690] ->action(): da097380 >>>>>> [ 306.892697] ->action->handler(): c078dce4, >>>>>> [ 306.892712] gpio_sysfs_irq+0x0/0x24 >>>>>> [ 306.892723] IRQ_NOPROBE set >>>>>> [ 306.892732] unexpected IRQ trap at vector 58 >>>>>> [ 306.897047] irq 88, desc: dc1be400, depth: 0, count: 2, >>>>>> unhandled: >>>>>> 0 >>>> [ 306.897054] ->handle_irq(): c01a810c, >>>>>> [ 306.897065] handle_edge_irq+0x0/0x194 >>>>>> [ 306.897071] ->irq_data.chip(): dc097b50, >>>>>> [ 306.897079] 0xdc097b50 >>>>>> [ 306.897086] ->action(): da097380 >>>>>> [ 306.897092] ->action->handler(): c078dce4, >>>>>> [ 306.897101] gpio_sysfs_irq+0x0/0x24 >>>>>> [ 306.897108] IRQ_NOPROBE set >>>>>> [ 306.897115] unexpected IRQ trap at vector 58 >>>>>> Best regards, >>>>>> Branislav >>>>>> _______________________________________________ >>>>>> Xenomai mailing list >>>>>> [email protected] >>>>>> https://xenomai.org/mailman/listinfo/xenomai >>>>> >>>>> _______________________________________________ >>>>> Xenomai mailing list >>>>> [email protected] >>>>> https://xenomai.org/mailman/listinfo/xenomai >>>>> >>>> >>>> >>>> >>>> >>> >> >> >> >> _______________________________________________ >> Xenomai mailing list >> [email protected] >> https://xenomai.org/mailman/listinfo/xenomai >> > > > > _______________________________________________ > Xenomai mailing list > [email protected] > https://xenomai.org/mailman/listinfo/xenomai > _______________________________________________ Xenomai mailing list [email protected] https://xenomai.org/mailman/listinfo/xenomai
