Add support for non-DDR RAM in display.c

This commit is contained in:
Sam Demeulemeester 2022-05-19 16:02:31 +02:00
parent c1d0c17f23
commit 076e133415
2 changed files with 12 additions and 4 deletions

View File

@ -236,12 +236,16 @@ void post_display_init(void)
if (false) {
// Try to get RAM information from IMC (TODO)
display_spec_mode("IMC: ");
display_spec(ram.freq, ram.type, ram.tCL, ram.tRCD, ram.tRP, ram.tRAS);
display_spec_ddr(ram.freq, ram.type, ram.tCL, ram.tRCD, ram.tRP, ram.tRAS);
display_mode = DISPLAY_MODE_IMC;
} else if (ram.freq > 0 && ram.tCL > 1) {
} else if (ram.freq > 0 && ram.tCL > 0) {
// If not available, grab max memory specs from SPD
display_spec_mode("RAM: ");
display_spec(ram.freq, ram.type, ram.tCL, ram.tRCD, ram.tRP, ram.tRAS);
if (ram.freq <= 166) {
display_spec_sdr(ram.freq, ram.type, ram.tCL, ram.tRCD, ram.tRP, ram.tRAS);
} else {
display_spec_ddr(ram.freq, ram.type, ram.tCL, ram.tRCD, ram.tRP, ram.tRAS);
}
display_mode = DISPLAY_MODE_SPD;
} else {
// If nothing available, fallback to "Using Core" Display

View File

@ -96,10 +96,14 @@ typedef enum {
#define display_spec_mode(mode) \
prints(8,0, mode);
#define display_spec(freq, type, cl, rcd, rp, ras) \
#define display_spec_ddr(freq, type, cl, rcd, rp, ras) \
printf(8,5, "%uMHz (%s-%u) CAS %u-%u-%u-%u", \
freq / 2, type, freq, cl, rcd, rp, ras);
#define display_spec_sdr(freq, type, cl, rcd, rp, ras) \
printf(8,5, "%uMHz (%s PC%u) CAS %u-%u-%u-%u", \
freq, type, freq, cl, rcd, rp, ras);
#define display_dmi_mb(sys_ma, sys_sku) \
dmicol = prints(23, dmicol, sys_man); \
prints(23, dmicol + 1, sys_sku);