mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-29 17:32:43 +00:00
The INT 1B BIOS call is used to obtain geometries of SASI/IDE hard
drives. Some IDE cards don't set propler information into BIOS work are and their sector size were always recognized as 256 bytes/sector. Pointed out by: jagarl@creator.club.ne.jp
This commit is contained in:
parent
8507c35e67
commit
8b6a5e91bb
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=65271
@ -178,8 +178,22 @@ sasi_loop:
|
||||
testb %al, %dl
|
||||
jz no_sasi_unit
|
||||
movb $0x80, %dh
|
||||
addb %ah, %dh
|
||||
movb %dh, daua(%si)
|
||||
addb %ah, %dh # %dh = DA/UA
|
||||
movb %dh, daua(%si) # Store DA/UA
|
||||
|
||||
# Try new sense command
|
||||
push %ax
|
||||
push %cx
|
||||
movb %dh, %al
|
||||
movb $0x84, %ah
|
||||
int $0x1b
|
||||
pop %cx
|
||||
pop %ax
|
||||
jc err_newsense
|
||||
movw %bx, %dx
|
||||
jmp found_sasi_unit
|
||||
|
||||
err_newsense:
|
||||
movw $0x457, %bx # capacity & sector size of IDE HDD
|
||||
call read_biosparam
|
||||
orb %ah, %ah
|
||||
|
Loading…
Reference in New Issue
Block a user