summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386/boot2
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2003-08-22 01:59:28 +0000
committerimp <imp@FreeBSD.org>2003-08-22 01:59:28 +0000
commit9213e54d95c1b3545f3c17cc2131cc8773767532 (patch)
treea697d7edfd791905c97850818a37f6b1c7c4b117 /sys/boot/i386/boot2
parenta6e94af67a04f83f9d55f45e2b486b8caa5e5357 (diff)
downloadFreeBSD-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.S4
-rw-r--r--sys/boot/i386/boot2/boot1.s4
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
OpenPOWER on IntegriCloud