Port-amiga archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

idesc.c



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?




Home | Main Index | Thread Index | Old Index