Booting Windows 11

Simon Glass sjg at chromium.org
Wed Aug 16 03:22:56 CEST 2023


Hi Heinrich,

I thought I would try booting Windows on U-Boot but it does not get
very far. Have you tried that? I note a ew odd things below. Is there
a validation suite for it?

https://github.com/sjg20/u-boot/tree/efi2

qemu-system-x86_64  -smp 4 -m 8G -serial mon:stdio -bios
/tmp/b/qemu-x86_64/u-boot.rom -drive
id=fisk,file=root.img,if=virtio,driver=raw -drive
id=disk,if=virtio,file=/vid/software/win/Win11_22H2_English_x64v2.iso

Scanning bootdev 'virtio-blk#0.bootdev':
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_locate_device_path(protocol, &dp, &old_handle)
efi_locate_device_path()   EFI: Entry efi_locate_device_path(Device
Path, 00000000becf6848, 00000000becf6840)
efi_locate_device_path()     EFI: Call:
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_handle_buffer()       EFI: Entry
efi_locate_handle_buffer(2, Device Path, 0000000000000000,
00000000becf67b8, 00000000becf67b0)
efi_locate_handle_buffer()       EFI: Exit: efi_locate_handle_buffer: 0
efi_locate_device_path()     EFI: 0 returned by
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_device_path()   EFI: Exit: efi_locate_device_path: 14
efi_install_multiple_protocol_interfaces_int() EFI: 14 returned by


^ This seems unhappy because it is a virtio device?

 efi_locate_device_path(protocol, &dp, &old_handle)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6948, Device Path, 0,
00000000bdcf2040)
efi_install_protocol_interface()     EFI: handle 00000000bed1f820
    efi_add_protocol()     EFI: installed device path
'/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5400000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8200000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600820000000000)'
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6948, Block IO, 0,
00000000bed1f850)
efi_install_protocol_interface()     EFI: handle 00000000bed1f820
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
Scanning bootdev 'virtio-blk#1.bootdev':
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_locate_device_path(protocol, &dp, &old_handle)
efi_locate_device_path()   EFI: Entry efi_locate_device_path(Device
Path, 00000000becf6848, 00000000becf6840)
efi_locate_device_path()     EFI: Call:
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_handle_buffer()       EFI: Entry
efi_locate_handle_buffer(2, Device Path, 0000000000000000,
00000000becf67b8, 00000000becf67b0)
efi_locate_handle_buffer()       EFI: Exit: efi_locate_handle_buffer: 0
efi_locate_device_path()     EFI: 0 returned by
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_device_path()   EFI: Exit: efi_locate_device_path: 14
efi_install_multiple_protocol_interfaces_int() EFI: 14 returned by
efi_locate_device_path(protocol, &dp, &old_handle)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6948, Device Path, 0,
00000000bdcf0040)
efi_install_protocol_interface()     EFI: handle 00000000bed24ef0
    efi_add_protocol()     EFI: installed device path
'/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5400000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8200000001000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600820001000000)'
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6948, Block IO, 0,
00000000bed24f20)
efi_install_protocol_interface()     EFI: handle 00000000bed24ef0
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_locate_device_path(protocol, &dp, &old_handle)
efi_locate_device_path()   EFI: Entry efi_locate_device_path(Device
Path, 00000000becf6818, 00000000becf6810)
efi_locate_device_path()     EFI: Call:
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_handle_buffer()       EFI: Entry
efi_locate_handle_buffer(2, Device Path, 0000000000000000,
00000000becf6788, 00000000becf6780)
efi_locate_handle_buffer()       EFI: Exit: efi_locate_handle_buffer: 0
efi_locate_device_path()     EFI: 0 returned by
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_device_path()   EFI: Exit: efi_locate_device_path: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_locate_device_path(protocol, &dp, &old_handle)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6918, Device Path, 0,
00000000bdced040)
efi_install_protocol_interface()     EFI: handle 00000000bed1f9e0
    efi_add_protocol()     EFI: installed device path
'/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5400000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8200000001000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600820001000000)/CDROM(1,0x80c,0x8)'
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6918, Block IO, 0,
00000000bed1fa10)
efi_install_protocol_interface()     EFI: handle 00000000bed1f9e0
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_locate_device_path(protocol, &dp, &old_handle)
efi_locate_device_path()   EFI: Entry efi_locate_device_path(Device
Path, 00000000becf6818, 00000000becf6810)
efi_locate_device_path()     EFI: Call:
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_handle_buffer()       EFI: Entry
efi_locate_handle_buffer(2, Device Path, 0000000000000000,
00000000becf6788, 00000000becf6780)
efi_locate_handle_buffer()       EFI: Exit: efi_locate_handle_buffer: 0
efi_locate_device_path()     EFI: 0 returned by
efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, &no_handles,
&handles)
efi_locate_device_path()   EFI: Exit: efi_locate_device_path: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_locate_device_path(protocol, &dp, &old_handle)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6918, Device Path, 0,
00000000bdceb040)
efi_install_protocol_interface()     EFI: handle 00000000bed2b050
    efi_add_protocol()     EFI: installed device path
'/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5400000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8200000001000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600820001000000)/CDROM(2,0x814,0x0)'
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_multiple_protocol_interfaces_int() EFI: Call:
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
efi_install_protocol_interface()   EFI: Entry
efi_install_protocol_interface(00000000becf6918, Block IO, 0,
00000000bed2b080)
efi_install_protocol_interface()     EFI: handle 00000000bed2b050
efi_install_protocol_interface()   EFI: Exit: efi_install_protocol_interface: 0
efi_install_multiple_protocol_interfaces_int() EFI: 0 returned by
efi_install_protocol_interface(handle, protocol, EFI_NATIVE_INTERFACE,
protocol_interface)
  0  efi          ready   virtio       2  virtio-blk#1.bootdev.part
efi/boot/bootx64.efi
** Booting bootflow 'virtio-blk#1.bootdev.part_2' with efi
efi_set_blk_dev_to_system_partition() No EFI system partition
efi_set_blk_dev_to_system_partition() No EFI system partition
     efi_var_to_file() Failed to persist EFI variables
    efi_add_protocol() EFI: installed device path
'/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5400000000000000)/MAC(525400123456,1)'
EFI using ACPI tables at f0060
     efi_install_fdt() WARNING: Can't have ACPI table and device tree
- ignoring DT.
       efi_run_image() Booting /efi\boot\bootx64.efi
      efi_load_image() EFI: Entry efi_load_image(0, 00000000becfb110,
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,5400000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,8200000001000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,1600820001000000)/CDROM(2,0x814,0x0)/efi\boot\bootx64.efi,
0000000001000000, 904560, 00000000becf6820)
      efi_load_image() EFI: Exit: efi_load_image: 0
     efi_start_image() EFI: Entry efi_start_image(00000000bed3d820,
00000000becf67e0, 00000000becf67e8)
     efi_start_image()   EFI: Call: efi_open_protocol(image_handle,
&efi_guid_loaded_image, &info, NULL, NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL)
   efi_open_protocol()     EFI: Entry
efi_open_protocol(00000000bed3d820, Loaded Image, 00000000becf6730,
0000000000000000, 0000000000000000, 0x2)
   efi_open_protocol()     EFI: Exit: efi_open_protocol: 0
     efi_start_image()   EFI: 0 returned by
efi_open_protocol(image_handle, &efi_guid_loaded_image, &info, NULL,
NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL)
     efi_start_image()   EFI: Jumping into 0x00000000bdbaf090
     efi_start_image()   EFI: Call: image_obj->entry(image_handle, &systab)
   efi_open_protocol()     EFI: Entry
efi_open_protocol(00000000bed3d820, Loaded Image, 00000000becf66c8,
00000000becfb110, 0000000000000000, 0x1)
   efi_open_protocol()     EFI: Exit: efi_open_protocol: 0
   efi_open_protocol()     EFI: Entry
efi_open_protocol(00000000bed2b050, Device Path, 00000000becf6670,
00000000becfb110, 0000000000000000, 0x1)
   efi_open_protocol()     EFI: Exit: efi_open_protocol: 0
efi_allocate_pages_ext()     EFI: Entry efi_allocate_pages_ext(2, 2,
0x1, 00000000becf66d8)
efi_allocate_pages_ext()       EFI: - type address
efi_allocate_pages_ext()       EFI: - address 102000
efi_allocate_pages_ext()       EFI: - returning memory 102000
efi_allocate_pages_ext()     EFI: Exit: efi_allocate_pages_ext: 0

Here it hangs for about 10 seconds, then reboots.

Regards,
Simon


More information about the U-Boot mailing list