From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-in25.apple.com (mail-out25.apple.com [17.171.2.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4B91B21E0C313 for ; Wed, 9 Aug 2017 10:49:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1502301099; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-reply-to:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=YrRP05w9j75iimjqd7CZtg1raQXP9kE2d2hOwzAUtpI=; b=l+eUC0q/jzwGQ0HtJ/byWnIYiWvQ3/zQPGuobkUrKyu4Uan0xP49bKWewgdwFg73 db6lon4gB3652f5znNQ20JU0DA/ZDkFxekVXJlKric/KR8d7A2axK8sJniXxOWjj OaOPuh5v3/sQO4IzRmnOFU/+yIbLF6b7a0YWbaF1wkCahiAGyM38OVlxeCI2H6uj 2l/JGLH4YJI2HEjNhNV9NCaqIQuJK1087BOigRGwzSsDyPY76yuyhALZ/CDY7H7m d4gZFhnGGcxKQqVATM3qIZIvP4dJlKzdKEuvr0sNGwOxUsr9WEMbnfOuke0tUqg+ jlRovr39/IzCa4yBdXaw7g==; Received: from relay3.apple.com (relay3.apple.com [17.128.113.83]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in25.apple.com (Apple Secure Mail Relay) with SMTP id 1E.2E.05744.AAB4B895; Wed, 9 Aug 2017 10:51:39 -0700 (PDT) X-AuditID: 11ab0219-dacb19c000001670-da-598b4baa4523 Received: from nwk-mmpp-sz10.apple.com (nwk-mmpp-sz10.apple.com [17.128.115.122]) by relay3.apple.com (Apple SCV relay) with SMTP id 91.7D.09863.AAB4B895; Wed, 9 Aug 2017 10:51:38 -0700 (PDT) MIME-version: 1.0 Received: from [17.235.57.129] by nwk-mmpp-sz10.apple.com (Oracle Communications Messaging Server 8.0.1.2.20170621 64bit (built Jun 21 2017)) with ESMTPSA id <0OUF00BYLIY0SG60@nwk-mmpp-sz10.apple.com>; Wed, 09 Aug 2017 10:51:38 -0700 (PDT) Sender: afish@apple.com From: Andrew Fish Message-id: <61EDB625-E675-4F52-B3D7-3FC71E41EFFC@apple.com> Date: Wed, 09 Aug 2017 10:51:36 -0700 In-reply-to: Cc: Paulo Alcantara , Jordan Justen , edk2-devel@lists.01.org, Ard Biesheuvel To: Laszlo Ersek References: <20170808193143.18128-1-pcacjr@zytor.com> <20170808193143.18128-5-pcacjr@zytor.com> <3801BBFD-12B7-485E-8740-F333A4823E9B@apple.com> X-Mailer: Apple Mail (2.3273) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCLMWRmVeSWpSXmKPExsUi2FAYrLvauzvSYM9BVYv/H3YzWuw5dJTZ Yse1fhaLZcd2sFjse/2R0YHVY/Gel0wed67tYfPonv2PxeP9vqtsHidavrAGsEZx2aSk5mSW pRbp2yVwZWz+s5WxoP86U8XaCdOYGxg3rmXqYuTkkBAwkbjeuIiti5GLQ0hgDZPE+7aLcIkp t6cyQiQOMUocODeDDSTBKyAo8WPyPRYQm1kgTOLv3/NgcSGBr4wSPw5xg9jCAuIS785sYgax 2QSUJVbM/8DexcgB1Gsjsfp+MESJh8T3XUfAWlkEVCUOP1/EBFLCKWAn8We/M8haZoFZjBIr 53xlBakREVCRmD3hARPEPX8YJQ623GOEOFRW4tbsS8wgCQmB72wSRy++Z5rAKDQLya2zkNw6 C2gJs4C6xJQpuRBhbYkn7y6wQthqEgt/L2JCFl/AyLaKUTg3MTNHNzPPyFQvsaAgJ1UvOT93 EyMomlYzSe5g/Pra8BCjAAejEg/vDLfuSCHWxLLiytxDjNIcLErivJuyuiKFBNITS1KzU1ML Uovii0pzUosPMTJxcEo1MEpGqD/1K886lPM+Tt/sb1YS7xydog8+7vu02f97xX5LOyNwwl4/ 9d6K+Zm/V4us/xZb3WJu9rBo2fH80CtTJlaKH/lynzc7tSXvRsxzTYf3fFsb17S9aj79+I3s CY+XyXk8EkfEOn/5Jcg/4Ozpe9+39+WC+Y9ZWtfukMjckLk+OsS+7QnzbiWW4oxEQy3mouJE AG65EHmHAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLIsWRmVeSWpSXmKPExsUi2FBcpbvKuzvS4O8nfYv/H3YzWuw5dJTZ Yse1fhaLZcd2sFjse/2R0YHVY/Gel0wed67tYfPonv2PxeP9vqtsHidavrAGsEZx2aSk5mSW pRbp2yVwZWz+s5WxoP86U8XaCdOYGxg3rmXqYuTkkBAwkZhyeypjFyMXh5DAIUaJA+dmsIEk eAUEJX5MvscCYjMLhEn8/XseLC4k8JVR4schbhBbWEBc4t2ZTcwgNpuAssSK+R/Yuxg5gHpt JFbfD4Yo8ZD4vusIWCuLgKrE4eeLmEBKOAXsJP7sdwZZyywwi1Fi5ZyvrCA1IgIqErMnPGCC uOcPo8TBlnuMEIfKStyafYl5AiP/LCTnzUJy3iygucwC6hJTpuRChLUlnry7wAphq0ks/L2I CVl8ASPbKkaBotScxEpjvcSCgpxUveT83E2M4NAvDN7B+GeZ1SFGAQ5GJR7eBNHuSCHWxLLi ylxgGHEwK4nw/nEFCvGmJFZWpRblxxeV5qQWH2KcyAj05URmKdHkfGBk5pXEG5qYGJgYG5sZ G5ubmNNSWEmcd/+WjkghgfTEktTs1NSC1CKYo5g4OKUaGMu3cbvLeVyxX3XwgYBM15Mzi0+e 679fuPPJuxtX4s0l/q3edulj19POy/NMTXm4Qt9rXFoavG71pdnOT9z7/TkLfq2dltcg8VCl d0vZwm+7WlMv/fR3+9LFvWcDrzCHrP40l+Y/wZYbrrWrh1RULOMtDt5sUJ9xjXXRghZmlZYT L2qWl/S8blZiKc5INNRiLipOBAArKPnf8AIAAA== X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH 4/4] OvmfPkg: Introduce UDF_ENABLE build flag X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Aug 2017 17:49:24 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > On Aug 9, 2017, at 10:33 AM, Laszlo Ersek wrote: >=20 > On 08/09/17 17:45, Andrew Fish wrote: >>=20 >>> On Aug 9, 2017, at 2:44 AM, Laszlo Ersek wrote: >>>=20 >>> CC Ard and Andrew >>>=20 >>> On 08/08/17 21:31, Paulo Alcantara wrote: >>>> By defining this build flag, OVMF will support booting from UDF = file >>>> systems. >>>>=20 >>>> Cc: Jordan Justen >>>> Cc: Laszlo Ersek >>>> Contributed-under: TianoCore Contribution Agreement 1.1 >>>> Signed-off-by: Paulo Alcantara >>>> --- >>>> OvmfPkg/OvmfPkgIa32.dsc | 7 +++++++ >>>> OvmfPkg/OvmfPkgIa32.fdf | 3 +++ >>>> OvmfPkg/OvmfPkgIa32X64.dsc | 7 +++++++ >>>> OvmfPkg/OvmfPkgIa32X64.fdf | 3 +++ >>>> OvmfPkg/OvmfPkgX64.dsc | 7 +++++++ >>>> OvmfPkg/OvmfPkgX64.fdf | 3 +++ >>>> 6 files changed, 30 insertions(+) >>>=20 >>> Ray already mentioned that PcdUdfFileSystemSupport is not needed. I >>> agree. Similarly, I think UDF_ENABLE is also not needed, the new = driver >>> should be added to the DSC and FDF files right after "Fat.inf" (like = you >>> are doing it now, just unconditionally). >>>=20 >>> Furthermore, can you please do the same in the ArmVirtPkg DSC and = FDF >>> files? (Just grep the tree for "Fat.inf".) EmulatorPkg and Nt32Pkg = are >>> further emulation platforms that might want to include this. >>>=20 >>> My reason for suggesting the unconditional inclusion is the = following >>> sentence from the UEFI 2.7 spec: >>>=20 >>> 13 Protocols =E2=80=94 Media Access >>> 13.3 File System Format >>> 13.3.2 Partition Discovery >>> 13.3.2.1 ISO-9660 and El Torito >>>=20 >>> [...] DVD-ROM images formatted as required by the UDF 2.0 >>> specification (OSTA Universal Disk Format Specification, Revision = 2.0) >>> can be booted by EFI. [...] >>>=20 >>> It does not say "may be bootable", it says "can be booted". >>>=20 >>> It would be interesting to see the Mantis ticket (if any) that got = this >>> language into the spec, without the edk2 reference implementation >>> providing a UDF driver. >>> - Using the Mantis simple search function, "UDF" brings up nothing. >>> - =46rom some googling, this sentence appears to go back to EFI 1.10 = at >>> the least. >>>=20 >>> Andrew, do you remember the history of the quoted sentence? >>>=20 >>=20 >> UDF defines a "UDF Bridge" disk that is "El Torito" compatible. So = UDF punted on boot ability by allowing compatibility with CD-ROMs.=20 >>=20 >> EFI supports booting from an ISO-9660 file system that conforms to = the =E2=80=9CEl Torito=E2=80=9D Bootable CD-ROM Format Specification on = a DVD- ROM. A DVD-ROM that contains an ISO-9660 file system is defined = as a =E2=80=9CUDF Bridge=E2=80=9D disk. Booting from CD-ROM and DVD-ROM = is accomplished using the same methods. >>=20 >> I'm fine with adding a UDF file system driver, but it is not required = from a UEFI Spec conformance point of view. >=20 > But the one sentence that I quoted above (from the spec) gives rise to > this exact impression: >=20 > [...] DVD-ROM images formatted as required by the UDF 2.0 > specification (OSTA Universal Disk Format Specification, Revision = 2.0) > can be booted by EFI. [...] >=20 > Yes, it goes on to talk about "UDF Bridge", but this sentence per se > seems to require booting UDF optical media. The next sentence ("EFI > supports booting from an ISO-9660 file system...") does not start with > "Namely,". >=20 > So is this a spec bug? >=20 > I'd like to clarify this, because the intent of the above phrase > determines whether: > - edk2, as-is, conforms or does not conform to that passage of the = spec, > - optical media that is formatted with UDF (and no ISO9660/ElTorito > compat) qualifies as EFI-compatible (that edk2 currently cannot = boot). >=20 > Could you recommend improved wording for the spec? I'd be happy to = file > a Mantis item on your behalf. >=20 Sure feel free to file a mantis. I think the missing chunk of info is = that the only definition of booting in the UDF spec is the "UDF Bridge" = format to be compatible with El-Torito. Thus the statement is factual. I = think the UDF spec basically states to be bootable it must be a UEF = Bridge disk and thus be compatible with El-Torito.=20 Maybe turning things around a bit helps.=20 The UDF 2.0 specification (..) requires a bootable DVD-ROM be formatted = as a "UDF Bridge" disk to be bootable... Anyway feel free to start a thread on the spec mailing list. Thanks, Andrew Fish > Thanks, > Laszlo >=20 >>=20 >> Thanks, >>=20 >> Andrew Fish >>=20 >> PS "El Torito" was the restaurant that Curtis and Stan wrote out the = proposal on a napkin. Luckily device paths are not called "House of = Teriyaki", or even worse the nickname "rats and rice". =20 >>=20 >>> Paulo, I'll check if I can test your driver with some 3rd party = media >>> (i.e., a DVD image that I don't prepare myself). >>>=20 >>> Thank you! >>> Laszlo >>>=20 >>>>=20 >>>> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc >>>> index 5a14325f73..c71c332efd 100644 >>>> --- a/OvmfPkg/OvmfPkgIa32.dsc >>>> +++ b/OvmfPkg/OvmfPkgIa32.dsc >>>> @@ -39,6 +39,7 @@ >>>> DEFINE HTTP_BOOT_ENABLE =3D FALSE >>>> DEFINE SMM_REQUIRE =3D FALSE >>>> DEFINE TLS_ENABLE =3D FALSE >>>> + DEFINE UDF_ENABLE =3D FALSE >>>>=20 >>>> # >>>> # Flash size selection. Setting FD_SIZE_IN_KB on the command line = directly to >>>> @@ -409,6 +410,9 @@ >>>> gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE >>>> gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE >>>> !endif >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> + gEfiMdeModulePkgTokenSpaceGuid.PcdUdfFileSystemSupport|TRUE >>>> +!endif >>>>=20 >>>> [PcdsFixedAtBuild] >>>> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 >>>> @@ -685,6 +689,9 @@ >>>> MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf >>>> = MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf >>>> FatPkg/EnhancedFatDxe/Fat.inf >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>>> +!endif >>>> MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >>>> MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >>>> OvmfPkg/SataControllerDxe/SataControllerDxe.inf >>>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf >>>> index 5e5ade2a1f..2da1fcbe1f 100644 >>>> --- a/OvmfPkg/OvmfPkgIa32.fdf >>>> +++ b/OvmfPkg/OvmfPkgIa32.fdf >>>> @@ -282,6 +282,9 @@ INF = MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.in= f >>>> INF = MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResou= rceTableDxe.inf >>>>=20 >>>> INF FatPkg/EnhancedFatDxe/Fat.inf >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>>> +!endif >>>>=20 >>>> !ifndef $(USE_OLD_SHELL) >>>> INF ShellPkg/Application/Shell/Shell.inf >>>> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc = b/OvmfPkg/OvmfPkgIa32X64.dsc >>>> index 2f17a70db8..d0785cca13 100644 >>>> --- a/OvmfPkg/OvmfPkgIa32X64.dsc >>>> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc >>>> @@ -39,6 +39,7 @@ >>>> DEFINE HTTP_BOOT_ENABLE =3D FALSE >>>> DEFINE SMM_REQUIRE =3D FALSE >>>> DEFINE TLS_ENABLE =3D FALSE >>>> + DEFINE UDF_ENABLE =3D FALSE >>>>=20 >>>> # >>>> # Flash size selection. Setting FD_SIZE_IN_KB on the command line = directly to >>>> @@ -414,6 +415,9 @@ >>>> gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE >>>> gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE >>>> !endif >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> + gEfiMdeModulePkgTokenSpaceGuid.PcdUdfFileSystemSupport|TRUE >>>> +!endif >>>>=20 >>>> [PcdsFixedAtBuild] >>>> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 >>>> @@ -694,6 +698,9 @@ >>>> MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf >>>> = MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf >>>> FatPkg/EnhancedFatDxe/Fat.inf >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>>> +!endif >>>> MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >>>> MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >>>> OvmfPkg/SataControllerDxe/SataControllerDxe.inf >>>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf = b/OvmfPkg/OvmfPkgIa32X64.fdf >>>> index aa0d8c69f3..0fdd359051 100644 >>>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf >>>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf >>>> @@ -283,6 +283,9 @@ INF = MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.in= f >>>> INF = MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResou= rceTableDxe.inf >>>>=20 >>>> INF FatPkg/EnhancedFatDxe/Fat.inf >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>>> +!endif >>>>=20 >>>> !ifndef $(USE_OLD_SHELL) >>>> INF ShellPkg/Application/Shell/Shell.inf >>>> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc >>>> index c0bd5d0ea6..a25d8b1e99 100644 >>>> --- a/OvmfPkg/OvmfPkgX64.dsc >>>> +++ b/OvmfPkg/OvmfPkgX64.dsc >>>> @@ -39,6 +39,7 @@ >>>> DEFINE HTTP_BOOT_ENABLE =3D FALSE >>>> DEFINE SMM_REQUIRE =3D FALSE >>>> DEFINE TLS_ENABLE =3D FALSE >>>> + DEFINE UDF_ENABLE =3D FALSE >>>>=20 >>>> # >>>> # Flash size selection. Setting FD_SIZE_IN_KB on the command line = directly to >>>> @@ -414,6 +415,9 @@ >>>> gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE >>>> gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE >>>> !endif >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> + gEfiMdeModulePkgTokenSpaceGuid.PcdUdfFileSystemSupport|TRUE >>>> +!endif >>>>=20 >>>> [PcdsFixedAtBuild] >>>> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 >>>> @@ -692,6 +696,9 @@ >>>> MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf >>>> = MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf >>>> FatPkg/EnhancedFatDxe/Fat.inf >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>>> +!endif >>>> MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >>>> MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >>>> OvmfPkg/SataControllerDxe/SataControllerDxe.inf >>>> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf >>>> index 98a0cf17da..8ae591c1f5 100644 >>>> --- a/OvmfPkg/OvmfPkgX64.fdf >>>> +++ b/OvmfPkg/OvmfPkgX64.fdf >>>> @@ -283,6 +283,9 @@ INF = MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.in= f >>>> INF = MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResou= rceTableDxe.inf >>>>=20 >>>> INF FatPkg/EnhancedFatDxe/Fat.inf >>>> +!if $(UDF_ENABLE) =3D=3D TRUE >>>> +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf >>>> +!endif >>>>=20 >>>> !ifndef $(USE_OLD_SHELL) >>>> INF ShellPkg/Application/Shell/Shell.inf >>>>=20 >>>=20 >>> _______________________________________________ >>> edk2-devel mailing list >>> edk2-devel@lists.01.org >>> https://lists.01.org/mailman/listinfo/edk2-devel