From: Paulo Alcantara <pcacjr@zytor.com>
To: edk2-devel@lists.01.org
Cc: Paulo Alcantara <pcacjr@zytor.com>,
Laszlo Ersek <lersek@redhat.com>,
Jordan Justen <jordan.l.justen@intel.com>,
Andrew Fish <afish@apple.com>,
Michael D Kinney <michael.d.kinney@intel.com>,
Liming Gao <liming.gao@intel.com>,
Star Zeng <star.zeng@intel.com>, Eric Dong <eric.dong@intel.com>,
Mark Doran <mark.doran@intel.com>, Ruiyu Ni <ruiyu.ni@intel.com>,
hao.a.wu@intel.com
Subject: [PATCH v6 0/6] read-only UDF file system support
Date: Fri, 8 Sep 2017 09:41:44 -0300 [thread overview]
Message-ID: <cover.1504872373.git.pcacjr@zytor.com> (raw)
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 <lersek@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Mark Doran <mark.doran@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: hao.a.wu@intel.com
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
---
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
--
2.11.0
next reply other threads:[~2017-09-08 12:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-08 12:41 Paulo Alcantara [this message]
2017-09-08 12:41 ` [PATCH v6 1/6] MdePkg: Add UDF volume structure definitions Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 2/6] MdeModulePkg/PartitionDxe: Add UDF file system support Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 3/6] MdeModulePkg: Initial UDF/ECMA-167 " Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 4/6] OvmfPkg: Enable UDF " Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 5/6] ArmVirtPkg: " Paulo Alcantara
2017-09-08 12:41 ` [PATCH v6 6/6] Nt32Pkg: " Paulo Alcantara
2017-09-08 13:25 ` [PATCH v6 0/6] read-only " Laszlo Ersek
2017-09-08 13:43 ` Paulo Alcantara
2017-09-08 15:05 ` Ni, Ruiyu
2017-09-08 18:47 ` Laszlo Ersek
2017-09-08 19:21 ` Ard Biesheuvel
2017-09-08 19:40 ` Laszlo Ersek
2017-09-08 22:17 ` Ard Biesheuvel
2017-09-08 23:30 ` Paulo Alcantara
2017-09-09 21:52 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1504872373.git.pcacjr@zytor.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox