From: Richard Kang <turquesa@malgn.com>
To: saeed bishara <saeed.bishara@gmail.com>
Cc: linux-ide@vger.kernel.org, 강태성 <kangts@malgn.com>
Subject: Re: qc timeout on a marvell 88F6282 board
Date: Wed, 06 Jul 2011 15:43:27 +0900 [thread overview]
Message-ID: <4E14040F.9030503@malgn.com> (raw)
In-Reply-To: <CAMAG_efStJsEeZrdf-eSq89aHrji3t5+RYO+arrUYiAQpn7LgQ@mail.gmail.com>
2011-07-05 오후 7:11, saeed bishara 쓴 글:
> On Tue, Jul 5, 2011 at 11:26 AM, Richard Kang<turquesa@malgn.com> wrote:
>>> 2011/6/29 Richard Kang<turquesa@malgn.com>:
>>>> Hello.
>>>>
>>>> I have a sil3132 pci-e card and a DB-88F6282-A-BP(Marvell development
>>>> board based on Arm9).
>>>> I compiled sata_sil24 driver as a module with a cross-compiler.
>>>>
>>>> But, when loading the driver, qc timeout error was occurred during
>>>> ata_read_dev_id.
>>>> What is wrong, IRQ or DMA ?
>>> looks to me this is DMA issue, can you force pio mode? you can do that
>>> by adding "libata.dma=0" to the kernel command line.
>>> saeed
>>>
>>>> I have 2.6.31.8
>> Dear saeed,
>>
>> I excuted libata.dma=0 through "$modprobe libata dma=0"
>> Then I excuted "$modprobe sata_sil24"
>>
>> But, result is same as before.
>> I think sata_sil24 supports only dma not pio, right?
> I don't think so.
> can you check if interrupts working fine?
> you can test that by loading the driver without any connected disk,
> then check if the controller raises any interrupt from
> /proc/interrupts when plugging a disk,
> saeed
>
Dear saeed,
As your instructions, I checked interrupt.
At first, I load a sata_sil24 driver without a disk. (I added the log.)
--------------------------------------------------------------------------------
sil24_init_one: @@@ ENTER
(arch/arm/mm/ioremap.c) __arm_ioremap: phys_addr=e8084000
(arch/arm/mm/ioremap.c) __arm_ioremap_pfn: addr=e0a22000
(arch/arm/mm/ioremap.c) __arm_ioremap: phys_addr=e8080000
(arch/arm/mm/ioremap.c) __arm_ioremap_pfn: addr=e0a28000
ata_host_alloc: ### ENTER: max_ports=2
ata_port_alloc: ENTER
(libata-core.c) ata_link_init
ata_dev_init: (libata-core.c) ENTER
ata_dev_init: (libata-core.c) LEAVE
ata_dev_init: (libata-core.c) ENTER
ata_dev_init: (libata-core.c) LEAVE
ata_port_alloc: LEAVE
ata_port_alloc: ENTER
(libata-core.c) ata_link_init
ata_dev_init: (libata-core.c) ENTER
ata_dev_init: (libata-core.c) LEAVE
ata_dev_init: (libata-core.c) ENTER
ata_dev_init: (libata-core.c) LEAVE
ata_port_alloc: LEAVE
ata_host_alloc: ### LEAVE
sil24_init_one: DMA_MASK_64 rc=0
sil24_init_controller: === ENTER : sil24_init_controller
sil24_init_controller: host_base=e0a22000 HOST_CTRL(0x40)=81000000
sil24_init_controller: === LEAVE: HOST_CTRL=1000003
sil24_init_one: @@@ LEAVE
sil24_port_start: ENTER ap=d1668000 ata4294967295
sil24_port_start: kernel va=ffc08000 cb_dma=11800000
sil24_port_start: LEAVE
__ata_port_freeze: ENTER: ap=d1668000
__ata_port_freeze: LEAVE: ata4294967295 port frozen
sil24_port_start: ENTER ap=d164c000 ata4294967295
sil24_port_start: kernel va=ffc27000 cb_dma=117a0000
sil24_port_start: LEAVE
__ata_port_freeze: ENTER: ap=d164c000
__ata_port_freeze: LEAVE: ata4294967295 port frozen
sil24_interrupt: ***** ENTER: sil24_interrupt
sil24_interrupt: host_base=e0a22000 HOST_IRQ_STAT=0
sil24_interrupt: ***** LEAVE
(libata-core.c) ata_host_register *ENTER*
scsi2 : sata_sil24
scsi3 : sata_sil24
ata1: SATA max UDMA/100 host m128@0xe8084000 port 0xe8080000 irq 10
ata2: SATA max UDMA/100 host m128@0xe8084000 port 0xe8082000 irq 10
(libata-core.c) ata_host_register *LEAVE*
ata_port_schedule_eh: port EH scheduled
ata_scsi_error: ENTER
(libata-eh.c) ata_scsi_error
ata_port_flush_task: ENTER
sil24_error_handler: ENTER
sil24_init_port: +++ ENTER port_base=e0a28000
sil24_init_port: +++ LEAVE
ata_eh_link_autopsy: ENTER
ata_eh_recover: ENTER
ata_dev_init: (libata-core.c) ENTER
ata_dev_init: (libata-core.c) LEAVE
__ata_port_freeze: ENTER: ap=d1668000
__ata_port_freeze: LEAVE: ata1 port frozen
sil24_thaw: ENTER
sil24_thaw: LEAVE: irq_enabled=8d3
ata_eh_thaw_port: ata1 port thawed
ata_std_postreset: ENTER
ata1: SATA link down (SStatus 0 SControl 0)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_eh_recover: EXIT, rc=0
sil24_error_handler: LEAVE
ata_scsi_error: EXIT
ata_port_schedule_eh: port EH scheduled
ata_scsi_error: ENTER
(libata-eh.c) ata_scsi_error
ata_port_flush_task: ENTER
sil24_error_handler: ENTER
sil24_init_port: +++ ENTER port_base=e0a2a000
sil24_init_port: +++ LEAVE
ata_eh_link_autopsy: ENTER
ata_eh_recover: ENTER
ata_dev_init: (libata-core.c) ENTER
ata_dev_init: (libata-core.c) LEAVE
__ata_port_freeze: ENTER: ap=d164c000
__ata_port_freeze: LEAVE: ata2 port frozen
sil24_thaw: ENTER
sil24_thaw: LEAVE: irq_enabled=8d3
ata_eh_thaw_port: ata2 port thawed
ata_std_postreset: ENTER
ata2: SATA link down (SStatus 0 SControl 0)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_eh_recover: EXIT, rc=0
sil24_error_handler: LEAVE
ata_scsi_error: EXIT
--------------------------------------------------------------------------------
It seems no problem.
Then I plug a disk. Followings are debug msg of sil24_interrupt and
contents of /proc/interrupts.
An interrupt is occurred and no error.
--------------------------------------------------------------------------------
sil24_interrupt: ***** ENTER: sil24_interrupt
sil24_interrupt: host_base=e0a22000 HOST_IRQ_STAT=2
(sata_sil24.c) sil24_host_intr
(sata_sil24.c) sil24_host_intr -> sil24_error_intr
ata_port_schedule_eh: port EH scheduled
__ata_port_freeze: ENTER: ap=d164c000
__ata_port_freeze: LEAVE: ata2 port frozen
sil24_interrupt: ***** LEAVE
--------------------------------------------------------------------------------
sh-3.2# cat /proc/interrupts
CPU0
1: 20689 - kw_tick
10: 1 - sata_sil24
11: 2901 - mv_ethernet
19: 0 - ehci_hcd:usb1
21: 0 - mvSata
22: 0 - cesa
28: 2145 - mvsdio
29: 0 - mv64xxx_i2c
33: 242 - serial
Err: 0
--------------------------------------------------------------------------------
I can't find reason of not working. Please advise to me.
Thank you.
next prev parent reply other threads:[~2011-07-06 6:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-29 9:04 qc timeout on a marvell 88F6282 board Richard Kang
2011-07-03 12:52 ` saeed bishara
2011-07-05 8:26 ` Richard Kang
2011-07-05 10:11 ` saeed bishara
2011-07-06 6:43 ` Richard Kang [this message]
2011-07-06 8:07 ` saeed bishara
[not found] ` <CAMAG_edjasMffHA2tozzBEUWf27BPvjF_=fOL_N9oktTyTradQ@mail.gmail.com>
2011-07-07 3:00 ` Richard Kang
2011-07-07 6:36 ` Richard Kang
2011-07-07 6:44 ` saeed bishara
2011-07-10 23:01 ` Richard Kang
2011-07-12 8:19 ` Richard Kang
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=4E14040F.9030503@malgn.com \
--to=turquesa@malgn.com \
--cc=kangts@malgn.com \
--cc=linux-ide@vger.kernel.org \
--cc=saeed.bishara@gmail.com \
/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).