summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMatt Domsch <matt_domsch@dell.com>2004-10-19 18:36:22 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-10-19 18:36:22 -0700
commit2850479a63f2505e8d6fdac8e111bbdf82f1bfb9 (patch)
treed656025c38c19e86cd1d21b11a3a5fa7ce0a3105 /include
parentd4eca0f02cf185623fac28b1f927c07f86ef9f17 (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.h4
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