3 #ifndef __COMMONLIB_STORAGE_H__
4 #define __COMMONLIB_STORAGE_H__
11 #define EXT_CSD_GP_SIZE_MULT_GP0 143
12 #define EXT_CSD_GP_SIZE_MULT_GP1 146
13 #define EXT_CSD_GP_SIZE_MULT_GP2 149
14 #define EXT_CSD_GP_SIZE_MULT_GP3 152
15 #define EXT_CSD_PARTITIONING_SUPPORT 160
16 #define EXT_CSD_RPMB_SIZE_MULT 168
17 #define EXT_CSD_ERASE_GROUP_DEF 175
18 #define EXT_CSD_PART_CONF 179
19 #define EXT_CSD_BUS_WIDTH 183
20 #define EXT_CSD_STROBE_SUPPORT 184
21 #define EXT_CSD_HS_TIMING 185
22 #define EXT_CSD_REV 192
23 #define EXT_CSD_CARD_TYPE 196
24 #define EXT_CSD_SEC_CNT 212
25 #define EXT_CSD_HC_WP_GRP_SIZE 221
26 #define EXT_CSD_HC_ERASE_GRP_SIZE 224
27 #define EXT_CSD_BOOT_SIZE_MULT 226
28 #define EXT_CSD_TRIM_MULT 232
34 #define EXT_CSD_CMD_SET_NORMAL (1 << 0)
35 #define EXT_CSD_CMD_SET_SECURE (1 << 1)
36 #define EXT_CSD_CMD_SET_CPSECURE (1 << 2)
38 #define EXT_CSD_CARD_TYPE_26 (1 << 0)
39 #define EXT_CSD_CARD_TYPE_52 (1 << 1)
41 #define EXT_CSD_BUS_WIDTH_1 0
42 #define EXT_CSD_BUS_WIDTH_4 1
43 #define EXT_CSD_BUS_WIDTH_8 2
44 #define EXT_CSD_DDR_BUS_WIDTH_4 5
45 #define EXT_CSD_DDR_BUS_WIDTH_8 6
46 #define EXT_CSD_BUS_WIDTH_STROBE (1<<7)
48 #define EXT_CSD_TIMING_BC 0
49 #define EXT_CSD_TIMING_HS 1
50 #define EXT_CSD_TIMING_HS200 2
51 #define EXT_CSD_TIMING_HS400 3
53 #define EXT_CSD_SIZE 512
56 #define EXT_CSD_PART_ACCESS_MASK 7
59 #define EXT_CSD_PARTITION_ENABLE 1
65 #define MMC_PARTITION_USER 0
66 #define MMC_PARTITION_BOOT_1 1
67 #define MMC_PARTITION_BOOT_2 2
68 #define MMC_PARTITION_RPMB 3
69 #define MMC_PARTITION_GP1 4
70 #define MMC_PARTITION_GP2 5
71 #define MMC_PARTITION_GP3 6
72 #define MMC_PARTITION_GP4 7
77 #define SD_VERSION_SD 0x20000
78 #define SD_VERSION_2 (SD_VERSION_SD | 0x20)
79 #define SD_VERSION_1_0 (SD_VERSION_SD | 0x10)
80 #define SD_VERSION_1_10 (SD_VERSION_SD | 0x1a)
81 #define MMC_VERSION_MMC 0x10000
82 #define MMC_VERSION_UNKNOWN (MMC_VERSION_MMC)
83 #define MMC_VERSION_1_2 (MMC_VERSION_MMC | 0x12)
84 #define MMC_VERSION_1_4 (MMC_VERSION_MMC | 0x14)
85 #define MMC_VERSION_2_2 (MMC_VERSION_MMC | 0x22)
86 #define MMC_VERSION_3 (MMC_VERSION_MMC | 0x30)
87 #define MMC_VERSION_4 (MMC_VERSION_MMC | 0x40)
100 #define OCR_BUSY 0x80000000
101 #define OCR_HCS 0x40000000
102 #define OCR_VOLTAGE_MASK 0x00FFFF80
103 #define OCR_ACCESS_MODE 0x60000000
126 unsigned int partition_number);
131 unsigned int partition_number);
const char * storage_partition_name(struct storage_media *media, unsigned int partition_number)
uint64_t storage_block_erase(struct storage_media *media, uint64_t start, uint64_t count)
int storage_set_partition(struct storage_media *media, unsigned int partition_number)
int storage_setup_media(struct storage_media *media, struct sd_mmc_ctrlr *ctrlr)
unsigned int storage_get_current_partition(struct storage_media *media)
void storage_display_setup(struct storage_media *media)
uint64_t storage_block_write(struct storage_media *media, uint64_t start, uint64_t count, const void *buffer)
uint64_t storage_block_fill_write(struct storage_media *media, uint64_t start, uint64_t count, uint32_t fill_pattern)
uint64_t storage_block_read(struct storage_media *media, uint64_t start, uint64_t count, void *buffer)
u8 buffer[C2P_BUFFER_MAXSIZE]
unsigned long long uint64_t