[U-Boot] [PATCH 16/27] arm: qemu: Enumerate virtio bus during early boot

Simon Glass sjg at chromium.org
Thu Sep 27 13:42:38 UTC 2018


On 23 September 2018 at 06:42, Bin Meng <bmeng.cn at gmail.com> wrote:
> Currently devices on the virtio bus is not automatically enumerated,
> which means peripherals on the virtio bus are not discovered by their
> drivers. This uses board_init() to do the virtio enumeration.
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> ---
>
>  board/emulation/qemu-arm/Kconfig    | 3 +++
>  board/emulation/qemu-arm/qemu-arm.c | 7 +++++++
>  2 files changed, 10 insertions(+)
>

Reviewed-by: Simon Glass <sjg at chromium.org>

But I wonder if we should have a flag in the uclass or perhaps device
tree, to indicate that all devices in it should be probed at start-up?
Could be useful for PCI too.

> diff --git a/board/emulation/qemu-arm/Kconfig b/board/emulation/qemu-arm/Kconfig
> index d1c08c2..16b80fe 100644
> --- a/board/emulation/qemu-arm/Kconfig
> +++ b/board/emulation/qemu-arm/Kconfig
> @@ -5,5 +5,8 @@ config SYS_TEXT_BASE
>
>  config BOARD_SPECIFIC_OPTIONS # dummy
>         def_bool y
> +       imply VIRTIO_MMIO
> +       imply VIRTIO_NET
> +       imply VIRTIO_BLK
>
>  endif
> diff --git a/board/emulation/qemu-arm/qemu-arm.c b/board/emulation/qemu-arm/qemu-arm.c
> index 812c906..428498e 100644
> --- a/board/emulation/qemu-arm/qemu-arm.c
> +++ b/board/emulation/qemu-arm/qemu-arm.c
> @@ -4,6 +4,7 @@
>   */
>  #include <common.h>
>  #include <fdtdec.h>
> +#include <virtio.h>
>
>  #ifdef CONFIG_ARM64
>  #include <asm/armv8/mmu.h>
> @@ -58,6 +59,12 @@ struct mm_region *mem_map = qemu_arm64_mem_map;
>
>  int board_init(void)
>  {
> +       /*
> +        * Make sure virtio bus is enumerated so that peripherals
> +        * on the virtio bus can be discovered by their drivers
> +        */
> +       virtio_init();
> +
>         return 0;
>  }
>
> --
> 2.7.4
>


More information about the U-Boot mailing list