kernel cant access SATA adapter device
Hi,
I've got a SATA adapter for a SD card in a Dell Poweredge R610. The BIOS can see and boot the sdcard, (to Windows, or using syslinux/extlinux), but when it hands over control to the Linux kernel, the kernel cannot access it.
Here's an excerpt from dmesg:
scsi 0:0:2:0: Direct-Access ATA FC-1307 SD to CF 1.1 PQ: 0 ANSI: 5
sd 0:0:2:0: Attached scsi generic sg3 type 0
mptsas: ioc0: mptsas_free_fw_event: kfree (fw_event=0xffff8801ab1ad8c0) sd 0:0:2:0: [sdc] Spinning up disk .....................not responding... sd 0:0:2:0: [sdc] READ CAPACITY(16) failed
sd 0:0:2:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:2:0: [sdc] Sense Key : Not Ready [current]
sd 0:0:2:0: [sdc] Add. Sense: Logical unit not ready, initializing command required sd 0:0:2:0: [sdc] READ CAPACITY failed
sd 0:0:2:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:2:0: [sdc] Sense Key : Not Ready [current]
sd 0:0:2:0: [sdc] Add. Sense: Logical unit not ready, initializing command required sd 0:0:2:0: [sdc] Test WP failed, assume Write Enabled
sd 0:0:2:0: [sdc] Asking for cache data failed
sd 0:0:2:0: [sdc] Assuming drive cache: write through
After booting and running 'sdparm --command=start /dev/sdc' I can get a read capacity to work, but cannot access the drive (e.g. fdisk -l /dev/sdc).
If I put the SD card in a USB adapter, it works, and I was able to access the SD card via the SD adapter in another machine. But our production machines are dell's, so I really want to get it working there.
I've attached more complete debug info from booting and existing CentOS 6.4 install with the card installed, and a rdsosreport from an attempt to boot Fedora 20 Alpha.
Any help or suggestions greatly appreciated.
Robert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division
What is the version of mptsas driver?
It seems that the mptsas's driver can't recognize the the type of SD card and treat it as normal hard disk drive.
Quoted 47 lines · Robert Story
Hi,
I've got a SATA adapter for a SD card in a Dell Poweredge R610. The BIOS can see and boot the sdcard, (to Windows, or using syslinux/extlinux), but when it hands over control to the Linux kernel, the kernel cannot access it.
Here's an excerpt from dmesg:
scsi 0:0:2:0: Direct-Access ATA FC-1307 SD to CF 1.1 PQ: 0 ANSI: 5
sd 0:0:2:0: Attached scsi generic sg3 type 0
mptsas: ioc0:mptsas_free_fw_event: kfree (fw_event=0xffff8801ab1ad8c0) sd 0:0:2:0: [sdc] Spinning up disk .....................not responding... sd 0:0:2:0: [sdc] READ CAPACITY(16) failed
sd 0:0:2:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:2:0: [sdc] Sense Key : Not Ready [current]
sd 0:0:2:0: [sdc] Add. Sense: Logical unit not ready, initializing command required sd 0:0:2:0: [sdc] READ CAPACITY failed
sd 0:0:2:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:2:0: [sdc] Sense Key : Not Ready [current]
sd 0:0:2:0: [sdc] Add. Sense: Logical unit not ready, initializing command required sd 0:0:2:0: [sdc] Test WP failed, assume Write Enabled
sd 0:0:2:0: [sdc] Asking for cache data failed
sd 0:0:2:0: [sdc] Assuming drive cache: write throughAfter booting and running 'sdparm --command=start
/dev/sdc' I can get a read capacity to work, but cannot access the drive (e.g. fdisk -l/dev/sdc).If I put the SD card in a USB adapter, it works, and I was able to access the SD card via the SD adapter in another machine. But our production machines are dell's, so I really want to get it working there.
I've attached more complete debug info from booting and existing CentOS 6.4 install with the card installed, and a rdsosreport from an attempt to boot Fedora 20 Alpha.
Any help or suggestions greatly appreciated.
Robert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division --
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 17 Oct 2013 23:59:24 +0800 taco wrote:
T> What is the version of mptsas driver?
modinfo mptsas reports verion 3.04.20. Kernel is 2.6.32-358 (RHEL 6.3).
T> It seems that the mptsas's driver can't recognize the the type of SD T> card and treat it as normal hard disk drive.
Ok. So how would I figure out what mptsas is looking at to determine how to treat it? Or is there some kernel param I can pass that says sda=sdcard or soemthing?
Robert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division
reproduce the problem with more debug messages with the bellow command:
$ echo 0x2FFFF > /sys/modules/mptsas/mpt_debug_level
and attach it here
Quoted 18 lines · Robert Story
On Thu, 17 Oct 2013 23:59:24 +0800 taco wrote:
T> What is the version of mptsas driver?modinfo mptsas reports verion 3.04.20. Kernel is 2.6.32-358 (RHEL 6.3).
T> It seems that the mptsas's driver can't recognize the the type of SD T> card and treat it as normal hard disk drive.
Ok. So how would I figure out what mptsas is looking at to determine how to treat it? Or is there some kernel param I can pass that says sda=sdcard or soemthing?
Robert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division
On Fri, 18 Oct 2013 22:37:45 +0800 taco wrote:
T>
T> reproduce the problem with more debug messages with the bellow T> command:
T>
T> $ echo 0x2FFFF > /sys/modules/mptsas/mpt_debug_level T>
T> and attach it here
The dmesg buffer wrapped, and it was close to 500k. That's a bit big for sending to the whole list, so I put it and the syslog output on my webserver:
http://futz.org/users/linux-scsi/mpt.messages
http://futz.org/users/linux-scsi/mpt.dmesg
Robert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division
Sense key [02 04 02] means LOGICAL UNIT NOT READY, INITIALIZING COMMAND REQUIRED
it works on windows but not on linux?
Quoted 22 lines · Robert Story
On Fri, 18 Oct 2013 22:37:45 +0800 taco wrote:
T>
T> reproduce the problem with more debug messages with the bellow T> command:
T>
T> $ echo0x2FFFF>/sys/modules/mptsas/mpt_debug_levelT>
T> and attach it hereThe dmesg buffer wrapped, and it was close to 500k. That's a bit big for sending to the whole list, so I put it and the syslog output on my webserver:
http://futz.org/users/linux-scsi/mpt.messages
http://futz.org/users/linux-scsi/mpt.dmesgRobert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division
On Thu, 24 Oct 2013 00:09:17 +0800 taco wrote:
T> Sense key [02 04 02] means LOGICAL UNIT NOT READY, INITIALIZING COMMAND T> REQUIRED
T>
T> it works on windows but not on linux?
Yes, according to my coworker, Windows Embedded boots fine. And the system boots via the card, with syslinux loading the kernel/initrd from the card, so I don't know why it wouldn't be ready.
As I mentioned before, 'sdparm --command=capacity /dev/sda' initially fails, but will succeed after 'sdparm --command=start /dev/sda'. However, even though capacity works after the start command, attempts to access the card continue to fail (e.g fdisk -l /dev/sda).
Robert
--
Senior Software Engineer
Parsons Government Services , National Security & Defense Division