freebsd-nq/sys/boot/i386
Andriy Gapon 4efe2886a5 boot: use packed attribute for edd_params* structures and their substructures
The sole purpose of this change is to make sure that sizeof produces
"canonical" sizes for these structures.  This is to avoid triggering
bugs in the BIOSes that properly handle only the canonical values of
input length provided to INT 13h AH=48h.
The canonical sizes are: 30 for v2, 66 for v3, etc.
Buggy BIOS code probably looks like:
if (input_length > 30) {   /* > v2 */
	assume that input length is 66 /* assume v3 or later */
}

This should fix boot problems at least on Supermicro X8DT6 and possibly
on P410i Smart Array Controller (as found in e.g. HP DL360 G7).

Reported by:	gnn, np, rstone
Debugged by:	rstone
Discussed with:	ae, np, rstone
MFC after:	4 days
2012-11-14 11:05:16 +00:00
..
boot0 Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
boot0ext
boot0sio
boot2 Shrink boot2 by 8 bytes, by eliminating some unneeded instructions in 2012-11-08 23:21:02 +00:00
btx add detection of serial console presence to btx and boot2-like blocks 2012-10-06 20:08:29 +00:00
cdboot Fix sys/boot/i386/cdboot/cdboot.S compilation with clang after r235219. 2012-05-11 18:07:23 +00:00
common boot: use packed attribute for edd_params* structures and their substructures 2012-11-14 11:05:16 +00:00
efi sys/boot: add common CTASSERT definition 2012-05-09 07:55:42 +00:00
gptboot add detection of serial console presence to btx and boot2-like blocks 2012-10-06 20:08:29 +00:00
gptzfsboot Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
kgzldr
libfirewire MF tbemd: Minor tweaks, prefer MACHINE_CPUARCH generally to MACHINE_ARCH 2010-08-23 01:42:09 +00:00
libi386 Add the flags parameter to the disk_open() function and DISK_F_NOCACHE 2012-10-21 12:14:58 +00:00
loader Hook in new files menusets.4th and manual. 2012-11-07 02:14:03 +00:00
mbr Use -Wl,-N instead of the undocumented -N option for GCC. 2010-06-03 17:42:32 +00:00
pmbr When GPT signature is invalid in the primary GPT header, then try to 2012-08-05 12:57:38 +00:00
pxeldr cdboot, pxeldr: make use of bootargs.h instead of redefining flag constants 2012-05-10 09:47:04 +00:00
zfsboot add detection of serial console presence to btx and boot2-like blocks 2012-10-06 20:08:29 +00:00
zfsloader For consistency, change all 'i386' and MACHINE_ARCH to x86. 2010-08-31 19:01:12 +00:00
Makefile Don't build zfsboot, gptzfsboot, and zfsloader if WITHOUT_ZFS is enabled. 2009-12-22 20:56:33 +00:00
Makefile.inc boot: use -march=i386 for both i386 and amd64 builds 2012-10-20 16:57:23 +00:00