Sent from my iPhone

> On Dec 17, 2013, at 7:32 AM, Laszlo Ersek <[email protected]> wrote:
> 
>> On 12/17/13 15:47, Michael Lorer wrote:
>> Hello,
>> 
>> 
>> 
>> Short information on what I want to do:
>> 
>> During UEFI boot I’m downloading a small complete partition image
>> (including a MBR and a bootmanager) and place that image in allocated
>> runtime space.
>> 
>> After that I want to start the bootmanger inside of that image.
>> 
>> 
>> 
>> What I’m doing so far:
>> 
>> // Here we are in the middle of a UEFI boot during DXE phase and way
>> before runtime just after all necessary network protocols were installed.
>> 
>> 
>> 
>> // We have sucessfully downloaded a small HDD parition Image (including
>> a MBR and a boot loader)
>> 
>> // That images resides in runtime memory I have a pointer to and I know
>> the size of the image.
>> 
>> 
>> 
>> // Now we're doing the following steps:
>> 
>> Status = pBS->InstallMultipleProtocolInterfaces(
>> 
>>                           &gImageHandle,
>> 
>>                           &EfiComponentNameProtocolGuid,
>> &RomDiskComponentName,       //Initialize driver NAME protocol
>> 
>>                           NULL
>> 
>>                           );
>> 
>> 
>> 
>> // Setting up all variables for a Memory Map device path structure as
>> mentioned in UEFI spec here.
>> 
>> Status = pBS->InstallMultipleProtocolInterfaces(
>> 
>>                           &gImageHandle,
>> 
>>                           &RomDiskDevicePathGuid,
>> pRomDiskDevicePathProtocol,         //Initialize device PATH protocol
>> 
>>                           NULL
>> 
>>                           );
>> 
>> 
>> 
>> // And as a last step we're setting up the EFI_BLOCK_IO_MEDIA structure
>> and do:
>> 
>> Status = pBS->InstallMultipleProtocolInterfaces(
>> 
>>                          &gImageHandle,
>> 
>>                           &RomDiskBlockIoProtocolGuid,
>> &RomDiskBlockIoProtocol,       //Initialize BLOCKIO protocol
>> 
>>                           NULL
>> 
>>                           );
>> 
>> 
>> 
>> That is working fine so far. After the DXE phase I can find the BlockIO
>> protocol as blk0 in my UEFI Shell. If I do
>> 
>> Ø  dblk blk0
>> 
>> I can see the correct content of my partition image.
>> 
>> 
>> 
>> But what I’m missing now is that there is no Disk I/O protocol installed
>> up on my Block I/O protocol.
>> 
>> Regarding UEFI specification 12.7 I thought that the
>> EFI_DISK_IO_PROTOCOL is automatically installed on all available Block
>> I/O protocols.
>> 
>> Any clue why that is not done in that case? And what I can do about it?
> 
> I think you need to call gBS->ConnectController() so that the rest of
> the driver stack is recursively installed on top of BlockIo. Normally,
> BDS code issues such calls.
> 

But sometimes BDS only connects the boot devices defined in the EFI variables.


> Laszlo
> 
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT 
> organizations don't have a clear picture of how application performance 
> affects their revenue. With AppDynamics, you get 100% visibility into your 
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to