diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/boot/edd.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/boot/edd.c b/arch/x86/boot/edd.c index bd138e442ec2..b3504cb24de7 100644 --- a/arch/x86/boot/edd.c +++ b/arch/x86/boot/edd.c | |||
@@ -129,6 +129,7 @@ void query_edd(void) | |||
129 | char eddarg[8]; | 129 | char eddarg[8]; |
130 | int do_mbr = 1; | 130 | int do_mbr = 1; |
131 | int do_edd = 1; | 131 | int do_edd = 1; |
132 | int be_quiet; | ||
132 | int devno; | 133 | int devno; |
133 | struct edd_info ei, *edp; | 134 | struct edd_info ei, *edp; |
134 | u32 *mbrptr; | 135 | u32 *mbrptr; |
@@ -140,12 +141,21 @@ void query_edd(void) | |||
140 | do_edd = 0; | 141 | do_edd = 0; |
141 | } | 142 | } |
142 | 143 | ||
144 | be_quiet = cmdline_find_option_bool("quiet"); | ||
145 | |||
143 | edp = boot_params.eddbuf; | 146 | edp = boot_params.eddbuf; |
144 | mbrptr = boot_params.edd_mbr_sig_buffer; | 147 | mbrptr = boot_params.edd_mbr_sig_buffer; |
145 | 148 | ||
146 | if (!do_edd) | 149 | if (!do_edd) |
147 | return; | 150 | return; |
148 | 151 | ||
152 | /* Bugs in OnBoard or AddOnCards Bios may hang the EDD probe, | ||
153 | * so give a hint if this happens. | ||
154 | */ | ||
155 | |||
156 | if (!be_quiet) | ||
157 | printf("Probing EDD..."); | ||
158 | |||
149 | for (devno = 0x80; devno < 0x80+EDD_MBR_SIG_MAX; devno++) { | 159 | for (devno = 0x80; devno < 0x80+EDD_MBR_SIG_MAX; devno++) { |
150 | /* | 160 | /* |
151 | * Scan the BIOS-supported hard disks and query EDD | 161 | * Scan the BIOS-supported hard disks and query EDD |
@@ -162,6 +172,9 @@ void query_edd(void) | |||
162 | if (do_mbr && !read_mbr_sig(devno, &ei, mbrptr++)) | 172 | if (do_mbr && !read_mbr_sig(devno, &ei, mbrptr++)) |
163 | boot_params.edd_mbr_sig_buf_entries = devno-0x80+1; | 173 | boot_params.edd_mbr_sig_buf_entries = devno-0x80+1; |
164 | } | 174 | } |
175 | |||
176 | if (!be_quiet) | ||
177 | printf("OK\n"); | ||
165 | } | 178 | } |
166 | 179 | ||
167 | #endif | 180 | #endif |