AR6000 driver failed on probe stage

Ivan Petrov ivan_p at
Tue Apr 7 17:08:51 CEST 2009

Dear Dongas,

I was have similar problem at start of driver port to AT91SAM9260, problem 
was in SDIO_IRQ suport for my CPU in 4wire mode.
First, try turn off MMC_CAP_SDIO_IRQ in you MMC host controller. In this 
case IRQ state will request every 10ms. Posible it help you.

> - mmc->caps = MMC_CAP_SDIO_IRQ;
> + mmc->caps = 0; // MMC_CAP_SDIO_IRQ;

Regards, Ivan

----- Original Message ----- 
From: "dongas" <dongas86 at>
To: <openmoko-kernel at>
Sent: Tuesday, April 07, 2009 4:46 PM
Subject: Re: AR6000 driver failed on probe stage

2009/3/28 dongas <dongas86 at>:
> After digging into the code, i found that in bmiBufferSend function in 
> bmi.c,
> the driver will try to repeatly read the COUNT_DEC register of the
> card  until the register value read back is Non-zero and then the 
> following
> steps can go on.
> But the value returned from register was alway zero , so ar6000 driver
> hanged there and keeped doing almost the infinit loop
> reading&checking.
> Why the driver can not read a non-zero value from COUNT_DEC register
> as it wanted?

After debugging i found that the ar6000 driver failed when it was
trying to read target version via BMI request of ar6000 in the routine
BMIGetTargetInfo because it was unable to get a BMI command credit(by
reading CONUTER_DEC register) for the next BMI request according to
the BMI flow control.
I think if the target(ar6000) initialized successful before after the
host enabled it, the target should have initially provided one command
credit to host according to the datasheet, but it hadn’t. (if wrong
pls correct me )
(The target is enabled by the CMD52 to write to ENABLE BIT of CCCR
register of card.
Once the target is enabled, it executes firmware that initializes SoC
and software states.)
So the driver repeatly tried to get this command credit and hanged there.
I went through some ar6001 related specs/documents, but still havn't
got the key of this issue that why the target failed to provided one
command credit to after it was enabled by host?

I guess the target failed to initailize itself or worked inproperly
but don't know which reason might cause it failed.
Now only one thing i can make sure is that wifi card is on I/O Ready
state after host enables it by checing CCCR register.

Any ideas about this issue?



More information about the openmoko-kernel mailing list