• Ralf Ramsauer's avatar
    x86/jailhouse: Only enable platform UARTs if available · 7a56b81c
    Ralf Ramsauer authored
    ACPI tables aren't available if Linux runs as guest of the hypervisor
    Jailhouse. This makes the 8250 driver probe for all platform UARTs as it
    assumes that all UARTs are present in case of !ACPI. Jailhouse will stop
    execution of Linux guest due to port access violation.
    
    So far, these access violations were solved by tuning the 8250.nr_uarts
    cmdline parameter, but this has limitations: Only consecutive platform
    UARTs can be mapped to Linux, and only in the sequence 0x3f8, 0x2f8,
    0x3e8, 0x2e8.
    
    Beginning from setup_data version 2, Jailhouse will place information of
    available platform UARTs in setup_data. This allows for selective
    activation of platform UARTs.
    
    Query setup_data version and only activate available UARTS. This
    patch comes with backward compatibility, and will still support older
    setup_data versions. In case of older setup_data versions, Linux falls
    back to the old behaviour.
    Signed-off-by: default avatarRalf Ramsauer <ralf.ramsauer@oth-regensburg.de>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: jailhouse-dev@googlegroups.com
    Cc: Juergen Gross <jgross@suse.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20191010102102.421035-3-ralf.ramsauer@oth-regensburg.de
    7a56b81c
jailhouse.c 7.15 KB