• D
    pseries: Allow kernel's early debug output to work · 3feef8ad
    David Gibson 提交于
    The PAPR specification defines a virtual TTY/console interface for guest
    OSes to use via the H_PUT_TERM_CHAR and H_GET_TERM_CHAR hypercalls.  There
    can be multiple virtual ttys, so these take a "termno" parameter.  This
    encodes which vty to use as the 'reg' property on the device tree node
    associated with that vty.
    
    However, with the early debug options enabled, the Linux kernel will
    attempt debugging output through the vty very early, before it has read
    the device tree.  In this case it always uses a termno of 0.  This works
    on the existing PowerVM hypervisor, so we assume there must be a hack /
    feature in there which interprets termno==0 to mean the default primary
    console.
    
    To help with debugging kernels, including existing distribution kernels,
    this patch implements a similar feature / hack in qemu.  If termno==0
    is supplied to H_{GET,PUT}_TERM_CHAR, they use the first available vty
    device instead.
    
    We need to be careful in the case that the user has manually created
    an spapr-vty at address 0. So first we search for the specified reg and
    only if that doesn't match do we fall back.
    Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    3feef8ad
spapr_vty.c 4.8 KB