linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: jbagg@lenbrook.com (Jonathan Bagg)
To: linux-arm-kernel@lists.infradead.org
Subject: imx6 sata cdrom driver issue
Date: Mon, 4 May 2015 17:03:35 -0400	[thread overview]
Message-ID: <5547DEA7.8080009@lenbrook.com> (raw)
In-Reply-To: <3757889.IHh7sEV0GH@wuerfel>

On 15-05-04 02:37 PM, Arnd Bergmann wrote:
> On Friday 01 May 2015 11:32:49 Jonathan Bagg wrote:
>> On 15-04-24 03:58 AM, Arnd Bergmann wrote:
>>> On Thursday 23 April 2015 11:30:37 Jonathan Bagg wrote:
>>>
>>> Do you have two SATA ports on one controller, with the other one being
>>> conneced to a disk drive?
>> Not when this error happened, but the CD-ROM was connected through a
>> port multiplier.  One time I noticed sda device appear so I mounted it
>> and it was the CD-ROM filesystem!
> Very strange, I'm sure something went wrong there and either the SATA
> host or the CDROM driver does not work well with a port multiplier.
>
> Is there a way for you to reproduce the problem without the multiplier?
>
>>> My best guess is that something in the error handling of
>>> drivers/ata/ahci_imx.c causes a reset of the entire bus and that
>>> triggers the other bugs. Can you instrument that error handling to
>>> see what's going on?
>>>
>> Also tried a cubox
>> <https://www.solid-run.com/products/cubox-i-mini-computer/>, (imx6)
>> running  Linux OpenELEC 3.14.18 #1 SMP Sun Sep 14 12:22:14 EDT 2014
>> armv7l GNU/Linux
> Can you find out if there is a port multiplier in that machine?
I've tried with and without a multiplier.  I have a port multiplier on a 
development board that I can connect between the CDROM and Sabre SATA 
port or connect the CDROM directly to the Sabre SATA port .
> Does it list the sda device in /proc/partitions, or just the /dev/sr0?
sda is only listed in /proc/partitions if I connect up a HDD.  The issue 
where the CDROM filesystem mounting as sda1 has never reproduced.

I've also discovered, and it is 100% reproducible, that with the HDD and 
CDROM connected using the port multiplier, the kernel never lists the 
partition on the HDD.  If I connect the HDD directly to the Sabre or 
connect the HDD to the Sabre using the multiplier without the CDROM, 
/dev/sda1 will exist.
>
>> Most of the time mount /dev/sr0 /tmp/test succeeds with....
>>
>> [  954.355669] ISO 9660 Extensions: Microsoft Joliet Level 3
>> [  954.530595] ISOFS: changing to secondary root
>>
>> one time once it succeed but needed to reset the link....
>>
>> [ 1272.000951] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
>> frozen
>> [ 1272.000969] ata1.00: failed command: IDENTIFY PACKET DEVICE
>> [ 1272.000993] ata1.00: cmd a1/00:01:00:00:00/00:00:00:00:00/00 tag 2
>> pio 512 in
>> [ 1272.000993]          res 40/00:03:00:16:00/00:00:00:00:00/a0 Emask
>> 0x4 (timeout)
>> [ 1272.001004] ata1.00: status: { DRDY }
>> [ 1272.001021] ata1: hard resetting link
>> [ 1272.487628] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
>> [ 1272.495523] ata1.00: configured for UDMA/100
>> [ 1272.500917] ata1: EH complete
>> [ 1290.746222] ISO 9660 Extensions: Microsoft Joliet Level 3
>>
>> rarely if fails with this....
>>
>> [  724.697232] ISO 9660 Extensions: Microsoft Joliet Level 3
>> [  724.827435] ISOFS: changing to secondary root
>> [  724.910232] isofs_fill_super: root inode is not a directory.
>> Corrupted media?
>> [  725.133516] UDF-fs: warning (device sr0): udf_fill_super: No
>> partition found (2)
>> [  725.351106] F2FS-fs (sr0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
>> [  725.351132] F2FS-fs (sr0): Can't find valid F2FS filesystem in 1th
>> superblock
>> [  725.352029] F2FS-fs (sr0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
>> [  725.352052] F2FS-fs (sr0): Can't find valid F2FS filesystem in 2th
>> superblock
>>
>>
>> Specifying read only (mount -o ro /dev/sr0 /tmp/test) has worked 100% of
>> the time on both the cubox and sabre boards.
> Interesting. That would indicate that something actually tries to write
> to the device on normal mount.  Can you try if
>
> mount -t iso9660 /dev/sr0 /tmp/test
>
> avoids that problem as well? That file system should never attempt to write
> to the device, so if it's the failed write that causes the host reset,
> that should solve it too.
With the CDROM connected directly to the imx6 Sabre board (no 
multiplier), very rarely (~1 in 40) I would get...

mount -t iso9660 /dev/sr0 /tmp/test
mount: mounting /dev/sr0 on /tmp/test failed: Invalid argument

-- 
Jonathan Bagg
Embedded Systems Developer
NAD Electronics | Lenbrook Industries Limited
633 Granite Court, Pickering, Ontario, Canada L1W 3K1 | 905-831-0799 ext 4478 | http://www.nadelectronics.com

  reply	other threads:[~2015-05-04 21:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-23 15:30 imx6 sata cdrom driver issue Jonathan Bagg
2015-04-24  7:58 ` Arnd Bergmann
2015-05-04 16:15   ` Jonathan Bagg
     [not found]   ` <55439CA1.4030601@lenbrook.com>
2015-05-04 18:37     ` Arnd Bergmann
2015-05-04 21:03       ` Jonathan Bagg [this message]
2015-05-05 10:48         ` Arnd Bergmann
2015-05-08 19:45           ` Jonathan Bagg
2015-05-19 19:13   ` Jonathan Bagg
2015-05-19 19:18     ` Kevin Groeneveld
2015-05-28 19:16       ` Fabio Estevam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5547DEA7.8080009@lenbrook.com \
    --to=jbagg@lenbrook.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).