MMC CardReader

Today I’m finished with the MMC CardReader connection. I used an MicroSD + Slot from an old bricked mobile phone.

The driver is the old MMC driver form SF.

I used the GPIO E Port not the GPIO A, because I found out that there is a Portsharing between NAND Flash and GPIO E, but I have no NAND Flash connected to the box, so I could use it.

The first step was to change the ICFG Register 14 from LOW to HIGH by relocating the Resistor R163 to R161 witch is Connected to the TRSWPIN PIN 57.

At next I found a Bug in the Datasheet 0.95, at page 64 is the Register mapping of GPIO E and the NAND Pins, these mappings are incorrect I found out after hours of testing and code changes. The best way was to check witch pin is witch bit, was to stop the Chip in the BIOS and used the following commands by holding pin for pin to ground.

D 0xBD010140 1 # Dumps the Data Register
EB 0xBD010144 0xFF 1 # Sets the direction to output
EB 0xBD010140 0xFF 1 # Sets the internal pullup

After that I know where the pins are.

As a special feature I connected also the Media Detection Switch of the SD Slot to the register, so I can check on mounting the driver , if there is a SD Card present.

Here are some pictures of the development mounting.


I’ve modified the boot flash file so it only provides the basics. It will check and load the SD Card if present. Then the Card will be mounted and some Init scripts will be run direct from the Card. So that I don’t have to change the flash file anymore, everything can be done from the SD Card.

Here are some pictures from the finished board. I mounted the Slot direct on the Board, at the free space near the RF_Antenna.