Current-Users archive

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

wd0: IDENTIFY failed



Hi! all,


The OMSAL400(evbmips) has a internal storage(CF).
It was not able to mount wd0 on and after August 2, 2012.  The following
errors can be seen. 


  wdc0 at pcmcia0 function 0: <TRANSCEND, TS512MCF80>
  wdc0: i/o mapped mode

  <..snip..>

  atabus0 at wdc0 channel 0
  wd0 at atabus0 drive 0
  wd0: <TRANSCEND>
  wd0: 488 MB, 993 cyl, 16 head, 63 sec, 512 bytes/sect x 1000944 sectors

  <..snip..>

  root device: wd0
  dump device (default wd0b): 
  file system (default generic): 
  root on wd0a dumps on wd0b

  <..snip..>

  wd0: IDENTIFY failed
  wd0: IDENTIFY failed
  vfs_mountroot: can't open root device
  cannot mount root, error = 5
  root device (default wd0a): 


I retry with ATADEBUG.

  atabus0 at wdc0 channel 0
  wdc0:0: before reset, st0=0x58, st1=0xb0
  wdc0:0:0: after reset, sc=0x1 sn=0x1 cl=0x0 ch=0x0
  wdc0:0:1: after reset, sc=0x0 sn=0x0 cl=0x0 ch=0x0
  wdc0:0: wdcwait_reset() end, st0=0x50 st1=0x0
  wdc0:0: after reset, ret_value=0x1
  wdc0:0:0: after reset, sc=0x1 sn=0x1 cl=0x0 ch=0x0
  wdc0:0: wait DRDY st0 0x50 st1 0x0
  ata_get_params
  wdc_exec_command wdc0:0:0
  ata_exec_xfer 0x87d00f88 channel 0 drive 0
  atastart from ata_exec_xfer, flags 0x100
  atastart: xfer 0x87d00f88 channel 0 drive 0
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  wdccommand wdc0:0:0: command=0xec cylin=0 head=160 sector=0 count=0 features=0
  __wdccommand_intr wdc0:0:0
  __wdcwait wdc0:0
  __wdccommand_done wdc0:0:0 flags 0x59
  atabusattach: ch_drive_type 0x1 0x0
  wd0 at atabus0 drive 0wdattach
  
  ata_get_params
  wdc_exec_command wdc0:0:0
  ata_exec_xfer 0x87d00f88 channel 0 drive 0
  atastart from ata_exec_xfer, flags 0x0
  atastart: xfer 0x87d00f88 channel 0 drive 0
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  wdccommand wdc0:0:0: command=0xec cylin=0 head=160 sector=0 count=0 features=0
  wdcintr
  __wdccommand_intr wdc0:0:0
  __wdcwait wdc0:0
  __wdccommand_done wdc0:0:0 flags 0x49
  wd0: <TRANSCEND>
  wd0: 488 MB, 993 cyl, 16 head, 63 sec, 512 bytes/sect x 1000944 sectors
  wd0: atap_dmatiming_mimi=0, atap_dmatiming_recom=0
  ata_get_params
  wdc_exec_command wdc0:0:0
  ata_exec_xfer 0x87d00f88 channel 0 drive 0
  atastart from ata_exec_xfer, flags 0x0
  atastart: xfer 0x87d00f88 channel 0 drive 0
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  wdccommand wdc0:0:0: command=0xec cylin=0 head=160 sector=0 count=0 features=0
  wdcintr
  __wdccommand_intr wdc0:0:0
  __wdcwait wdc0:0
  __wdccommand_done wdc0:0:0 flags 0x49
  ata_get_params
  wdc_exec_command wdc0:0:0
  ata_exec_xfer 0x87d00f88 channel 0 drive 0
  atastart from ata_exec_xfer, flags 0x0
  atastart: xfer 0x87d00f88 channel 0 drive 0
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  wdccommand wdc0:0:0: command=0xec cylin=0 head=160 sector=0 count=0 features=0
  wdcintr
  __wdccommand_intr wdc0:0:0
  __wdcwait wdc0:0
  __wdccommand_done wdc0:0:0 flags 0x49

  <..snip..>

  root on wd0a dumps on wd0b
  wdsize
  wdopen
  ata_get_params
  wdc_exec_command wdc0:0:0
  ata_exec_xfer 0x87d00f88 channel 0 drive 0
  atastart from ata_exec_xfer, flags 0x0
  atastart: xfer 0x87d00f88 channel 0 drive 0
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  __wdcwait: timeout (time=11), status 58 error 0 (mask 0x48 bits 0x40)
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  __wdcwait: timeout (time=11), status 58 error 0 (mask 0x48 bits 0x40)
  __wdcwait wdc0:0
  __wdcwait: timeout (time=11), status 58 error 0 (mask 0x48 bits 0x40)

  : (repeat x300 last 2-lines) 

  __wdccommand_done wdc0:0:0 flags 0x109
  ata_get_parms: ata_c.flags=0x129
  wd0: IDENTIFY failed
  wdopen
  ata_get_params
  wdc_exec_command wdc0:0:0
  ata_exec_xfer 0x87d00f88 channel 0 drive 0
  atastart from ata_exec_xfer, flags 0x0
  atastart: xfer 0x87d00f88 channel 0 drive 0
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  __wdcwait: timeout (time=11), status 58 error 0 (mask 0x48 bits 0x40)
  __wdccommand_start wdc0:0:0
  __wdcwait wdc0:0
  __wdcwait: timeout (time=11), status 58 error 0 (mask 0x48 bits 0x40)

  : (repeat x300 last 2-lines) 

  __wdccommand_done wdc0:0:0 flags 0x109
  ata_get_parms: ata_c.flags=0x129
  wd0: IDENTIFY failed
  vfs_mountroot: can't open root device
  cannot mount root, error = 5


hmm...
My OMSAL400 is wrong? or ata and wd?
I avoid this problem with following change.  This lines added at 20120802.
Please help anyone.  X-<

Index: ata/wd.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ata/wd.c,v
retrieving revision 1.400
diff -u -r1.400 wd.c
--- ata/wd.c    31 Jul 2012 15:50:34 -0000      1.400
+++ ata/wd.c    4 Nov 2012 05:22:18 -0000
@@ -1772,8 +1772,10 @@
        case CMD_AGAIN:
                return 1;
        case CMD_ERR:
+#ifndef evbmips
                if (wd->drvp->drive_type != ATA_DRIVET_OLD)
                        return 1;
+#endif
                /*
                 * We `know' there's a drive here; just assume it's old.
                 * This geometry is only used to read the MBR and print a


Thanks,
--
kiyohara


Home | Main Index | Thread Index | Old Index