nyx: info: validate A2 support
Show info about A2 support. Color coded A2 list: White: No support Green: Fully supported Yellow: CMDQ/Cache needs a quirk Red: Broken
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
#include "../hos/pkg1.h"
|
||||
#include <libs/fatfs/ff.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#define SECTORS_TO_MIB_COEFF 11
|
||||
|
||||
extern hekate_config h_cfg;
|
||||
@@ -2187,15 +2189,64 @@ static lv_res_t _create_window_sdcard_info_status(lv_obj_t *btn)
|
||||
else
|
||||
bus_speed = "SDR12";
|
||||
|
||||
char *cpe = NULL;
|
||||
if (sd_storage.ssr.app_class == 2)
|
||||
{
|
||||
u8 *buf = zalloc(512);
|
||||
|
||||
// Directly get and parse ext reg for performance enhance.
|
||||
sd_storage_parse_perf_enhance(&sd_storage, 2, 0, 0, buf);
|
||||
|
||||
bool has_perf_enhance = sd_storage.ser.cache &&
|
||||
sd_storage.ser.cmdq &&
|
||||
sd_storage.ser.cache == sd_storage.ser.cache_ext &&
|
||||
sd_storage.ser.cmdq == sd_storage.ser.cmdq_ext;
|
||||
if (has_perf_enhance)
|
||||
cpe = "#FFDD00 "; // CMDQ/CACHE support via a quirk.
|
||||
else
|
||||
cpe = "#FF3C28 "; // Broken.
|
||||
|
||||
// Get and parse ext reg for performance enhance in spec.
|
||||
sd_storage_get_ext_regs(&sd_storage, buf);
|
||||
|
||||
if (sd_storage.ser.valid)
|
||||
{
|
||||
has_perf_enhance = sd_storage.ser.cache &&
|
||||
sd_storage.ser.cmdq &&
|
||||
sd_storage.ser.cache == sd_storage.ser.cache_ext &&
|
||||
sd_storage.ser.cmdq == sd_storage.ser.cmdq_ext;
|
||||
|
||||
if (has_perf_enhance)
|
||||
cpe = NULL; // CMDQ/CACHE support in spec.
|
||||
else
|
||||
cpe = "#FF3C28 "; // Broken.
|
||||
}
|
||||
|
||||
free(buf);
|
||||
}
|
||||
|
||||
s_printf(txt_buf,
|
||||
"#00DDFF v%d.0#\n%02X\n%d MiB\n%X (CP %X)\n%d\n%d MB/s (%d MHz)\n%d (AU: %d %s\nU%d V%d A%d\n%s\n\n%s",
|
||||
sd_storage.csd.structure + 1, sd_storage.csd.cmdclass,
|
||||
sd_storage.sec_cnt >> 11, sd_storage.sec_cnt, sd_storage.ssr.protected_size >> 9,
|
||||
sd_storage.ssr.bus_width, sd_storage.csd.busspeed,
|
||||
"#00DDFF v%d.0#\n"
|
||||
"%02X\n"
|
||||
"%d MiB\n"
|
||||
"%X (CP %X)\n"
|
||||
"%d\n"
|
||||
"%d MB/s (%d MHz)\n"
|
||||
"%d (AU: %d %s\n"
|
||||
"U%d V%d %sA%d%s\n"
|
||||
"%s\n\n"
|
||||
"%s",
|
||||
sd_storage.csd.structure + 1,
|
||||
sd_storage.csd.cmdclass,
|
||||
sd_storage.sec_cnt >> 11,
|
||||
sd_storage.sec_cnt, sd_storage.ssr.protected_size >> 9,
|
||||
sd_storage.ssr.bus_width,
|
||||
sd_storage.csd.busspeed,
|
||||
(sd_storage.csd.busspeed > 10) ? (sd_storage.csd.busspeed * 2) : 50,
|
||||
sd_storage.ssr.speed_class, uhs_au_size, uhs_au_mb ? "MiB)" : "KiB)",
|
||||
sd_storage.ssr.uhs_grade, sd_storage.ssr.video_class, sd_storage.ssr.app_class,
|
||||
bus_speed, wp_info);
|
||||
sd_storage.ssr.uhs_grade, sd_storage.ssr.video_class, cpe ? cpe : "", sd_storage.ssr.app_class, cpe ? "#" : "",
|
||||
bus_speed,
|
||||
wp_info);
|
||||
|
||||
lv_label_set_text(lb_val2, txt_buf);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user