david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src
Michael Brown 8a380987c1 [efi] Install our own disk I/O protocol and claim exclusive use of it
The EFI FAT filesystem driver has a bug: if a block device contains no
FAT filesystem but does have an EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
instance, the FAT driver will assume that it must have previously
installed the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.  This causes the FAT
driver to claim control of our device, and to refuse to stop driving
it, which prevents us from later uninstalling correctly.

Work around this bug by opening the disk I/O protocol ourselves,
thereby preventing the FAT driver from opening it.

Note that the alternative approach of opening the block I/O protocol
(and thereby in theory preventing DiskIo from attaching to the block
I/O protocol) causes an endless loop of calls to our DRIVER_STOP
method when starting the EFI shell.  I have no idea why this is.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-07-14 16:30:19 +01:00
..
arch [efi] Include SNP NIC driver within the all-drivers target 2014-07-08 16:28:22 +01:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [cmdline] Add "profstat" command to display profiling statistics 2014-04-27 23:14:47 +01:00
core [build] Expose build timestamp, build name, and product names 2014-06-24 15:32:35 +01:00
crypto [crypto] Fix debug message 2014-07-12 14:24:40 +01:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [efi] Rewrite SNP NIC driver 2014-07-08 14:01:55 +01:00
hci [cmdline] Add "profstat" command to display profiling statistics 2014-04-27 23:14:47 +01:00
image [efi] Disable SNP devices when running iPXE as the application 2014-03-14 17:09:51 +00:00
include [efi] Install our own disk I/O protocol and claim exclusive use of it 2014-07-14 16:30:19 +01:00
interface [efi] Install our own disk I/O protocol and claim exclusive use of it 2014-07-14 16:30:19 +01:00
libgcc [build] Mark __intel_new_proc_init with __libgcc rather than cdecl 2009-08-03 15:56:10 +01:00
net [netdevice] Reset network device index when last device is unregistered 2014-07-14 12:17:19 +01:00
tests [crypto] Add support for iPAddress subject alternative names 2014-07-11 16:55:14 +01:00
usr [autoboot] Allow autoboot device to be identified by link-layer address 2014-07-08 00:37:31 +01:00
util [build] Merge util/geniso and util/genliso 2014-05-14 16:00:58 +01:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [build] Expose build timestamp, build name, and product names 2014-06-24 15:32:35 +01:00
Makefile.housekeeping [build] Fix erroneous object name in version object 2014-06-26 16:43:59 +01:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00