> On Feb 12, 2018, at 1:07 PM, Rick Warner <r...@microway.com> wrote: > > Hi All, > > I'm trying to develop a tool for automated BIOS flashing from the EFI shell > using IPMI serial over lan to drive it. To accomplish this, my plan is to > use a network booted EFI shell with a tftp client and a ramdisk to download > the flash tools and ROM into as a workspace and then run the flash commands > from that ram disk. > > I've been able to successfully build and boot an efi shell from the edk 2 > sources including the tftp client. I've also been able to separately build > the RamDiskDxe driver from the MdeModulePkg. Loading the RamDiskDxe.efi > driver file results in a successful message, but I do not get any usable ram > disk made available to me? > > How do I get a usable drive letter/name (ie blk0: or any other name) from the > RamDiskDxe driver? >
Looks like when you load the RamDiskDxe it registers gEfiRamDiskProtocolGuid https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Protocol/RamDisk.h <https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Protocol/RamDisk.h> which notes this API was added in UEFI 2.6 so you can read up on it in that version of the EFI Spec. >From a quick site read of the code it looks like the driver just produces a >Protocol that lets you create a RAM disk and VRF (Setup Pages) that let you >configure one. Seems like you still need to call it and give the raw disk >image. > Once I've done that, will it be possible to include the RamDiskDxe driver as > part of the network bootable efi shell image? I assume I'll need to modify > the .dsc file for the ShellPkg to include the MdeModulePkg pieces. > > If anyone has any other suggestions for this, I'm open to ideas. The only way > I've been successful in network booting EFI shell is using just that file > directly. I tried creating a dos filesystem image with the efi shell file in > it just like would work with a USB key, but that would not boot over the > network stack. If there is some way of creating a network bootable EFI shell > filesystem image (similar to how Linux can network boot a separate vmlinuz > kernel and initrd image)? > > Are there any docs that I've missed (I've tried looking in the user docs and > on the wiki) regarding setting up RamDiskDxe? > Traditionally network booting has involved loading a single file over the network (like an OS Loader) and that file uses the UEFI networking stack to download (TFTP read) more images (like the Kernel) from a location implied by the location used to download the single file (OS Loader). Thanks, Andrew Fish > Thanks! > Rick Warner > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org> > https://lists.01.org/mailman/listinfo/edk2-devel > <https://lists.01.org/mailman/listinfo/edk2-devel> _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel