HPM SDK
HPMicro Software Development Kit
hpm_sdmmc_emmc.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 #ifndef HPM_SDMMC_EMMC_H
8 #define HPM_SDMMC_EMMC_H
9 
19 #include "hpm_sdmmc_common.h"
20 #include "hpm_sdmmc_card.h"
21 #include "hpm_sdmmc_port.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 typedef enum {
33 
34 typedef union {
35  struct {
36  uint8_t cmd_set;
37  uint8_t value;
38  uint8_t index;
39  uint8_t access;
40  };
41  uint32_t argument;
43 
44 
45 #define EMMC_EXT_CSD_INDEX_CMD_SET (191)
46 #define EMMC_EXT_CSD_INDEX_POWER_CLASS (187)
47 #define EMMC_EXT_CSD_INDEX_HS_TIMING (185)
48 #define EMMC_EXT_CSD_INDEX_BUS_WDITH (183)
49 #define EMMC_EXT_CSD_INDEX_PARTITION_CONFIG (179)
50 #define EMMC_EXT_CSD_INDEX_BOOT_CONFIG_PROT (178)
51 #define EMMC_EXT_CSD_INDEX_BOOT_BUS_CONDITIONS (177)
52 #define EMMC_EXT_CSD_INDEX_ERASE_GROUP_DEF (175)
53 #define EMMC_EXT_CSD_INDEX_BOOT_WP (173)
54 #define EMMC_EXT_CSD_INDEX_USER_WP (171)
55 #define EMMC_EXT_CSD_INDEX_FW_CONFIG (169)
56 #define EMMC_EXT_CSD_INDEX_WR_REL_SET (167)
57 #define EMMC_EXT_CSD_INDEX_SANITIZE_START (165)
58 #define EMMC_EXT_CSD_INDEX_BKOPS_START (164)
59 #define EMMC_EXT_CSD_INDEX_BKOPS_EN (163)
60 #define EMMC_EXT_CSD_INDEX_RSTn_FUNCTION (162)
61 #define EMMC_EXT_CSD_INDEX_HPI_MGMT (161)
62 #define EMMC_EXT_CSD_INDEX_PARTITIONS_ATTRIBUTE (156)
63 #define EMMC_EXT_CSD_INDEX_PARTITION_SETTING_COMPLETED (155)
64 #define EMMC_EXT_CSD_INDEX_SEC_BAD_BLK_MGMNT (134)
65 #define EMMC_EXT_CSD_INDEX_PRODUCTION_STATE_AWARENESS (133)
66 #define EMMC_EXT_CSD_INDEX_PERIODIC_WAKEUP (131)
67 #define EMMC_EXT_CSD_INDEX_USE_NATIVE_SECTOR (62)
68 #define EMMC_EXT_CSD_INDEX_CLASS_6_CTRL (59)
69 
70 #define EMMC_EXT_CSD_INDEX_POWER_OFF_NOTIFICATION (34)
71 #define EMMC_EXT_CSD_INDEX_CACHE_CTRL (33)
72 #define EMMC_EXT_CSD_INDEX_FLUSH_CACHE (32)
73 #define EMMC_EXT_CSD_INDEX_BARRIER_CTRL (31)
74 #define EMMC_EXT_CSD_INDEX_MODE_CONFIG (30)
75 #define EMMC_EXT_CSD_INDEX_PRODUCT_STATE_AWARENESS_ENABLEMENT (17)
76 #define EMMC_EXT_CSD_INDEX_SECURE_REMOVAL_TYPE (16)
77 #define EMMC_EXT_CSD_INDEX_CMDQ_MODE_EN (15)
78 
79 typedef union {
80  struct {
81  uint32_t : 7;
82  uint32_t voltage_170_195: 1;
83  uint32_t voltage_200_260: 7;
84  uint32_t voltage_270_360: 9;
85  uint32_t : 5;
86  uint32_t access_mode: 2;
87  uint32_t powerup_status: 1;
88  };
89  uint32_t ocr_word;
90 } emmc_ocr_t;
91 
92 typedef union {
93  struct {
94  uint8_t reserved;
95  uint8_t mdt;
96  uint8_t psn[4];
97  uint8_t prv;
98  uint8_t pnm[6];
99  uint8_t oid;
100  struct {
101  uint8_t cbx: 2;
102  uint8_t bin: 6;
103  };
104  uint8_t mid;
105  };
106  uint32_t cid_words[4];
107 } emmc_cid_t;
108 
109 typedef union {
110  struct {
111  uint32_t: 5;
112  uint32_t app_cmd: 1;
113  uint32_t exception_event: 1;
114  uint32_t switch_error: 1;
115  uint32_t ready_for_data: 1;
116  uint32_t current_state: 4;
117  uint32_t erase_reset: 1;
118  uint32_t : 1;
119  uint32_t wp_erase_skip: 1;
120  uint32_t cid_or_csd_overwrite: 1;
121  uint32_t : 2;
122  uint32_t error: 1;
123  uint32_t cc_error: 1;
124  uint32_t device_ecc_failed: 1;
125  uint32_t illegal_command: 1;
126  uint32_t com_crc_err: 1;
127  uint32_t lock_unlock_failed: 1;
128  uint32_t device_is_locked: 1;
129  uint32_t wp_violation: 1;
130  uint32_t erase_param: 1;
131  uint32_t erase_seq_error: 1;
132  uint32_t block_len_error: 1;
133  uint32_t address_error: 1;
134  uint32_t out_of_range: 1;
135  };
136  uint32_t card_status;
138 
139 typedef enum {
149 
150 typedef enum {
160 
161 typedef enum vdd_current_min_def {
171 
172 typedef enum vdd_current_max_def {
182 
183 typedef enum {
189 
190 typedef struct {
191  uint8_t csd_structure;
192  uint8_t spec_version;
193  uint16_t nsac_cycles;
194  uint32_t taac_ns;
206  uint8_t file_format;
207 
214  uint8_t ecc_type;
215 
216 
217  uint32_t sector_size;
222  uint32_t max_freq;
224 
225 } emmc_csd_t;
226 
227 typedef union {
228  uint8_t device_type;
229  struct {
238  };
240 
241 #pragma pack(1)
242 
243 typedef struct {
244  /*
245  * Mode segment
246  */
247  uint8_t reserved0[15];
251  uint8_t max_pre_loading_data_size[4];
252  uint8_t pre_loading_data_size[4];
253  uint8_t ffu_status;
254  uint8_t reserved1[2];
256  uint8_t mode_config;
257  uint8_t barrier_control;
258  uint8_t flush_cache;
259  uint8_t cache_control;
263  uint8_t context_config[15];
264  uint8_t extended_partitions_attribute[2];
265  uint8_t exception_events_status[2];
266  uint8_t exception_events_control[2];
267  uint8_t dyncap_needed;
273  uint8_t vendor_specific_field[64];
274  uint8_t reserved02[2];
276  uint8_t periodic_wakeup;
277  uint8_t tcase_support;
280  uint8_t reserved03;
282  uint8_t enhanced_user_data_area_size[3];
283  uint8_t general_purpose_partition_size[4][3];
286  uint8_t max_enh_size_mult[3];
289  uint8_t hpi_management;
290  uint8_t bkops_en;
291  uint8_t bkops_start;
292  uint8_t sanitize_start;
295  uint8_t rpmb_size;
296  uint8_t fw_config;
297  uint8_t reserved04;
298  /* bit0 - US_PWR_WP_EN, bit2 - US_PERM_WP_EN, bit3 - US_PWR_WP_DIS, bit4 - US_PERM_WP_DIS
299  * bit6 - CD_PERM_WP_DIS, bit7 - PERM_PSWD_DIS
300  */
301  uint8_t user_wp;
302  uint8_t reserved05;
303  /* bit0 - B_PWR_WP_EN, bit1 - B_PWR_WP_SEC_SEL, bit2 - B_PERM_WP_EN, bit3 - B_PERM_WP_SEC_SEL
304  * bit4 - B_PERM_WP_DIS, bit6 - B_PWR_WP_DIS, bit7 - B_SEC_WP_SEL
305  *
306  */
307  uint8_t boot_wp;
308  uint8_t boot_wp_status;
309  uint8_t erase_group_def;
310  uint8_t reserved06;
311  /* bit[1:0] BOOT_BUS_WIDTH
312  * 0 - x1 SDR or x4 DDR in boot operation mode, 1 - X4 (SDR/DDR) bus width in boot operation mode
313  * 2 - x8 (SDR/DDR) bus width in boot operation mode
314  * bit2 RESET_BOOT_BUS_CONDITIONS
315  * 0 - Reset bus width to x1
316  * 1 - Retain BOOT_BUS_WIDTH and BOOT_MODE values after boot operation
317  * bit[4:3] BOOT_MODE
318  * 0 - SDR @ normal speed timing, 1 - SDR @ High Speed timing, 2 - DDR
319  *
320  */
322  /* bit0 - PWR_BOOT_CONFIG_PROT
323  * bit4 - PERM_BOOT_CONFIG_PROT
324  */
326  /* bit[2:0] PARTITION_ACCESS
327  * 0 - No access to boot partition, 1 - R/W boot partition 1, 2 - R/W boot partition 2
328  * 3 - R/W RPMB, 4 - Access to General Purpose partition 1, 5 - Access to General Purpose partition 2
329  * 6 - Access to General Purpose partition 3, 7 - Access to General partition 4
330  * bit[5:3] BOOT_PARTITION_ENABLE
331  * 0 - Device not boot enabled, 1 - Boot partition 1 enabled for boot, 2 - boot partition 2 enabled for boot
332  * 7 - User area enabled for boot
333  * bit[6] BOOT_ACK
334  */
336  uint8_t reserved07;
338  uint8_t reserved08;
339  /* bit[3:0] bus mode selection: 0-1bit data bus, 1 - 4bit data bus, 2 - 8bit data bus,
340  * 5- 4bit data bus @DDR mode, 6 - 8bit data bus @DDR mode
341  * bit7 Enhanced Strobe
342  */
343  uint8_t bus_width;
344  uint8_t strobe_support;
345  /* bit[3:0] timing interface: 0 - normal, 1 - high speed, 2 - HS200, 3 - HS400
346  * bit[7:4] selected driver strength
347  */
348  uint8_t hs_timing;
349  uint8_t reserved09;
350  uint8_t power_class;
351  uint8_t reserved10;
353  uint8_t reserved11;
354  uint8_t cmd_set;
355  /*
356  * Properties Segment
357  */
358  uint8_t ext_csd_rev;
359  uint8_t reserved12;
360  uint8_t csd_structure;
361  uint8_t reserved13;
362  /*
363  * bit0 - HS @ 26MHz, bit1 - HS @ 52MHz, bit2 - HS DDR @52MHz, 1.8V or 3V
364  * bit3 - HS DDR @ 52Mhz, 12.V, bit4 - HS200 SDR @200MHz, 1.8V, bit5 - HS200 SDR @200MHz, 1.2V
365  * bit6 - HS400 DDR @ 1.8V, bit7 - HS400 DDR @ 1.2V
366  */
367  uint8_t device_type;
368  uint8_t driver_strength;
371  uint8_t pwr_cl_52_195;
372  uint8_t pwr_cl_26_195;
373  uint8_t pwr_cl_52_360;
374  uint8_t pwr_cl_26_360;
375  uint8_t reserved14;
376  uint8_t min_perf_r_4_26;
380  uint8_t min_perf_r_8_52;
381  uint8_t min_perf_w_8_52;
382  uint8_t secure_wp_info;
383  uint32_t sector_count;
389  /* 512KB * high_capacity_erase_unit_size * high_capacity_write_protect_group_size */
391  uint8_t reliable_write_sector_count; /* !< [222] shall be set to 1 */
394  uint8_t access_size;
396  uint8_t reserved15;
397  uint8_t boot_info;
401  uint8_t trim_mult;
402  uint8_t reserved16;
405  uint8_t pwr_cl_200_130;
406  uint8_t pwr_cl_200_195;
412  uint8_t bkops_status;
415  uint32_t cache_size;
417  uint8_t firmware_version[8];
418  uint8_t device_version[2];
422  uint8_t pre_eol_info;
425  uint8_t vendor_proprietary_health_report[32];
427  uint8_t reserved17;
428  uint8_t cmdq_depth;
429  uint8_t cmdq_support;
430  uint8_t reserved18[177];
431  uint8_t barrier_support;
432  uint8_t ffu_arg[4];
434  uint8_t ffu_features;
435  uint8_t supported_modes;
437  uint8_t large_unit_size;
440  uint8_t tag_unit_size;
444  uint8_t bkops_support;
445  uint8_t hpi_features;
448  uint8_t reserved19[6];
451 
452 #pragma pack()
453 
454 typedef enum _emmc_partition {
460 
461 typedef enum _emmc_hs_timing {
468 
469 typedef enum {
487 
488 typedef enum {
506 
507 typedef union {
511 
512 typedef enum {
520 
521 typedef enum {
525 
526 typedef struct {
530  uint8_t reserved;
531 } boot_info_t;
532 
533 typedef struct {
539 
540 typedef enum {
546 
547 typedef enum {
557 
558 typedef enum {
561 
562 typedef struct {
572 
573 typedef struct {
577 
580 
584 
585  uint32_t gp_partition_size[4];
586 
587  uint32_t super_page_size;
591  uint32_t sector_count;
592  uint32_t sector_size;
593 
594  uint32_t large_unit_size;
598 
603  uint32_t trim_timeout_ms;
606 
615 
621 
622 typedef struct _sdmmc_emmc {
623  sdmmc_host_t *host;
624  uint16_t relative_addr;
625  emmc_cid_t cid;
626  emmc_ocr_t ocr;
627  emmc_csd_t csd;
628  emmc_ext_csd_t ext_csd;
629 
630  emmc_device_attribute_t device_attribute;
631 
632  sdmmc_operation_voltage_t operation_voltage;
633  emmc_card_status_t current_r1_status;
634  emmc_partition_t current_partition;
635  emmc_hs_timing_t current_hs_timing;
636  emmc_bus_mode_t current_bus_mode;
637  emmc_power_class_t current_power_class;
638  emmc_boot_setting_t boot_setting;
639  bool is_host_ready;
640  bool is_byte_addressing_mode;
642 
643 typedef enum {
648 
649 typedef enum {
654 
655 typedef enum {
661 
662 typedef enum {
672 
673 typedef struct {
678 
679 
680 
689 
697 void emmc_deinit(emmc_card_t *card);
698 
707 
716 
725 
734 hpm_stat_t emmc_select_card(const emmc_card_t *card, bool is_selected);
735 
745 
755 hpm_stat_t emmc_switch_function(const emmc_card_t *card, emmc_switch_cmd_arg_t arg, uint32_t timeout_us);
756 
766 
775 
784 hpm_stat_t emmc_program_csd(emmc_card_t *card, const uint32_t *raw_csd);
785 
796 hpm_stat_t emmc_read_blocks(emmc_card_t *card, uint8_t *buffer, uint32_t start_block, uint32_t block_count);
797 
808 hpm_stat_t emmc_write_blocks(emmc_card_t *card, const uint8_t *buffer, uint32_t start_block, uint32_t block_count);
809 
820 hpm_stat_t emmc_erase_blocks(emmc_card_t *card, uint32_t start_block, uint32_t block_count, emmc_erase_option_t option);
821 
830 
839 
840 
841 #ifdef __cplusplus
842 }
843 #endif
844 
849 #endif /* HPM_SDMMC_EMMC_H */
uint32_t hpm_stat_t
Definition: hpm_common.h:126
hpm_stat_t emmc_probe_device(emmc_card_t *card)
Probe eMMC device.
Definition: hpm_sdmmc_emmc.c:589
hpm_stat_t emmc_select_card(const emmc_card_t *card, bool is_selected)
Select eMMC device.
Definition: hpm_sdmmc_emmc.c:817
enum vdd_current_min_def vdd_current_min_t
struct _sdmmc_emmc emmc_card_t
emmc_idle_option_t
Definition: hpm_sdmmc_emmc.h:643
sdmmc_operation_voltage_t
Definition: hpm_sdmmc_common.h:53
emmc_csd_file_format_t
Definition: hpm_sdmmc_emmc.h:183
emmc_boot_partition_mode_t
Definition: hpm_sdmmc_emmc.h:540
vdd_current_min_def
Definition: hpm_sdmmc_emmc.h:161
hpm_stat_t emmc_erase_blocks(emmc_card_t *card, uint32_t start_block, uint32_t block_count, emmc_erase_option_t option)
Erase eMMC Blocks.
Definition: hpm_sdmmc_emmc.c:968
emmc_bus_mode_t
Definition: hpm_sdmmc_emmc.h:512
enum vdd_current_max_def vdd_current_max_t
enum _emmc_hs_timing emmc_hs_timing_t
emmc_erase_option_t
Definition: hpm_sdmmc_emmc.h:649
emmc_csd_vdd_current_max_t
Definition: hpm_sdmmc_emmc.h:150
emmc_power_class_3v6_t
Definition: hpm_sdmmc_emmc.h:469
hpm_stat_t emmc_program_csd(emmc_card_t *card, const uint32_t *raw_csd)
Program CSD register.
hpm_stat_t emmc_init(emmc_card_t *card)
Initialize eMMC device, include both host and the device.
Definition: hpm_sdmmc_emmc.c:554
emmc_boot_mode_t
Definition: hpm_sdmmc_emmc.h:558
emmc_boot_partition_enable_option_t
Definition: hpm_sdmmc_emmc.h:655
emmc_csd_vdd_current_min_t
Definition: hpm_sdmmc_emmc.h:139
void emmc_deinit(emmc_card_t *card)
De-Initialize eMMC device.
Definition: hpm_sdmmc_emmc.c:581
vdd_current_max_def
Definition: hpm_sdmmc_emmc.h:172
hpm_stat_t emmc_exit_sleep_mode(const emmc_card_t *card)
Switch eMMC device into standby mode.
Definition: hpm_sdmmc_emmc.c:1162
hpm_stat_t emmc_enter_sleep_mode(const emmc_card_t *card)
Switch eMMC device into sleep mode.
Definition: hpm_sdmmc_emmc.c:1140
hpm_stat_t emmc_write_blocks(emmc_card_t *card, const uint8_t *buffer, uint32_t start_block, uint32_t block_count)
Write eMMC blocks.
Definition: hpm_sdmmc_emmc.c:890
enum _emmc_partition emmc_partition_t
emmc_write_protection_mode_t
Definition: hpm_sdmmc_emmc.h:521
hpm_stat_t emmc_go_idle(emmc_card_t *card, emmc_idle_option_t option)
Go to Idle mode.
hpm_stat_t emmc_configure_partition(const emmc_card_t *card, emmc_config_partition_option_t option)
Configure eMMC Partition.
Definition: hpm_sdmmc_emmc.c:1081
hpm_stat_t emmc_switch_function(const emmc_card_t *card, emmc_switch_cmd_arg_t arg, uint32_t timeout_us)
Switch eMMC function.
Definition: hpm_sdmmc_emmc.c:1061
hpm_stat_t emmc_send_cid(emmc_card_t *card)
Request eMMC device to send CID to Host.
Definition: hpm_sdmmc_emmc.c:398
hpm_stat_t emmc_read_blocks(emmc_card_t *card, uint8_t *buffer, uint32_t start_block, uint32_t block_count)
Read eMMC blocks.
Definition: hpm_sdmmc_emmc.c:823
emmc_partition_access_option_t
Definition: hpm_sdmmc_emmc.h:662
hpm_stat_t emmc_enable_high_density_erase_group(emmc_card_t *card, bool enable)
Enable High Density Erase group.
emmc_power_class_1v95_t
Definition: hpm_sdmmc_emmc.h:488
emmc_partition_access_t
Definition: hpm_sdmmc_emmc.h:547
emmc_switch_cmd_access_mode_t
Definition: hpm_sdmmc_emmc.h:27
hpm_stat_t emmc_card_init(emmc_card_t *card)
Initialize eMMC device.
Definition: hpm_sdmmc_emmc.c:620
@ emmc_idle_option_go_pre_idle_state
Definition: hpm_sdmmc_emmc.h:645
@ emmc_idle_option_go_idle_state
Definition: hpm_sdmmc_emmc.h:644
@ emmc_idle_option_boot_initialization
Definition: hpm_sdmmc_emmc.h:646
@ emmc_csd_file_format_others_or_unknown
Definition: hpm_sdmmc_emmc.h:187
@ emmc_csd_file_format_dos_fat_with_boot_sector_only
Definition: hpm_sdmmc_emmc.h:185
@ emmc_csd_file_format_hard_disk_like_file_system_with_partition_table
Definition: hpm_sdmmc_emmc.h:184
@ emmc_csd_file_format_universal_file_format
Definition: hpm_sdmmc_emmc.h:186
@ emmc_boot_partition_mode_boot_partition1
Definition: hpm_sdmmc_emmc.h:542
@ emmc_boot_partition_mode_not_enabled
Definition: hpm_sdmmc_emmc.h:541
@ emmc_boot_partition_mode_user_area
Definition: hpm_sdmmc_emmc.h:544
@ emmc_boot_partition_mode_boot_partition2
Definition: hpm_sdmmc_emmc.h:543
@ vdd_current_min_60ma
Definition: hpm_sdmmc_emmc.h:168
@ vdd_current_min_35ma
Definition: hpm_sdmmc_emmc.h:167
@ vdd_current_min_25ma
Definition: hpm_sdmmc_emmc.h:166
@ vdd_current_min_1ma
Definition: hpm_sdmmc_emmc.h:163
@ vdd_current_min_10ma
Definition: hpm_sdmmc_emmc.h:165
@ vdd_current_min_100ma
Definition: hpm_sdmmc_emmc.h:169
@ vdd_current_min_0_5ma
Definition: hpm_sdmmc_emmc.h:162
@ vdd_current_min_5ma
Definition: hpm_sdmmc_emmc.h:164
@ emmc_bus_mode_x8_sdr
Definition: hpm_sdmmc_emmc.h:515
@ emmc_bus_mode_x8_ddr_ds
Definition: hpm_sdmmc_emmc.h:518
@ emmc_bus_mode_x4_ddr
Definition: hpm_sdmmc_emmc.h:516
@ emmc_bus_mode_x8_ddr
Definition: hpm_sdmmc_emmc.h:517
@ emmc_bus_mode_x1_sdr
Definition: hpm_sdmmc_emmc.h:513
@ emmc_bus_mode_x4_sdr
Definition: hpm_sdmmc_emmc.h:514
@ emmc_erase_option_discard
Definition: hpm_sdmmc_emmc.h:652
@ emmc_erase_option_erase
Definition: hpm_sdmmc_emmc.h:650
@ emmc_erase_option_trim
Definition: hpm_sdmmc_emmc.h:651
@ emmc_csd_vdd_current_max_25ma
Definition: hpm_sdmmc_emmc.h:154
@ emmc_csd_vdd_current_max_200ma
Definition: hpm_sdmmc_emmc.h:158
@ emmc_csd_vdd_current_max_45ma
Definition: hpm_sdmmc_emmc.h:156
@ emmc_csd_vdd_current_max_1ma
Definition: hpm_sdmmc_emmc.h:151
@ emmc_csd_vdd_current_max_10ma
Definition: hpm_sdmmc_emmc.h:153
@ emmc_csd_vdd_current_max_35ma
Definition: hpm_sdmmc_emmc.h:155
@ emmc_csd_vdd_current_max_80ma
Definition: hpm_sdmmc_emmc.h:157
@ emmc_csd_vdd_current_max_5ma
Definition: hpm_sdmmc_emmc.h:152
@ emmc_power_3v6_max_rms_120ma_peak_220ma
Definition: hpm_sdmmc_emmc.h:471
@ emmc_power_3v6_max_rms_500ma_peak_600ma
Definition: hpm_sdmmc_emmc.h:481
@ emmc_power_3v6_max_rms_400ma_peak_500ma
Definition: hpm_sdmmc_emmc.h:479
@ emmc_power_3v6_max_rms_300ma_peak_400ma
Definition: hpm_sdmmc_emmc.h:477
@ emmc_power_3v6_max_rms_220ma_peak_320ma
Definition: hpm_sdmmc_emmc.h:475
@ emmc_power_3v6_max_rms_450ma_peak_550ma
Definition: hpm_sdmmc_emmc.h:480
@ emmc_power_3v6_max_rms_350ma_peak_450ma
Definition: hpm_sdmmc_emmc.h:478
@ emmc_power_3v6_max_rms_800ma_peak_900ma
Definition: hpm_sdmmc_emmc.h:484
@ emmc_power_3v6_max_rms_100ma_peak_200ma
Definition: hpm_sdmmc_emmc.h:470
@ emmc_power_3v6_max_rms_600ma_peak_700ma
Definition: hpm_sdmmc_emmc.h:482
@ emmc_power_3v6_max_rms_700ma_peak_800ma
Definition: hpm_sdmmc_emmc.h:483
@ emmc_power_3v6_max_rms_180ma_peak_280ma
Definition: hpm_sdmmc_emmc.h:473
@ emmc_power_3v6_max_rms_gt800ma_peak_gt900ma
Definition: hpm_sdmmc_emmc.h:485
@ emmc_power_3v6_max_rms_200ma_peak_300ma
Definition: hpm_sdmmc_emmc.h:474
@ emmc_power_3v6_max_rms_250ma_peak_350ma
Definition: hpm_sdmmc_emmc.h:476
@ emmc_power_3v6_max_rms_150ma_peak_250ma
Definition: hpm_sdmmc_emmc.h:472
@ emmc_boot_mode_sdr_high_speed_timing
Definition: hpm_sdmmc_emmc.h:559
@ emmc_boot_mode_ddr
Definition: hpm_sdmmc_emmc.h:559
@ emmc_boot_mode_sdr_legacy
Definition: hpm_sdmmc_emmc.h:559
@ boot_partition_enable_option_user_area
Definition: hpm_sdmmc_emmc.h:659
@ boot_partition_enable_option_boot_partition1
Definition: hpm_sdmmc_emmc.h:657
@ boot_partition_enable_option_boot_partition2
Definition: hpm_sdmmc_emmc.h:658
@ boot_partition_enable_option_not_enabled
Definition: hpm_sdmmc_emmc.h:656
@ emmc_csd_vdd_current_min_100ma
Definition: hpm_sdmmc_emmc.h:147
@ emmc_csd_vdd_current_min_5ma
Definition: hpm_sdmmc_emmc.h:142
@ emmc_csd_vdd_current_min_25ma
Definition: hpm_sdmmc_emmc.h:144
@ emmc_csd_vdd_current_min_1ma
Definition: hpm_sdmmc_emmc.h:141
@ emmc_csd_vdd_current_min_60ma
Definition: hpm_sdmmc_emmc.h:146
@ emmc_csd_vdd_current_min_10ma
Definition: hpm_sdmmc_emmc.h:143
@ emmc_csd_vdd_current_min_35ma
Definition: hpm_sdmmc_emmc.h:145
@ emmc_csd_vdd_current_min_0_5ma
Definition: hpm_sdmmc_emmc.h:140
@ vdd_current_max_25ma
Definition: hpm_sdmmc_emmc.h:176
@ vdd_current_max_35ma
Definition: hpm_sdmmc_emmc.h:177
@ vdd_current_max_200ma
Definition: hpm_sdmmc_emmc.h:180
@ vdd_current_max_80ma
Definition: hpm_sdmmc_emmc.h:179
@ vdd_current_max_5ma
Definition: hpm_sdmmc_emmc.h:174
@ vdd_current_max_1ma
Definition: hpm_sdmmc_emmc.h:173
@ vdd_current_max_45ma
Definition: hpm_sdmmc_emmc.h:178
@ vdd_current_max_10ma
Definition: hpm_sdmmc_emmc.h:175
@ emmc_write_protection_mode_legacy
Definition: hpm_sdmmc_emmc.h:522
@ emmc_write_protection_mode_secure
Definition: hpm_sdmmc_emmc.h:523
@ partition_access_option_access_to_gp_partition1
Definition: hpm_sdmmc_emmc.h:667
@ partition_access_option_read_write_boot_partition2
Definition: hpm_sdmmc_emmc.h:665
@ partition_access_option_read_write_boot_partition1
Definition: hpm_sdmmc_emmc.h:664
@ partition_access_option_access_to_gp_partition2
Definition: hpm_sdmmc_emmc.h:668
@ partition_access_option_access_to_gp_partition3
Definition: hpm_sdmmc_emmc.h:669
@ partition_access_option_access_to_gp_partition4
Definition: hpm_sdmmc_emmc.h:670
@ partition_access_option_read_write_rpmb
Definition: hpm_sdmmc_emmc.h:666
@ partition_access_option_no_access_to_boot_partition
Definition: hpm_sdmmc_emmc.h:663
@ emmc_power_1v95_max_rms_200ma_peak_300ma
Definition: hpm_sdmmc_emmc.h:498
@ emmc_power_1v95_max_rms_300ma_peak_400ma
Definition: hpm_sdmmc_emmc.h:500
@ emmc_power_1v95_max_rms_160ma_peak_260ma
Definition: hpm_sdmmc_emmc.h:496
@ emmc_power_1v95_max_rms_120ma_peak_220ma
Definition: hpm_sdmmc_emmc.h:494
@ emmc_power_1v95_max_rms_90ma_peak_180ma
Definition: hpm_sdmmc_emmc.h:492
@ emmc_power_1v95_max_rms_100ma_peak_200ma
Definition: hpm_sdmmc_emmc.h:493
@ emmc_power_1v95_max_rms_80ma_peak_160ma
Definition: hpm_sdmmc_emmc.h:491
@ emmc_power_1v95_max_rms_gt500ma_peak_gt600ma
Definition: hpm_sdmmc_emmc.h:504
@ emmc_power_1v95_max_rms_140ma_peak_240ma
Definition: hpm_sdmmc_emmc.h:495
@ emmc_power_1v95_max_rms_350ma_peak_450ma
Definition: hpm_sdmmc_emmc.h:501
@ emmc_power_1v95_max_rms_70ma_peak_140ma
Definition: hpm_sdmmc_emmc.h:490
@ emmc_power_1v95_max_rms_180ma_peak_280ma
Definition: hpm_sdmmc_emmc.h:497
@ emmc_power_1v95_max_rms_250ma_peak_350ma
Definition: hpm_sdmmc_emmc.h:499
@ emmc_power_1v95_max_rms_65ma_peak_130ma
Definition: hpm_sdmmc_emmc.h:489
@ emmc_power_1v95_max_rms_500ma_peak_600ma
Definition: hpm_sdmmc_emmc.h:503
@ emmc_power_1v95_max_rms_400ma_peak_500ma
Definition: hpm_sdmmc_emmc.h:502
@ emmc_partition_access_read_or_write_boot_partition2
Definition: hpm_sdmmc_emmc.h:550
@ emmc_partition_access_access_to_gp_partition3
Definition: hpm_sdmmc_emmc.h:554
@ emmc_partition_access_access_to_gp_partition1
Definition: hpm_sdmmc_emmc.h:552
@ emmc_partition_access_access_to_gp_partition4
Definition: hpm_sdmmc_emmc.h:555
@ emmc_partition_access_access_to_gp_partition2
Definition: hpm_sdmmc_emmc.h:553
@ emmc_partition_access_boot_partition_disabled
Definition: hpm_sdmmc_emmc.h:548
@ emmc_partition_access_read_or_write_rpmb
Definition: hpm_sdmmc_emmc.h:551
@ emmc_partition_access_read_or_write_boot_partition1
Definition: hpm_sdmmc_emmc.h:549
@ emmc_switch_cmd_access_mode_write_byte
Definition: hpm_sdmmc_emmc.h:31
@ emmc_switch_cmd_access_mode_clear_bits
Definition: hpm_sdmmc_emmc.h:30
@ emmc_switch_cmd_access_mode_command_set
Definition: hpm_sdmmc_emmc.h:28
@ emmc_switch_cmd_access_mode_set_bits
Definition: hpm_sdmmc_emmc.h:29
@ emmc_partition_boot_area_1
Definition: hpm_sdmmc_emmc.h:455
@ emmc_timing_hs200
Definition: hpm_sdmmc_emmc.h:464
@ emmc_partition_user_data
Definition: hpm_sdmmc_emmc.h:458
@ emmc_timing_high_speed_ddr
Definition: hpm_sdmmc_emmc.h:466
@ emmc_timing_high_speed
Definition: hpm_sdmmc_emmc.h:463
@ emmc_partition_boot_area_2
Definition: hpm_sdmmc_emmc.h:456
@ emmc_timing_hs400
Definition: hpm_sdmmc_emmc.h:465
@ emmc_timing_legacy
Definition: hpm_sdmmc_emmc.h:462
@ emmc_partition_rpmb
Definition: hpm_sdmmc_emmc.h:457
Definition: hpm_sdmmc_emmc.h:526
uint8_t reserved
Definition: hpm_sdmmc_emmc.h:530
bool is_alt_boot_mode_supported
Definition: hpm_sdmmc_emmc.h:527
bool is_ddr_boot_mode_supported
Definition: hpm_sdmmc_emmc.h:528
bool is_hs_boot_mode_supported
Definition: hpm_sdmmc_emmc.h:529
Definition: hpm_sdmmc_emmc.h:562
bool enable_boot_config_protection_until_next_power_cycle
Definition: hpm_sdmmc_emmc.h:564
bool reset_boot_bus_conditions
Definition: hpm_sdmmc_emmc.h:566
bool enable_boot_ack
Definition: hpm_sdmmc_emmc.h:563
emmc_boot_partition_mode_t emmc_boot_partition_mode
Definition: hpm_sdmmc_emmc.h:569
emmc_bus_mode_t boot_bus_mode
Definition: hpm_sdmmc_emmc.h:568
bool enable_boot_config_protection_permanently
Definition: hpm_sdmmc_emmc.h:565
emmc_boot_mode_t boot_mode
Definition: hpm_sdmmc_emmc.h:567
emmc_partition_access_t partition_access
Definition: hpm_sdmmc_emmc.h:570
Definition: hpm_sdmmc_emmc.h:673
bool enable_boot_ack
Definition: hpm_sdmmc_emmc.h:674
emmc_partition_access_t partition_access_option
Definition: hpm_sdmmc_emmc.h:676
emmc_boot_partition_enable_option_t boot_partition_enable_option
Definition: hpm_sdmmc_emmc.h:675
Definition: hpm_sdmmc_emmc.h:190
uint8_t file_format
Definition: hpm_sdmmc_emmc.h:206
emmc_csd_vdd_current_min_t write_current_vdd_min
Definition: hpm_sdmmc_emmc.h:212
emmc_csd_vdd_current_max_t write_current_vdd_max
Definition: hpm_sdmmc_emmc.h:213
emmc_csd_vdd_current_min_t read_current_vdd_min
Definition: hpm_sdmmc_emmc.h:210
uint32_t taac_ns
Definition: hpm_sdmmc_emmc.h:194
bool support_write_block_misalignment
Definition: hpm_sdmmc_emmc.h:196
uint32_t write_protect_group_size
Definition: hpm_sdmmc_emmc.h:221
uint32_t max_freq
Definition: hpm_sdmmc_emmc.h:222
bool is_predefined_file_format
Definition: hpm_sdmmc_emmc.h:202
uint8_t write_speed_factor
Definition: hpm_sdmmc_emmc.h:209
emmc_csd_vdd_current_max_t read_current_vdd_max
Definition: hpm_sdmmc_emmc.h:211
bool support_write_block_partial
Definition: hpm_sdmmc_emmc.h:201
uint64_t device_size_in_bytes
Definition: hpm_sdmmc_emmc.h:223
bool support_temporary_write_protect
Definition: hpm_sdmmc_emmc.h:205
uint32_t max_read_block_len
Definition: hpm_sdmmc_emmc.h:219
bool support_copy
Definition: hpm_sdmmc_emmc.h:203
bool support_permanent_write_protect
Definition: hpm_sdmmc_emmc.h:204
uint32_t erase_group_size
Definition: hpm_sdmmc_emmc.h:218
uint32_t max_write_block_len
Definition: hpm_sdmmc_emmc.h:220
uint8_t spec_version
Definition: hpm_sdmmc_emmc.h:192
uint32_t sector_size
Definition: hpm_sdmmc_emmc.h:217
bool is_dsr_implemented
Definition: hpm_sdmmc_emmc.h:198
uint8_t csd_structure
Definition: hpm_sdmmc_emmc.h:191
uint16_t card_command_class
Definition: hpm_sdmmc_emmc.h:208
uint16_t nsac_cycles
Definition: hpm_sdmmc_emmc.h:193
bool support_content_protect_app
Definition: hpm_sdmmc_emmc.h:199
uint8_t ecc_type
Definition: hpm_sdmmc_emmc.h:214
bool support_read_block_partial
Definition: hpm_sdmmc_emmc.h:195
bool is_write_protection_group_enabled
Definition: hpm_sdmmc_emmc.h:200
bool support_read_block_misalignment
Definition: hpm_sdmmc_emmc.h:197
Definition: hpm_sdmmc_emmc.h:573
uint32_t sleep_current_vcc_ua
Definition: hpm_sdmmc_emmc.h:613
uint32_t rpmb_partition_size
Definition: hpm_sdmmc_emmc.h:582
uint32_t erase_timeout_ms
Definition: hpm_sdmmc_emmc.h:607
uint32_t init_timeout_after_partition_ms
Definition: hpm_sdmmc_emmc.h:602
bool is_all_0xffs_for_erased_region
Definition: hpm_sdmmc_emmc.h:617
uint32_t write_protect_group_size
Definition: hpm_sdmmc_emmc.h:588
bool is_cmd_queue_mode_enabled
Definition: hpm_sdmmc_emmc.h:619
secure_feature_info_t secure_feature_info
Definition: hpm_sdmmc_emmc.h:579
emmc_device_type_t device_type
Definition: hpm_sdmmc_emmc.h:575
uint32_t sector_count
Definition: hpm_sdmmc_emmc.h:591
uint32_t boot_partition_size
Definition: hpm_sdmmc_emmc.h:581
uint32_t trim_timeout_ms
Definition: hpm_sdmmc_emmc.h:603
uint32_t sector_size
Definition: hpm_sdmmc_emmc.h:592
bool is_enhanced_strobe_supported
Definition: hpm_sdmmc_emmc.h:618
uint64_t optimal_trim_unit_size
Definition: hpm_sdmmc_emmc.h:597
uint32_t erase_group_size
Definition: hpm_sdmmc_emmc.h:589
bool use_high_capacity_erase_unit_size
Definition: hpm_sdmmc_emmc.h:616
uint32_t optimal_write_size
Definition: hpm_sdmmc_emmc.h:596
uint32_t operation_codes_timeout_us
Definition: hpm_sdmmc_emmc.h:599
uint32_t power_off_timeout_ms
Definition: hpm_sdmmc_emmc.h:601
uint32_t production_state_awareness_timeout_us
Definition: hpm_sdmmc_emmc.h:612
uint32_t switch_cmd_timeout_ms
Definition: hpm_sdmmc_emmc.h:600
bool is_secure_write_protection_supported
Definition: hpm_sdmmc_emmc.h:574
emmc_write_protection_mode_t write_protection_mode
Definition: hpm_sdmmc_emmc.h:576
uint64_t device_size_in_bytes
Definition: hpm_sdmmc_emmc.h:590
uint32_t max_enhanced_area_size
Definition: hpm_sdmmc_emmc.h:583
uint32_t secure_erase_timeout_ms
Definition: hpm_sdmmc_emmc.h:604
uint32_t secure_trim_timeout_ms
Definition: hpm_sdmmc_emmc.h:605
uint32_t partition_switch_timeout_ms
Definition: hpm_sdmmc_emmc.h:608
uint32_t sleep_current_vccq_ua
Definition: hpm_sdmmc_emmc.h:614
uint32_t sleep_notification_timeout_us
Definition: hpm_sdmmc_emmc.h:610
uint32_t large_unit_size
Definition: hpm_sdmmc_emmc.h:594
boot_info_t boot_info
Definition: hpm_sdmmc_emmc.h:578
uint32_t optimal_read_size
Definition: hpm_sdmmc_emmc.h:595
uint32_t sleep_awake_timeout_ns
Definition: hpm_sdmmc_emmc.h:611
uint32_t out_of_interrupt_timeout_ms
Definition: hpm_sdmmc_emmc.h:609
uint32_t super_page_size
Definition: hpm_sdmmc_emmc.h:587
Definition: hpm_sdmmc_emmc.h:243
uint8_t cmd_set
Definition: hpm_sdmmc_emmc.h:354
uint8_t production_state_awareness_timeout
Definition: hpm_sdmmc_emmc.h:386
uint8_t access_size
Definition: hpm_sdmmc_emmc.h:394
uint8_t pwr_cl_52_195
Definition: hpm_sdmmc_emmc.h:371
uint8_t csd_structure
Definition: hpm_sdmmc_emmc.h:360
uint8_t packed_command_status
Definition: hpm_sdmmc_emmc.h:262
uint8_t erase_group_def
Definition: hpm_sdmmc_emmc.h:309
uint8_t max_packed_writes
Definition: hpm_sdmmc_emmc.h:442
uint8_t erase_timeout_mult
Definition: hpm_sdmmc_emmc.h:392
uint8_t periodic_wakeup
Definition: hpm_sdmmc_emmc.h:276
uint8_t ming_perf_w_4_26
Definition: hpm_sdmmc_emmc.h:377
uint8_t power_off_notification
Definition: hpm_sdmmc_emmc.h:260
uint8_t device_lifetime_estimation_type_a
Definition: hpm_sdmmc_emmc.h:423
uint8_t high_capacity_erase_unit_size
Definition: hpm_sdmmc_emmc.h:393
uint8_t packed_command_failure_index
Definition: hpm_sdmmc_emmc.h:261
uint8_t reserved07
Definition: hpm_sdmmc_emmc.h:336
uint32_t enhanced_user_data_start_address
Definition: hpm_sdmmc_emmc.h:281
uint8_t driver_strength
Definition: hpm_sdmmc_emmc.h:368
uint8_t secure_trim_mult
Definition: hpm_sdmmc_emmc.h:398
uint8_t bkops_support
Definition: hpm_sdmmc_emmc.h:444
uint8_t mode_config
Definition: hpm_sdmmc_emmc.h:256
uint8_t secure_erase_mult
Definition: hpm_sdmmc_emmc.h:399
uint8_t sector_size_emulation
Definition: hpm_sdmmc_emmc.h:271
uint8_t power_class
Definition: hpm_sdmmc_emmc.h:350
uint8_t tcase_support
Definition: hpm_sdmmc_emmc.h:277
uint8_t reserved06
Definition: hpm_sdmmc_emmc.h:310
uint8_t ffu_features
Definition: hpm_sdmmc_emmc.h:434
uint8_t boot_config_prot
Definition: hpm_sdmmc_emmc.h:325
uint8_t device_type
Definition: hpm_sdmmc_emmc.h:367
uint8_t partitioning_setting
Definition: hpm_sdmmc_emmc.h:284
uint8_t boot_wp
Definition: hpm_sdmmc_emmc.h:307
uint8_t max_packed_reads
Definition: hpm_sdmmc_emmc.h:443
uint8_t bkops_status
Definition: hpm_sdmmc_emmc.h:412
uint8_t sleep_notification_timeout
Definition: hpm_sdmmc_emmc.h:384
uint8_t hpi_management
Definition: hpm_sdmmc_emmc.h:289
uint8_t partition_switch_timing
Definition: hpm_sdmmc_emmc.h:370
uint8_t optimal_trim_unit_size
Definition: hpm_sdmmc_emmc.h:419
uint8_t dyncap_needed
Definition: hpm_sdmmc_emmc.h:267
uint8_t trim_mult
Definition: hpm_sdmmc_emmc.h:401
uint8_t sleep_current_vccq
Definition: hpm_sdmmc_emmc.h:387
uint8_t erased_mem_content
Definition: hpm_sdmmc_emmc.h:337
uint32_t number_of_correctly_programmed_fw_sectors
Definition: hpm_sdmmc_emmc.h:426
uint8_t class6_commands_control
Definition: hpm_sdmmc_emmc.h:268
uint8_t boot_partition_size_mult
Definition: hpm_sdmmc_emmc.h:395
uint8_t cmdq_support
Definition: hpm_sdmmc_emmc.h:429
uint8_t pre_eol_info
Definition: hpm_sdmmc_emmc.h:422
uint8_t min_perf_ddr_w_8_52
Definition: hpm_sdmmc_emmc.h:404
uint8_t secure_removal_type
Definition: hpm_sdmmc_emmc.h:249
uint8_t reserved17
Definition: hpm_sdmmc_emmc.h:427
uint8_t bkops_start
Definition: hpm_sdmmc_emmc.h:291
uint8_t production_state_awareness
Definition: hpm_sdmmc_emmc.h:278
uint8_t secure_feature_support
Definition: hpm_sdmmc_emmc.h:400
uint8_t reserved03
Definition: hpm_sdmmc_emmc.h:280
uint8_t min_perf_r_4_26
Definition: hpm_sdmmc_emmc.h:376
uint8_t ffu_status
Definition: hpm_sdmmc_emmc.h:253
uint8_t reserved14
Definition: hpm_sdmmc_emmc.h:375
uint8_t boot_bus_conditions
Definition: hpm_sdmmc_emmc.h:321
uint8_t out_of_interrupt_timing
Definition: hpm_sdmmc_emmc.h:369
uint8_t data_tag_support
Definition: hpm_sdmmc_emmc.h:441
uint8_t boot_info
Definition: hpm_sdmmc_emmc.h:397
uint8_t supported_modes
Definition: hpm_sdmmc_emmc.h:435
uint8_t data_sector_size
Definition: hpm_sdmmc_emmc.h:270
uint8_t sleep_or_awake_timeout
Definition: hpm_sdmmc_emmc.h:385
uint8_t operation_code_timeout
Definition: hpm_sdmmc_emmc.h:433
uint8_t strobe_support
Definition: hpm_sdmmc_emmc.h:344
uint8_t cache_control
Definition: hpm_sdmmc_emmc.h:259
uint32_t cache_size
Definition: hpm_sdmmc_emmc.h:415
uint8_t cmdq_depth
Definition: hpm_sdmmc_emmc.h:428
uint8_t pwr_cl_ddr_52_360
Definition: hpm_sdmmc_emmc.h:408
uint8_t hpi_features
Definition: hpm_sdmmc_emmc.h:445
uint32_t number_of_correctly_programmed_sectors
Definition: hpm_sdmmc_emmc.h:411
uint8_t boot_wp_status
Definition: hpm_sdmmc_emmc.h:308
uint8_t program_cid_or_csd_in_ddr_mode_supported
Definition: hpm_sdmmc_emmc.h:275
uint8_t barrier_support
Definition: hpm_sdmmc_emmc.h:431
uint8_t native_sector_size
Definition: hpm_sdmmc_emmc.h:272
uint8_t cache_flush_policy
Definition: hpm_sdmmc_emmc.h:409
uint8_t secure_wp_info
Definition: hpm_sdmmc_emmc.h:382
uint8_t bus_width
Definition: hpm_sdmmc_emmc.h:343
uint8_t reliable_write_sector_count
Definition: hpm_sdmmc_emmc.h:391
uint8_t pwr_cl_26_195
Definition: hpm_sdmmc_emmc.h:372
uint8_t pwr_cl_26_360
Definition: hpm_sdmmc_emmc.h:374
uint8_t partitioning_attribute
Definition: hpm_sdmmc_emmc.h:285
uint8_t tag_unit_size
Definition: hpm_sdmmc_emmc.h:440
uint8_t write_reliability_setting
Definition: hpm_sdmmc_emmc.h:294
uint8_t tag_resource_size
Definition: hpm_sdmmc_emmc.h:439
uint8_t partitioning_support
Definition: hpm_sdmmc_emmc.h:287
uint8_t ext_csd_rev
Definition: hpm_sdmmc_emmc.h:358
uint8_t pwr_cl_200_130
Definition: hpm_sdmmc_emmc.h:405
uint8_t hs_timing
Definition: hpm_sdmmc_emmc.h:348
uint8_t sanitize_start
Definition: hpm_sdmmc_emmc.h:292
uint8_t high_capacity_write_protect_group_size
Definition: hpm_sdmmc_emmc.h:390
uint8_t supported_cmd_sets
Definition: hpm_sdmmc_emmc.h:446
uint8_t reserved15
Definition: hpm_sdmmc_emmc.h:396
uint8_t pwr_cl_ddr_52_195
Definition: hpm_sdmmc_emmc.h:407
uint8_t command_queue_mode_enable
Definition: hpm_sdmmc_emmc.h:248
uint8_t optimal_read_size
Definition: hpm_sdmmc_emmc.h:421
uint8_t power_off_long_timeout
Definition: hpm_sdmmc_emmc.h:413
uint8_t reserved05
Definition: hpm_sdmmc_emmc.h:302
uint8_t min_perf_r_8_26_4_52
Definition: hpm_sdmmc_emmc.h:378
uint8_t pwr_cl_ddr_200_360
Definition: hpm_sdmmc_emmc.h:416
uint8_t context_capabilities
Definition: hpm_sdmmc_emmc.h:438
uint8_t device_lifetime_estimation_type_b
Definition: hpm_sdmmc_emmc.h:424
uint8_t flush_cache
Definition: hpm_sdmmc_emmc.h:258
uint8_t pwr_cl_200_195
Definition: hpm_sdmmc_emmc.h:406
uint8_t min_perf_ddr_r_8_52
Definition: hpm_sdmmc_emmc.h:403
uint8_t sleep_current_vcc
Definition: hpm_sdmmc_emmc.h:388
uint8_t optimal_write_size
Definition: hpm_sdmmc_emmc.h:420
uint8_t reserved10
Definition: hpm_sdmmc_emmc.h:351
uint8_t init_timeout_after_partitioning
Definition: hpm_sdmmc_emmc.h:410
uint8_t extended_partitions_attribute_support
Definition: hpm_sdmmc_emmc.h:436
uint8_t partition_config
Definition: hpm_sdmmc_emmc.h:335
uint8_t reserved04
Definition: hpm_sdmmc_emmc.h:297
uint8_t generic_cmd6_timeout
Definition: hpm_sdmmc_emmc.h:414
uint8_t cmd_set_revision
Definition: hpm_sdmmc_emmc.h:352
uint8_t mode_operation_codes
Definition: hpm_sdmmc_emmc.h:255
uint8_t pwr_cl_52_360
Definition: hpm_sdmmc_emmc.h:373
uint8_t reserved11
Definition: hpm_sdmmc_emmc.h:353
uint8_t reserved13
Definition: hpm_sdmmc_emmc.h:361
uint8_t rpmb_size
Definition: hpm_sdmmc_emmc.h:295
uint8_t large_unit_size
Definition: hpm_sdmmc_emmc.h:437
uint8_t min_perf_w_8_52
Definition: hpm_sdmmc_emmc.h:381
uint8_t min_perf_w_8_26_4_52
Definition: hpm_sdmmc_emmc.h:379
uint8_t user_wp
Definition: hpm_sdmmc_emmc.h:301
uint8_t reserved09
Definition: hpm_sdmmc_emmc.h:349
uint8_t hw_reset_function
Definition: hpm_sdmmc_emmc.h:288
uint8_t extended_security_error
Definition: hpm_sdmmc_emmc.h:447
uint8_t bad_block_management_mode
Definition: hpm_sdmmc_emmc.h:279
uint8_t init_timeout_after_disabling_emulation
Definition: hpm_sdmmc_emmc.h:269
uint8_t product_state_awareness_enablement
Definition: hpm_sdmmc_emmc.h:250
uint8_t reserved08
Definition: hpm_sdmmc_emmc.h:338
uint8_t barrier_control
Definition: hpm_sdmmc_emmc.h:257
uint8_t fw_config
Definition: hpm_sdmmc_emmc.h:296
uint8_t reserved16
Definition: hpm_sdmmc_emmc.h:402
uint8_t write_reliability_parameter
Definition: hpm_sdmmc_emmc.h:293
uint8_t reserved12
Definition: hpm_sdmmc_emmc.h:359
uint32_t sector_count
Definition: hpm_sdmmc_emmc.h:383
uint8_t bkops_en
Definition: hpm_sdmmc_emmc.h:290
uint8_t min_perf_r_8_52
Definition: hpm_sdmmc_emmc.h:380
Definition: hpm_sdmmc_host.h:203
Definition: hpm_sdmmc_emmc.h:533
bool is_secure_insecure_trim_supported
Definition: hpm_sdmmc_emmc.h:536
bool is_secure_sanitize_supported
Definition: hpm_sdmmc_emmc.h:537
bool is_secure_bad_block_management_supported
Definition: hpm_sdmmc_emmc.h:535
bool is_secure_erase_supported
Definition: hpm_sdmmc_emmc.h:534
Definition: hpm_sdmmc_emmc.h:109
uint32_t app_cmd
Definition: hpm_sdmmc_emmc.h:112
uint32_t device_ecc_failed
Definition: hpm_sdmmc_emmc.h:124
uint32_t lock_unlock_failed
Definition: hpm_sdmmc_emmc.h:127
uint32_t com_crc_err
Definition: hpm_sdmmc_emmc.h:126
uint32_t erase_param
Definition: hpm_sdmmc_emmc.h:130
uint32_t erase_reset
Definition: hpm_sdmmc_emmc.h:117
uint32_t address_error
Definition: hpm_sdmmc_emmc.h:133
uint32_t block_len_error
Definition: hpm_sdmmc_emmc.h:132
uint32_t cc_error
Definition: hpm_sdmmc_emmc.h:123
uint32_t illegal_command
Definition: hpm_sdmmc_emmc.h:125
uint32_t wp_violation
Definition: hpm_sdmmc_emmc.h:129
uint32_t current_state
Definition: hpm_sdmmc_emmc.h:116
uint32_t error
Definition: hpm_sdmmc_emmc.h:122
uint32_t card_status
Definition: hpm_sdmmc_emmc.h:136
uint32_t device_is_locked
Definition: hpm_sdmmc_emmc.h:128
uint32_t out_of_range
Definition: hpm_sdmmc_emmc.h:134
uint32_t ready_for_data
Definition: hpm_sdmmc_emmc.h:115
uint32_t exception_event
Definition: hpm_sdmmc_emmc.h:113
uint32_t wp_erase_skip
Definition: hpm_sdmmc_emmc.h:119
uint32_t cid_or_csd_overwrite
Definition: hpm_sdmmc_emmc.h:120
uint32_t erase_seq_error
Definition: hpm_sdmmc_emmc.h:131
uint32_t switch_error
Definition: hpm_sdmmc_emmc.h:114
Definition: hpm_sdmmc_emmc.h:92
uint8_t oid
Definition: hpm_sdmmc_emmc.h:99
uint8_t mdt
Definition: hpm_sdmmc_emmc.h:95
uint8_t bin
Definition: hpm_sdmmc_emmc.h:102
uint8_t cbx
Definition: hpm_sdmmc_emmc.h:101
uint8_t prv
Definition: hpm_sdmmc_emmc.h:97
uint8_t mid
Definition: hpm_sdmmc_emmc.h:104
uint8_t reserved
Definition: hpm_sdmmc_emmc.h:94
Definition: hpm_sdmmc_emmc.h:227
uint8_t support_high_speed_ddr_at_52mhz_1v8_or_3v
Definition: hpm_sdmmc_emmc.h:232
uint8_t support_hs400_at_200mhz_1v2
Definition: hpm_sdmmc_emmc.h:237
uint8_t support_hs200_at_200mhz_1v8
Definition: hpm_sdmmc_emmc.h:234
uint8_t support_high_speed_sdr_at_52mhz
Definition: hpm_sdmmc_emmc.h:231
uint8_t support_hs400_at_200mhz_1v8
Definition: hpm_sdmmc_emmc.h:236
uint8_t device_type
Definition: hpm_sdmmc_emmc.h:228
uint8_t support_hs200_at_200mhz_1v2
Definition: hpm_sdmmc_emmc.h:235
uint8_t support_high_speed_sdr_at_26mhz
Definition: hpm_sdmmc_emmc.h:230
uint8_t support_high_speed_ddr_at_52mhz_1v2
Definition: hpm_sdmmc_emmc.h:233
Definition: hpm_sdmmc_emmc.h:79
uint32_t ocr_word
Definition: hpm_sdmmc_emmc.h:89
uint32_t voltage_270_360
Definition: hpm_sdmmc_emmc.h:84
uint32_t powerup_status
Definition: hpm_sdmmc_emmc.h:87
uint32_t voltage_200_260
Definition: hpm_sdmmc_emmc.h:83
uint32_t access_mode
Definition: hpm_sdmmc_emmc.h:86
uint32_t voltage_170_195
Definition: hpm_sdmmc_emmc.h:82
Definition: hpm_sdmmc_emmc.h:507
emmc_power_class_3v6_t power_class_3v6
Definition: hpm_sdmmc_emmc.h:508
emmc_power_class_1v95_t power_class_1v95
Definition: hpm_sdmmc_emmc.h:509
Definition: hpm_sdmmc_emmc.h:34
uint8_t cmd_set
Definition: hpm_sdmmc_emmc.h:36
uint32_t argument
Definition: hpm_sdmmc_emmc.h:41
uint8_t index
Definition: hpm_sdmmc_emmc.h:38
uint8_t access
Definition: hpm_sdmmc_emmc.h:39
uint8_t value
Definition: hpm_sdmmc_emmc.h:37