diff options
author | imp <imp@FreeBSD.org> | 2003-08-22 01:59:28 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2003-08-22 01:59:28 +0000 |
commit | 9213e54d95c1b3545f3c17cc2131cc8773767532 (patch) | |
tree | a697d7edfd791905c97850818a37f6b1c7c4b117 /sys/boot/i386/boot2 | |
parent | a6e94af67a04f83f9d55f45e2b486b8caa5e5357 (diff) | |
download | FreeBSD-src-9213e54d95c1b3545f3c17cc2131cc8773767532.zip FreeBSD-src-9213e54d95c1b3545f3c17cc2131cc8773767532.tar.gz |
Many newer CF do not handle having the entire track read from them at
boot time. Instead, read it a sector at a time. While this sounds
like a significant slowdown, I've not been able to measure any
signficant difference.
Submitted by: luigi
Reviewed by: jhb, sam (both a while ago)
MFC After: 3 days
Diffstat (limited to 'sys/boot/i386/boot2')
-rw-r--r-- | sys/boot/i386/boot2/boot1.S | 4 | ||||
-rw-r--r-- | sys/boot/i386/boot2/boot1.s | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/boot/i386/boot2/boot1.S b/sys/boot/i386/boot2/boot1.S index e6cdab0..f7d9df6 100644 --- a/sys/boot/i386/boot2/boot1.S +++ b/sys/boot/i386/boot2/boot1.S @@ -299,7 +299,11 @@ read: push %dx // Save mov 0x2(%bp),%ah // Blocks to read cmpb %ah,%al // To read jb read.2 // this +#ifdef TRACK_AT_A_TIME movb %ah,%al // track +#else + movb $1,%al // one sector +#endif read.2: mov $0x5,%di // Try count read.3: les 0x4(%bp),%bx // Transfer buffer push %ax // Save diff --git a/sys/boot/i386/boot2/boot1.s b/sys/boot/i386/boot2/boot1.s index e6cdab0..f7d9df6 100644 --- a/sys/boot/i386/boot2/boot1.s +++ b/sys/boot/i386/boot2/boot1.s @@ -299,7 +299,11 @@ read: push %dx // Save mov 0x2(%bp),%ah // Blocks to read cmpb %ah,%al // To read jb read.2 // this +#ifdef TRACK_AT_A_TIME movb %ah,%al // track +#else + movb $1,%al // one sector +#endif read.2: mov $0x5,%di // Try count read.3: les 0x4(%bp),%bx // Transfer buffer push %ax // Save |