Share via


MMC Bus Level Functional Tests (Compact 7)

3/12/2014

The Multi-Media Card (MMC) Bus Level Functional Tests (SD 1.1) job tests the following areas of the MMC card:

* Simple Bus Requests-most commands are tested both synchronously and asynchronously.

* Cancel Bus Requests for both partial and misalign read/write tests.

* Simple SDCard Info Query for various registers.

* SD set card feature such as clock rate, bus width, select, deselect, and force reset.

* Misc Tests which includes GetBitSlice, unloading of sdbus.dll, and SDIO bus IOCTL.

* Memory List.

* Feature Fullness.

Test Prerequisites

Your device must meet the following requirements before you run this test.

The following table shows the hardware requirement

Requirement Description

SD Bus

Platform with an SD Bus.

MMC Card

Multi-Media card memory card.

The following table shows the software requirement for this test.

Requirement Description

Tux.exe

Test harness, required to execute the test.

Kato.dll

Logging engine, required for logging test data.

SdMemTux.dll

Library that contains the test cases

sdtst.dll

Test Client Driver.

Subtests

The table below lists the subtests included in this test.

SubTest ID Description

1009

Simple Synchronous Test of CMD7 (SELECT_DESELECT_CARD)

1010

Simple Asynchronous Test of CMD7 (SELECT_DESELECT_CARD)

1011

Simple Synchronous Test of CMD9 (SEND_CSD)

1012

Simple Asynchronous Test of CMD9 (SEND_CSD)

1013

Simple Synchronous Test of CMD10 (SEND_CID)

1014

Simple Asynchronous Test of CMD10 (SEND_CID)

1015

Simple Synchronous Test of CMD12 after write (SD_CMD_STOP_TRANSMISSION)

1016

Simple Asynchronous Test of CMD12 after write (SD_CMD_STOP_TRANSMISSION)

1017

Simple Synchronous Test of CMD12 after read (SD_CMD_STOP_TRANSMISSION)

1018

Simple Asynchronous Test of CMD12 after read (SD_CMD_STOP_TRANSMISSION)

1019

Simple Synchronous Test of CMD13 (SEND_STATUS)

1020

Simple Asynchronous Test of CMD13 (SEND_STATUS)

1023

Simple Synchronous Test of CMD16 (SET_BLOCKLEN)

1024

Simple Asynchronous Test of CMD16 (SET_BLOCKLEN)

1025

Simple Synchronous Test of CMD17 (READ_SINGLE_BLOCK)

1026

Simple Asynchronous Test of CMD17 (READ_SINGLE_BLOCK)

1027

Simple Synchronous Test of CMD18 (READ_MULTIPLE_BLOCK)

1028

Simple Asynchronous Test of CMD18 (READ_MULTIPLE_BLOCK)

1029

Simple Synchronous Test of CMD24 (WRITE_BLOCK)

1030

Simple Asynchronous Test of CMD24 (WRITE_BLOCK)

1031

Simple Synchronous Test of CMD25 (WRITE_MULTIPLE_BLOCK)

1032

Simple Asynchronous Test of CMD25 (WRITE_MULTIPLE_BLOCK)

1041

Simple Synchronous Test of CMD32 (ERASE_WR_BLK_START)

1042

Simple Asynchronous Test of CMD32 (ERASE_WR_BLK_START)

1043

Simple Synchronous Test of CMD33 (ERASE_WR_BLK_END)

1044

Simple Asynchronous Test of CMD33 (ERASE_WR_BLK_END)

1045

Simple Synchronous Test of CMD38 (ERASE)

1046

Simple Asynchronous Test of CMD38 (ERASE)

1055

Simple Synchronous Test of ACMD13 (SD_STATUS)

1056

Simple Asynchronous Test of ACMD13 (SD_STATUS)

1066

Simple Synchronous Test of ACMD51 (SEND_SCR)

1067

Simple Synchronous Test of ACMD51 (SEND_SCR)

1068

Test of SDCancelBusRequest

1201

Read Block Partial Test

1202

Write Block Partial Test

1203

Read Block Misalign Test

1204

Write Block Misalign Test

2002

Simple SDCardInfoQuery test of getting the CID

2003

Simple SDCardInfoQuery test of getting the CSD

2004

Simple SDCardInfoQuery test of getting the RCA

2005

Simple SDCardInfoQuery test of getting the Card Interface

2006

Simple SDCardInfoQuery test of getting the Status Register

2007

Simple SDCardInfoQuery test of getting the Host Interface Caps

2008

Simple SDCardInfoQuery test of getting the Host Block Caps

3001

Simple SDSetCardFeature test of adjusting the clock rate

3002

Simple SDSetCardFeature test of adjusting the bus width

3004

SDSetCardFeature SD_CARD_FORCE_RESET

3005

SDSetCardFeature SD_CARD_DESELECT

3006

SDSetCardFeature SD_CARD_SELECT

4002

GetBitSlice Test

4004

Testing unload of sdbus.dll

4006

SDIO Version 1.1 Bus IOCTLS

5001

Basic Memory List Test

6002

SD/MMC Card Feature Fullness Test

Setting Up the Test

The Windows Embedded Compact platform under test must have an MMC inserted and mounted.

The OS design must also include at minimum:

* SYSGEN_SDBUS=1

* SYSGEN_SDMMC=1

Note:When you are building a new image you need to set the image flag IMGSDBUS2 equal to 1 in order to use the new bus (sdbus2.dll). When IMGSDBUS2 is set to 1, sdbus2.dll is picked up during the makeimg process and is renamed to sdbus.dll in the generated image.

Running the Test

The following table shows the command line parameter for the SD Bus Level Functional Test.

Command line parameter Description

/device <card>

Specifies the Secure Digital card type to test.

/manual

The user must manually insert an SD card to continue, the reason is the host may not be designed to be unloaded and reloadable. If that is the case, client need to manually insert/eject an SD peripheral in order to load the test driver for testing purposes.

/softblock

Soft-Block operations increase performance for large I/O operations on cards that support small block sizes in hardware by reducing the number of driver stack traversals. Soft-Block operations only benefit SDIO cards as multi-block operations are mandatory for all memory cards.

Follow these steps to run this test:

1. Insert the SD memory card into the device's SD slot.

2. Modify the command line if necessary.

3. Run the test. The default command line used is: tux -o -d sdmemtux.dll -c "/device mmc"

Verifying the Test

When the test completes running, verify that 'PASS' appears in the test log for all subtests.

Troubleshooting the Test

* Ensure that the OS design includes the MMC card sysgen(s) necessary to support MMC card.

* If the tests are failing, check to make sure from the Tux test log that the replacement of the default MMC card driver to the test MMC card driver happened successfully. If the driver was not replaced properly, the test may behave unexpectedly.

* You may need to specify the "manual" flag in the command option if the SD host controller on the Windows Embedded Compact device is not designed to be unloadable and reloadable.

For additional platform specific issues, consult the CTK articles on the TechNet wiki.

See Also

Other Resources

Storage Media - Multimedia Card (MMC) Tests