[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [edk2] OVMF broken under Xen (in PCI initialisation)



On Thu, Apr 28, 2016 at 05:08:50AM +0000, Ni, Ruiyu wrote:
> 
> 
> Regards,
> Ray
> 
> >-----Original Message-----
> >From: Laszlo Ersek [mailto:lersek@xxxxxxxxxx]
> >Sent: Wednesday, April 27, 2016 6:44 PM
> >To: Ni, Ruiyu <ruiyu.ni@xxxxxxxxx>; Gary Lin <glin@xxxxxxxx>
> >Cc: edk2-devel@xxxxxxxxxxxx <edk2-devel@xxxxxxxxxxx>; Xen Devel 
> ><xen-devel@xxxxxxxxxxxxx>; Kinney, Michael D
> ><michael.d.kinney@xxxxxxxxx>
> >Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation)
> >
> >On 04/27/16 11:50, Ni, Ruiyu wrote:
> >> Copying Mike.
> >>
> >> Regards,
> >> Ray
> >>
> >>> -----Original Message-----
> >>> From: Ni, Ruiyu
> >>> Sent: Wednesday, April 27, 2016 5:49 PM
> >>> To: 'Gary Lin' <glin@xxxxxxxx>
> >>> Cc: edk2-devel@xxxxxxxxxxxx; Xen Devel <xen-devel@xxxxxxxxxxxxx>; Laszlo 
> >>> Ersek <lersek@xxxxxxxxxx>
> >>> Subject: RE: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>
> >>> Gary,
> >>> Thanks for the try.
> >>>
> >>> I now understand why the issue happens.
> >>> 1. PciEnumeratorLight() depends on the MinBus returned from
> >>> PciRootBridgeIo.Configuration().
> >>> 2. PciRootBridgeIo.Configuration() returns the resource descriptors
> >>> initialized by 
> >>> PciHostBridge.NotifyPhase(EfiPciHostBridgeAllocateResources).
> >>> 3. PciHostBridge.NotifyPhase(EfiPciHostBridgeAllocateResources)
> >>> is not called when PcdPciDisableBusEnumeration is TRUE
> >>>
> >>> I am thinking about let PciRootBridgeIo.Configuration() returns
> >>> the correct resource consumption information even when
> >>> PcdPciDisableBusEnumeration is TRUE.
> >>>
> >>> I can add a new field to PCI_ROOT_BRIDGE structure defined in
> >>> MdeModulePkg/Include/Library/PciHostBridgeLib.h to indicate
> >>> that the resources filled in PCI_ROOT_BRIDGE.Bus/Io/Mem/
> >>> MemAbove4G/PMem/PMemAbove4G are already assigned
> >>> to PCI bus. So that PciRootBridgeIo.Configuration() can return
> >>> these value even when
> >>> PciHostBridge.NotifyPhase(EfiPciHostBridgeAllocateResources)
> >>> is not called due to PcdPciDisableBusEnumeration is TRUE.
> >
> >Can you use PcdPciDisableBusEnumeration directly for this?
> >
> >(If you don't like the idea, we could certainly set the new field in
> >PCI_ROOT_BRIDGE from the PCD too, in OvmfPkg/Library/PciHostBridgeLib.)
> >
> >>> Do you know whether Xen passes the PCI device resource
> >>> information to firmware?
> >
> >I don't think so, no.
> >
> >But, given that the previous PciHostBridgeDxe driver was working on Xen,
> >can we perhaps emulate that behavior in
> >"OvmfPkg/Library/PciHostBridgeLib" somehow?
> 
> Let me explain the reason why previous PciHostBridgeDxe driver was
> working on Xen:
> The PciRootBridgeIo.Configuration() in new driver only create resource
> descriptor when the resource status is allocated:
> 
> if (ResAllocNode->Status != ResAllocated) {
>   continue;
> }
> 
> The same function in old driver doesn't check the Status field so it
> unconditionally returns BUS descriptor with AddrRangeMin and
> AddrRangeMax both equal 0. So that PciEnumeratorLight()
> in PciBus driver can still search the devices from starting bus 0.
> It just happened to work.
> 
> I think the new driver's Configuration() implementation is correct
> while the old driver's one is wrong. So I don't want to change to 
> wrong implementation to fix this issue.
> 
> The issue can be resolved if we have a way to tell PciBus
> PciEnumeratorLight() which bus number to start searching.
> 
> It's almost true that starting bus number for root bridge #0
> is 0. But it might not be true for the rest root bridges.
> 
> OVMF's PciHostBridgeLib currently returns multiple root bridges
> and for root bridge #1, the starting bus number is obviously
> not 0 unless "etc/extra-pci-roots" doesn't exist or is 0 so there is
> only one root bridge.
> 
> My question is in OVMF over Xen, does "etc/extra-pci-roots" exist?
> If it exists, device behind root bridge #1, #2... can *not* be found
> with the current implementation.
> 
From my OVMF/Xen debug log:
[...]
QemuFwCfg interface not supported.

I guess "etc/extra-pci-roots" won't exist in Xen though I can't
guarantee it due to my limited experience with Xen.

Cheers,

Gary Lin

> 
> >
> >Do you think that step (2) above behaves differently between the old and
> >the new PCI host bridge driver? (Steps (1) and (3) should be identical,
> >they are initiated by the PCI Bus driver.)
> >
> >Thanks
> >Laszlo
> >
> >>>
> >>> Copying Laszlo.
> >>>
> >>> Regards,
> >>> Ray
> >>>
> >>>> -----Original Message-----
> >>>> From: Gary Lin [mailto:glin@xxxxxxxx]
> >>>> Sent: Wednesday, April 27, 2016 4:27 PM
> >>>> To: Ni, Ruiyu <ruiyu.ni@xxxxxxxxx>
> >>>> Cc: edk2-devel@xxxxxxxxxxxx; Xen Devel <xen-devel@xxxxxxxxxxxxx>
> >>>> Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>>
> >>>> On Wed, Apr 27, 2016 at 07:18:21AM +0000, Ni, Ruiyu wrote:
> >>>>> Gary,
> >>>>> In PciEnumeratorLight(), please directly assign 0 to MinBus when
> >>>>> Configuration() returns error, instead of calling PciGetBusRange() to
> >>>>> extract MinBus from the descriptors returned from Configuration().
> >>>>>
> >>>> OK, I ignored PciGetBusRange() and the check of the return status of
> >>>> Configuration(). Since MinBus is already initialized, I don't bother to
> >>>> change the value anyway. The change is attached.
> >>>>
> >>>> And yes, this time the shell showed.
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Gary Lin
> >>>>
> >>>>> Regards,
> >>>>> Ray
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Gary Lin [mailto:glin@xxxxxxxx]
> >>>>>> Sent: Wednesday, April 27, 2016 2:54 PM
> >>>>>> To: Ni, Ruiyu <ruiyu.ni@xxxxxxxxx>
> >>>>>> Cc: edk2-devel@xxxxxxxxxxxx; Xen Devel <xen-devel@xxxxxxxxxxxxx>
> >>>>>> Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>>>>
> >>>>>> On Wed, Apr 27, 2016 at 05:39:40AM +0000, Ni, Ruiyu wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>> Regards,
> >>>>>>> Ray
> >>>>>>>
> >>>>>>>> -----Original Message-----
> >>>>>>>> From: Gary Lin [mailto:glin@xxxxxxxx]
> >>>>>>>> Sent: Wednesday, April 27, 2016 12:29 PM
> >>>>>>>> To: Ni, Ruiyu <ruiyu.ni@xxxxxxxxx>
> >>>>>>>> Cc: edk2-devel@xxxxxxxxxxxx; Xen Devel <xen-devel@xxxxxxxxxxxxx>
> >>>>>>>> Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>>>>>>
> >>>>>>>> On Tue, Apr 26, 2016 at 09:40:42AM +0000, Ni, Ruiyu wrote:
> >>>>>>>>> Gary,
> >>>>>>>>> I can reproduce the issue and have debugged to get the reason.
> >>>>>>>>> In MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c:
> >>>>>>>>> PciEnumeratorLight() calls PciRootBridgeIo->Configuration()
> >>>>>>>>> while the Configuration returns EFI_UNSUPPORTED resulting
> >>>>>>>>> the PciBus driver exits earlier.
> >>>>>>>>> You could try to manually set MinBus to 0 and MaxBus to 0xFF.
> >>>>>>>>>
> >>>>>>>> Do you mean to set MinBus and MaxBus in PciGetBusRange() ?
> >>>>>>>> Should I also keep the EFI_UNSUPPORTED code in Configuration() ?
> >>>>>>> Keep returning EFI_UNSUPPORTED in Configuration() and set
> >>>>>>> MinBus/MaxBus in PciGetBusRange().
> >>>>>>>
> >>>>>>>>
> >>>>>>>>> The second change you need to make is in PciIo.c:
> >>>>>>>>> Change GetMmioAddressTranslationOffset() to return 0 instead
> >>>>>>>>> of -1 when error occurs
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> Should I also remove "ASSERT (FALSE);" ?
> >>>>>>>
> >>>>>>>
> >>>>>>> ASSERT() won't be hit.
> >>>>>>>
> >>>>>> It didn't work (see my attached patch) :(
> >>>>>> BTW, if Configuration() already returns EFI_UNSUPPORTED, then there is
> >>>>>> no way to invoke PciGetBusRange(). Besides, MaxBus was never used in
> >>>>>> PciEnumeratorLight(), so it's meaningless to assign any value to it.
> >>>>>>
> >>>>>> Cheers,
> >>>>>>
> >>>>>> Gary Lin
> >>>>>>
> >>>>>>>>
> >>>>>>>> Cheers,
> >>>>>>>>
> >>>>>>>> Gary Lin
> >>>>>>>>
> >>>>>>>>> With the above 2 changes, can you check whether the system can
> >>>>>>>>> boot?
> >>>>>>>>>
> >>>>>>>>> If it can boot, then we need to think about what the proper fix is.
> >>>>>>>>> For OVMF above Xen, the PCI resources are assigned by Xen other than
> >>>>>>>>> PciBus driver. So PciRootBridgeIo->Configuration() doesn't know
> >>>>>>>>> the resource assignment information.
> >>>>>>>>> With old PciHostBridge driver, the Configuration() returns BUS 
> >>>>>>>>> resource
> >>>>>>>>> descriptor with MinBus = MaxBus = 0 (default value), so that the 
> >>>>>>>>> PciBus
> >>>>>>>>> driver can detect all devices in BUS 0, but I guess devices in BUS 
> >>>>>>>>> 1+ cannot
> >>>>>>>>> be detected.
> >>>>>>>>>
> >>>>>>>>> Does Xen pass the resource assignment information through some 
> >>>>>>>>> memory
> >>>>>>>>> blob to firmware? If yes, we could think about let PciHostBridgeLib 
> >>>>>>>>> pass that
> >>>>>>>>> information to PciHostBridge driver. If no, we also could let 
> >>>>>>>>> PciHostBridgeLib
> >>>>>>>>> collect the information (IO/MEM/BUS resource assignment) and pass 
> >>>>>>>>> that
> >>>>>>>>> to PciHostBridgeDxe driver.
> >>>>>>>>>
> >>>>>>>>> And we need to have a way to tell PciHostBridgeDxe the resource 
> >>>>>>>>> information
> >>>>>>>>> passed from PciHostBridgeLib is available resource to assign, or 
> >>>>>>>>> already allocated.
> >>>>>>>>> Maybe just depends on the PcdPciBusDisableEnumeration. still 
> >>>>>>>>> thinking.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Regards,
> >>>>>>>>> Ray
> >>>>>>>>>
> >>>>>>>>>> -----Original Message-----
> >>>>>>>>>> From: Gary Lin [mailto:glin@xxxxxxxx]
> >>>>>>>>>> Sent: Tuesday, April 26, 2016 4:40 PM
> >>>>>>>>>> To: Ni, Ruiyu <ruiyu.ni@xxxxxxxxx>
> >>>>>>>>>> Cc: edk2-devel@xxxxxxxxxxxx; Xen Devel <xen-devel@xxxxxxxxxxxxx>
> >>>>>>>>>> Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>>>>>>>>
> >>>>>>>>>> On Tue, Apr 26, 2016 at 08:19:49AM +0000, Ni, Ruiyu wrote:
> >>>>>>>>>>> Gary,
> >>>>>>>>>>> Maybe the system boots to Shell well but the video isn't 
> >>>>>>>>>>> initialized properly.
> >>>>>>>>>>> Can you build the firmware using "-D DEBUG_ON_SERIAL_PORT" switch 
> >>>>>>>>>>> and
> >>>>>>>>>>> give me the boot log?
> >>>>>>>>>>>
> >>>>>>>>>> Hi Ray,
> >>>>>>>>>>
> >>>>>>>>>> I already did and it's how I make the firmware spit the log :-(
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>>
> >>>>>>>>>> Gary Lin
> >>>>>>>>>>
> >>>>>>>>>>> Regards,
> >>>>>>>>>>> Ray
> >>>>>>>>>>>
> >>>>>>>>>>> From: Gary Lin [mailto:glin@xxxxxxxx]
> >>>>>>>>>>> Sent: Tuesday, April 26, 2016 3:35 PM
> >>>>>>>>>>> To: Ni, Ruiyu <ruiyu.ni@xxxxxxxxx>
> >>>>>>>>>>> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>; 
> >>>>>>>>>>> edk2-devel@xxxxxxxxxxxx; Xen Devel
> >>>> <xen-devel@xxxxxxxxxxxxx>
> >>>>>>>>>>> Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>>>>>>>>>
> >>>>>>>>>>> On Tue, Apr 26, 2016 at 06:43:56AM +0000, Ni, Ruiyu wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Regards,
> >>>>>>>>>>>> Ray
> >>>>>>>>>>>>
> >>>>>>>>>>>>> -----Original Message-----
> >>>>>>>>>>>>> From: edk2-devel [mailto:edk2-devel-bounces@xxxxxxxxxxxx] On 
> >>>>>>>>>>>>> Behalf Of Anthony PERARD
> >>>>>>>>>>>>> Sent: Friday, April 22, 2016 10:48 PM
> >>>>>>>>>>>>> To: edk2-devel@xxxxxxxxxxxx<mailto:edk2-devel@xxxxxxxxxxxx>
> >>>>>>>>>>>>> Cc: Xen Devel 
> >>>>>>>>>>>>> <xen-devel@xxxxxxxxxxxxx<mailto:xen-devel@xxxxxxxxxxxxx>>
> >>>>>>>>>>>>> Subject: [edk2] OVMF broken under Xen (in PCI initialisation)
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Hi,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Following the switch to MdeModulePkg/Bus/Pci/PciHostBridgeDxe, 
> >>>>>>>>>>>>> the pci root
> >>>>>>>>>>>>> bridge does not finish to initialize and breaks under Xen.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> There are several issue probably due to the use of
> >>>>>>>>>>>>> PcdPciDisableBusEnumeration=TRUE.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> First one:
> >>>>>>>>>>>>> ASSERT 
> >>>>>>>>>>>>> MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c(99): 
> >>>>>>>>>>>>> Bridge->Mem.Limit <
> >>>>>>>>>> 0x0000000100000000ULL
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> This patch would fix the first assert:
> >>>>>>>>>>>>> diff --git a/OvmfPkg/PlatformPei/Xen.c 
> >>>>>>>>>>>>> b/OvmfPkg/PlatformPei/Xen.c
> >>>>>>>>>>>>> index 7fa9019..15ec7a7 100644
> >>>>>>>>>>>>> --- a/OvmfPkg/PlatformPei/Xen.c
> >>>>>>>>>>>>> +++ b/OvmfPkg/PlatformPei/Xen.c
> >>>>>>>>>>>>> @@ -227,5 +227,11 @@ InitializeXen (
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>   PcdSetBool (PcdPciDisableBusEnumeration, TRUE);
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> +  // Values from hvmloader
> >>>>>>>>>>>>> +#define PCI_MEM_END         0xFC000000
> >>>>>>>>>>>>> +#define HVM_BELOW_4G_MMIO_START 0xF0000000
> >>>>>>>>>>>>> +  PcdSet64 (PcdPciMmio32Base, HVM_BELOW_4G_MMIO_START);
> >>>>>>>>>>>>> +  PcdSet64 (PcdPciMmio32Size, PCI_MEM_END - 
> >>>>>>>>>>>>> HVM_BELOW_4G_MMIO_START);
> >>>>>>>>>>>>> +
> >>>>>>>>>>>>>   return EFI_SUCCESS;
> >>>>>>>>>>>>> }
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> But that not enough, next assert is:
> >>>>>>>>>>>>> ASSERT MdeModulePkg/Bus/Pci/PciBusDxe/PciDeviceSupport.c(807): 
> >>>>>>>>>>>>> RootBridge != ((void *) 0)
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I have worked around this one with the following patch. That 
> >>>>>>>>>>>>> would
> >>>>>>>>>>>>> correspond to how the former implementation in OvmfPkg was 
> >>>>>>>>>>>>> initializing the
> >>>>>>>>>>>>> struct. Maybe a better way would be to fill ResAllocated under 
> >>>>>>>>>>>>> Xen,
> >>>>>>>>>>>>> somehow. Under Xen, the ResAllocNode status is not allocated, 
> >>>>>>>>>>>>> so no
> >>>>>>>>>>>>> Descriptor are created.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> diff --git 
> >>>>>>>>>>>>> a/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c
> >>>>>>>>>>>>> b/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c
> >>>>>>>>>>>>> index cda9b49..eda92b6 100644
> >>>>>>>>>>>>> --- a/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c
> >>>>>>>>>>>>> +++ b/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c
> >>>>>>>>>>>>> @@ -1509,15 +1509,13 @@ RootBridgeIoConfiguration (
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>     ResAllocNode = &RootBridge->ResAllocNode[Index];
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> -    if (ResAllocNode->Status != ResAllocated) {
> >>>>>>>>>>>>> -      continue;
> >>>>>>>>>>>>> -    }
> >>>>>>>>>>>>> -
> >>>>>>>>>>>>>     Descriptor->Desc = ACPI_ADDRESS_SPACE_DESCRIPTOR;
> >>>>>>>>>>>>>     Descriptor->Len  = sizeof 
> >>>>>>>>>>>>> (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3;
> >>>>>>>>>>>>> +    if (ResAllocNode->Status != ResAllocated) {
> >>>>>>>>>>>>>     Descriptor->AddrRangeMin  = ResAllocNode->Base;
> >>>>>>>>>>>>>     Descriptor->AddrRangeMax  = ResAllocNode->Base + 
> >>>>>>>>>>>>> ResAllocNode->Length - 1;
> >>>>>>>>>>>>>     Descriptor->AddrLen       = ResAllocNode->Length;
> >>>>>>>>>>>>> +    }
> >>>>>>>>>>>>>     switch (ResAllocNode->Type) {
> >>>>>>>>>>>>>
> >>>>>>>>>>>> I think a more proper fix is to return EFI_UNSUPPORTED without 
> >>>>>>>>>>>> returning any
> >>>>>>>>>>>> descriptors when the PcdPciDisableBusEnumeration is TRUE.
> >>>>>>>>>>>> Per UEFI Spec, EFI_UNSUPPORTED means "The current configuration 
> >>>>>>>>>>>> of this PCI
> >>>>>>>>>>>> root bridge could not be retrieved." It's true when the PCD is 
> >>>>>>>>>>>> true.
> >>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> That leads to one last assert:
> >>>>>>>>>>>>>> QemuVideo: Cirrus 5446 detected
> >>>>>>>>>>>>>> InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 
> >>>>>>>>>>>>>> 7B9EF598
> >>>>>>>>>>>>>> Adding Mode 0 as Cirrus Internal Mode 0: 640x480, 32-bit, 60 Hz
> >>>>>>>>>>>>>> Adding Mode 1 as Cirrus Internal Mode 1: 800x600, 32-bit, 60 Hz
> >>>>>>>>>>>>>> Adding Mode 2 as Cirrus Internal Mode 2: 1024x768, 24-bit, 60 
> >>>>>>>>>>>>>> Hz
> >>>>>>>>>>>>>> PixelBlueGreenRedReserved8BitPerColor
> >>>>>>>>>>>>>> ASSERT 
> >>>>>>>>>>>>>> /local/home/sheep/work/ovmf/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c(1789):
> >>>> ((BOOLEAN)(0==1))
> >>>>>>>>>>>>> For this one, I've workaround by reverting patch 7b0a1ea
> >>>>>>>>>>>>> (MdeModuelPkg/PciBus: Return AddrTranslationOffset in 
> >>>>>>>>>>>>> GetBarAttributes).
> >>>>>>>>>>>>> That issue was introduce while still using the USE_OLD_PCI_HOST.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Any idee or pointer on how to fix those issues ?
> >>>>>>>>>>>>
> >>>>>>>>>>>> When the PciRootBridgeIo.Configuration() returns 
> >>>>>>>>>>>> EFI_UNSUPPORTED, this assertion
> >>>>>>>>>>>> can be fixed as well. Correct?
> >>>>>>>>>>>
> >>>>>>>>>>> I tried to make RootBridgeIoConfiguration() return EFI_UNSUPPORTED
> >>>>>>>>>>> (see the attachment), and those asserts were gone. However, the 
> >>>>>>>>>>> system
> >>>>>>>>>>> stuck somewhere after loading shell.efi. Here are the messages 
> >>>>>>>>>>> from the
> >>>>>>>>>>> debug log:
> >>>>>>>>>>>
> >>>>>>>>>>> BdsLibConnectAll
> >>>>>>>>>>> Select Item: 0xE
> >>>>>>>>>>> Memory  Previous  Current    Next
> >>>>>>>>>>>  Type    Pages     Pages     Pages
> >>>>>>>>>>> ======  ========  ========  ========
> >>>>>>>>>>>   0A    00000004  00000001  00000004
> >>>>>>>>>>>   09    00000008  00000011  00000015
> >>>>>>>>>>>   00    00000004  00000001  00000004
> >>>>>>>>>>>   06    00000024  00000057  0000006C
> >>>>>>>>>>>   05    00000030  00000063  0000007B
> >>>>>>>>>>>   03    00000180  0000048D  000005B0
> >>>>>>>>>>>   04    00000F00  00000B65  00000F00
> >>>>>>>>>>> Booting EFI Internal Shell
> >>>>>>>>>>> InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 
> >>>>>>>>>>> 3EA580C0
> >>>>>>>>>>> Loading driver at 0x0003E03F000 EntryPoint=0x0003E03F240 Shell.efi
> >>>>>>>>>>> InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 
> >>>>>>>>>>> 3EA58B98
> >>>>>>>>>>> InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 
> >>>>>>>>>>> 3EA54320
> >>>>>>>>>>> InstallProtocolInterface: 752F3136-4E16-4FDC-A22A-E5F46812F4CA 
> >>>>>>>>>>> 3EA53CD8
> >>>>>>>>>>> InstallProtocolInterface: 6302D008-7F9B-4F30-87AC-60C9FEF5DA4E 
> >>>>>>>>>>> 3E16B580
> >>>>>>>>>>>
> >>>>>>>>>>> I couldn't find out where it stuck unless there is a way to 
> >>>>>>>>>>> attach gdb
> >>>>>>>>>>> to Xen HVM for source level debugging :-(
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks,
> >>>>>>>>>>>
> >>>>>>>>>>> Gary Lin
> >>>>>>>>>>> _______________________________________________
> >>>>>>>>>>> edk2-devel mailing list
> >>>>>>>>>>> edk2-devel@xxxxxxxxxxxx
> >>>>>>>>>>> https://lists.01.org/mailman/listinfo/edk2-devel
> >>>>>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> edk2-devel mailing list
> >>>>>>>>> edk2-devel@xxxxxxxxxxxx
> >>>>>>>>> https://lists.01.org/mailman/listinfo/edk2-devel
> >>>>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> edk2-devel mailing list
> >>>>>>> edk2-devel@xxxxxxxxxxxx
> >>>>>>> https://lists.01.org/mailman/listinfo/edk2-devel
> >>>>>>>
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.