Forum Discussion
Altera_Forum
Honored Contributor
12 years agoI tried to do couple things in my uClinux device driver to enable the interrupt.
1) Enabling the PIO Core interrupt: Because my PIO base address is 0x00000060 on the a clock_crossing_bridge w/ base address of 0x08200000, my driver define base address is 0x082000060 (<-Is this correct?) # define ALTERA_PIO_BASE_ADDRESS 0x08200060 # define ALTERA_OFFSET_DATA 0x00 # define ALTERA_OFFSET_DIRECTION 0x01 # define ALTERA_OFFSET_IRQ_MASK 0x02 # define ALTERA_OFFSET_EDGE_CAPTURE 0x03 ... in probe function I have volatile int *base_addr = (int *) ALTERA_PIO_BASE_ADDRESS; ... *(base_addr + ALTERA_OFFSET_IRQ_MASK) = 0x01; //One input PIO from the SMA pin in the DE2-115, rising edge interrupt generator 2) __builtin_wrctl(3, 3); //irq2, write into ienable register (3) __builtin_wrctl(0, 1); //write 1 into status register (0) to enable PIE I got Kernel panic - not syncing: Oops Unable to handle kernel paging request at virtual address 08200000 ea = c70e418c, ra = c70e4178, cause =15 Did I write into or enable the wrong interrupt? my irq_mask is definite not turn on showing in the signaltapII. Any help is greatly appreciated. Yeung