On Oct 1, 2013, at 7:08 AM, ASM <[email protected]> wrote:

> Hi folks!
> 
> I apologize for the stupid questions, but I really can not understand
> how it works.
> Please help me.
> 
> I need to make new boot item, and boot from it. Loading do
> using specific getting image, and startimage with specific
> preparation. Load using LOAD_FILE PROTOCOL from MyLoad function.
> 
> For this goals I read UEFI_2_4 spec and MdeModulePkg PxeBcDriver.
> 
> I do to achieve the goal:
> * I make DXE driver.
> * I load it from ROM.
> * DXE Driver:
> ** Creates (On entry point) new Boot### variable in NvRam. It make
> description "BootForMe" and EFI_DEVICE_PATH_PROTOCOL instance  with
> MESSAGING_DEVICE_PATH (HW_VENDOR_DP).
> ** Driver call  EfiLibInstallDriverBindingComponentName2() for registering.
> 
>> From EFI_DRIVER_BINDING_PROTOCOL.Start() I add to DeviceHandle new
> protocol: EFI_LOAD_FILE_PROTOCOL. For it I use
> gBS->InstallMultipleProtocolInterfaces().
> 
> EFI_LOAD_FILE_PROTOCOL contains pointer to MyLoad function.
> 
> How I understand in EFI firmware must be created EFI_HANDLER * Device,
> which will support bootoption DEVICE_PATH_PROTOCOL. I need detect it
> device in EFI_DRIVER_BINDING_PROTOCOL.Supported(), and add to it
> EFI_LOAD_FILE_PROTOCOL support for boot manager. Boot Manager get
> Device from DEVICE_PATH_PROTOCOL, and call LoadImage, StartImage
> after.
> 
> Am I right to do and understand? If yes, how to create EFI_HANDLER * Device?
> 

I assume you mean EFI_HANDLE...

The EFI Driver Model, EFI_DRIVER_BINDING_PROTOCOL, assumes that an EFI_HANDLE 
exists that you can connect to. So the Handle that represents the 1st device 
path node is usually added by a DXE driver. So on most platform this is usually 
the PCI root bridge driver. So in the entry point to your driver you need to 
install a new Handle with the root node of your device path. Then when you 
driver gets connected that handle exists. If you pass in a NULL handle to 
InstallMultipleProtocolInterfaces() it will create a new handle.

Thanks,

Andrew Fish

> I just need to do is start image from new boot option. Image get from
> MyLoad function. Start image from MyStart. Maybe this can be get
> easier?
> 
> 
> Thank you.
> ---
> Best regards,
> Leonid Myravjev
> 
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to