1. 21 12月, 2018 3 次提交
    • C
      ppc/xive: introduce the XiveNotifier interface · 5e79b155
      Cédric Le Goater 提交于
      The XiveNotifier offers a simple interface, between the XiveSource
      object and the main interrupt controller of the machine. It will
      forward event notifications to the XIVE Interrupt Virtualization
      Routing Engine (IVRE).
      Signed-off-by: NCédric Le Goater <clg@kaod.org>
      [dwg: Adjust type name string for XiveNotifier]
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      5e79b155
    • C
      ppc/xive: add support for the LSI interrupt sources · 5fd9ef18
      Cédric Le Goater 提交于
      The 'sent' status of the LSI interrupt source is modeled with the 'P'
      bit of the ESB and the assertion status of the source is maintained
      with an extra bit under the main XiveSource object. The type of the
      source is stored in the same array for practical reasons.
      Signed-off-by: NCédric Le Goater <clg@kaod.org>
      [dwg: Fix style nit]
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      5fd9ef18
    • C
      ppc/xive: introduce a XIVE interrupt source model · 02e3ff54
      Cédric Le Goater 提交于
      The first sub-engine of the overall XIVE architecture is the Interrupt
      Virtualization Source Engine (IVSE). An IVSE can be integrated into
      another logic, like in a PCI PHB or in the main interrupt controller
      to manage IPIs.
      
      Each IVSE instance is associated with an Event State Buffer (ESB) that
      contains a two bit state entry for each possible event source. When an
      event is signaled to the IVSE, by MMIO or some other means, the
      associated interrupt state bits are fetched from the ESB and
      modified. Depending on the resulting ESB state, the event is forwarded
      to the IVRE sub-engine of the controller doing the routing.
      
      Each supported ESB entry is associated with either a single or a
      even/odd pair of pages which provides commands to manage the source:
      to EOI, to turn off the source for instance.
      
      On a sPAPR machine, the O/S will obtain the page address of the ESB
      entry associated with a source and its characteristic using the
      H_INT_GET_SOURCE_INFO hcall. On PowerNV, a similar OPAL call is used.
      
      The xive_source_notify() routine is in charge forwarding the source
      event notification to the routing engine. It will be filled later on.
      Signed-off-by: NCédric Le Goater <clg@kaod.org>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      02e3ff54