riscv: Move virtio scan to board_late_init() 87/306287/5 accepted/tizen/unified/20240402.151307 accepted/tizen/unified/20240402.163558 accepted/tizen/unified/x/20240403.102935
authorŁukasz Stelmach <l.stelmach@samsung.com>
Mon, 19 Feb 2024 12:21:37 +0000 (13:21 +0100)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 2 Apr 2024 01:47:47 +0000 (01:47 +0000)
When virtio_init() gets called from board_init() PCI isn't ready. Thus,
virtio-over-PCI (e.g. network interfaces) devices can't be detected and
used without additional `virtio scan` scan in the shell or a script.

Change-Id: I446c473c2c41be8b59842dce09593a47d9a42d73
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
Forwarded: https://lore.kernel.org/u-boot/20240328095824.1179072-1-l.stelmach@samsung.com/

arch/riscv/Kconfig
board/emulation/qemu-riscv/qemu-riscv.c

index 1c62c23..1a39cb4 100644 (file)
@@ -16,6 +16,7 @@ config TARGET_MICROCHIP_ICICLE
 
 config TARGET_QEMU_VIRT
        bool "Support QEMU Virt Board"
+       select BOARD_LATE_INIT
 
 config TARGET_SIFIVE_UNLEASHED
        bool "Support SiFive Unleashed Board"
index 181abbb..173245b 100644 (file)
@@ -31,12 +31,6 @@ int is_flash_available(void)
 
 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;
 }
 
@@ -46,6 +40,12 @@ int board_late_init(void)
        if (CONFIG_IS_ENABLED(USB_KEYBOARD))
                usb_init();
 
+       /*
+        * Make sure virtio bus is enumerated so that peripherals
+        * on the virtio bus can be discovered by their drivers
+        */
+       virtio_init();
+
        return 0;
 }