diff options
| author | Matt Domsch <matt_domsch@dell.com> | 2004-10-19 18:36:22 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-19 18:36:22 -0700 |
| commit | 2850479a63f2505e8d6fdac8e111bbdf82f1bfb9 (patch) | |
| tree | d656025c38c19e86cd1d21b11a3a5fa7ce0a3105 /include | |
| parent | d4eca0f02cf185623fac28b1f927c07f86ef9f17 (diff) | |
[PATCH] EDD: use EXTENDED READ command, add CONFIG_EDD_SKIP_MBR
Some controller BIOSes have problems with the legacy int13 fn02 READ
SECTORS command. int13 fn42 EXTENDED READ is used in preference by most
boot loaders today, so lets use that. If EXTENDED READ fails or isn't
supported, fall back to READ SECTORS.
This hopefully resolves the three reports of BIOSes which would either
long-pause (30+ seconds) or hang completely on the legacy READ SECTORS
command.
This also adds CONFIG_EDD_SKIP_MBR to eliminate reading the MBR on each
BIOS-presented disk, in case there are further problems in this area.
Signed-off-by: Matt Domsch <Matt_Domsch@dell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/edd.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/edd.h b/include/linux/edd.h index 5f93881106fa..242600817a8d 100644 --- a/include/linux/edd.h +++ b/include/linux/edd.h @@ -37,14 +37,18 @@ #define EDDEXTSIZE 8 /* change these if you muck with the structures */ #define EDDPARMSIZE 74 #define CHECKEXTENSIONSPRESENT 0x41 +#define EXTENDEDREAD 0x42 #define GETDEVICEPARAMETERS 0x48 #define LEGACYGETDEVICEPARAMETERS 0x08 #define EDDMAGIC1 0x55AA #define EDDMAGIC2 0xAA55 +#define FIXEDDISKSUBSET 0x0001 +#define GET_DEVICE_PARAMETERS_SUPPORTED 0x0007 #define READ_SECTORS 0x02 /* int13 AH=0x02 is READ_SECTORS command */ #define EDD_MBR_SIG_OFFSET 0x1B8 /* offset of signature in the MBR */ +#define EDD_DEV_ADDR_PACKET_LEN 0x10 /* for int13 fn42 */ #define EDD_MBR_SIG_BUF 0x290 /* addr in boot params */ #define EDD_MBR_SIG_MAX 16 /* max number of signatures to store */ #define EDD_MBR_SIG_NR_BUF 0x1ea /* addr of number of MBR signtaures at EDD_MBR_SIG_BUF |
