mmc_test : some results
Subsystems (2)
Hi Pierre,
Here are the results of a mmc_test run played on at91_mci after applying this patch series :
http://lkml.org/lkml/2008/5/30/201
I skipped some of the tests just to concentrate on those ones.
Can you tell me if the test is correct : are the errors reported for the xfer_size tests the normal behavior (I assume yes because a failure is simulated) ?
~ # echo 1 > /sys/class/mmc_host/mmc0/mmc0\:e624/test
mmc0: Starting tests of card mmc0:e624...
mmc0: Test case 1. Basic write (no data verification)...
mmc0: Result: OK
mmc0: Test case 2. Basic read (no data verification)...
mmc0: Result: OK
mmc0: Test case 3. Basic write (with data verification)...
mmc0: Result: OK
mmc0: Test case 4. Basic read (with data verification)...
mmc0: Result: OK
mmc0: Test case 5. Multi-block write...
mmc0: Result: OK
mmc0: Test case 6. Multi-block read...
mmc0: Result: OK
mmc0: Test case 7. Correct xfer_size at write (start failure)...
mmc0: Result: ERROR (-84)
mmc0: Test case 8. Correct xfer_size at read (start failure)...
mmc0: Result: ERROR (-110)
mmc0: Test case 9. Correct xfer_size at write (midway failure)...
mmc0: Result: ERROR (-84)
mmc0: Test case 10. Correct xfer_size at read (midway failure)...
mmc0: Result: ERROR (-110)
mmc0: Tests completed.
~ #
Thanks, regards,
Signature · 1 line
Nicolas Ferre
Hi Nicolas,
Could you please be kind enough to share the test program so that we can test mmc driver on other platforms.
i have a customized arm9 versatile board with mmci controller and
would like to test the same
TIA,
Regards
Gururaja
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Nicolas Ferre
Sent: Friday, June 06, 2008 8:31 AM
To: Pierre Ossman; ARM Linux Mailing List; Linux Kernel list
Subject: mmc_test : some results
Hi Pierre,
Here are the results of a mmc_test run played on at91_mci after applying this patch series :
http://lkml.org/lkml/2008/5/30/201
I skipped some of the tests just to concentrate on those ones.
Can you tell me if the test is correct : are the errors reported for the xfer_size tests the normal behavior (I assume yes because a failure is simulated) ?
~ # echo 1 > /sys/class/mmc_host/mmc0/mmc0\:e624/test
mmc0: Starting tests of card mmc0:e624...
mmc0: Test case 1. Basic write (no data verification)...
mmc0: Result: OK
mmc0: Test case 2. Basic read (no data verification)...
mmc0: Result: OK
mmc0: Test case 3. Basic write (with data verification)...
mmc0: Result: OK
mmc0: Test case 4. Basic read (with data verification)...
mmc0: Result: OK
mmc0: Test case 5. Multi-block write...
mmc0: Result: OK
mmc0: Test case 6. Multi-block read...
mmc0: Result: OK
mmc0: Test case 7. Correct xfer_size at write (start failure)...
mmc0: Result: ERROR (-84)
mmc0: Test case 8. Correct xfer_size at read (start failure)...
mmc0: Result: ERROR (-110)
mmc0: Test case 9. Correct xfer_size at write (midway failure)...
mmc0: Result: ERROR (-84)
mmc0: Test case 10. Correct xfer_size at read (midway failure)...
mmc0: Result: ERROR (-110)
mmc0: Tests completed.
~ #
Thanks, regards,
--
Nicolas Ferre
-------------------------------------------------------------------
List admin:
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
Gururaja Hebbar K R :
Quoted 4 lines
Hi Nicolas,
Could you please be kind enough to share the test program so that we can test mmc driver on other platforms.
mmc_test is included in the mainline kernel :
http://lkml.org/lkml/2008/5/17/45
I just selected the tests I wanted to use in the source code (in mmc_test_cases tab).
Cheers,
Signature · 1 line
Nicolas Ferre
Quoted 11 lines · On Fri, 06 Jun 2008 17:31:15 +0200 Nicolas Ferre <[email protected]>…
Hi Pierre,
Here are the results of a
mmc_testrun played onat91_mciafter applying this patch series :
http://lkml.org/lkml/2008/5/30/201I skipped some of the tests just to concentrate on those ones.
Can you tell me if the test is correct : are the errors reported for the
xfer_sizetests the normal behavior (I assume yes because a failure is simulated) ?
No. You're supposed to get an OK there as well. Basically it tests that the driver doesn't report some unexpected error (-ETIMEDOUT is the desired one) or overreports the number of written bytes.
Quoted 2 lines
~ # echo 1 > /sys/class/mmc_host/mmc0/mmc0\:e624/test
FYI, I've added some changes that will make that invocation only run test 1. Do echo "" for all tests in the future.
Rgds
Pierre
PATCH 1/1 at91_mci: manage cmd error and data error independently
In at91_mci_completed_command() function, this patch distinguishes command error and data error. It reports it in the corresponding error field.
---
Related to this thread :
Pierre Ossman :
Quoted 9 lines
Quoted 5 lines · On Fri, 06 Jun 2008 17:31:15 +0200 Nicolas Ferre <[email protected]>…
Hi Pierre,
Here are the results of a
mmc_testrun played onat91_mciafter applying this patch series :
http://lkml.org/lkml/2008/5/30/201
Quoted 9 lines
Quoted 4 lines
I skipped some of the tests just to concentrate on those ones.
Can you tell me if the test is correct : are the errors reported for the
xfer_sizetests the normal behavior (I assume yes because a failure is simulated) ?No. You're supposed to get an OK there as well. Basically it tests that the driver doesn't report some unexpected error (
-ETIMEDOUTis the desired one) or overreports the number of written bytes.
Ok, so here is the first correction of the driver reporting the proper values in read.
It goes on top of this series :
http://lkml.org/lkml/2008/5/30/201
drivers/mmc/host/at91_mci.c | 28 ++++++++++++++++++++--------
1 files changed, 20 insertions(+), 8 deletions(-)
drivers/mmc/host/at91_mci.c +0 -0
@@ -663,6 +664,7 @@ static void at91_mci_process_next(struct at91mci_host *host)
static void at91_mci_completed_command(struct at91mci_host *host, unsigned int status)
{
struct mmc_command *cmd = host->cmd;+ struct mmc_data *data = cmd->data;
at91_mci_write(host, AT91_MCI_IDR, 0xffffffff & ~(AT91_MCI_SDIOIRQA | AT91_MCI_SDIOIRQB));
@@ -685,15 +687,25 @@ static void at91_mci_completed_command(struct at91mci_host *host, unsigned int s
cmd->error = 0;
}
else {- if (status & (AT91_MCI_RTOE | AT91_MCI_DTOE))
- cmd->error = -ETIMEDOUT;
- else if (status & (AT91_MCI_RCRCE | AT91_MCI_DCRCE))
- cmd->error = -EILSEQ;
- else
- cmd->error = -EIO;
+ if (status & (AT91_MCI_DTOE | AT91_MCI_DCRCE)) {
+ if (data) {
+ if (status & AT91_MCI_DTOE)
+ data->error = -ETIMEDOUT;
+ else if (status & AT91_MCI_DCRCE)
+ data->error = -EILSEQ;
+ }
+ } else {
+ if (status & AT91_MCI_RTOE)
+ cmd->error = -ETIMEDOUT;
+ else if (status & AT91_MCI_RCRCE)
+ cmd->error = -EILSEQ;
+ else
+ cmd->error = -EIO;
+ }
- pr_debug("Error detected and set to %d (cmd = %d, retries = %d)\n",
- cmd->error, cmd->opcode, cmd->retries);
+ pr_debug("Error detected and set to %d/%d (cmd = %d, retries = %d)\n",
+ cmd->error, data ? data->error : 0,
+ cmd->opcode, cmd->retries); } } else
Signature · 1 line
1.5.3.7