After seeing this post, I decided to have a look at using the SD card on my WP7104 and dev board.
I booted the device and inserted a SD card. There didn’t seem to be any events at the tail of dmesg, although I did find a number of mmc0 error messages earlier in dmesg that indicated the mmc module was present but couldn’t find a card in the socket.
After rebooting the WP71 with the card in the socket, no error messages! Using dmesg | grep mmc (output dmesg and search through output for lines containing mmc) gives:
mmc0: mci-version: 18
mmc0: bam physical base=0x12182000
mmc0: bam virtual base=0xd0094000
mmc0: BAM device registered. bam_handle=0xce95ae00
mmc0: Qualcomm MSM SDCC-BAM at 0x0000000012182000 irq 130
mmc0: Qualcomm MSM SDCC-DML at 0x0000000012180800
mmc0: No card detect facilities available
mmc0: Qualcomm MSM SDCC-core at 0x0000000012180000 irq 136,0 dma -1 dmacrcri -1
mmc0: 8 bit data mode disabled
mmc0: 4 bit data mode enabled
mmc0: polling status mode disabled
mmc0: MMC clock 400000 -> 48000000 Hz, PCLK 0 Hz
mmc0: Slot eject status = 0
mmc0: Power save feature enable = 1
mmc0: SPS-BAM data transfer mode available
However, there doesn’t appear to be a device node ‘mmcblk’, ‘mmc’ or even ‘sda’ which is where I would expect the card contents to be available at. But the mmc block device IS present in /proc/devices - which is where the kernel enumerates all the devices it knows about. There is also some info available in /sys/class/mmc_host.
But the kernel does not seem to be exposing the actual devices to the rest of the system. I even tried making the block device nodes in /dev (mmcblk0[179,0] and mmcblk0p1 [179,1]) manually using mknod but still couldn’t mount the device.
Any thoughts about where the kernel is exposing the MMC/SD cards and what devices (major and minor numbers) are required to mount the card?