On Fri, Mar 19, 2021 at 04:53:59PM +0000, Alexandru Elisei wrote: > Currently, the UART early address is set indirectly with the --vmm option > and there are only two possible values: if the VMM is qemu (the default), > then the UART address is set to 0x09000000; if the VMM is kvmtool, then the > UART address is set to 0x3f8. > > The upstream kvmtool commit 45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO > at higher addresses") changed the UART address to 0x1000000, and > kvm-unit-tests so far hasn't had mechanism to let the user set a specific > address, which means that for recent versions of kvmtool the early UART > won't be available. > > This situation will only become worse as kvm-unit-tests gains support to > run as an EFI app, as each platform will have their own UART type and > address. > > To address both issues, a new configure option is added, --earlycon. The > syntax and semantics are identical to the kernel parameter with the same > name. For example, for kvmtool, --earlycon=uart,mmio,0x1000000 will set the > correct UART address. Specifying this option will overwrite the UART > address set by --vmm. > > At the moment, the UART type and register width parameters are ignored > since both qemu's and kvmtool's UART emulation use the same offset for the > TX register and no other registers are used by kvm-unit-tests, but the > parameters will become relevant once EFI support is added. > > Signed-off-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> > --- > Besides working with current versions of kvmtool, this will also make early > console work if the user specifies a custom memory layout [1] (patches are > old, but I plan to pick them up at some point in the future). > > Changes in v3: > * Switched to using IFS and read instead of cut. > * Fixed typo in option description. > * Added check that $addr is a valid number. > > Changes in v2: > * kvmtool patches were merged, so I reworked the commit message to point to > the corresponding kvmtool commit. > * Restricted pl011 register size to 32 bits, as per Arm Base System > Architecture 1.0 (DEN0094A), and to match Linux. > * Reworked the way the fields are extracted to make it more precise > (without the -s argument, the entire string is echo'ed when no delimiter > is found). > * The changes are not trivial, so I dropped Drew's Reviewed-by. > > [1] https://lore.kernel.org/kvm/1569245722-23375-1-git-send-email-alexandru.elisei@xxxxxxx/ > > configure | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > Applied to arm/queue https://gitlab.com/rhdrjones/kvm-unit-tests/-/commits/arm/queue Thanks, drew