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?

 

Thanks & Regards,

Michael

------------------------------------------------------------------------------
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