Skip to content
  • Cédric Le Goater's avatar
    3aa597f6
    spapr/xive: introduce a XIVE interrupt controller · 3aa597f6
    Cédric Le Goater authored
    
    
    sPAPRXive models the XIVE interrupt controller of the sPAPR machine.
    It inherits from the XiveRouter and provisions storage for the routing
    tables :
    
      - Event Assignment Structure (EAS)
      - Event Notification Descriptor (END)
    
    The sPAPRXive model incorporates an internal XiveSource for the IPIs
    and for the interrupts of the virtual devices of the guest. This model
    is consistent with XIVE architecture which also incorporates an
    internal IVSE for IPIs and accelerator interrupts in the IVRE
    sub-engine.
    
    The sPAPRXive model exports two memory regions, one for the ESB
    trigger and management pages used to control the sources and one for
    the TIMA pages. They are mapped by default at the addresses found on
    chip 0 of a baremetal system. This is also consistent with the XIVE
    architecture which defines a Virtualization Controller BAR for the
    internal IVSE ESB pages and a Thread Managment BAR for the TIMA.
    
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    [dwg: Fold in field accessor fixes]
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    3aa597f6
    spapr/xive: introduce a XIVE interrupt controller
    Cédric Le Goater authored
    
    
    sPAPRXive models the XIVE interrupt controller of the sPAPR machine.
    It inherits from the XiveRouter and provisions storage for the routing
    tables :
    
      - Event Assignment Structure (EAS)
      - Event Notification Descriptor (END)
    
    The sPAPRXive model incorporates an internal XiveSource for the IPIs
    and for the interrupts of the virtual devices of the guest. This model
    is consistent with XIVE architecture which also incorporates an
    internal IVSE for IPIs and accelerator interrupts in the IVRE
    sub-engine.
    
    The sPAPRXive model exports two memory regions, one for the ESB
    trigger and management pages used to control the sources and one for
    the TIMA pages. They are mapped by default at the addresses found on
    chip 0 of a baremetal system. This is also consistent with the XIVE
    architecture which defines a Virtualization Controller BAR for the
    internal IVSE ESB pages and a Thread Managment BAR for the TIMA.
    
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    [dwg: Fold in field accessor fixes]
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Loading