On Feb 5, 2014, at 1:23 PM, John Davis <[email protected]> wrote:

> Hello Andrew
> 
> 
> 
> Thanks again for your help.
> 
> On Wed, Feb 5, 2014 at 11:10 AM, Andrew Fish <[email protected]> wrote:
> 
> On Feb 5, 2014, at 10:27 AM, John Davis <[email protected]> wrote:
> 
> 
> 
> 
>  <Stuff snipped>
> 
> Wow, that is good info you gave me.  I was surprised that PEView ( a free 
> program) actually decodes the Subsystem field in the IMAGE_OPTIONAL_HEADER.
> 
> DEBUG_VS2010x86/IA32/MyHello/Output/MyHello.efi is 0xa 
> IMAGE_SUBSYSTEM_EFI_APPLICATION
> DEBUG_VS2010x86/FV/Ffs/"GUID?"Tcp4Dxe/<no .efi files here, but take the .p32 
> file and strip off leading bytes to the dos header and save to diff file and 
> edit> is 0xB IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
> DEBUG ditto/"GUID"Reset/ditto decodes to EFI_BOOT_SERVICE_DRIVER
> DEBUG ditto/"GUID"Timer/dito ditto
> DEBUG ditto/"GUID"Cpu/ditto ditto
> DEBUG ditto/"GUID"CapsuleRuntimeDxe/ 0xc IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER
> 
> Odd, I figured the Dxe vs no Dxe suffix would correspond to different image 
> types.
> 

DXE is a PI concept. DXE drivers are generally used to produce the hardware 
abstractions (architectural protocols) need for all the EFI services to be 
available. The DXE drivers are dispatched based on a dependency grammar, so a 
section of the FFS file contains a Depex. EFI drivers are only loaded after all 
the architectural protocols have been installed. So no Depex != a Depex of TRUE 
(this is often confusing to people). The DXE Core produces the EFI services. 
> //
> // PE32+ Subsystem type for EFI images
> //
> #define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION         10
> #define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
> #define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
> 
> 
> So things which make sense:
> 
> o  CapsuleRuntimeDxe is a runtime driver. This jives with chapter 5 of Beyond 
> Bios where it says capsule services is part of the runtime services.
> o MyHello application which is in the seperate folder is a Application, since 
> it was presented as an application code and discussed in the book as an 
> application.
> o Cpu, Reset, Tcp are boottime drivers. 
> 
> Things which don't make sense:
> o Timer is boottime but its mentioned as a runtime service.

The Timer AP is a boot services thing. The emulator does not really support 
runtime (setting up page tables would crash the emulator etc.), so something 
could be mis typed and everything would work correctly in boot services. 

> o Why some drivers end with Dxe suffix and others don't. "GUID"Reset vs 
> "GUID"CapsuleRuntimeDxe
> 
> 

If you look at an INF file:
1) The name of the executable is defined by BASE_NAME
2) The type of the executable is defined by MODULE_TYPE

So then name is convention, not cannon. 

Thanks,

Andrew Fish

> 
> 
> 
>  
> Thanks,
> 
> Andrew Fish
> 
>> 
>> -- 
>> John F. Davis
>> 6 Kandes Court
>> Durham, NC 27713
>> 919-888-8358
>> 
>> 独树一帜
>> 
>> 
>> ------------------------------------------------------------------------------
>> Managing the Performance of Cloud-Based Applications
>> Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
>> Read the Whitepaper.
>> http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk_______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> ------------------------------------------------------------------------------
> Managing the Performance of Cloud-Based Applications
> Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
> Read the Whitepaper.
> http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> 
> 
> -- 
> John F. Davis
> 6 Kandes Court
> Durham, NC 27713
> 919-888-8358
> 
> 独树一帜
> 
> 
> ------------------------------------------------------------------------------
> Managing the Performance of Cloud-Based Applications
> Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
> Read the Whitepaper.
> http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk_______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to