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
