ICR001, ICR003, ICR005, and ICR007 are read only special for the Edge Port (section 16.1.1 in the reference manual (Rev 4)), They cannot be configured. They are hard coded in Silicone to the Midpoint Priority and some levels that the manual didn't mention.
Based on other information, I suspect that the levels and priorities are:
IRQ 7 - Level 7 Priority 3.5
IRQ 5 - Level 5 Priority 3.5
IRQ 3 - Level 3 Priority 3.5
IRQ 1 - LEvel 1 Priority 3.5
NOTE: Level 7 is non-maskeable and will preempt any lower level interrupt, but that should be fine for this application.
I have other interrupts: PIT0, UART0, UART2, analog to digital converters, and three Edge Port interrupts. The Levels/Priorities are unique for each interrupt.
If I use IRQ1, IRQ3, and IRQ5 the system runs beautifully.
Unfortunately I had originally planned to use IRQ3, IRQ5, and IRQ7 but since IRQ7 caused problems, a re-work was added to move that input to IRQ1. We will not have time to re-lay out the board, and there will be significant number of boards, so it would be very helpful to eliminate the re-work.
The problem I'm having with IRQ7:
is that it permanently disables all of the other interrupts, killing the system. (Sometimes it might take two IRQ7's to kill the system). After the first (or sometimes second) IRQ7 the only interrupt that the processor gets is IRQ7. The Edge Port interrupts are configured for both rising and falling edges.
Does any one know how to use IRQ7 and keep the other interrupts active?