mmc_ext_csdRegular
4.4: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
unsigned int feature_support;
};
4.8: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
unsigned int feature_support;
};
4.10: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
unsigned int feature_support;
};
4.13: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
4.15: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
4.18: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.0: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.3: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.4: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.8: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.11: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.13: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.15: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_boot_mult;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
5.19: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_boot_mult;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
6.2: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_boot_mult;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
6.5: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_boot_mult;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
6.8: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
bool enhanced_rpmb_supported;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_boot_mult;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
arm64: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
armhf: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
ppc64el: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
riscv64: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
aws: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
azure: Absent ⚠️
gcp: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
lowlatency: ✅struct mmc_ext_csd {
u8 rev;
u8 erase_group_def;
u8 sec_feature_support;
u8 rel_sectors;
u8 rel_param;
u8 part_config;
u8 cache_ctrl;
u8 rst_n_function;
u8 max_packed_writes;
u8 max_packed_reads;
u8 packed_event_en;
unsigned int part_time;
unsigned int sa_timeout;
unsigned int generic_cmd6_time;
unsigned int power_off_longtime;
u8 power_off_notification;
unsigned int hs_max_dtr;
unsigned int hs200_max_dtr;
unsigned int sectors;
unsigned int hc_erase_size;
unsigned int hc_erase_timeout;
unsigned int sec_trim_mult;
unsigned int sec_erase_mult;
unsigned int trim_timeout;
bool partition_setting_completed;
long long unsigned int enhanced_area_offset;
unsigned int enhanced_area_size;
unsigned int cache_size;
bool hpi_en;
bool hpi;
unsigned int hpi_cmd;
bool bkops;
bool man_bkops_en;
bool auto_bkops_en;
unsigned int data_sector_size;
unsigned int data_tag_unit_size;
unsigned int boot_ro_lock;
bool boot_ro_lockable;
bool ffu_capable;
bool cmdq_en;
bool cmdq_support;
unsigned int cmdq_depth;
u8 fwrev[8];
u8 raw_exception_status;
u8 raw_partition_support;
u8 raw_rpmb_size_mult;
u8 raw_erased_mem_count;
u8 strobe_support;
u8 raw_ext_csd_structure;
u8 raw_card_type;
u8 raw_driver_strength;
u8 out_of_int_time;
u8 raw_pwr_cl_52_195;
u8 raw_pwr_cl_26_195;
u8 raw_pwr_cl_52_360;
u8 raw_pwr_cl_26_360;
u8 raw_s_a_timeout;
u8 raw_hc_erase_gap_size;
u8 raw_erase_timeout_mult;
u8 raw_hc_erase_grp_size;
u8 raw_sec_trim_mult;
u8 raw_sec_erase_mult;
u8 raw_sec_feature_support;
u8 raw_trim_mult;
u8 raw_pwr_cl_200_195;
u8 raw_pwr_cl_200_360;
u8 raw_pwr_cl_ddr_52_195;
u8 raw_pwr_cl_ddr_52_360;
u8 raw_pwr_cl_ddr_200_360;
u8 raw_bkops_status;
u8 raw_sectors[4];
u8 pre_eol_info;
u8 device_life_time_est_typ_a;
u8 device_life_time_est_typ_b;
unsigned int feature_support;
};
Regular
4.4 and 4.8 ⚠️u8 strobe_support
4.8 and 4.10 ⚠️bool cmdq_support
unsigned int cmdq_depth
4.10 and 4.13 ⚠️bool auto_bkops_en
bool cmdq_en
u8 pre_eol_info
u8 device_life_time_est_typ_a
u8 device_life_time_est_typ_b
4.13 and 4.15 ✅
4.15 and 4.18 ✅
4.18 and 5.0 ✅
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️bool enhanced_rpmb_supported
5.8 and 5.11 ✅
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️u8 raw_boot_mult
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ⚠️u8 max_packed_writes
u8 max_packed_reads
u8 packed_event_en
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and gcp ✅
generic and lowlatency ✅