Given the code in that constructor, I would say that you are EFI 2.0 compliant, 
but that is not enough for this library.  I copied the constructor below, which 
just returns an error.

EFI_STATUS
EFIAPI
HandleParsingLibConstructor (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )
{
  mHandleParsingHiiHandle = HiiAddPackages (&gHandleParsingHiiGuid, 
gImageHandle, UefiHandleParsingLibStrings, NULL);
  if (mHandleParsingHiiHandle == NULL) {
    return (EFI_DEVICE_ERROR);
  }

  return (EFI_SUCCESS);
}


From: Thomas Rognon [mailto:[email protected]]
Sent: Tuesday, March 12, 2013 1:45 PM
To: [email protected]
Subject: Re: [edk2] Driver dependencies

Awesome, thanks.  I'll read those now.

Right now, one of my test machine is asserting after calling 
HandleParsingLibConstructor.  This machine has far fewer drivers than my 
development machine, so I still haven't figured out what I'm missing yet.  
Here's more detailed info:

Here is the debug output:

ASSERT_EFI_ERROR (Status = Device Error)
ASSERT c:\...\AutoGen.c(368) !EFI_ERROR (Status)

Here is the code that is asserted on in AutoGen.c:

VOID
EFIAPI
ProcessLibraryConstructorList (
  IN EFI_HANDLE  ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )
{
  ...
  Status = HandleParsingLibConstructor (ImageHandle, SystemTable);
  ASSERT_EFI_ERROR (Status);
  ...
}

Here is the output of "drivers" on my test machine:

            T   D
D           Y C I
R           P F A
V  VERSION  E G G #D #C DRIVER NAME                         IMAGE NAME
== ======== = = = == == =================================== ===================
1C 00000010 ? - -  -  - Usb Wdm Driver                      TDTUsbWdm
1E 00000010 ? - -  -  - PCI Serial Driver                   PciSerial
1F 00000001 ? - -  -  - AMI Tekoa IDE-R Controller Driver   IDER
3B 00000001 B - -  1  1 AMI SB Driver                       SBDXE
41 00000010 B - -  1  3 AMI Generic LPC Super I/O Driver    CORE_DXE
4B 00010000 D - -  2  - AMI File System Driver              FileSystem
4D 00020101 B - -  1 17 <UNKNOWN>                           PciBus
4E 00000001 D - -  2  - AMI SB IDE Controller Driver        SBIDE
4F 00000001 ? - -  -  - <UNKNOWN>                           SBAHCI
51 00000001 ? - -  -  - AMI AHCI BUS Driver                 AHCI
57 00000010 ? - -  -  - <UNKNOWN>                           BIOSBLKIO
58 00000024 B - -  1  1 BIOS[INT10] Video Driver            CsmVideo
59 00000010 ? - -  -  - <UNKNOWN>                           <UNKNOWN>
5B 00010001 ? - -  -  - AMI ISO9660 File System Driver      FsIso9660
5F 00000010 ? - -  -  - AMI Terminal Driver                 Terminal
67 00000010 D - -  2  - NTFS File System Driver             394D7D54-2346-4CF5
80 00000088 D - -  2  - AMI USB2.0 Driver                   UHCD
82 00000088 B - -  2  5 USB bus                             UHCD
83 00000001 D - -  1  - USB Keyboard driver                 UHCD
84 00000002 D - -  1  - USB Mouse driver                    UHCD
85 00000001 D - -  1  - USB Mass Storage driver             UHCD
94 00000010 D - -  7  - <UNKNOWN>                           CORE_DXE
95 00000010 D - -  1  - <UNKNOWN>                           CORE_DXE
96 00000010 B - -  3  3 <UNKNOWN>                           CORE_DXE
98 00000010 B - -  2  5 <UNKNOWN>                           CORE_DXE
99 00000010 D - -  2  - AMI PS/2 Driver                     CORE_DXE
9A 00000010 ? - -  -  - AMI Floppy Driver                   CORE_DXE
9B 00000001 B - -  2  1 AMI IDE BUS Driver                  CORE_DXE

Here is the output of "ver" on my test machine:

EFI Specification Revision : 2.0
EFI Vendor                 : American Megatrends
EFI Revision               : 4.635



On Tue, Mar 12, 2013 at 3:16 PM, Andrew Fish 
<[email protected]<mailto:[email protected]>> wrote:
Thomas,

The edk2 is an example of a UEFI implementation, but many can exist.

I think you should read UEFI 2.3.1 (http://www.uefi.org/specs/) section 2.6 to 
understand what a UEFI system is required to do.

I'd also point that something like a Firmware Volume is not UEFI, but PI (UEFI 
Platform Initialization Specification 
1.2.1<http://www.uefi.org/specs/platform_agreement>). A UEFI system is not 
required to implement PI.

Also in the UEFI world some things have gotten obsoleted over time, so there 
may be a way to fallback to and older version gracefully. If you let the list 
know some of the protocols you are depending on we may be able to give you some 
advice on the list.

Andrew Fish




On Mar 12, 2013, at 1:03 PM, Thomas Rognon 
<[email protected]<mailto:[email protected]>> wrote:

I haven't yet come across a computer that has all, or even most, of the drivers 
included in edk2.  This is a problem because my UEFI application depends on 
some of these drivers.

I need to deploy my application as efi files and not interfere with the 
vendor's firmware volumes, so creating my own firmware volumes and replacing 
the vendor firmware volumes is not an option.

My solution is to have copies of all the required drivers for my application 
alongside of my application and have a script load them all and then start my 
application.

My problem is finding what drivers are needed and in what order they need to be 
loaded.  It's been very hit and miss so far.  Half of the time, the drivers 
won't even load, they will crash the computer (I'm assuming because they 
require other drivers to be present first).

Does anyone know a good way to figure out what drivers are required and in what 
order for an arbitrary application?  Also, even though most UEFI systems don't 
--provide-- all of the edk2 drivers, are all UEFI systems guaranteed to 
--support-- all of the edk2 drivers?
------------------------------------------------------------------------------
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_d2d_mar_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/edk2-devel


------------------------------------------------------------------------------
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_d2d_mar
_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
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_d2d_mar
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to