nyx: info: sd improvements
- Better DDR200 detection (experimental) - Add Kowin MID - Add Vendor bits info
This commit is contained in:
@@ -2319,7 +2319,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
lv_obj_t * lb_val = lv_label_create(val, lb_desc);
|
lv_obj_t * lb_val = lv_label_create(val, lb_desc);
|
||||||
|
|
||||||
char *txt_buf = (char *)malloc(SZ_16K);
|
char *txt_buf = (char *)malloc(SZ_16K);
|
||||||
s_printf(txt_buf, "#00DDFF SD v%d.00#\n", sd_storage_get_scr_sda_ver(&sd_storage));
|
s_printf(txt_buf, "#00DDFF v%d.00#\n", sd_storage_get_scr_sda_ver(&sd_storage));
|
||||||
|
|
||||||
// Identify manufacturer.
|
// Identify manufacturer.
|
||||||
switch (sd_storage.cid.manfid)
|
switch (sd_storage.cid.manfid)
|
||||||
@@ -2360,6 +2360,9 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
case 0x1D:
|
case 0x1D:
|
||||||
strcat(txt_buf, "AData ");
|
strcat(txt_buf, "AData ");
|
||||||
break;
|
break;
|
||||||
|
case 0x22:
|
||||||
|
strcat(txt_buf, "Kowin"); // #E: Digiera.
|
||||||
|
break;
|
||||||
case 0x27:
|
case 0x27:
|
||||||
strcat(txt_buf, "Phison ");
|
strcat(txt_buf, "Phison ");
|
||||||
break;
|
break;
|
||||||
@@ -2388,7 +2391,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
strcat(txt_buf, "Bongiovi ");
|
strcat(txt_buf, "Bongiovi ");
|
||||||
break;
|
break;
|
||||||
case 0x74:
|
case 0x74:
|
||||||
strcat(txt_buf, "Jiaelec ");
|
strcat(txt_buf, "Jiaelec "); // Transcend.
|
||||||
break;
|
break;
|
||||||
case 0x76:
|
case 0x76:
|
||||||
strcat(txt_buf, "Patriot ");
|
strcat(txt_buf, "Patriot ");
|
||||||
@@ -2412,7 +2415,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
strcat(txt_buf, "Taishin ");
|
strcat(txt_buf, "Taishin ");
|
||||||
break;
|
break;
|
||||||
case 0xAD:
|
case 0xAD:
|
||||||
strcat(txt_buf, "Longsys ");
|
strcat(txt_buf, "Longsys "); // Lexar/FORESEE.
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
strcat(txt_buf, "Unknown ");
|
strcat(txt_buf, "Unknown ");
|
||||||
@@ -2466,10 +2469,11 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
"Capacity (LBA):\n"
|
"Capacity (LBA):\n"
|
||||||
"Bus Width:\n"
|
"Bus Width:\n"
|
||||||
"Current Rate:\n"
|
"Current Rate:\n"
|
||||||
|
"Max Bus Speed:\n"
|
||||||
"Speed Class:\n"
|
"Speed Class:\n"
|
||||||
"UHS Classes:\n"
|
"UHS Classes:\n"
|
||||||
"Max Bus Speed:\n\n"
|
"Write Protect:\n"
|
||||||
"Write Protect:"
|
"Vendor Info:"
|
||||||
);
|
);
|
||||||
lv_obj_set_width(lb_desc2, lv_obj_get_width(desc2));
|
lv_obj_set_width(lb_desc2, lv_obj_get_width(desc2));
|
||||||
lv_obj_align(desc2, val, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 5 * 3, 0);
|
lv_obj_align(desc2, val, LV_ALIGN_OUT_RIGHT_MID, LV_DPI / 5 * 3, 0);
|
||||||
@@ -2482,15 +2486,15 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
char *wp_info;
|
char *wp_info;
|
||||||
switch (sd_storage.csd.write_protect)
|
switch (sd_storage.csd.write_protect)
|
||||||
{
|
{
|
||||||
|
case 0:
|
||||||
|
wp_info = "Inactive";
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
wp_info = "Temporary";
|
wp_info = "Temporary";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2 ... 3:
|
||||||
case 3:
|
|
||||||
wp_info = "Permanent";
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
wp_info = "None";
|
wp_info = "Permanent";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2506,7 +2510,7 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
sd_storage_get_fmodes(&sd_storage, NULL, &fmodes);
|
sd_storage_get_fmodes(&sd_storage, NULL, &fmodes);
|
||||||
|
|
||||||
char *bus_speed;
|
char *bus_speed;
|
||||||
if (fmodes.cmd_system & SD_MODE_UHS_DDR200)
|
if (sd_storage_get_ddr200_support(&sd_storage))
|
||||||
bus_speed = "DDR200";
|
bus_speed = "DDR200";
|
||||||
else if (fmodes.access_mode & SD_MODE_UHS_SDR104)
|
else if (fmodes.access_mode & SD_MODE_UHS_SDR104)
|
||||||
bus_speed = "SDR104";
|
bus_speed = "SDR104";
|
||||||
@@ -2562,10 +2566,11 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
"%X (CP %X)\n"
|
"%X (CP %X)\n"
|
||||||
"%d\n"
|
"%d\n"
|
||||||
"%d MB/s (%d MHz)\n"
|
"%d MB/s (%d MHz)\n"
|
||||||
|
"%s%s\n"
|
||||||
"%d (AU: %d %s\n"
|
"%d (AU: %d %s\n"
|
||||||
"U%d V%d %sA%d%s\n"
|
"U%d V%d %sA%d%s\n"
|
||||||
"%s%s\n\n"
|
"%s\n"
|
||||||
"%s",
|
"%X %08X",
|
||||||
sd_storage.csd.structure + 1,
|
sd_storage.csd.structure + 1,
|
||||||
sd_storage.csd.cmdclass,
|
sd_storage.csd.cmdclass,
|
||||||
sd_storage.sec_cnt >> 11,
|
sd_storage.sec_cnt >> 11,
|
||||||
@@ -2573,10 +2578,11 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
|||||||
sd_storage.ssr.bus_width,
|
sd_storage.ssr.bus_width,
|
||||||
sd_storage.csd.busspeed,
|
sd_storage.csd.busspeed,
|
||||||
(sd_storage.csd.busspeed > 10) ? (sd_storage.csd.busspeed * 2) : 50,
|
(sd_storage.csd.busspeed > 10) ? (sd_storage.csd.busspeed * 2) : 50,
|
||||||
|
bus_speed, sd_storage.has_pcie ? " | SDE985" : "", // PCIe G3L1 (985 MB/s).
|
||||||
sd_storage.ssr.speed_class, uhs_au_size, uhs_au_mb ? "MiB)" : "KiB)",
|
sd_storage.ssr.speed_class, uhs_au_size, uhs_au_mb ? "MiB)" : "KiB)",
|
||||||
sd_storage.ssr.uhs_grade, sd_storage.ssr.video_class, cpe ? cpe : "", sd_storage.ssr.app_class, cpe ? "#" : "",
|
sd_storage.ssr.uhs_grade, sd_storage.ssr.video_class, cpe ? cpe : "", sd_storage.ssr.app_class, cpe ? "#" : "",
|
||||||
bus_speed, sd_storage.has_pcie ? " | SDE985" : "", // PCIe G3L1 (985 MB/s).
|
wp_info,
|
||||||
wp_info);
|
sd_storage.cid.rsvd, sd_storage.scr.vendor);
|
||||||
|
|
||||||
lv_label_set_text(lb_val2, txt_buf);
|
lv_label_set_text(lb_val2, txt_buf);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user