From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (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 85DEA21E87992 for ; Fri, 8 Sep 2017 11:44:25 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 944FD81DFA; Fri, 8 Sep 2017 18:47:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 944FD81DFA Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=lersek@redhat.com Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-10.rdu2.redhat.com [10.10.120.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3A6C9600C0; Fri, 8 Sep 2017 18:47:15 +0000 (UTC) To: Paulo Alcantara , edk2-devel@lists.01.org Cc: Ruiyu Ni , Eric Dong , hao.a.wu@intel.com, Jordan Justen , Andrew Fish , Liming Gao , Michael D Kinney , Star Zeng References: From: Laszlo Ersek Message-ID: <77914c33-7637-e759-02d0-f94e448157ff@redhat.com> Date: Fri, 8 Sep 2017 20:47:14 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 08 Sep 2017 18:47:17 +0000 (UTC) Subject: Re: [PATCH v6 0/6] read-only UDF file system support 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: Fri, 08 Sep 2017 18:44:25 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 09/08/17 14:41, Paulo Alcantara wrote: > Hi, > > This series introduces read-only UDF file system support in EDK2. As > Laszlo (or Red Hat) seemed to be interested in such support, I'm posting > it again after ~3 years. > > The idea is not replacing the default FAT file system, nor breaking any > existing file system support, but extending EDK2 with a new file system > that might be useful for some people who are looking for specific file > system features that current FAT doesn't support. > > Originally the driver was written to support UDF file systems as > specified by OSTA Universal Disk Format Specification 2.60. However, > some Windows 10 Enterprise ISO (UDF bridge) images that I tested > supported a revision of 1.02 thus I had to rework the driver a little > bit to support such revision as well. > > v2: > - Rework to _partially_ support UDF revisions <2.60. > - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h > instead of creating another one (UDF_VOLUME_DESCRIPTOR). > - Fixed UdfDxe to correctly follow UEFI driver model. > - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one. > - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver > check for specific UDF device path to decide whether or not install > SimpleFs protocol. > - Place MdePkg changes in a separate patch. > v3: > - Install UDF partition child handles with a Vendor-Defined Media > Device Path. > - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a > specific UDF file system GUID when determining to whether or not > start the driver. > - Removed leading TAB chars in some source files identified by > PatchCheck.py tool. > v4: > - Added missing R-b's. > v5: > - Fixed OVMF IA32 build. > - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which > broke retrieval of private fs data from SimpleFs protocol -- > identified by 'reconnect -r' command in UEFI shell. > v6: > - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32 > by allowing caller to read more than 4GiB of data > (i.e. BufferSize pointer is dereferenced as an UINT64 * and it's > followed by 4 bytes that are nonzero). > > Repo: https://github.com/pcacjr/edk2.git > Branch: udf-fs-v6 > > Cc: Laszlo Ersek > Cc: Jordan Justen > Cc: Andrew Fish > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Star Zeng > Cc: Eric Dong > Cc: Mark Doran > Cc: Ruiyu Ni > Cc: hao.a.wu@intel.com > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Paulo Alcantara > --- > > Paulo Alcantara (6): > MdePkg: Add UDF volume structure definitions > MdeModulePkg/PartitionDxe: Add UDF file system support > MdeModulePkg: Initial UDF/ECMA-167 file system support > OvmfPkg: Enable UDF file system support > ArmVirtPkg: Enable UDF file system support > Nt32Pkg: Enable UDF file system support > > ArmVirtPkg/ArmVirtQemu.dsc | 3 +- > ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 3 +- > ArmVirtPkg/ArmVirtQemuKernel.dsc | 3 +- > ArmVirtPkg/ArmVirtXen.dsc | 3 +- > ArmVirtPkg/ArmVirtXen.fdf | 1 + > .../Universal/Disk/PartitionDxe/Partition.c | 9 +- > .../Universal/Disk/PartitionDxe/Partition.h | 32 +- > .../Universal/Disk/PartitionDxe/PartitionDxe.inf | 3 +- > MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c | 318 +++ > MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c | 185 ++ > MdeModulePkg/Universal/Disk/UdfDxe/File.c | 908 ++++++++ > MdeModulePkg/Universal/Disk/UdfDxe/FileName.c | 195 ++ > .../Universal/Disk/UdfDxe/FileSystemOperations.c | 2447 ++++++++++++++++++++ > MdeModulePkg/Universal/Disk/UdfDxe/Udf.c | 344 +++ > MdeModulePkg/Universal/Disk/UdfDxe/Udf.h | 1244 ++++++++++ > MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | 66 + > MdePkg/Include/IndustryStandard/Udf.h | 60 + > Nt32Pkg/Nt32Pkg.dsc | 1 + > Nt32Pkg/Nt32Pkg.fdf | 1 + > OvmfPkg/OvmfPkgIa32.dsc | 1 + > OvmfPkg/OvmfPkgIa32.fdf | 1 + > OvmfPkg/OvmfPkgIa32X64.dsc | 1 + > OvmfPkg/OvmfPkgIa32X64.fdf | 1 + > OvmfPkg/OvmfPkgX64.dsc | 1 + > OvmfPkg/OvmfPkgX64.fdf | 1 + > 25 files changed, 5821 insertions(+), 11 deletions(-) > create mode 100644 MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/File.c > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/FileName.c > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/Udf.c > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/Udf.h > create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > create mode 100644 MdePkg/Include/IndustryStandard/Udf.h > Pushed as commit range 7aee391fa3d0..b696c64d4fc3. Thank you for the contribution, Paulo, and everyone else for the feedback! Laszlo