This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What is all possible SGI miss scenario?

Hi,

As we know SGI is edge trigger. Anyone know possible SGI miss/ignore scenario on GIC600?

Parents
  • One Last question .

    In my system, Redistributor is powering up/making online using waker register.

    Suppose core 0 redistributor is online and core 1 redistributor is offline. SGI sent from core 0 to core 1. After that core 1 redistributor online using waker register, does SGI forward to the core 1? meaning is SGI in pending state ?

    Thank you in advance for your time and help

Reply
  • One Last question .

    In my system, Redistributor is powering up/making online using waker register.

    Suppose core 0 redistributor is online and core 1 redistributor is offline. SGI sent from core 0 to core 1. After that core 1 redistributor online using waker register, does SGI forward to the core 1? meaning is SGI in pending state ?

    Thank you in advance for your time and help

Children
  • The GICR_WAKER register isn't doing power control of the Redistributor itself.  Rather it controls whether the connection to the core is online or not.

    Suppose core 0 redistributor is online and core 1 redistributor is offline. SGI sent from core 0 to core 1. After that core 1 redistributor online using waker register, does SGI forward to the core 1? meaning is SGI in pending state ?

    Yes.  The SGI would be recorded as pending on core 1's Redistributor.  This could cause the Redistributor to assert the wake-request signal.  

    The SGI would remain pending until either it was manually cleared (something writes to GICR_ICPENDR0) or the interrupt is taken+acked by the core 1.  

    Core 1 will only be able to take and ack the interrupt if the link is first brought on line via writing to GICR_WAKER.  But being able to take the interrupt also depends on a bunch of other factors such as the SGI's priority, individual enable...

  •  , Thank for your help.

    I want to know 2 question.

    1) After the redistributor link offline, does all the below register set to default value?

    GICR_IPRIORITYR0
    GICR_IPRIORITYR1
    GICR_IPRIORITYR2
    GICR_IPRIORITYR3

    GICR_ICFGR0
    GICR_IGROUPR0
    GICR_IGRPMODR0
    GICR_ISENABLER0

    2) Which sequence is correct sequence for redistributor?

        a. Configure the above redistributor register --> Make redistributor link online.

        b. Make redistributor link online --> Configure the above redistributor register.

        c. sequence doesn't matter.

    Thank you in advance. Waiting for your reply

  • 1) After the redistributor link offline, does all the below register set to default value?

    No, changing GICR_WAKER (whether taking online or offline) has no effect on the values in the GICR_IxyzR registers.

    2) Which sequence is correct sequence for redistributor?

        a. Configure the above redistributor register --> Make redistributor link online.

        b. Make redistributor link online --> Configure the above redistributor register.

        c. sequence doesn't matter.

    From a pure GIC perspective, they're independent tasks and the behaviour is defined for both orders.

    It might matter to your software flow. For example, if you start configuring interrupts and sending SGIs you might see the GIC generate wake-requests.  What (if anything) happens in response to the wake-request is specific to the SoC.

  • Thank you for your reply.

     I have raised another question. Can you please help to find the answer there?

    community.arm.com/.../gicd_igrpmodr-0-register-read-as-0