MMC/SD Card Simulation
Many consumer devices are using SD-Cards for mass storage. For this reason
softgun can emulate SD Cards. Because the SD Card specification
costs money only the documentation of some Card Manufacturers like Toshiba and
SanDisk was used. In many cases the MMC documentation can be used.
Simulated cards
- CSD Version 1.0 cards with blocksize of 512 Bytes up to 1 GB
- CSD Version 1.0 cards with blocksize up to 2048 Bytes with up to 4 GB
- CSD Version 2.0 cards with up to 2 TB (The standard artificially limits
the size to 32 GB)
List of cards
SD-Card : 0x01 "PA" " Panasonic16M" bl 512 sz 14909440 Class(0) CCC 135
SD-Card : 0x03 "SD" " Sandisk32M" bl 512 sz 30605312 Class(0) CCC 135
SD-Card : 0x03 "SD" " Canon32M" bl 512 sz 30605312 Class(0) CCC 1f5
SD-Card : 0x02 "TM" " Toshiba32M" bl 512 sz 30605312 Class(0) CCC 135
SD-Card : 0x02 "TM" " Toshiba64M" bl 512 sz 61997056 Class(0) CCC 135
MMC-Card : 0x01 " " " ExtremeMemory128M" bl 512 sz 128450560 Class(0) CCC 0ff
SD-Card : 0x06 "RK" " UnlabeledSD128M" bl 512 sz 127401984 Class(0) CCC 5f5
SD-Card : 0x31 "SP" " SiliconPower128M" bl 512 sz 127139840 Class(0) CCC 5b5
SD-Card : 0x18 "IN" " Kingston128M" bl 512 sz 125698048 Class(0) CCC 175
SD-Card : 0x06 "RK" " Fuji128M" bl 512 sz 126091264 Class(0) CCC 5f5
SD-Card : 0x18 "IN" " Ultron256M" bl 512 sz 253362176 Class(0) CCC 135
SD-Card : 0x02 "TM" " Verbatim256M" bl 512 sz 255066112 Class(0) CCC 1b5
SD-Card : 0x06 "RK" " Fuji256M" bl 512 sz 254279680 Class(0) CCC 5b5
SD-Card : 0x01 "PA" " Kingston256M" bl 512 sz 250085376 Class(0) CCC 135
SD-Card : 0x11 "D " " PNY256M" bl 512 sz 255852544 Class(0) CCC 5f5
SD-Card : 0x02 "TM" " White256M" bl 512 sz 258211840 Class(0) CCC 1b5
SD-Card : 0x27 "PH" " ExtermeMemory512M" bl 512 sz 509083648 Class(0) CCC 5f5
SD-Card : 0x02 "TM" " Unlabeled512M" bl 512 sz 517734400 Class(0) CCC 1b5
SD-Card : 0x02 "TM" " PNY512M" bl 512 sz 512229376 Class(0) CCC 1b5
SD-Card : 0x02 "TM" " Kingston512M" bl 512 sz 512229376 Class(0) CCC 1b5
SD-Card : 0x06 "RK" " Fuji512M" bl 512 sz 502005760 Class(0) CCC 5f5
SD-Card : 0x27 " " " Kingston1G.bad" bl 512 sz 1018167296 Class(0) CCC 175
SD-Card : 0x1f "SK" " Kingston1G" bl 512 sz 1021575168 Class(0) CCC 5f5
SD-Card : 0x01 "PA" " Kingston1G_2" bl 512 sz 990904320 Class(0) CCC 135
SD-Card : 0x1d "AD" " Corsair1G" bl 512 sz 1023934464 Class(0) CCC 5f5
SD-Card : 0x02 "TM" " Toshiba1G" bl 512 sz 1030225920 Class(0) CCC 5b5
SD-Card : 0x1b "SM" " TranscendMini1G" bl 512 sz 1004535808 Class(0) CCC 5f5
SD-Card : 0x03 "SD" " SandiskMicro1G" bl 512 sz 1015808000 Class(2) CCC 5f5
SD-Card : 0x1b "SM" " X2G" bl 1024 sz 2007498752 Class(0) CCC 5f5
SD-Card : 0x30 "PR" " Platinum4G_1" bl 2048 sz 3963617280 Class(0) CCC 5f5
SD-Card : 0x19 "DY" " Platinum4G_2" bl 2048 sz 4006608896 Class(0) CCC 5f5
SD-Card : 0x1c "SV" " Transcend4GB" bl 2048 sz 4116709376 Class(0) CCC 5f5
SD-Card : 0x27 "PH" " CNMemory4GB" bl 2048 sz 4114612224 Class(0) CCC 5f5
SDHC-Card: 0x1d "AD" " Corsair4G_HC" bl 512 sz 4062707712 Class(2) CCC 5b5
SDHC-Card: 0x02 "TM" " Toshiba4G_HC" bl 512 sz 4026531840 Class(4) CCC 5b5
SDHC-Card: 0x1c "SV" " Transcend4G_HC" bl 512 sz 4062707712 Class(6) CCC 5b5
SDHC-Card: 0x41 "42" " Kingston4G_HC" bl 512 sz 4089446400 Class(4) CCC 5b5
SDHC-Card: 0x1c "SV" " Transcend8G_HC" bl 512 sz 8092385280 Class(2) CCC 5b5
SDHC-Card: 0x27 "PH" " Hama8G_HC" bl 512 sz 8195670016 Class(2) CCC 5b5
SDHC-Card: 0x1d "AD" " Adata8G_HC" bl 512 sz 8092385280 Class(2) CCC 5b5
The types auto_sd and auto_mmc are special types which require an existing diskimage. softgun will
create a SD/MMC card which matches the size of the diskimage in this case.
Simulator bugs / Missing features
- Secure commands are missing because they are secret and I only know their name
- The bugs of the bad Kingston card are not emulated
- The CRC calculation is missing
- The timing of Command responses is determined by the host controller instead of the card. Only the Read timing is done by the Card.
- Writing and reading flash requires no time. Only the clock rate on the bus determines the speed.