From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Cannot boot ISO on RamDisk To: devel@edk2.groups.io From: nahim.souza@fit-tecnologia.org.br X-Originating-Location: Sorocaba, Sao Paulo, BR (179.178.70.27) X-Originating-Platform: Windows Chrome 87 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Thu, 26 Nov 2020 11:53:49 -0800 Message-ID: Content-Type: multipart/alternative; boundary="cIkDAYlihCQeyqU1zG0o" --cIkDAYlihCQeyqU1zG0o Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Greetings! We are trying to implement an .efi application that receives an ISO file f= rom an Android device, loads it into a buffer and try to boot an Operating = System. To do this, we=C2=A0tested some implementations using Ram Disk but = after creating the virtual disk and running BOOTX64.efi and found on the FA= T32 partition, but some problems occur after boot, as if I did not find the= other files in the ISO. To solve this problem, we tried some approaches: * Change the parameters when calling RamDiskProtocol->Register() function = (GUID and DevicePath) * Tried with different OS (Xubuntu, Windows 10, Windows 7, Ubuntu and Open= Suse) * Compared with HttpBoot implementation from EDK2, where we saw that an IS= O file could be loaded into memory to boot an OS, but the RamDisk implement= ation in HttpBootRegisterRamDisk was very similar to ours Based on this, I have some questions: * In our understanding, HttpBoot downloads the ISO and boots the OS using = the RamDisk. Is that correct? * We saw that RamDiskDxe has some dependencies from ACPI tables, since it = uses NFIT (NVDIMM Firmware Interface Table) to save some persistent informa= tion. Is there some hardware/driver requirement to make the OS boot through= RamDisk? Did we need to have this NVDIMM=C2=A0to support ACPI feature from= RamDiskDxe? * Would you have any other suggestions for solving this scenario? Best regards! Nahim. --cIkDAYlihCQeyqU1zG0o Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Greetings!

We are trying to implement an .efi application that r= eceives an ISO file from an Android device, loads it into a buffer and try = to boot an Operating System. To do this, we tested some implementation= s using Ram Disk but after creating the virtual disk and running BOOTX64.ef= i and found on the FAT32 partition, but some problems occur after boot, as = if I did not find the other files in the ISO. To solve this problem, we tri= ed some approaches:

  1. Change the parameters when calling RamDiskProtocol->Register() func= tion (GUID and DevicePath)
  2. Tried with different OS (Xubuntu, Windows 10, Windows 7, Ubuntu and Op= enSuse)
  3. Compared with HttpBoot implementation from EDK2, where we saw that an = ISO file could be loaded into memory to boot an OS, but the RamDisk impleme= ntation in HttpBootRegisterRamDisk was very similar to ours
Based on this, I have some questions:

  1. In our understanding, HttpBoot downloads the ISO and boots the OS usin= g the RamDisk. Is that correct?
  2. We saw that RamDiskDxe has some dependencies from ACPI tables, since i= t uses NFIT (NVDIMM Firmware Interface Table) to save some persistent infor= mation. Is there some hardware/driver requirement to make the OS boot throu= gh RamDisk? Did we need to have this NVDIMM to support ACPI feature fr= om RamDiskDxe?
  3. Would you have any other suggestions for solving this scenario?

Best regards!
Nahim. --cIkDAYlihCQeyqU1zG0o--