freebsd-dev/sys/boot/i386
Toomas Soome f6bd3d520f zfsboot: drvsize() may be unusable on some systems
From user report, the errors are seen:
error 1
error 1
gptzfsboot: error 1 lba 4294967288
gptzfsboot: error 1 lba 1
gptzfsboot: no ZFS pools located, can't boot

The first two errors above are from issuing INT13 EAX=0x4800, meaning we
need to check if EDD is available and use EAX=0x800 if not.

For an workaround I'm using the similar idea as in biosdisk.c - first probe
ah=8h, then check if we have EDD.

Note we would like to see the correct disk size info, but we *may*
get away with anything >64MB, so we could at least test 2 zfs pool labels
on whole disk setup and not to freak out the INT13 interface.

If we get away with initial disk probing, then we have partition sizes from
the partition table and we should be able to complete the disk probing.

Note: this update does not provide full fix to all errors, but we get
the drvsize() errors removed.

Reported by:	Michael W. Lucas
Reviewed by:	julian
Differential Revision:	https://reviews.freebsd.org/D10591
2017-05-04 05:26:37 +00:00
..
boot0 Don't use -N to set the OMAGIC with data and text writeable and data 2016-09-03 15:26:28 +00:00
boot0sio META_MODE: Remove DEP_MACHINE from Makefile.depend files. 2015-09-25 19:44:01 +00:00
boot2 xfsread inlined uses more space, so remove the inline tag. This 2017-03-29 18:35:20 +00:00
btx loader: disk io should not use alloca() 2017-02-06 18:44:15 +00:00
cdboot cdboot: add explict suffix to ambiguous or instruction 2016-12-28 23:02:01 +00:00
common loader: zfs reader should check all labels 2017-04-06 18:17:29 +00:00
gptboot Implement boot-time encryption key passing (keybuf) 2017-04-01 05:05:22 +00:00
gptzfsboot Use NO_WCAST_ALIGN instead of spelling it out as -Wno-cast-align in CFLAGS 2017-03-28 20:30:33 +00:00
kgzldr META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
libfirewire dosfs support in libstand is broken since r298230 2016-12-30 19:06:29 +00:00
libi386 loader: F_READ/F_WRITE should be checked against masked flag 2017-04-18 18:07:54 +00:00
loader loader: zfs reader should check all labels 2017-04-06 18:17:29 +00:00
mbr Don't use -N to set the OMAGIC with data and text writeable and data 2016-09-03 15:26:28 +00:00
pmbr Don't use -N to set the OMAGIC with data and text writeable and data 2016-09-03 15:26:28 +00:00
pxeldr dd is currently a bootstrap tool. It really doesn't have any business 2016-12-02 14:44:38 +00:00
zfsboot zfsboot: drvsize() may be unusable on some systems 2017-05-04 05:26:37 +00:00
zfsloader DIRDEPS_BUILD: Update dependencies. 2016-03-21 18:02:26 +00:00
boot.ldscript Don't use -N to set the OMAGIC with data and text writeable and data 2016-09-03 15:26:28 +00:00
Makefile Restore kgzldr on i386 only 2016-02-08 16:59:52 +00:00
Makefile.inc Back out the move to the loader script from -N. This should fix the 2016-10-26 05:26:58 +00:00