All of lore.kernel.org
 help / color / mirror / Atom feed
* Booting Windows 11
@ 2023-08-16  1:22 Simon Glass
  2023-08-16  7:11 ` Ilias Apalodimas
  2023-08-16  7:41 ` Heinrich Schuchardt
  0 siblings, 2 replies; 7+ messages in thread
From: Simon Glass @ 2023-08-16  1:22 UTC (permalink / raw)
  To: U-Boot Mailing List; +Cc: Heinrich Schuchardt, Ilias Apalodimas

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Booting Windows 11
  2023-08-16  1:22 Booting Windows 11 Simon Glass
@ 2023-08-16  7:11 ` Ilias Apalodimas
  2023-08-16 14:16   ` Simon Glass
  2023-08-16  7:41 ` Heinrich Schuchardt
  1 sibling, 1 reply; 7+ messages in thread
From: Ilias Apalodimas @ 2023-08-16  7:11 UTC (permalink / raw)
  To: Simon Glass; +Cc: U-Boot Mailing List, Heinrich Schuchardt

Hi Simon, 

On Tue, Aug 15, 2023 at 07:22:56PM -0600, Simon Glass wrote:
> 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.


How are you launching QEMU? 
IIRC by default the VM spawns in EL1 and sets the PSCI conduit to HVC. But Windows 
issues an SMC unconditionally and blows up.  Can you try with
virtualization=on?

Regards
/Ilias
> 
> Regards,
> Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Booting Windows 11
  2023-08-16  1:22 Booting Windows 11 Simon Glass
  2023-08-16  7:11 ` Ilias Apalodimas
@ 2023-08-16  7:41 ` Heinrich Schuchardt
  2023-08-16 10:50   ` Heinrich Schuchardt
  1 sibling, 1 reply; 7+ messages in thread
From: Heinrich Schuchardt @ 2023-08-16  7:41 UTC (permalink / raw)
  To: Simon Glass; +Cc: Heinrich Schuchardt, Ilias Apalodimas, U-Boot Mailing List

On 8/16/23 03:22, Simon Glass wrote:
> 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-x86_64_defconfig does not build with your tree (commit
d4caae6bce9082d0a770047e8f3d3a68b7084740, sjg/efi2):

   BINMAN  .binman_stamp
Wrote map file './rom.map' to show errors
binman: Node '/binman/rom/u-boot-spl-with-ucode-ptr': Offset 0xfffd8000
(4294803456) overlaps with previous entry '/binman/rom/u-boot' ending at
0xfffd84e8 (4294804712)
make: *** [Makefile:1115: .binman_stamp] Error 1

ImagePos    Offset      Size  Name
<none>    00000000  00100000  rom
<none>     fff00000  000d84e8  u-boot
<none>      00000000  000d79a0  u-boot-nodtb
<none>      000d79a0  00000b48  u-boot-dtb
<none>     fffd8000  00015f60  u-boot-spl-with-ucode-ptr
<none>     fffd84e8  00000b48  u-boot-dtb
<none>     fffd9030  000004c6  fdtmap
<none>     fffd94f6  00000000  private-files
<none>     fffedf60  00000b48  u-boot-dtb-with-ucode2
<none>     fffff800  00000070  x86-start16-spl
<none>     fffffff0  00000005  x86-reset16-spl
<none>     fffffff8  00000008  image-header

>
> 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

This does not work with EDK II either.

I was able to start the installer with:

qemu-system-x86_64 \
-M q35,smm=on,accel=kvm -smp 8 -m 4G -gdb tcp::1234 \
-serial mon:stdio \
-vga std \
-device qemu-xhci \
-device usb-kbd \
-device usb-mouse \
-global driver=cfi.pflash01,property=secure,value=on \
-drive
if=pflash,format=raw,unit=0,file=OVMF_CODE_4M.secboot.fd,readonly=on \
-drive if=pflash,format=raw,unit=1,file=OVMF_VARS.ms.fd \
-drive file=root.img,if=virtio,format=raw \
-drive file=Win11_22H2_EnglishInternational_x64v2.iso,media=cdrom

The Windows installer does not work without SMM but returns to the EFI
shell. This might be what you have seen.

U-Boot's qemu-x86_64_defconfig does not start with
-M q35,smm=on,accel=kvm

Instead of using KVM you could specify -cpu Skylake-Client-v4 which is
supported by the Windows 11. But of course this is very slow.

Please, retry with:
qemu-system-x86_64 \
-machine pc-i440fx-2.5,smm=on -cpu Skylake-Client-v4 \
-vga std \

Can we get support for -M q35 into U-Boot? Cf.
https://wiki.qemu.org/Features/Q35. This would allow us to actually
compare EDK II and U-Boot when running with the same settings.

Why wouldn't U-Boot support kvm on an AMD Ryzen 5 2500U?

>
> 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?

Before a device path protocol is installed we check that the same device
path has not been installed before (lib/efi_loader/efi_boottime.c:2685).

EFI_NOT_FOUND signals that we are good to continue.

Best regards

Heinrich

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Booting Windows 11
  2023-08-16  7:41 ` Heinrich Schuchardt
@ 2023-08-16 10:50   ` Heinrich Schuchardt
  2023-08-16 14:15     ` Simon Glass
  0 siblings, 1 reply; 7+ messages in thread
From: Heinrich Schuchardt @ 2023-08-16 10:50 UTC (permalink / raw)
  To: Simon Glass; +Cc: Ilias Apalodimas, U-Boot Mailing List

On 8/16/23 09:41, Heinrich Schuchardt wrote:
> On 8/16/23 03:22, Simon Glass wrote:
>> 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-x86_64_defconfig does not build with your tree (commit
> d4caae6bce9082d0a770047e8f3d3a68b7084740, sjg/efi2):
>
>    BINMAN  .binman_stamp
> Wrote map file './rom.map' to show errors
> binman: Node '/binman/rom/u-boot-spl-with-ucode-ptr': Offset 0xfffd8000
> (4294803456) overlaps with previous entry '/binman/rom/u-boot' ending at
> 0xfffd84e8 (4294804712)
> make: *** [Makefile:1115: .binman_stamp] Error 1
>
> ImagePos    Offset      Size  Name
> <none>    00000000  00100000  rom
> <none>     fff00000  000d84e8  u-boot
> <none>      00000000  000d79a0  u-boot-nodtb
> <none>      000d79a0  00000b48  u-boot-dtb
> <none>     fffd8000  00015f60  u-boot-spl-with-ucode-ptr
> <none>     fffd84e8  00000b48  u-boot-dtb
> <none>     fffd9030  000004c6  fdtmap
> <none>     fffd94f6  00000000  private-files
> <none>     fffedf60  00000b48  u-boot-dtb-with-ucode2
> <none>     fffff800  00000070  x86-start16-spl
> <none>     fffffff0  00000005  x86-reset16-spl
> <none>     fffffff8  00000008  image-header
>
>>
>> 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
>
> This does not work with EDK II either.
>
> I was able to start the installer with:
>
> qemu-system-x86_64 \
> -M q35,smm=on,accel=kvm -smp 8 -m 4G -gdb tcp::1234 \
> -serial mon:stdio \
> -vga std \
> -device qemu-xhci \
> -device usb-kbd \
> -device usb-mouse \
> -global driver=cfi.pflash01,property=secure,value=on \
> -drive
> if=pflash,format=raw,unit=0,file=OVMF_CODE_4M.secboot.fd,readonly=on \
> -drive if=pflash,format=raw,unit=1,file=OVMF_VARS.ms.fd \
> -drive file=root.img,if=virtio,format=raw \
> -drive file=Win11_22H2_EnglishInternational_x64v2.iso,media=cdrom
>
> The Windows installer does not work without SMM but returns to the EFI
> shell. This might be what you have seen.
>
> U-Boot's qemu-x86_64_defconfig does not start with
> -M q35,smm=on,accel=kvm
>
> Instead of using KVM you could specify -cpu Skylake-Client-v4 which is
> supported by the Windows 11. But of course this is very slow.
>
> Please, retry with:
> qemu-system-x86_64 \
> -machine pc-i440fx-2.5,smm=on -cpu Skylake-Client-v4 \
> -vga std \
>
> Can we get support for -M q35 into U-Boot? Cf.
> https://wiki.qemu.org/Features/Q35. This would allow us to actually
> compare EDK II and U-Boot when running with the same settings.
>
> Why wouldn't U-Boot support kvm on an AMD Ryzen 5 2500U?

With KVM I either get:
"int_exception_handler() Exception 13 while executing option rom"
or the code hangs in cpu_call64.

Best regards

Heinrich

>
>>
>> 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?
>
> Before a device path protocol is installed we check that the same device
> path has not been installed before (lib/efi_loader/efi_boottime.c:2685).
>
> EFI_NOT_FOUND signals that we are good to continue.
>
> Best regards
>
> Heinrich


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Booting Windows 11
  2023-08-16 10:50   ` Heinrich Schuchardt
@ 2023-08-16 14:15     ` Simon Glass
  2023-08-16 18:16       ` Heinrich Schuchardt
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Glass @ 2023-08-16 14:15 UTC (permalink / raw)
  To: Heinrich Schuchardt; +Cc: Ilias Apalodimas, U-Boot Mailing List

Hi Heinrich,

On Wed, 16 Aug 2023 at 04:50, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>
> On 8/16/23 09:41, Heinrich Schuchardt wrote:
> > On 8/16/23 03:22, Simon Glass wrote:
> >> 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

Thanks for all the helpful info. I know very little about this so am
happy that you do!

> >
> > qemu-x86_64_defconfig does not build with your tree (commit
> > d4caae6bce9082d0a770047e8f3d3a68b7084740, sjg/efi2):
> >
> >    BINMAN  .binman_stamp
> > Wrote map file './rom.map' to show errors
> > binman: Node '/binman/rom/u-boot-spl-with-ucode-ptr': Offset 0xfffd8000
> > (4294803456) overlaps with previous entry '/binman/rom/u-boot' ending at
> > 0xfffd84e8 (4294804712)
> > make: *** [Makefile:1115: .binman_stamp] Error 1
> >
> > ImagePos    Offset      Size  Name
> > <none>    00000000  00100000  rom
> > <none>     fff00000  000d84e8  u-boot
> > <none>      00000000  000d79a0  u-boot-nodtb
> > <none>      000d79a0  00000b48  u-boot-dtb
> > <none>     fffd8000  00015f60  u-boot-spl-with-ucode-ptr
> > <none>     fffd84e8  00000b48  u-boot-dtb
> > <none>     fffd9030  000004c6  fdtmap
> > <none>     fffd94f6  00000000  private-files
> > <none>     fffedf60  00000b48  u-boot-dtb-with-ucode2
> > <none>     fffff800  00000070  x86-start16-spl
> > <none>     fffffff0  00000005  x86-reset16-spl
> > <none>     fffffff8  00000008  image-header

I am building with

> >
> >>
> >> 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
> >
> > This does not work with EDK II either.
> >

OK

> > I was able to start the installer with:
> >
> > qemu-system-x86_64 \
> > -M q35,smm=on,accel=kvm -smp 8 -m 4G -gdb tcp::1234 \
> > -serial mon:stdio \
> > -vga std \
> > -device qemu-xhci \
> > -device usb-kbd \
> > -device usb-mouse \
> > -global driver=cfi.pflash01,property=secure,value=on \
> > -drive
> > if=pflash,format=raw,unit=0,file=OVMF_CODE_4M.secboot.fd,readonly=on \
> > -drive if=pflash,format=raw,unit=1,file=OVMF_VARS.ms.fd \
> > -drive file=root.img,if=virtio,format=raw \
> > -drive file=Win11_22H2_EnglishInternational_x64v2.iso,media=cdrom
> >

For me I get an error:

$ dpkg -l ovmf
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version                  Architecture Description
+++-==============-========================-============-=============================================
ii  ovmf           2022.02-3ubuntu0.22.04.1 all          UEFI firmware
for 64-bit x86 virtual machines

$ qemu-system-x86_64 -M q35,smm=on,accel=kvm -smp 8 -m 4G -gdb
tcp::1234 -serial mon:stdio -vga std -device qemu-xhci -device usb-kbd
-device usb-mouse -global driver=cfi.pflash01,property=secure,value=on
-drive if=pflash,format=raw,unit=0,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd,readonly=on
-drive if=pflash,format=raw,unit=1,file=//vid/software/devel/u-boot/efi/OVMF_VARS.ms.fd
-drive file=root.img,if=virtio,format=raw -drive
file=/vid/software/win/Win11_22H2_English_x64v2.iso,media=cdrom
qemu-system-x86_64: Gdk:
gdk_wayland_window_set_dbus_properties_libgtk_only: assertion
'GDK_IS_WAYLAND_WINDOW (window)' failed
!!!! X64 Exception Type - 06(#UD - Invalid Opcode)  CPU Apic ID - 00000000 !!!!
RIP  - 0000000000030000, CS  - 0000000000000038, RFLAGS - 0000000000010246
RAX  - 0000000000000000, RCX - 0000000000000000, RDX - 0000000000000000
RBX  - FFFFFFFFFFFFFFFF, RSP - 000000007EEC1E18, RBP - 0000000000000001
RSI  - 000000007E8EC818, RDI - 000000007EED9830
R8   - 0000000000000000, R9  - 0000000003041001, R10 - 000000000000003A
R11  - 000000007E8E9680, R12 - 000000007E8E9018, R13 - 000000007EEC1EA0
R14  - 000000007EED72F0, R15 - 0000000000000000
DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
GS   - 0000000000000030, SS  - 0000000000000030
CR0  - 0000000080010033, CR2 - 0000000000000000, CR3 - 000000007EC01000
CR4  - 0000000000000668, CR8 - 0000000000000000
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
GDTR - 000000007E9E2000 0000000000000047, LDTR - 0000000000000000
IDTR - 000000007E4E6018 0000000000000FFF,   TR - 0000000000000000
FXSAVE_STATE - 000000007EEC1A70
!!!! Can't find image information. !!!!


> > The Windows installer does not work without SMM but returns to the EFI
> > shell. This might be what you have seen.

OK.

> >
> > U-Boot's qemu-x86_64_defconfig does not start with
> > -M q35,smm=on,accel=kvm
> >
> > Instead of using KVM you could specify -cpu Skylake-Client-v4 which is
> > supported by the Windows 11. But of course this is very slow.
> >
> > Please, retry with:
> > qemu-system-x86_64 \
> > -machine pc-i440fx-2.5,smm=on -cpu Skylake-Client-v4 \
> > -vga std \

That does the same thing for me with qemu-x86_64 (eventually reboots).
I tried using Q35 too:

qemu-system-x86_64 -M smm=on  -cpu Skylake-Client-v4 -vga std  -m 4G
-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,file=/vid/software/win/Win11_22H2_English_x64v2.iso,if=none
   -device ich9-ahci,id=ahci       -device
ide-hd,drive=disk,bus=ahci.0

Trying the same idea with the OVMF stuff hangs with nothing on the display:

qemu-system-x86_64 -M pc-i440fx-2.5,smm=on -cpu Skylake-Client-v4 -vga
std  -m 4G -gdb tcp::1234 -serial mon:stdio -vga std -device qemu-xhci
-device usb-kbd -device usb-mouse -global
driver=cfi.pflash01,property=secure,value=on -drive
if=pflash,format=raw,unit=0,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd,readonly=on
-drive if=pflash,format=raw,unit=1,file=//vid/software/devel/u-boot/efi/OVMF_VARS.ms.fd
-drive file=root.img,if=virtio,format=raw -drive
file=/vid/software/win/Win11_22H2_English_x64v2.iso,media=cdrom

> >
> > Can we get support for -M q35 into U-Boot? Cf.
> > https://wiki.qemu.org/Features/Q35. This would allow us to actually
> > compare EDK II and U-Boot when running with the same settings.

Yes but you need to change CONFIG_DEVICE_TREE to "qemu-x86_q35"

> >
> > Why wouldn't U-Boot support kvm on an AMD Ryzen 5 2500U?
>
> With KVM I either get:
> "int_exception_handler() Exception 13 while executing option rom"
> or the code hangs in cpu_call64.

Yes, that is a bug I mentioned to Bin as well. It happens when jumping
into 64-bit mode. However, it works fine with booting from coreboot,
so it is probably something missing in the CPU init. I have not dug
into that yet.

I pushed a new tree to my github/efi2 with the Q35 changes so that you
can try that.

>
> Best regards
>
> Heinrich
>
> >
> >>
> >> 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?
> >
> > Before a device path protocol is installed we check that the same device
> > path has not been installed before (lib/efi_loader/efi_boottime.c:2685).
> >
> > EFI_NOT_FOUND signals that we are good to continue.

OK, thanks.

Regards,
Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Booting Windows 11
  2023-08-16  7:11 ` Ilias Apalodimas
@ 2023-08-16 14:16   ` Simon Glass
  0 siblings, 0 replies; 7+ messages in thread
From: Simon Glass @ 2023-08-16 14:16 UTC (permalink / raw)
  To: Ilias Apalodimas; +Cc: U-Boot Mailing List, Heinrich Schuchardt

Hi Ilias,

On Wed, 16 Aug 2023 at 01:11, Ilias Apalodimas
<ilias.apalodimas@linaro.org> wrote:
>
> Hi Simon,
>
> On Tue, Aug 15, 2023 at 07:22:56PM -0600, Simon Glass wrote:
> > 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.
>
>
> How are you launching QEMU?
> IIRC by default the VM spawns in EL1 and sets the PSCI conduit to HVC. But Windows
> issues an SMC unconditionally and blows up.  Can you try with
> virtualization=on?

I actually haven't tried on ARM yet. I see instructions on booting
Windows on rpi but have not tried with QEMU. I wonder if that would be
easier than x86? Are there instructions anywhere?

Regards,
Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Booting Windows 11
  2023-08-16 14:15     ` Simon Glass
@ 2023-08-16 18:16       ` Heinrich Schuchardt
  0 siblings, 0 replies; 7+ messages in thread
From: Heinrich Schuchardt @ 2023-08-16 18:16 UTC (permalink / raw)
  To: Simon Glass; +Cc: Ilias Apalodimas, U-Boot Mailing List

Hello Simon,

these are the EFI configuration tables that EDK II is publishing:

Configuration tables:
   ee4e5898-3914-4259-9d6e-dc7bd79403cf
   05ad34ba-6f02-4214-952e-4da0398e2bb9
   7739f24c-93d7-11d4-9a3a-0090273fc14d
   4c19049f-4137-4dd3-9c10-8b97a83ffdfa
   49152e77-1ada-4764-b7a2-7afefed95e8b
   060cc026-4c0d-4dda-8f41-595fef00a502
   SMBIOS
   eb9d2d30-2d88-11d3-9a16-0090273fc14d
   ACPI 2.0
   dcfa911d-26eb-469f-a220-38b7dc461220
   d719b2cb-3d3a-4596-a3bc-dad00e67656f

Here is the translation for the GUIDs:

Configuration tables:
   EFI_LZMA_COMPRESSED (not standardized)
   EFI_DXE_SERVICES (not standardized)
   EFI_HOB_LIST (PI specification)
   EFI_MEMORY_TYPE (not standardized)
   EfiDebugImageInfoTable (UEFI specification)
   EFI_MEM_STATUS_CODE_REC (not standardized)
   SMBIOS (UEFI specification)
   EFI_GUID_EFI_ACPI1 (UEFI specification, deprecated)
   ACPI 2.0 (UEFI specification)
   EfiMemoryAttributesTable  (UEFI specification)
   EFI_IMAGE_SECURITY_DATABASE (not defined as table in UEFI spec)

At least the Memory Attributes Table is used with some security profiles
of Windows. The lack of one of the tables might be stopping the
installation progress.

The EFI_DEBUG_IMAGE_INFO_TABLE points to SMM images and I needed smm=on
to run the Windows installer on EDK II.

The Windows 11 installer does not comprise a virtio block device driver.
Some Fedora people have packages a driver that you could load into the
installer but I guess it is easier to supply an emulated NVMe or SCSI
driver as installation target.

Best regards

Heinrich

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-08-16 18:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-16  1:22 Booting Windows 11 Simon Glass
2023-08-16  7:11 ` Ilias Apalodimas
2023-08-16 14:16   ` Simon Glass
2023-08-16  7:41 ` Heinrich Schuchardt
2023-08-16 10:50   ` Heinrich Schuchardt
2023-08-16 14:15     ` Simon Glass
2023-08-16 18:16       ` Heinrich Schuchardt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.