Hi Grant, On Fri, Feb 19, 2021 at 05:28:59PM +0000, Grant Likely wrote: > > > On 18/02/2021 11:15, Heinrich Schuchardt wrote: > > >
[...] > > > 1. Prepend a VenMedia Device Path in every initrd Device Path. In that > > > case > > > FilePathList[] would look like this: > > > > > > Loaded Image device path - end node - VenMedia - Initrd DP - end node > > > - VenMedia - Initrd DP - end node - repeat > > > > > > 2. Prepend a VenMedia Device Path once. In that case FilePathList[] would > > > look > > > like this: > > > > > > Loaded Image device path - end node - VenMedia - Initrd DP - end > > > instance - (repeat) - Initrd DP - end node - other DPs > > > > > > In this case we could use the VenMedia Vendor Defined Data to indicate > > > the number > > > of device paths that follow, although it's redundant, since each instance > > > would > > > terminate on the Device Path End Structure. > > > > > > 3. Use Vendor Defined Data of the VenMedia device path and copy the initrd > > > device path(s) in there. In that case the Vendor Defined Data will it self > > > be in a device path format with all the initrds we want. > > > > > > Loaded Image device path - end node - VenMedia - end node - other DPs > > > > When passing the device path of the boot option to the EDK2 > > implementation of > > EFI_DEVICE_PATH_TO_TEXT_PROTOCOL.ConvertDevicePathToText(), it will > > print out all array elements as comma separated list like > > > > HD(1,GPT,..,0x2000,0x200000)/File(\EFI\debian\shimaa64.efi),/VenMedia(00000001-0000-0000-0000-000000000000)/HD(2,GPT,..,0x2000,0x200000)/File(\initrd1),/VenMedia(00000001-0000-0000-0000-000000000000)/HD(2,GPT,..,0x2000,0x200000)/File(\initrd2) > > > > > The device path end nodes of sub-type 0x01 are rendered as commas. > > > > With 1 and 2 this would show a readable output like above. > > With 3 you will just see a hex-string. > > > > This excludes 3 for me. > > > > If 2 does not add the number of initrds, it cannot be determined if a > > following array element starting with a VenMedia() node is an initrd or > > has a completely different meaning. > > > > With 1 you can individually determine for each element its meaning by > > looking at the first node. > > Attempting to paraphrase; does this mean the VenMedia component would be > used to identify the file type? i.e., use one GUID for initrd, and > another for DTB? Or is that worked out another way? Yea exactly (in all 3 implementations). The difference in the 3 different proposals is how to interpret that VenMedia device path to identify all the device paths that refer to that specific GUID. Regards /Ilias > > g. > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. _______________________________________________ boot-architecture mailing list boot-architecture@lists.linaro.org https://lists.linaro.org/mailman/listinfo/boot-architecture