[syslinux] [PATCH 9/9] Workaround for a buggy get info BIOS
H. Peter Anvin
hpa at zytor.com
Wed Oct 3 08:54:11 PDT 2012
Details on the affected machine?
Frediano Ziglio <frediano.ziglio at citrix.com> wrote:
>This issue drive parameters only one time to avoid to have disk read
>failure.
>This happened just on a specific machine, probably the BIOS is buggy
>but
>the fix didn't have any regression.
>
>Signed-off-by: Frediano Ziglio <frediano.ziglio at citrix.com>
>---
> core/adv.inc | 35 ++++++++++++++++++-----------------
> 1 files changed, 18 insertions(+), 17 deletions(-)
>
>diff --git a/core/adv.inc b/core/adv.inc
>index a714800..ab29fde 100644
>--- a/core/adv.inc
>+++ b/core/adv.inc
>@@ -351,6 +351,23 @@ adv_read_write:
> jne .noedd
> test cl,1
> jz .noedd
>+
>+ push 512
>+ sub sp, 14h
>+ push 0
>+ push 1ah
>+ mov si,sp
>+ mov ah,48h ; EDD get drive parameters
>+ mov dl,[ADVDrive]
>+ push ds
>+ push ss
>+ pop ds
>+ int 13h
>+ pop ds
>+ add sp,18h
>+ pop ax
>+ mov [ADVSsz], ax
>+
> mov si,.ebios
> .noedd:
>
>@@ -375,23 +392,6 @@ adv_read_write:
>
> extern xfer_buf_seg
> .ebios:
>- pusha
>- sub sp,1ch
>- push 1eh
>- mov si,sp
>- mov ah,48h ; EDD get drive parameters
>- mov dl,[ADVDrive]
>- push ds
>- push ss
>- pop ds
>- mov word [si+18h], 512
>- int 13h
>- mov ax, [si+18h]
>- pop ds
>- mov [ADVSsz], ax
>- add sp,1eh
>- popa
>-
> mov cx,adv_retries
> .eb_retry:
> ; Form DAPA on stack
>@@ -450,6 +450,7 @@ adv_read_write:
> ; copy it back
> pusha
> push ds
>+ cld
> mov si, di
> mov di, bx
> push xfer_buf_seg
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
More information about the Syslinux
mailing list