7 #ifndef HPM_SDMMC_EMMC_H
8 #define HPM_SDMMC_EMMC_H
32 #define EMMC_EXT_CSD_INDEX_CMD_SET (191)
33 #define EMMC_EXT_CSD_INDEX_POWER_CLASS (187)
34 #define EMMC_EXT_CSD_INDEX_HS_TIMING (185)
35 #define EMMC_EXT_CSD_INDEX_BUS_WDITH (183)
36 #define EMMC_EXT_CSD_INDEX_PARTITION_CONFIG (179)
37 #define EMMC_EXT_CSD_INDEX_BOOT_CONFIG_PROT (178)
38 #define EMMC_EXT_CSD_INDEX_BOOT_BUS_CONDITIONS (177)
39 #define EMMC_EXT_CSD_INDEX_ERASE_GROUP_DEF (175)
40 #define EMMC_EXT_CSD_INDEX_BOOT_WP (173)
41 #define EMMC_EXT_CSD_INDEX_USER_WP (171)
42 #define EMMC_EXT_CSD_INDEX_FW_CONFIG (169)
43 #define EMMC_EXT_CSD_INDEX_WR_REL_SET (167)
44 #define EMMC_EXT_CSD_INDEX_SANITIZE_START (165)
45 #define EMMC_EXT_CSD_INDEX_BKOPS_START (164)
46 #define EMMC_EXT_CSD_INDEX_BKOPS_EN (163)
47 #define EMMC_EXT_CSD_INDEX_RSTn_FUNCTION (162)
48 #define EMMC_EXT_CSD_INDEX_HPI_MGMT (161)
49 #define EMMC_EXT_CSD_INDEX_PARTITIONS_ATTRIBUTE (156)
50 #define EMMC_EXT_CSD_INDEX_PARTITION_SETTING_COMPLETED (155)
51 #define EMMC_EXT_CSD_INDEX_SEC_BAD_BLK_MGMNT (134)
52 #define EMMC_EXT_CSD_INDEX_PRODUCTION_STATE_AWARENESS (133)
53 #define EMMC_EXT_CSD_INDEX_PERIODIC_WAKEUP (131)
54 #define EMMC_EXT_CSD_INDEX_USE_NATIVE_SECTOR (62)
55 #define EMMC_EXT_CSD_INDEX_CLASS_6_CTRL (59)
57 #define EMMC_EXT_CSD_INDEX_POWER_OFF_NOTIFICATION (34)
58 #define EMMC_EXT_CSD_INDEX_CACHE_CTRL (33)
59 #define EMMC_EXT_CSD_INDEX_FLUSH_CACHE (32)
60 #define EMMC_EXT_CSD_INDEX_BARRIER_CTRL (31)
61 #define EMMC_EXT_CSD_INDEX_MODE_CONFIG (30)
62 #define EMMC_EXT_CSD_INDEX_PRODUCT_STATE_AWARENESS_ENABLEMENT (17)
63 #define EMMC_EXT_CSD_INDEX_SECURE_REMOVAL_TYPE (16)
64 #define EMMC_EXT_CSD_INDEX_CMDQ_MODE_EN (15)
93 uint32_t cid_words[4];
234 uint8_t reserved0[15];
238 uint8_t max_pre_loading_data_size[4];
239 uint8_t pre_loading_data_size[4];
241 uint8_t reserved1[2];
250 uint8_t context_config[15];
251 uint8_t extended_partitions_attribute[2];
252 uint8_t exception_events_status[2];
253 uint8_t exception_events_control[2];
260 uint8_t vendor_specific_field[64];
261 uint8_t reserved02[2];
269 uint8_t enhanced_user_data_area_size[3];
270 uint8_t general_purpose_partition_size[4][3];
273 uint8_t max_enh_size_mult[3];
404 uint8_t firmware_version[8];
405 uint8_t device_version[2];
412 uint8_t vendor_proprietary_health_report[32];
417 uint8_t reserved18[177];
435 uint8_t reserved19[6];
441 typedef enum _emmc_partition {
448 typedef enum _emmc_hs_timing {
572 uint32_t gp_partition_size[4];
609 typedef struct _sdmmc_emmc {
611 uint16_t relative_addr;
uint32_t hpm_stat_t
Definition: hpm_common.h:123
sdmmc_operation_voltage_t
Definition: hpm_sdmmc_common.h:44
hpm_stat_t emmc_probe_device(emmc_card_t *card)
Probe eMMC device.
Definition: hpm_sdmmc_emmc.c:592
@ emmc_partition_boot_area_1
Definition: hpm_sdmmc_emmc.h:442
@ emmc_timing_hs200
Definition: hpm_sdmmc_emmc.h:451
hpm_stat_t emmc_exit_sleep_mode(emmc_card_t *card)
Switch eMMC device into standby mode.
Definition: hpm_sdmmc_emmc.c:1146
enum vdd_current_min_def vdd_current_min_t
struct _sdmmc_emmc emmc_card_t
emmc_idle_option_t
Definition: hpm_sdmmc_emmc.h:629
@ emmc_idle_option_go_pre_idle_state
Definition: hpm_sdmmc_emmc.h:631
@ emmc_idle_option_go_idle_state
Definition: hpm_sdmmc_emmc.h:630
@ emmc_idle_option_boot_initialization
Definition: hpm_sdmmc_emmc.h:632
@ emmc_partition_user_data
Definition: hpm_sdmmc_emmc.h:445
@ emmc_timing_high_speed_ddr
Definition: hpm_sdmmc_emmc.h:453
emmc_csd_file_format_t
Definition: hpm_sdmmc_emmc.h:170
@ emmc_csd_file_format_others_or_unknown
Definition: hpm_sdmmc_emmc.h:174
@ emmc_csd_file_format_dos_fat_with_boot_sector_only
Definition: hpm_sdmmc_emmc.h:172
@ emmc_csd_file_format_hard_disk_like_file_system_with_partition_table
Definition: hpm_sdmmc_emmc.h:171
@ emmc_csd_file_format_universal_file_format
Definition: hpm_sdmmc_emmc.h:173
emmc_boot_partition_mode_t
Definition: hpm_sdmmc_emmc.h:527
@ emmc_boot_partition_mode_boot_partition1
Definition: hpm_sdmmc_emmc.h:529
@ emmc_boot_partition_mode_not_enabled
Definition: hpm_sdmmc_emmc.h:528
@ emmc_boot_partition_mode_user_area
Definition: hpm_sdmmc_emmc.h:531
@ emmc_boot_partition_mode_boot_partition2
Definition: hpm_sdmmc_emmc.h:530
vdd_current_min_def
Definition: hpm_sdmmc_emmc.h:148
@ vdd_current_min_60ma
Definition: hpm_sdmmc_emmc.h:155
@ vdd_current_min_35ma
Definition: hpm_sdmmc_emmc.h:154
@ vdd_current_min_25ma
Definition: hpm_sdmmc_emmc.h:153
@ vdd_current_min_1ma
Definition: hpm_sdmmc_emmc.h:150
@ vdd_current_min_10ma
Definition: hpm_sdmmc_emmc.h:152
@ vdd_current_min_100ma
Definition: hpm_sdmmc_emmc.h:156
@ vdd_current_min_0_5ma
Definition: hpm_sdmmc_emmc.h:149
@ vdd_current_min_5ma
Definition: hpm_sdmmc_emmc.h:151
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:955
@ emmc_timing_high_speed
Definition: hpm_sdmmc_emmc.h:450
emmc_bus_mode_t
Definition: hpm_sdmmc_emmc.h:499
@ emmc_bus_mode_x8_sdr
Definition: hpm_sdmmc_emmc.h:502
@ emmc_bus_mode_x8_ddr_ds
Definition: hpm_sdmmc_emmc.h:505
@ emmc_bus_mode_x4_ddr
Definition: hpm_sdmmc_emmc.h:503
@ emmc_bus_mode_x8_ddr
Definition: hpm_sdmmc_emmc.h:504
@ emmc_bus_mode_x1_sdr
Definition: hpm_sdmmc_emmc.h:500
@ emmc_bus_mode_x4_sdr
Definition: hpm_sdmmc_emmc.h:501
enum vdd_current_max_def vdd_current_max_t
enum _emmc_hs_timing emmc_hs_timing_t
hpm_stat_t emmc_configure_partition(emmc_card_t *card, emmc_config_partition_option_t option)
Configure eMMC Partition.
Definition: hpm_sdmmc_emmc.c:1065
emmc_erase_option_t
Definition: hpm_sdmmc_emmc.h:635
@ emmc_erase_option_discard
Definition: hpm_sdmmc_emmc.h:638
@ emmc_erase_option_erase
Definition: hpm_sdmmc_emmc.h:636
@ emmc_erase_option_trim
Definition: hpm_sdmmc_emmc.h:637
emmc_csd_vdd_current_max_t
Definition: hpm_sdmmc_emmc.h:137
@ emmc_csd_vdd_current_max_25ma
Definition: hpm_sdmmc_emmc.h:141
@ emmc_csd_vdd_current_max_200ma
Definition: hpm_sdmmc_emmc.h:145
@ emmc_csd_vdd_current_max_45ma
Definition: hpm_sdmmc_emmc.h:143
@ emmc_csd_vdd_current_max_1ma
Definition: hpm_sdmmc_emmc.h:138
@ emmc_csd_vdd_current_max_10ma
Definition: hpm_sdmmc_emmc.h:140
@ emmc_csd_vdd_current_max_35ma
Definition: hpm_sdmmc_emmc.h:142
@ emmc_csd_vdd_current_max_80ma
Definition: hpm_sdmmc_emmc.h:144
@ emmc_csd_vdd_current_max_5ma
Definition: hpm_sdmmc_emmc.h:139
emmc_power_class_3v6_t
Definition: hpm_sdmmc_emmc.h:456
@ emmc_power_3v6_max_rms_120ma_peak_220ma
Definition: hpm_sdmmc_emmc.h:458
@ emmc_power_3v6_max_rms_500ma_peak_600ma
Definition: hpm_sdmmc_emmc.h:468
@ emmc_power_3v6_max_rms_400ma_peak_500ma
Definition: hpm_sdmmc_emmc.h:466
@ emmc_power_3v6_max_rms_300ma_peak_400ma
Definition: hpm_sdmmc_emmc.h:464
@ emmc_power_3v6_max_rms_220ma_peak_320ma
Definition: hpm_sdmmc_emmc.h:462
@ emmc_power_3v6_max_rms_450ma_peak_550ma
Definition: hpm_sdmmc_emmc.h:467
@ emmc_power_3v6_max_rms_350ma_peak_450ma
Definition: hpm_sdmmc_emmc.h:465
@ emmc_power_3v6_max_rms_800ma_peak_900ma
Definition: hpm_sdmmc_emmc.h:471
@ emmc_power_3v6_max_rms_100ma_peak_200ma
Definition: hpm_sdmmc_emmc.h:457
@ emmc_power_3v6_max_rms_600ma_peak_700ma
Definition: hpm_sdmmc_emmc.h:469
@ emmc_power_3v6_max_rms_700ma_peak_800ma
Definition: hpm_sdmmc_emmc.h:470
@ emmc_power_3v6_max_rms_180ma_peak_280ma
Definition: hpm_sdmmc_emmc.h:460
@ emmc_power_3v6_max_rms_gt800ma_peak_gt900ma
Definition: hpm_sdmmc_emmc.h:472
@ emmc_power_3v6_max_rms_200ma_peak_300ma
Definition: hpm_sdmmc_emmc.h:461
@ emmc_power_3v6_max_rms_250ma_peak_350ma
Definition: hpm_sdmmc_emmc.h:463
@ emmc_power_3v6_max_rms_150ma_peak_250ma
Definition: hpm_sdmmc_emmc.h:459
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)
Intialize eMMC device, include both host and the device.
Definition: hpm_sdmmc_emmc.c:560
emmc_boot_mode_t
Definition: hpm_sdmmc_emmc.h:545
@ emmc_boot_mode_sdr_high_speed_timing
Definition: hpm_sdmmc_emmc.h:546
@ emmc_boot_mode_ddr
Definition: hpm_sdmmc_emmc.h:546
@ emmc_boot_mode_sdr_legacy
Definition: hpm_sdmmc_emmc.h:546
emmc_boot_partition_enable_option_t
Definition: hpm_sdmmc_emmc.h:641
@ boot_partition_enable_option_user_area
Definition: hpm_sdmmc_emmc.h:645
@ boot_partition_enable_option_boot_partition1
Definition: hpm_sdmmc_emmc.h:643
@ boot_partition_enable_option_boot_partition2
Definition: hpm_sdmmc_emmc.h:644
@ boot_partition_enable_option_not_enabled
Definition: hpm_sdmmc_emmc.h:642
emmc_csd_vdd_current_min_t
Definition: hpm_sdmmc_emmc.h:126
@ emmc_csd_vdd_current_min_100ma
Definition: hpm_sdmmc_emmc.h:134
@ emmc_csd_vdd_current_min_5ma
Definition: hpm_sdmmc_emmc.h:129
@ emmc_csd_vdd_current_min_25ma
Definition: hpm_sdmmc_emmc.h:131
@ emmc_csd_vdd_current_min_1ma
Definition: hpm_sdmmc_emmc.h:128
@ emmc_csd_vdd_current_min_60ma
Definition: hpm_sdmmc_emmc.h:133
@ emmc_csd_vdd_current_min_10ma
Definition: hpm_sdmmc_emmc.h:130
@ emmc_csd_vdd_current_min_35ma
Definition: hpm_sdmmc_emmc.h:132
@ emmc_csd_vdd_current_min_0_5ma
Definition: hpm_sdmmc_emmc.h:127
@ emmc_partition_boot_area_2
Definition: hpm_sdmmc_emmc.h:443
void emmc_deinit(emmc_card_t *card)
Definition: hpm_sdmmc_emmc.c:587
hpm_stat_t emmc_enter_sleep_mode(emmc_card_t *card)
Switch eMMC device into sleep mode.
Definition: hpm_sdmmc_emmc.c:1124
vdd_current_max_def
Definition: hpm_sdmmc_emmc.h:159
@ vdd_current_max_25ma
Definition: hpm_sdmmc_emmc.h:163
@ vdd_current_max_35ma
Definition: hpm_sdmmc_emmc.h:164
@ vdd_current_max_200ma
Definition: hpm_sdmmc_emmc.h:167
@ vdd_current_max_80ma
Definition: hpm_sdmmc_emmc.h:166
@ vdd_current_max_5ma
Definition: hpm_sdmmc_emmc.h:161
@ vdd_current_max_1ma
Definition: hpm_sdmmc_emmc.h:160
@ vdd_current_max_45ma
Definition: hpm_sdmmc_emmc.h:165
@ vdd_current_max_10ma
Definition: hpm_sdmmc_emmc.h:162
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:880
enum _emmc_partition emmc_partition_t
emmc_write_protection_mode_t
Definition: hpm_sdmmc_emmc.h:508
@ emmc_write_protection_mode_legacy
Definition: hpm_sdmmc_emmc.h:509
@ emmc_write_protection_mode_secure
Definition: hpm_sdmmc_emmc.h:510
hpm_stat_t emmc_go_idle(emmc_card_t *card, emmc_idle_option_t option)
Go to Idle mode.
@ emmc_timing_hs400
Definition: hpm_sdmmc_emmc.h:452
hpm_stat_t emmc_switch_function(emmc_card_t *card, emmc_switch_cmd_arg_t arg, uint32_t timeout_us)
Switch eMMC function.
Definition: hpm_sdmmc_emmc.c:1045
@ emmc_timing_legacy
Definition: hpm_sdmmc_emmc.h:449
hpm_stat_t emmc_send_cid(emmc_card_t *card)
Request eMMC device to send CID to Host.
Definition: hpm_sdmmc_emmc.c:400
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:824
emmc_partition_access_option_t
Definition: hpm_sdmmc_emmc.h:648
@ partition_access_option_access_to_gp_partition1
Definition: hpm_sdmmc_emmc.h:653
@ partition_access_option_read_write_boot_partition2
Definition: hpm_sdmmc_emmc.h:651
@ partition_access_option_read_write_boot_partition1
Definition: hpm_sdmmc_emmc.h:650
@ partition_access_option_access_to_gp_partition2
Definition: hpm_sdmmc_emmc.h:654
@ partition_access_option_access_to_gp_partition3
Definition: hpm_sdmmc_emmc.h:655
@ partition_access_option_access_to_gp_partition4
Definition: hpm_sdmmc_emmc.h:656
@ partition_access_option_read_write_rpmb
Definition: hpm_sdmmc_emmc.h:652
@ partition_access_option_no_access_to_boot_partition
Definition: hpm_sdmmc_emmc.h:649
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:475
@ emmc_power_1v95_max_rms_200ma_peak_300ma
Definition: hpm_sdmmc_emmc.h:485
@ emmc_power_1v95_max_rms_300ma_peak_400ma
Definition: hpm_sdmmc_emmc.h:487
@ emmc_power_1v95_max_rms_160ma_peak_260ma
Definition: hpm_sdmmc_emmc.h:483
@ emmc_power_1v95_max_rms_120ma_peak_220ma
Definition: hpm_sdmmc_emmc.h:481
@ emmc_power_1v95_max_rms_90ma_peak_180ma
Definition: hpm_sdmmc_emmc.h:479
@ emmc_power_1v95_max_rms_100ma_peak_200ma
Definition: hpm_sdmmc_emmc.h:480
@ emmc_power_1v95_max_rms_80ma_peak_160ma
Definition: hpm_sdmmc_emmc.h:478
@ emmc_power_1v95_max_rms_gt500ma_peak_gt600ma
Definition: hpm_sdmmc_emmc.h:491
@ emmc_power_1v95_max_rms_140ma_peak_240ma
Definition: hpm_sdmmc_emmc.h:482
@ emmc_power_1v95_max_rms_350ma_peak_450ma
Definition: hpm_sdmmc_emmc.h:488
@ emmc_power_1v95_max_rms_70ma_peak_140ma
Definition: hpm_sdmmc_emmc.h:477
@ emmc_power_1v95_max_rms_180ma_peak_280ma
Definition: hpm_sdmmc_emmc.h:484
@ emmc_power_1v95_max_rms_250ma_peak_350ma
Definition: hpm_sdmmc_emmc.h:486
@ emmc_power_1v95_max_rms_65ma_peak_130ma
Definition: hpm_sdmmc_emmc.h:476
@ emmc_power_1v95_max_rms_500ma_peak_600ma
Definition: hpm_sdmmc_emmc.h:490
@ emmc_power_1v95_max_rms_400ma_peak_500ma
Definition: hpm_sdmmc_emmc.h:489
emmc_partition_access_t
Definition: hpm_sdmmc_emmc.h:534
@ emmc_partition_access_read_or_write_boot_partition2
Definition: hpm_sdmmc_emmc.h:537
@ emmc_partition_access_access_to_gp_partition3
Definition: hpm_sdmmc_emmc.h:541
@ emmc_partition_access_access_to_gp_partition1
Definition: hpm_sdmmc_emmc.h:539
@ emmc_partition_access_access_to_gp_partition4
Definition: hpm_sdmmc_emmc.h:542
@ emmc_partition_access_access_to_gp_partition2
Definition: hpm_sdmmc_emmc.h:540
@ emmc_partition_access_boot_partition_disabled
Definition: hpm_sdmmc_emmc.h:535
@ emmc_partition_access_read_or_write_rpmb
Definition: hpm_sdmmc_emmc.h:538
@ emmc_partition_access_read_or_write_boot_partition1
Definition: hpm_sdmmc_emmc.h:536
@ emmc_partition_rpmb
Definition: hpm_sdmmc_emmc.h:444
emmc_switch_cmd_access_mode_t
Definition: hpm_sdmmc_emmc.h:14
@ emmc_switch_cmd_access_mode_write_byte
Definition: hpm_sdmmc_emmc.h:18
@ emmc_switch_cmd_access_mode_clear_bits
Definition: hpm_sdmmc_emmc.h:17
@ emmc_switch_cmd_access_mode_command_set
Definition: hpm_sdmmc_emmc.h:15
@ emmc_switch_cmd_access_mode_set_bits
Definition: hpm_sdmmc_emmc.h:16
hpm_stat_t emmc_select_card(emmc_card_t *card, bool is_selected)
Select eMMC device.
Definition: hpm_sdmmc_emmc.c:818
hpm_stat_t emmc_card_init(emmc_card_t *card)
Initialize eMMC device.
Definition: hpm_sdmmc_emmc.c:621
Definition: hpm_sdmmc_emmc.h:513
uint8_t reserved
Definition: hpm_sdmmc_emmc.h:517
bool is_alt_boot_mode_supported
Definition: hpm_sdmmc_emmc.h:514
bool is_ddr_boot_mode_supported
Definition: hpm_sdmmc_emmc.h:515
bool is_hs_boot_mode_supported
Definition: hpm_sdmmc_emmc.h:516
Definition: hpm_sdmmc_emmc.h:549
bool enable_boot_config_protection_until_next_power_cycle
Definition: hpm_sdmmc_emmc.h:551
bool reset_boot_bus_conditions
Definition: hpm_sdmmc_emmc.h:553
bool enable_boot_ack
Definition: hpm_sdmmc_emmc.h:550
emmc_boot_partition_mode_t emmc_boot_partition_mode
Definition: hpm_sdmmc_emmc.h:556
emmc_bus_mode_t boot_bus_mode
Definition: hpm_sdmmc_emmc.h:555
bool enable_boot_config_protection_permanently
Definition: hpm_sdmmc_emmc.h:552
emmc_boot_mode_t boot_mode
Definition: hpm_sdmmc_emmc.h:554
emmc_partition_access_t partition_access
Definition: hpm_sdmmc_emmc.h:557
Definition: hpm_sdmmc_emmc.h:659
bool enable_boot_ack
Definition: hpm_sdmmc_emmc.h:660
emmc_partition_access_t partition_access_option
Definition: hpm_sdmmc_emmc.h:662
emmc_boot_partition_enable_option_t boot_partition_enable_option
Definition: hpm_sdmmc_emmc.h:661
Definition: hpm_sdmmc_emmc.h:177
uint8_t file_format
Definition: hpm_sdmmc_emmc.h:193
emmc_csd_vdd_current_min_t write_current_vdd_min
Definition: hpm_sdmmc_emmc.h:199
emmc_csd_vdd_current_max_t write_current_vdd_max
Definition: hpm_sdmmc_emmc.h:200
emmc_csd_vdd_current_min_t read_current_vdd_min
Definition: hpm_sdmmc_emmc.h:197
uint32_t taac_ns
Definition: hpm_sdmmc_emmc.h:181
bool support_write_block_misalignment
Definition: hpm_sdmmc_emmc.h:183
uint32_t write_protect_group_size
Definition: hpm_sdmmc_emmc.h:208
uint32_t max_freq
Definition: hpm_sdmmc_emmc.h:209
bool is_predefined_file_format
Definition: hpm_sdmmc_emmc.h:189
uint8_t write_speed_factor
Definition: hpm_sdmmc_emmc.h:196
emmc_csd_vdd_current_max_t read_current_vdd_max
Definition: hpm_sdmmc_emmc.h:198
bool support_write_block_partial
Definition: hpm_sdmmc_emmc.h:188
uint64_t device_size_in_bytes
Definition: hpm_sdmmc_emmc.h:210
bool support_temporary_write_protect
Definition: hpm_sdmmc_emmc.h:192
uint32_t max_read_block_len
Definition: hpm_sdmmc_emmc.h:206
bool support_copy
Definition: hpm_sdmmc_emmc.h:190
bool support_permanent_write_protect
Definition: hpm_sdmmc_emmc.h:191
uint32_t erase_group_size
Definition: hpm_sdmmc_emmc.h:205
uint32_t max_write_block_len
Definition: hpm_sdmmc_emmc.h:207
uint8_t spec_version
Definition: hpm_sdmmc_emmc.h:179
uint32_t sector_size
Definition: hpm_sdmmc_emmc.h:204
bool is_dsr_implemented
Definition: hpm_sdmmc_emmc.h:185
uint8_t csd_structure
Definition: hpm_sdmmc_emmc.h:178
uint16_t card_command_class
Definition: hpm_sdmmc_emmc.h:195
uint16_t nsac_cycles
Definition: hpm_sdmmc_emmc.h:180
bool support_content_protect_app
Definition: hpm_sdmmc_emmc.h:186
uint8_t ecc_type
Definition: hpm_sdmmc_emmc.h:201
bool support_read_block_partial
Definition: hpm_sdmmc_emmc.h:182
bool is_write_protection_group_enabled
Definition: hpm_sdmmc_emmc.h:187
bool support_read_block_misalignment
Definition: hpm_sdmmc_emmc.h:184
Definition: hpm_sdmmc_emmc.h:560
uint32_t sleep_current_vcc_ua
Definition: hpm_sdmmc_emmc.h:600
uint32_t rpmb_partition_size
Definition: hpm_sdmmc_emmc.h:569
uint32_t erase_timeout_ms
Definition: hpm_sdmmc_emmc.h:594
uint32_t init_timeout_after_partition_ms
Definition: hpm_sdmmc_emmc.h:589
bool is_all_0xffs_for_erased_region
Definition: hpm_sdmmc_emmc.h:604
uint32_t write_protect_group_size
Definition: hpm_sdmmc_emmc.h:575
bool is_cmd_queue_mode_enabled
Definition: hpm_sdmmc_emmc.h:606
secure_feature_info_t secure_feature_info
Definition: hpm_sdmmc_emmc.h:566
emmc_device_type_t device_type
Definition: hpm_sdmmc_emmc.h:562
uint32_t sector_count
Definition: hpm_sdmmc_emmc.h:578
uint32_t boot_partition_size
Definition: hpm_sdmmc_emmc.h:568
uint32_t trim_timeout_ms
Definition: hpm_sdmmc_emmc.h:590
uint32_t sector_size
Definition: hpm_sdmmc_emmc.h:579
bool is_enhanced_strobe_supported
Definition: hpm_sdmmc_emmc.h:605
uint64_t optimal_trim_unit_size
Definition: hpm_sdmmc_emmc.h:584
uint32_t erase_group_size
Definition: hpm_sdmmc_emmc.h:576
bool use_high_capacity_erase_unit_size
Definition: hpm_sdmmc_emmc.h:603
uint32_t optimal_write_size
Definition: hpm_sdmmc_emmc.h:583
uint32_t operation_codes_timeout_us
Definition: hpm_sdmmc_emmc.h:586
uint32_t power_off_timeout_ms
Definition: hpm_sdmmc_emmc.h:588
uint32_t production_state_awareness_timeout_us
Definition: hpm_sdmmc_emmc.h:599
uint32_t switch_cmd_timeout_ms
Definition: hpm_sdmmc_emmc.h:587
bool is_secure_write_protection_supported
Definition: hpm_sdmmc_emmc.h:561
emmc_write_protection_mode_t write_protection_mode
Definition: hpm_sdmmc_emmc.h:563
uint64_t device_size_in_bytes
Definition: hpm_sdmmc_emmc.h:577
uint32_t max_enhanced_area_size
Definition: hpm_sdmmc_emmc.h:570
uint32_t secure_erase_timeout_ms
Definition: hpm_sdmmc_emmc.h:591
uint32_t secure_trim_timeout_ms
Definition: hpm_sdmmc_emmc.h:592
uint32_t partition_switch_timeout_ms
Definition: hpm_sdmmc_emmc.h:595
uint32_t sleep_current_vccq_ua
Definition: hpm_sdmmc_emmc.h:601
uint32_t sleep_notification_timeout_us
Definition: hpm_sdmmc_emmc.h:597
uint32_t large_unit_size
Definition: hpm_sdmmc_emmc.h:581
boot_info_t boot_info
Definition: hpm_sdmmc_emmc.h:565
uint32_t optimal_read_size
Definition: hpm_sdmmc_emmc.h:582
uint32_t sleep_awake_timeout_ns
Definition: hpm_sdmmc_emmc.h:598
uint32_t out_of_interrupt_timeout_ms
Definition: hpm_sdmmc_emmc.h:596
uint32_t super_page_size
Definition: hpm_sdmmc_emmc.h:574
Definition: hpm_sdmmc_emmc.h:230
uint8_t cmd_set
Definition: hpm_sdmmc_emmc.h:341
uint8_t production_state_awareness_timeout
Definition: hpm_sdmmc_emmc.h:373
uint8_t access_size
Definition: hpm_sdmmc_emmc.h:381
uint8_t pwr_cl_52_195
Definition: hpm_sdmmc_emmc.h:358
uint8_t csd_structure
Definition: hpm_sdmmc_emmc.h:347
uint8_t packed_command_status
Definition: hpm_sdmmc_emmc.h:249
uint8_t erase_group_def
Definition: hpm_sdmmc_emmc.h:296
uint8_t max_packed_writes
Definition: hpm_sdmmc_emmc.h:429
uint8_t erase_timeout_mult
Definition: hpm_sdmmc_emmc.h:379
uint8_t periodic_wakeup
Definition: hpm_sdmmc_emmc.h:263
uint8_t ming_perf_w_4_26
Definition: hpm_sdmmc_emmc.h:364
uint8_t power_off_notification
Definition: hpm_sdmmc_emmc.h:247
uint8_t device_lifetime_estimation_type_a
Definition: hpm_sdmmc_emmc.h:410
uint8_t high_capacity_erase_unit_size
Definition: hpm_sdmmc_emmc.h:380
uint8_t packed_command_failure_index
Definition: hpm_sdmmc_emmc.h:248
uint8_t reserved07
Definition: hpm_sdmmc_emmc.h:323
uint32_t enhanced_user_data_start_address
Definition: hpm_sdmmc_emmc.h:268
uint8_t driver_strength
Definition: hpm_sdmmc_emmc.h:355
uint8_t secure_trim_mult
Definition: hpm_sdmmc_emmc.h:385
uint8_t bkops_support
Definition: hpm_sdmmc_emmc.h:431
uint8_t mode_config
Definition: hpm_sdmmc_emmc.h:243
uint8_t secure_erase_mult
Definition: hpm_sdmmc_emmc.h:386
uint8_t sector_size_emulation
Definition: hpm_sdmmc_emmc.h:258
uint8_t power_class
Definition: hpm_sdmmc_emmc.h:337
uint8_t tcase_support
Definition: hpm_sdmmc_emmc.h:264
uint8_t reserved06
Definition: hpm_sdmmc_emmc.h:297
uint8_t ffu_features
Definition: hpm_sdmmc_emmc.h:421
uint8_t boot_config_prot
Definition: hpm_sdmmc_emmc.h:312
uint8_t device_type
Definition: hpm_sdmmc_emmc.h:354
uint8_t partitioning_setting
Definition: hpm_sdmmc_emmc.h:271
uint8_t boot_wp
Definition: hpm_sdmmc_emmc.h:294
uint8_t max_packed_reads
Definition: hpm_sdmmc_emmc.h:430
uint8_t bkops_status
Definition: hpm_sdmmc_emmc.h:399
uint8_t sleep_notification_timeout
Definition: hpm_sdmmc_emmc.h:371
uint8_t hpi_management
Definition: hpm_sdmmc_emmc.h:276
uint8_t partition_switch_timing
Definition: hpm_sdmmc_emmc.h:357
uint8_t optimal_trim_unit_size
Definition: hpm_sdmmc_emmc.h:406
uint8_t dyncap_needed
Definition: hpm_sdmmc_emmc.h:254
uint8_t trim_mult
Definition: hpm_sdmmc_emmc.h:388
uint8_t sleep_current_vccq
Definition: hpm_sdmmc_emmc.h:374
uint8_t erased_mem_content
Definition: hpm_sdmmc_emmc.h:324
uint32_t number_of_correctly_programmed_fw_sectors
Definition: hpm_sdmmc_emmc.h:413
uint8_t class6_commands_control
Definition: hpm_sdmmc_emmc.h:255
uint8_t boot_partition_size_mult
Definition: hpm_sdmmc_emmc.h:382
uint8_t cmdq_support
Definition: hpm_sdmmc_emmc.h:416
uint8_t pre_eol_info
Definition: hpm_sdmmc_emmc.h:409
uint8_t min_perf_ddr_w_8_52
Definition: hpm_sdmmc_emmc.h:391
uint8_t secure_removal_type
Definition: hpm_sdmmc_emmc.h:236
uint8_t reserved17
Definition: hpm_sdmmc_emmc.h:414
uint8_t bkops_start
Definition: hpm_sdmmc_emmc.h:278
uint8_t production_state_awareness
Definition: hpm_sdmmc_emmc.h:265
uint8_t secure_feature_support
Definition: hpm_sdmmc_emmc.h:387
uint8_t reserved03
Definition: hpm_sdmmc_emmc.h:267
uint8_t min_perf_r_4_26
Definition: hpm_sdmmc_emmc.h:363
uint8_t ffu_status
Definition: hpm_sdmmc_emmc.h:240
uint8_t reserved14
Definition: hpm_sdmmc_emmc.h:362
uint8_t boot_bus_conditions
Definition: hpm_sdmmc_emmc.h:308
uint8_t out_of_interrupt_timing
Definition: hpm_sdmmc_emmc.h:356
uint8_t data_tag_support
Definition: hpm_sdmmc_emmc.h:428
uint8_t boot_info
Definition: hpm_sdmmc_emmc.h:384
uint8_t supported_modes
Definition: hpm_sdmmc_emmc.h:422
uint8_t data_sector_size
Definition: hpm_sdmmc_emmc.h:257
uint8_t sleep_or_awake_timeout
Definition: hpm_sdmmc_emmc.h:372
uint8_t operation_code_timeout
Definition: hpm_sdmmc_emmc.h:420
uint8_t strobe_support
Definition: hpm_sdmmc_emmc.h:331
uint8_t cache_control
Definition: hpm_sdmmc_emmc.h:246
uint32_t cache_size
Definition: hpm_sdmmc_emmc.h:402
uint8_t cmdq_depth
Definition: hpm_sdmmc_emmc.h:415
uint8_t pwr_cl_ddr_52_360
Definition: hpm_sdmmc_emmc.h:395
uint8_t hpi_features
Definition: hpm_sdmmc_emmc.h:432
uint32_t number_of_correctly_programmed_sectors
Definition: hpm_sdmmc_emmc.h:398
uint8_t boot_wp_status
Definition: hpm_sdmmc_emmc.h:295
uint8_t program_cid_or_csd_in_ddr_mode_supported
Definition: hpm_sdmmc_emmc.h:262
uint8_t barrier_support
Definition: hpm_sdmmc_emmc.h:418
uint8_t native_sector_size
Definition: hpm_sdmmc_emmc.h:259
uint8_t cache_flush_policy
Definition: hpm_sdmmc_emmc.h:396
uint8_t secure_wp_info
Definition: hpm_sdmmc_emmc.h:369
uint8_t bus_width
Definition: hpm_sdmmc_emmc.h:330
uint8_t reliable_write_sector_count
Definition: hpm_sdmmc_emmc.h:378
uint8_t pwr_cl_26_195
Definition: hpm_sdmmc_emmc.h:359
uint8_t pwr_cl_26_360
Definition: hpm_sdmmc_emmc.h:361
uint8_t partitioning_attribute
Definition: hpm_sdmmc_emmc.h:272
uint8_t tag_unit_size
Definition: hpm_sdmmc_emmc.h:427
uint8_t write_reliability_setting
Definition: hpm_sdmmc_emmc.h:281
uint8_t tag_resource_size
Definition: hpm_sdmmc_emmc.h:426
uint8_t partitioning_support
Definition: hpm_sdmmc_emmc.h:274
uint8_t ext_csd_rev
Definition: hpm_sdmmc_emmc.h:345
uint8_t pwr_cl_200_130
Definition: hpm_sdmmc_emmc.h:392
uint8_t hs_timing
Definition: hpm_sdmmc_emmc.h:335
uint8_t sanitize_start
Definition: hpm_sdmmc_emmc.h:279
uint8_t high_capacity_write_protect_group_size
Definition: hpm_sdmmc_emmc.h:377
uint8_t supported_cmd_sets
Definition: hpm_sdmmc_emmc.h:433
uint8_t reserved15
Definition: hpm_sdmmc_emmc.h:383
uint8_t pwr_cl_ddr_52_195
Definition: hpm_sdmmc_emmc.h:394
uint8_t command_queue_mode_enable
Definition: hpm_sdmmc_emmc.h:235
uint8_t optimal_read_size
Definition: hpm_sdmmc_emmc.h:408
uint8_t power_off_long_timeout
Definition: hpm_sdmmc_emmc.h:400
uint8_t reserved05
Definition: hpm_sdmmc_emmc.h:289
uint8_t min_perf_r_8_26_4_52
Definition: hpm_sdmmc_emmc.h:365
uint8_t pwr_cl_ddr_200_360
Definition: hpm_sdmmc_emmc.h:403
uint8_t context_capabilities
Definition: hpm_sdmmc_emmc.h:425
uint8_t device_lifetime_estimation_type_b
Definition: hpm_sdmmc_emmc.h:411
uint8_t flush_cache
Definition: hpm_sdmmc_emmc.h:245
uint8_t pwr_cl_200_195
Definition: hpm_sdmmc_emmc.h:393
uint8_t min_perf_ddr_r_8_52
Definition: hpm_sdmmc_emmc.h:390
uint8_t sleep_current_vcc
Definition: hpm_sdmmc_emmc.h:375
uint8_t optimal_write_size
Definition: hpm_sdmmc_emmc.h:407
uint8_t reserved10
Definition: hpm_sdmmc_emmc.h:338
uint8_t init_timeout_after_partitioning
Definition: hpm_sdmmc_emmc.h:397
uint8_t extended_partitions_attribute_support
Definition: hpm_sdmmc_emmc.h:423
uint8_t partition_config
Definition: hpm_sdmmc_emmc.h:322
uint8_t reserved04
Definition: hpm_sdmmc_emmc.h:284
uint8_t generic_cmd6_timeout
Definition: hpm_sdmmc_emmc.h:401
uint8_t cmd_set_revision
Definition: hpm_sdmmc_emmc.h:339
uint8_t mode_operation_codes
Definition: hpm_sdmmc_emmc.h:242
uint8_t pwr_cl_52_360
Definition: hpm_sdmmc_emmc.h:360
uint8_t reserved11
Definition: hpm_sdmmc_emmc.h:340
uint8_t reserved13
Definition: hpm_sdmmc_emmc.h:348
uint8_t rpmb_size
Definition: hpm_sdmmc_emmc.h:282
uint8_t large_unit_size
Definition: hpm_sdmmc_emmc.h:424
uint8_t min_perf_w_8_52
Definition: hpm_sdmmc_emmc.h:368
uint8_t min_perf_w_8_26_4_52
Definition: hpm_sdmmc_emmc.h:366
uint8_t user_wp
Definition: hpm_sdmmc_emmc.h:288
uint8_t reserved09
Definition: hpm_sdmmc_emmc.h:336
uint8_t hw_reset_function
Definition: hpm_sdmmc_emmc.h:275
uint8_t extended_security_error
Definition: hpm_sdmmc_emmc.h:434
uint8_t bad_block_management_mode
Definition: hpm_sdmmc_emmc.h:266
uint8_t init_timeout_after_disabling_emulation
Definition: hpm_sdmmc_emmc.h:256
uint8_t product_state_awareness_enablement
Definition: hpm_sdmmc_emmc.h:237
uint8_t reserved08
Definition: hpm_sdmmc_emmc.h:325
uint8_t barrier_control
Definition: hpm_sdmmc_emmc.h:244
uint8_t fw_config
Definition: hpm_sdmmc_emmc.h:283
uint8_t reserved16
Definition: hpm_sdmmc_emmc.h:389
uint8_t write_reliability_parameter
Definition: hpm_sdmmc_emmc.h:280
uint8_t reserved12
Definition: hpm_sdmmc_emmc.h:346
uint32_t sector_count
Definition: hpm_sdmmc_emmc.h:370
uint8_t bkops_en
Definition: hpm_sdmmc_emmc.h:277
uint8_t min_perf_r_8_52
Definition: hpm_sdmmc_emmc.h:367
Definition: hpm_sdmmc_host.h:180
Definition: hpm_sdmmc_emmc.h:520
bool is_secure_insecure_trim_supported
Definition: hpm_sdmmc_emmc.h:523
bool is_secure_sanitize_supported
Definition: hpm_sdmmc_emmc.h:524
bool is_secure_bad_block_management_supported
Definition: hpm_sdmmc_emmc.h:522
bool is_secure_erase_supported
Definition: hpm_sdmmc_emmc.h:521
Definition: hpm_sdmmc_emmc.h:96
uint32_t app_cmd
Definition: hpm_sdmmc_emmc.h:99
uint32_t device_ecc_failed
Definition: hpm_sdmmc_emmc.h:111
uint32_t lock_unlock_failed
Definition: hpm_sdmmc_emmc.h:114
uint32_t com_crc_err
Definition: hpm_sdmmc_emmc.h:113
uint32_t erase_param
Definition: hpm_sdmmc_emmc.h:117
uint32_t erase_reset
Definition: hpm_sdmmc_emmc.h:104
uint32_t address_error
Definition: hpm_sdmmc_emmc.h:120
uint32_t block_len_error
Definition: hpm_sdmmc_emmc.h:119
uint32_t cc_error
Definition: hpm_sdmmc_emmc.h:110
uint32_t illegal_command
Definition: hpm_sdmmc_emmc.h:112
uint32_t wp_violation
Definition: hpm_sdmmc_emmc.h:116
uint32_t current_state
Definition: hpm_sdmmc_emmc.h:103
uint32_t error
Definition: hpm_sdmmc_emmc.h:109
uint32_t card_status
Definition: hpm_sdmmc_emmc.h:123
uint32_t device_is_locked
Definition: hpm_sdmmc_emmc.h:115
uint32_t out_of_range
Definition: hpm_sdmmc_emmc.h:121
uint32_t ready_for_data
Definition: hpm_sdmmc_emmc.h:102
uint32_t exception_event
Definition: hpm_sdmmc_emmc.h:100
uint32_t wp_erase_skip
Definition: hpm_sdmmc_emmc.h:106
uint32_t cid_or_csd_overwrite
Definition: hpm_sdmmc_emmc.h:107
uint32_t erase_seq_error
Definition: hpm_sdmmc_emmc.h:118
uint32_t switch_error
Definition: hpm_sdmmc_emmc.h:101
Definition: hpm_sdmmc_emmc.h:79
uint8_t oid
Definition: hpm_sdmmc_emmc.h:86
uint8_t mdt
Definition: hpm_sdmmc_emmc.h:82
uint8_t bin
Definition: hpm_sdmmc_emmc.h:89
uint8_t cbx
Definition: hpm_sdmmc_emmc.h:88
uint8_t prv
Definition: hpm_sdmmc_emmc.h:84
uint8_t mid
Definition: hpm_sdmmc_emmc.h:91
uint8_t reserved
Definition: hpm_sdmmc_emmc.h:81
Definition: hpm_sdmmc_emmc.h:214
uint8_t support_high_speed_ddr_at_52mhz_1v8_or_3v
Definition: hpm_sdmmc_emmc.h:219
uint8_t support_hs400_at_200mhz_1v2
Definition: hpm_sdmmc_emmc.h:224
uint8_t support_hs200_at_200mhz_1v8
Definition: hpm_sdmmc_emmc.h:221
uint8_t support_high_speed_sdr_at_52mhz
Definition: hpm_sdmmc_emmc.h:218
uint8_t support_hs400_at_200mhz_1v8
Definition: hpm_sdmmc_emmc.h:223
uint8_t device_type
Definition: hpm_sdmmc_emmc.h:215
uint8_t support_hs200_at_200mhz_1v2
Definition: hpm_sdmmc_emmc.h:222
uint8_t support_high_speed_sdr_at_26mhz
Definition: hpm_sdmmc_emmc.h:217
uint8_t support_high_speed_ddr_at_52mhz_1v2
Definition: hpm_sdmmc_emmc.h:220
Definition: hpm_sdmmc_emmc.h:66
uint32_t ocr_word
Definition: hpm_sdmmc_emmc.h:76
uint32_t voltage_270_360
Definition: hpm_sdmmc_emmc.h:71
uint32_t powerup_status
Definition: hpm_sdmmc_emmc.h:74
uint32_t voltage_200_260
Definition: hpm_sdmmc_emmc.h:70
uint32_t access_mode
Definition: hpm_sdmmc_emmc.h:73
uint32_t voltage_170_195
Definition: hpm_sdmmc_emmc.h:69
Definition: hpm_sdmmc_emmc.h:494
emmc_power_class_3v6_t power_class_3v6
Definition: hpm_sdmmc_emmc.h:495
emmc_power_class_1v95_t power_class_1v95
Definition: hpm_sdmmc_emmc.h:496
Definition: hpm_sdmmc_emmc.h:21
uint8_t cmd_set
Definition: hpm_sdmmc_emmc.h:23
uint32_t argument
Definition: hpm_sdmmc_emmc.h:28
uint8_t index
Definition: hpm_sdmmc_emmc.h:25
uint8_t access
Definition: hpm_sdmmc_emmc.h:26
uint8_t value
Definition: hpm_sdmmc_emmc.h:24