Laszlo,

I just applied your patch to the master branch of the edk2 github
repo. It appears to suffer form the same issue.

Unfortunately you need to jump through a bunch of hoops to get
debugging for the windows bootloader. Also it requires you have
windows installed already (which makes it sorta pointless doesn't it?)
What I did was install to an LVM slice usign vmware workstation, and
then I used the bcdedit commands located at the following urls to turn
debugging on and set it to output to the serial console.

http://msdn.microsoft.com/en-us/library/windows/hardware/ff542202(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff542187(v=vs.85).aspx

Please let me know if there is anyway i can be of assistance in
debugging/fixing issues with ovmf booting windows 2008 as I am more
then happy to help.

On Tue, Oct 16, 2012 at 3:19 PM, Laszlo Ersek <ler...@redhat.com> wrote:
> On 10/16/12 16:58, Jeff VanDellen wrote:
>
>> I've attached the the output of the serial console while attempting to
>> boot off the iso. Hopefully this information would be helpful.
>
> From the end of the attachment:
>
>   Loading driver at 0x00010000000 EntryPoint=0x00010001000 bootmgfw.efi
>   InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF
>                             C058FF18
>   ASSERT /usr/local/src/edk2/OvmfPkg/VirtioBlkDxe/VirtioBlk.c(950):
>          CR has Bad Signature
>
> What a facepalm. I messed up VirtioBlkDriverBindingStop()!
>
> EFI_STATUS
> EFIAPI
> VirtioBlkDriverBindingStop (
>   IN EFI_DRIVER_BINDING_PROTOCOL *This,
>   IN EFI_HANDLE                  DeviceHandle,
>   IN UINTN                       NumberOfChildren,
>   IN EFI_HANDLE                  *ChildHandleBuffer
>   )
> {
>   VBLK_DEV   *Dev;
>   EFI_STATUS Status;
>
>   Dev = VIRTIO_BLK_FROM_BLOCK_IO (This);
>
> "This" is not a pointer to EFI_BLOCK_IO_PROTOCOL, it is a pointer to
> EFI_DRIVER_BINDING_PROTOCOL. My only excuse is that I must have been
> using "OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.c", function
> BlockIoDriverBindingStop() as an example :)
>
> The right way to do it is documented in the Driver Writer’s Guide for
> UEFI 2.3.1, 8.4 Freeing private context data structures, and in the spec
> (2.3.1+errC), 6.3 Protocol Handler Services, OpenProtocol().
>
> The EFI_OPEN_PROTOCOL_GET_PROTOCOL attribute is key: with that the
> function basically performs a lookup (just returns the BlockIo protocol
> interface *we* have installed on the handle), and doesn't seem to
> increment reference counters.
>
> Does the attached patch work for you? (If it does, then I'll have to fix
> VirtioScsi as well.)
>
> Thanks & sorry!
> Laszlo

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to