block sizes dont seem to matter, tried from 512 bytes to 64K in the adaptec case. i also get no errors in /dev/kprint. just read() returns Eio. i have no knowledge of IDE or SATA interfaces, so i'm a little bit lost in the code. :-( the chipset specific IDE code in linux seens to set mostly some timing related control registers, but doesnt change the logic how error conditions are handled as far as i can see. maybe it does by switching some important quirk flags but its not obvious to me. i would like to raise the debug level of sdata.c, just set any bit and got flooded with messages. so it would be great if you could hint me on some interesting debug cases where to look. many thanks so far for the quick responses! :-) cinap