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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.