Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

ARM to ARM interrupt with CHIPSIG

$
0
0

Dear All


Could, i trigger interrupt with CHIPSIG, e.g. CHIPSIG3 inside the ARM and then, create the ISR also in ARM side.

e.g.

# define ARM_TO_ARM_DATA_IRQ     31

# define CHIPSIG                 0x01C14174
# define CHIPSIG_CLR             0x01C14178
# define SICR                    0xFFFEE024

irqreturn_t dataArmtoArm_isr(int irq, void *dev_id, struct pt_regs * regs)
{
    
      
    u32* chipsigClear;
    u32* sicr;    
    
    printk(KERN_ALERT "****Receiving Packet from ARM****\n");
    /*
     * Write a 1 to the CHIPINT1 bit of the Chip Signal Clear (CHIPSIG_CLR)
     * register, then write the IRQ to the System Interrupt Status Index Clear
     * (SICR) register to clear the interrupt.
     */
         chipsigClear = (u32 *) ioremap_nocache(CHIPSIG_CLR,sizeof(u32));
     sicr = (u32 *) ioremap_nocache(SICR,sizeof(u32));

         iowrite32(CHIPSIG_CLR_DATA_IRQ3,chipsigClear);
        iowrite32(irq,sicr);

     // Checking The Rx Buffer
   
            printk(KERN_ALERT "*** ARM  to ARM interrupt ***\n");
            break;        
    

}

void GenerateInterrupt()

{

u32* chipsigReg;

chipsigReg = (u32 *) ioremap_nocache(CHIPSIG,sizeof(u32));

printk(KERN_ALERT "*** Pinging ArmtoArm_isr ***\n");
   
 iowrite32(SYSCFG_CHIPSIG_CHIPSIG3,chipsigReg);

}

request_irq(ARM_TO_ARM_DATA_IRQ,
             (void*)&dataArmtoArm_isr,
             IRQF_DISABLED,
             "Arm2ArmISR",
             dev);   

The result that i got, the processor restart.

Could anyone help, if i miss something, so the interrupt does not work properly


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>