Andrei Warkentin | 371a689 | 2011-04-11 18:10:25 -0500 | [diff] [blame] | 1 | SD and MMC Block Device Attributes |
| 2 | ================================== |
| 3 | |
| 4 | These attributes are defined for the block devices associated with the |
| 5 | SD or MMC device. |
| 6 | |
| 7 | The following attributes are read/write. |
| 8 | |
| 9 | force_ro Enforce read-only access even if write protect switch is off. |
| 10 | |
Adrian Hunter | dfe86cb | 2010-08-11 14:17:46 -0700 | [diff] [blame] | 11 | SD and MMC Device Attributes |
| 12 | ============================ |
| 13 | |
| 14 | All attributes are read-only. |
| 15 | |
| 16 | cid Card Identifaction Register |
| 17 | csd Card Specific Data Register |
| 18 | scr SD Card Configuration Register (SD only) |
| 19 | date Manufacturing Date (from CID Register) |
| 20 | fwrev Firmware/Product Revision (from CID Register) (SD and MMCv1 only) |
| 21 | hwrev Hardware/Product Revision (from CID Register) (SD and MMCv1 only) |
| 22 | manfid Manufacturer ID (from CID Register) |
| 23 | name Product Name (from CID Register) |
| 24 | oemid OEM/Application ID (from CID Register) |
| 25 | serial Product Serial Number (from CID Register) |
| 26 | erase_size Erase group size |
| 27 | preferred_erase_size Preferred erase size |
| 28 | |
| 29 | Note on Erase Size and Preferred Erase Size: |
| 30 | |
| 31 | "erase_size" is the minimum size, in bytes, of an erase |
| 32 | operation. For MMC, "erase_size" is the erase group size |
| 33 | reported by the card. Note that "erase_size" does not apply |
| 34 | to trim or secure trim operations where the minimum size is |
| 35 | always one 512 byte sector. For SD, "erase_size" is 512 |
| 36 | if the card is block-addressed, 0 otherwise. |
| 37 | |
| 38 | SD/MMC cards can erase an arbitrarily large area up to and |
| 39 | including the whole card. When erasing a large area it may |
| 40 | be desirable to do it in smaller chunks for three reasons: |
| 41 | 1. A single erase command will make all other I/O on |
| 42 | the card wait. This is not a problem if the whole card |
| 43 | is being erased, but erasing one partition will make |
| 44 | I/O for another partition on the same card wait for the |
| 45 | duration of the erase - which could be a several |
| 46 | minutes. |
| 47 | 2. To be able to inform the user of erase progress. |
| 48 | 3. The erase timeout becomes too large to be very |
| 49 | useful. Because the erase timeout contains a margin |
| 50 | which is multiplied by the size of the erase area, |
| 51 | the value can end up being several minutes for large |
| 52 | areas. |
| 53 | |
| 54 | "erase_size" is not the most efficient unit to erase |
| 55 | (especially for SD where it is just one sector), |
| 56 | hence "preferred_erase_size" provides a good chunk |
| 57 | size for erasing large areas. |
| 58 | |
| 59 | For MMC, "preferred_erase_size" is the high-capacity |
| 60 | erase size if a card specifies one, otherwise it is |
| 61 | based on the capacity of the card. |
| 62 | |
| 63 | For SD, "preferred_erase_size" is the allocation unit |
| 64 | size specified by the card. |
| 65 | |
| 66 | "preferred_erase_size" is in bytes. |