Skip to content
  • Cédric Le Goater's avatar
    2dfa91a2
    ppc/pnv: add a XIVE interrupt controller model for POWER9 · 2dfa91a2
    Cédric Le Goater authored
    
    
    This is a simple model of the POWER9 XIVE interrupt controller for the
    PowerNV machine which only addresses the needs of the skiboot
    firmware. The PowerNV model reuses the common XIVE framework developed
    for sPAPR as the fundamentals aspects are quite the same. The
    difference are outlined below.
    
    The controller initial BAR configuration is performed using the XSCOM
    bus from there, MMIO are used for further configuration.
    
    The MMIO regions exposed are :
    
     - Interrupt controller registers
     - ESB pages for IPIs and ENDs
     - Presenter MMIO (Not used)
     - Thread Interrupt Management Area MMIO, direct and indirect
    
    The virtualization controller MMIO region containing the IPI ESB pages
    and END ESB pages is sub-divided into "sets" which map portions of the
    VC region to the different ESB pages. These are modeled with custom
    address spaces and the XiveSource and XiveENDSource objects are sized
    to the maximum allowed by HW. The memory regions are resized at
    run-time using the configuration of EDT set translation table provided
    by the firmware.
    
    The XIVE virtualization structure tables (EAT, ENDT, NVTT) are now in
    the machine RAM and not in the hypervisor anymore. The firmware
    (skiboot) configures these tables using Virtual Structure Descriptor
    defining the characteristics of each table : SBE, EAS, END and
    NVT. These are later used to access the virtual interrupt entries. The
    internal cache of these tables in the interrupt controller is updated
    and invalidated using a set of registers.
    
    Still to address to complete the model but not fully required is the
    support for block grouping. Escalation support will be necessary for
    KVM guests.
    
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Message-Id: <20190306085032.15744-7-clg@kaod.org>
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    2dfa91a2
    ppc/pnv: add a XIVE interrupt controller model for POWER9
    Cédric Le Goater authored
    
    
    This is a simple model of the POWER9 XIVE interrupt controller for the
    PowerNV machine which only addresses the needs of the skiboot
    firmware. The PowerNV model reuses the common XIVE framework developed
    for sPAPR as the fundamentals aspects are quite the same. The
    difference are outlined below.
    
    The controller initial BAR configuration is performed using the XSCOM
    bus from there, MMIO are used for further configuration.
    
    The MMIO regions exposed are :
    
     - Interrupt controller registers
     - ESB pages for IPIs and ENDs
     - Presenter MMIO (Not used)
     - Thread Interrupt Management Area MMIO, direct and indirect
    
    The virtualization controller MMIO region containing the IPI ESB pages
    and END ESB pages is sub-divided into "sets" which map portions of the
    VC region to the different ESB pages. These are modeled with custom
    address spaces and the XiveSource and XiveENDSource objects are sized
    to the maximum allowed by HW. The memory regions are resized at
    run-time using the configuration of EDT set translation table provided
    by the firmware.
    
    The XIVE virtualization structure tables (EAT, ENDT, NVTT) are now in
    the machine RAM and not in the hypervisor anymore. The firmware
    (skiboot) configures these tables using Virtual Structure Descriptor
    defining the characteristics of each table : SBE, EAS, END and
    NVT. These are later used to access the virtual interrupt entries. The
    internal cache of these tables in the interrupt controller is updated
    and invalidated using a set of registers.
    
    Still to address to complete the model but not fully required is the
    support for block grouping. Escalation support will be necessary for
    KVM guests.
    
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Message-Id: <20190306085032.15744-7-clg@kaod.org>
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Loading