7 #ifndef HPM_SDMMC_EMMC_H
8 #define HPM_SDMMC_EMMC_H
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)
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)
106 uint32_t cid_words[4];
247 uint8_t reserved0[15];
251 uint8_t max_pre_loading_data_size[4];
252 uint8_t pre_loading_data_size[4];
254 uint8_t reserved1[2];
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];
273 uint8_t vendor_specific_field[64];
274 uint8_t reserved02[2];
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];
417 uint8_t firmware_version[8];
418 uint8_t device_version[2];
425 uint8_t vendor_proprietary_health_report[32];
430 uint8_t reserved18[177];
448 uint8_t reserved19[6];
454 typedef enum _emmc_partition {
461 typedef enum _emmc_hs_timing {
585 uint32_t gp_partition_size[4];
622 typedef struct _sdmmc_emmc {
624 uint16_t relative_addr;
uint32_t hpm_stat_t
Definition: hpm_common.h:123
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:815
enum vdd_current_min_def vdd_current_min_t
struct _sdmmc_emmc emmc_card_t
emmc_idle_option_t
Definition: hpm_sdmmc_emmc.h:642
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:960
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:648
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:654
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:1151
hpm_stat_t emmc_enter_sleep_mode(const emmc_card_t *card)
Switch eMMC device into sleep mode.
Definition: hpm_sdmmc_emmc.c:1129
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:885
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:1070
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:1050
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:821
emmc_partition_access_option_t
Definition: hpm_sdmmc_emmc.h:661
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:618
@ emmc_idle_option_go_pre_idle_state
Definition: hpm_sdmmc_emmc.h:644
@ emmc_idle_option_go_idle_state
Definition: hpm_sdmmc_emmc.h:643
@ emmc_idle_option_boot_initialization
Definition: hpm_sdmmc_emmc.h:645
@ 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:651
@ emmc_erase_option_erase
Definition: hpm_sdmmc_emmc.h:649
@ emmc_erase_option_trim
Definition: hpm_sdmmc_emmc.h:650
@ 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:658
@ boot_partition_enable_option_boot_partition1
Definition: hpm_sdmmc_emmc.h:656
@ boot_partition_enable_option_boot_partition2
Definition: hpm_sdmmc_emmc.h:657
@ boot_partition_enable_option_not_enabled
Definition: hpm_sdmmc_emmc.h:655
@ 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:666
@ partition_access_option_read_write_boot_partition2
Definition: hpm_sdmmc_emmc.h:664
@ partition_access_option_read_write_boot_partition1
Definition: hpm_sdmmc_emmc.h:663
@ partition_access_option_access_to_gp_partition2
Definition: hpm_sdmmc_emmc.h:667
@ partition_access_option_access_to_gp_partition3
Definition: hpm_sdmmc_emmc.h:668
@ partition_access_option_access_to_gp_partition4
Definition: hpm_sdmmc_emmc.h:669
@ partition_access_option_read_write_rpmb
Definition: hpm_sdmmc_emmc.h:665
@ partition_access_option_no_access_to_boot_partition
Definition: hpm_sdmmc_emmc.h:662
@ 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:672
bool enable_boot_ack
Definition: hpm_sdmmc_emmc.h:673
emmc_partition_access_t partition_access_option
Definition: hpm_sdmmc_emmc.h:675
emmc_boot_partition_enable_option_t boot_partition_enable_option
Definition: hpm_sdmmc_emmc.h:674
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