VIO bus not initialized

4 messages, 2 authors, 2021-03-16 · open the first message on its own page

VIO bus not initialized

From: Paul Menzel <hidden>
Date: 2021-03-10 12:15:42

Dear Linux folks,


On the POWER8 system IBM S822LC, Linux 5.12-rc2+ logs the errors below.

     $ dmesg --level=err
     [    1.555668] Driver 'hvc_console' was unable to register with 
bus_type 'vio' because the bus was not initialized.
     [    1.558434] Driver 'tpm_ibmvtpm' was unable to register with 
bus_type 'vio' because the bus was not initialized.
     $ grep VIO /boot/config-5.12.0-rc2+
     CONFIG_IBMVIO=y

How can the bus be initialized? Please find the output of `make 
savedefconfig` and `dmesg` attached.


Kind regards,

Paul

Re: VIO bus not initialized

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2021-03-15 07:54:08

Paul Menzel [off-list ref] writes:
Dear Linux folks,


On the POWER8 system IBM S822LC, Linux 5.12-rc2+ logs the errors below.
That's a bare metal system, you can see that from the line "Using
PowerNV machine description" in the boot log.
     $ dmesg --level=err
     [    1.555668] Driver 'hvc_console' was unable to register with 
bus_type 'vio' because the bus was not initialized.
     [    1.558434] Driver 'tpm_ibmvtpm' was unable to register with 
bus_type 'vio' because the bus was not initialized.
     $ grep VIO /boot/config-5.12.0-rc2+
     CONFIG_IBMVIO=y
The "vio" bus is not a real bus, it's a fake bus we use for hypervisor
provided devices in LPARs (guests).

So on bare metal machines there is no vio bus, the devices that would
appear on the vio bus are found via other mechanisms.
[    1.555668] Driver 'hvc_console' was unable to register with bus_type 'vio' because the bus was not initialized.
[    1.555866] hvc0: raw protocol on /ibm,opal/consoles/serial@0 (boot console)
[    1.555875] hvc0: No interrupts property, using OPAL event
You can see here that the hvc opal driver found the console, which is
the bare metal equivalent of the hvc console (vio) driver.
[    1.556205] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    1.558377] Non-volatile memory driver v1.3
[    1.558404] Linux agpgart interface v0.103
[    1.558434] Driver 'tpm_ibmvtpm' was unable to register with bus_type 'vio' because the bus was not initialized.
The ibmvtpm driver is a Virtual TPM driver, so it also isn't present on
a bare metal system.

I don't think that system has a TPM, but if it did you'd need the
appropriate bare metal TPM driver to use it.

cheers

Re: VIO bus not initialized

From: Paul Menzel <hidden>
Date: 2021-03-15 08:11:45

Dear Michael,


Thank you very much for your response.


Am 15.03.21 um 08:53 schrieb Michael Ellerman:
Paul Menzel writes:
quoted
On the POWER8 system IBM S822LC, Linux 5.12-rc2+ logs the errors below.
That's a bare metal system, you can see that from the line "Using
PowerNV machine description" in the boot log.
quoted
      $ dmesg --level=err
      [    1.555668] Driver 'hvc_console' was unable to register with bus_type 'vio' because the bus was not initialized.
      [    1.558434] Driver 'tpm_ibmvtpm' was unable to register with bus_type 'vio' because the bus was not initialized.
      $ grep VIO /boot/config-5.12.0-rc2+
      CONFIG_IBMVIO=y
The "vio" bus is not a real bus, it's a fake bus we use for hypervisor
provided devices in LPARs (guests).

So on bare metal machines there is no vio bus, the devices that would
appear on the vio bus are found via other mechanisms.
Thank you for the explanation. Two questions:

1.  Could a bare metal system be detected, and the VIO “be skipped”?
2.  Should the log level be changed to notice or info then, as it’s an 
expected failure?

[…]


Kind regards,

Paul

Re: VIO bus not initialized

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2021-03-16 01:11:20

Paul Menzel [off-list ref] writes:
Am 15.03.21 um 08:53 schrieb Michael Ellerman:
quoted
Paul Menzel writes:
quoted
quoted
On the POWER8 system IBM S822LC, Linux 5.12-rc2+ logs the errors below.
That's a bare metal system, you can see that from the line "Using
PowerNV machine description" in the boot log.
quoted
      $ dmesg --level=err
      [    1.555668] Driver 'hvc_console' was unable to register with bus_type 'vio' because the bus was not initialized.
      [    1.558434] Driver 'tpm_ibmvtpm' was unable to register with bus_type 'vio' because the bus was not initialized.
      $ grep VIO /boot/config-5.12.0-rc2+
      CONFIG_IBMVIO=y
The "vio" bus is not a real bus, it's a fake bus we use for hypervisor
provided devices in LPARs (guests).

So on bare metal machines there is no vio bus, the devices that would
appear on the vio bus are found via other mechanisms.
Thank you for the explanation. Two questions:

1.  Could a bare metal system be detected, and the VIO “be skipped”?
Yeah, in fact we are already skipping the registration of the bus,
that's why we're seeing these messages. We need to also skip the
registration of the drivers to avoid those warnings.

See the patch I just sent.

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help