freebsd-dev/sys/boot/i386/common
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
..
bootargs.h btxldr: future-proof argument passing from boot1/2-ish to loader 2012-05-09 08:04:29 +00:00
cons.c Consolidate duplicate definitions of V86_CY() and V86_ZR() which check for 2011-10-25 19:45:12 +00:00
cons.h
drv.c - Add a new header for the x86 boot code that defines various structures 2011-10-25 19:54:06 +00:00
drv.h
edd.h boot: use packed attribute for edd_params* structures and their substructures 2012-11-14 11:05:16 +00:00
rbx.h