I'm trying to create a new device (for alpha full-system) that interacts
with the a device driver, that I wrote, in the linux kernel via
interrupts.
I have cross-compiled a device driver for alpha against the kernel being
used by m5 (2.6.13). I am able to load the kernel and start the device
driver. The device driver does successfully request IRQ 5.
(Here is the request call in the device driver:
result = request_irq(short_irq, short_sh_interrupt,
SA_SHIRQ | SA_INTERRUPT,"short",
short_sh_interrupt);
naturally short_irq=5 and short_sh_interrupt is a function)
I call "tsunami->intrctrl->post(0, TheISA::INTLEVEL_IRQ5, 55);" to place
the interrupt. (I created INTLEVEL_IRQ5 in arch/alpha/isa_traits.hh to be
25 (right after IRQ 4). Furthermore, I am using only one CPU (currently)
so the first parameter (0) should be correct.)
Now, after the kernel is loaded, I start the device driver (which, again,
reports that it successfully acquired IRQ 5). Then I have m5
generate the interrupt via the call to tsunami and I get the following:
panic: Unable to find responder for address pa = 0XFFFFF00188 va =
0XFFFFF00188 @ cycle 10311544851500
I turned on the "Flow" trace flag and would get:
10311544812000: global: Interrupt! IPLR=0 ipl=25 summary=2000000
right before the panic.
Does something need to be implemented, or am I setting this up wrong?
Thanks,
~Paul
_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users