All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Simon Glass <sjg@chromium.org>
Cc: U-Boot Mailing List <u-boot@lists.denx.de>,
	Heinrich Schuchardt <xypron.glpk@gmx.de>
Subject: Re: Booting Windows 11
Date: Wed, 16 Aug 2023 10:11:29 +0300	[thread overview]
Message-ID: <ZNx2oS0qK8E3NTY5@hades> (raw)
In-Reply-To: <CAPnjgZ2a6S_Hh_=Gb=_Cz2zr9DG7TPEJxJD9z_PU9E6LiiMPHg@mail.gmail.com>

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

  reply	other threads:[~2023-08-16  7:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-16  1:22 Booting Windows 11 Simon Glass
2023-08-16  7:11 ` Ilias Apalodimas [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZNx2oS0qK8E3NTY5@hades \
    --to=ilias.apalodimas@linaro.org \
    --cc=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.