Subject: idesc.c
To: None <port-amiga@NetBSD.ORG>
From: Dimitri Lommers <dlommers@worldonline.nl>
List: port-amiga
Date: 12/10/1997 20:06:16
Hi folks,
Shouldn't the IDE driver have a restriction on the maximum blocks transferred
at a time?
from idesc.c:
-----------------------------------------------
case READ_BIG:
lba = *((long *)(cbuf + 2));
nblks = *((u_short *)(cbuf + 7));
return (ideiread(ide, lba, buf, nblks));
case READ_COMMAND:
lba = *((long *)cbuf) & 0x001fffff;
nblks = *((u_char *)(cbuf + 4));
if (nblks == 0)
nblks = 256;
return (ideiread(ide, lba, buf, nblks));
-----------------------------------------------
Seems like the driver (READ_BIG) accepts a 16 bit sector-count value while
the IDE register is only 8 bits.
I assume higher levels will not take care of this (to give scsi maximum
performance).
The wd driver from the dev/isa directory seems to have such a restriction.
I'm asking this because of problems with my harddisk.
Am I wrong?