On Sun, Oct 26, 2003 at 04:13:18AM +0900, ts1 wrote:
I have tried all other differences I could see. READ_MULTI instead of READ_SECTORS, outb_p instead of outb, setting feature (precomp) register to 0xff, checking BSY (and DRDY) bit just before writing command register, etc.. but still unsuccessfull.
Maybe we are missing stupidly minor difference.
A bit of progress..
I ported the old driver to FILO - it worked. Removed the excessive initialization part (besides IDENTIFY) - still worked. Removed ERROR bit checking in status loop - STOPPED WORKING!!
I thought ERROR bit checking (reading status port) acts like a delay, so I added a 400ns delay after pio_set_registers of the new driver. The new driver finally worked.
BUT, it doesn't work in the cold boot case.. It works when once Linux is booted then reboot into FILO.
Maybe I have to re-enable some commands in the initialization procedure. But I've made too many modifications to the new driver, I'm not sure which is really needed.
This thing is tough..