Just to confirm: You need to clear the I bit. The F bit is irrelevant if you are using IRQs as it controls FIQs, but you would do best to leave it as it is.Do you know where it does jump to? Can you connect a debugger?What does "get_irq_stack" do? It is conventional to set up the IRQ stack before enabling IRQs.Also, check that you're writing to the correct CP15 register. Indeed, I often get confused with the syntax of the coprocessor instructions. You should be modifying the Control Register, c1.Finally, check that your modification of the interrupt behaviour does not conflict with the system. For example, if your system already uses FIQs (or any other exception) for some reason, you will need to take care not to disrupt this behaviour.Does that help?Jacob
Hi Jacob,Thanks a lot for your reply.. I am now able to get the interrupt in u-boot!!! All the register settings that I mentioned were actually very correct. The problem here was the MMU isn't initialised in u-boot. Hence the vector table is still located in the internal ROM at 0x00000000 which doesn't have correct IRQ handler.What is required here is to initialise/enable the MMU and map my SDRAM to 0x00000000 location where the actual u-boot vector table would now reside and is refered to service interrupt.Thanks-Nikhil Rao
1) mask I/F Bit in cpsr register to enable the IRQ.
With the above snippet and register setting and after enabling the interrupt, I am able to get the interrupt but my board goes to hang state. May be the control is not jumping to the appropriate location after getting the interrupts.
irq:get_irq_stackirq_save_user_regsbl IRQ_Handlerirq_restore_user_regs