From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.zytor.com (terminus.zytor.com [65.50.211.136]) (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 62CB821D492F6 for ; Thu, 7 Sep 2017 16:13:21 -0700 (PDT) Received: from localhost.localdomain ([IPv6:2804:7f4:c480:9cd0:0:0:0:2]) (authenticated bits=0) by mail.zytor.com (8.15.2/8.15.2) with ESMTPSA id v87NDnCZ030918 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 7 Sep 2017 16:13:51 -0700 From: Paulo Alcantara To: edk2-devel@lists.01.org Cc: Paulo Alcantara , Laszlo Ersek , Jordan Justen , Andrew Fish , Michael D Kinney , Liming Gao , Star Zeng , Eric Dong , Mark Doran , Ruiyu Ni , hao.a.wu@intel.com Date: Thu, 7 Sep 2017 20:13:19 -0300 Message-Id: X-Mailer: git-send-email 2.11.0 Subject: [PATCH v5 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: Thu, 07 Sep 2017 23:13:21 -0000 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. Repo: https://github.com/pcacjr/edk2.git Branch: udf-fs-v5 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 | 903 ++++++++ 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, 5816 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 -- 2.11.0