Skip to content
  • Andre Przywara's avatar
    arm: Auto-detect guest GIC type · c57e001a
    Andre Przywara authored
    
    
    At the moment kvmtool always tries to instantiate a virtual GICv2
    interrupt controller for the guest, and fails with some scary error
    message if that doesn't work.
    The user has then to manually specify "--irqchip=gicv3", which is not
    really obvious.
    With the advent of more GICv3-only machines, let's try to be more
    clever and implement some auto-detection of the GIC type needed:
    We try gicv3-its, gicv3, gicv2m and gicv2, in that order. The first one
    succeeding wins.
    For GICv2 machines the first two will always fail.
    On GICv3 machines offering GICv2 compatibility we used to prefer a
    virtual GICv2 in the guest, but these days the GICv3 support both in
    guests and in KVM is equally mature and wide-spread, so we should use
    the GICv3 emulation for the guest as well.
    
    This algorithm is in effect is there is no explicit --irqchip parameter
    on the command line. We still allow the GIC type to be set explicitly.
    
    Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    c57e001a