> On Feb 14, 2015, at 1:04 PM, Laszlo Ersek <ler...@redhat.com> wrote: > > On 02/14/15 21:03, Jordan Justen wrote: >> On 2015-02-14 08:38:37, Laszlo Ersek wrote: >>> On 02/12/15 21:53, Jordan Justen wrote: >>>> I think gEfiPciEnumerationCompleteProtocolGuid should be installed by >>>> MdeModulePkg/Bus/Pci/PciBusDxe, even when PcdPciDisableBusEnumeration >>>> is set. >>>> >>>> Ray's main feedback seemed to be that we need to make sure PciBusDxe >>>> only installs the protocol once. (I'll also reply to the other related >>>> patch thread.) >>> >>> First, I now agree that this patch of mine should not go in, hence: >>> >>> Self-NAK >>> >>> Second, I tend to disagree that that >>> gEfiPciEnumerationCompleteProtocolGuid should be installed even if full >>> enumeration was eschewed. This might slightly change the de-facto >>> meaning of the protocol (because no resource allocation took place). >> >> De-facto seems the correct term here, since the PI1.2 spec says very >> little about the protocol. >> >> My interpretation of the protocol is that it is a signal that the EFI >> knows about the basic PCI topology, and has installed most PciIo >> instances. >> >> Maybe PcdPciDisableBusEnumeration wasn't the best name. Perhaps >> PcdPciBusPreEnumerated would have been better. >> >> At any rate, in the case of Xen, the hypervisor has pre-enumerated the >> bus. PciBusDxe uses this and 'enumerates' PCI devices by simply >> scanning the pre-enumerated topology. >> >> So, I still think PciBusDxe should install >> gEfiPciEnumerationCompleteProtocolGuid, because it still seems like it >> acurately reflects the phase of the boot process. >> >> Regarding the ACPI tables issue, would a callback for the ReadyToBoot >> event work? > > EFI_EVENT_GROUP_READY_TO_BOOT > > This event group is notified by the system when the Boot Manager is > about to load and execute a boot option. > > (1) As far as I understand, if you boot a UEFI application, then exit > it, and boot something else, then the event group will be signalled each > time. > > We could use a static variable in AcpiPlatformDxe to avoid trying to > install again and again, but it wouldn't be nice IMHO. >
You can always use a global. > This is the secondary reason I'm not enthusiastic about > EFI_EVENT_GROUP_READY_TO_BOOT. :) > > (2) The main reason is different: in both OVMF and ArmVirtualizationQemu > we can boot a kernel directly, taken from QEMU. That happens without > EFI_EVENT_GROUP_READY_TO_BOOT being signalled. > > However, the kernel booted thus should have both ACPI tables and > configured PCI devices (if there is a PCI host). In OVMF this is ensured by: > > PlatformBdsPolicyBehavior() > PlatformBdsConnectSequence() > BdsLibConnectAll() > TryRunningQemuKernel() > > where the BdsLibConnectAll() call listed above will cover the > enumeration, and trigger the dependent ACPI table installation as well, > before we go to the kernel. > > One idea could be to signal EFI_EVENT_GROUP_READY_TO_BOOT ourselves, That sounds like the right thing to do. > before booting the kernel; however this event group seems quite tied to > the Boot Manager itself (see again its definition above). > The Boot Manager has a few responsibilities in EFI (and few more in PI where it is called the BDS), but in general it is a place where a lot of platform specific policy is enforced. So updating the Boot Manager do do the right thing sees like a good answer. Thanks, Andrew Fish > I'll post my patch series soon; my idea that is relevant for this > discussion is at its beginning (and a later patch also displays how I > mean it to be used). We can discuss it there too if you like. > > Thanks > Laszlo > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > <http://goparallel.sourceforge.net/> > _______________________________________________ > edk2-devel mailing list > edk2-de...@lists.sourceforge.net <mailto:edk2-de...@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/edk2-devel > <https://lists.sourceforge.net/lists/listinfo/edk2-devel>
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel