Enable LBA in GXEMUL.
FreeBSD-10's ATA code requires LBA to be used. There's no code in the ATA stack to send CHS commands to the hardware these days. * Enable it by default; * Turn print() into debug() Tested: * MALTA kernel on gxemul.
This commit is contained in:
parent
79ca5c9a9a
commit
9d2b32a021
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=321919
1 changed files with 32 additions and 0 deletions
32
emulators/gxemul/files/patch-aa
Normal file
32
emulators/gxemul/files/patch-aa
Normal file
|
@ -0,0 +1,32 @@
|
|||
--- src/devices/dev_wdc.cc.orig 2013-06-27 18:10:50.000000000 -0700
|
||||
+++ src/devices/dev_wdc.cc 2013-06-27 18:11:13.000000000 -0700
|
||||
@@ -274,12 +274,12 @@
|
||||
+ (int64_t)d->head * d->sectors_per_track[d->drive] +
|
||||
(int64_t)d->heads[d->drive] * d->sectors_per_track[d->drive] * cyl);
|
||||
|
||||
-#if 0
|
||||
+#if 1
|
||||
/* LBA: */
|
||||
if (d->lba)
|
||||
offset = 512 * (((d->head & 0xf) << 24) + (cyl << 8)
|
||||
+ d->sector);
|
||||
- printf("WDC read from offset %lli\n", (long long)offset);
|
||||
+ debug("WDC read from offset %lli\n", (long long)offset);
|
||||
#endif
|
||||
|
||||
while (count > 0) {
|
||||
@@ -320,12 +320,12 @@
|
||||
uint64_t offset = 512 * (d->sector - 1
|
||||
+ (int64_t)d->head * d->sectors_per_track[d->drive] +
|
||||
(int64_t)d->heads[d->drive] * d->sectors_per_track[d->drive] * cyl);
|
||||
-#if 0
|
||||
+#if 1
|
||||
/* LBA: */
|
||||
if (d->lba)
|
||||
offset = 512 * (((d->head & 0xf) << 24) +
|
||||
(cyl << 8) + d->sector);
|
||||
- printf("WDC write to offset %lli\n", (long long)offset);
|
||||
+ debug("WDC write to offset %lli\n", (long long)offset);
|
||||
#endif
|
||||
|
||||
d->write_in_progress = d->cur_command;
|
Loading…
Reference in a new issue