diff options
author | Burt P <pburt0@gmail.com> | 2019-07-14 18:03:41 -0500 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2019-07-29 19:43:37 -0700 |
commit | e3377db53867d1f327a93652ee9002f3b52bf906 (patch) | |
tree | 02ea68dc9314837883ead127458f2378a7c0ae4f /modules/devices/dmi_memory.c | |
parent | a68615fc76bd178907531d0d9e837f3aca9d8bae (diff) |
raspberry pi memory types
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'modules/devices/dmi_memory.c')
-rw-r--r-- | modules/devices/dmi_memory.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/modules/devices/dmi_memory.c b/modules/devices/dmi_memory.c index 0aca6b6e..33181de2 100644 --- a/modules/devices/dmi_memory.c +++ b/modules/devices/dmi_memory.c @@ -24,6 +24,8 @@ #include "vendor.h" #include <inttypes.h> +extern const char *dtree_mem_str; /* in devicetree.c */ + #include "dt_util.h" /* for appf() */ #define dmi_spd_msg(...) /* fprintf (stderr, __VA_ARGS__) */ @@ -417,7 +419,7 @@ dmi_mem *dmi_mem_new() { if (!m->sockets && !m->arrays && !m->spd) { m->empty = 1; - return m; + goto dmi_mem_new_last_chance; } GSList *l = NULL, *l2 = NULL; @@ -522,6 +524,23 @@ dmi_mem *dmi_mem_new() { m->system_memory_ram_types |= m->spd_ram_types; } +dmi_mem_new_last_chance: + if (m->empty) { + /* reach */ + if (dtree_mem_str) { + int rt = 0; + m->system_memory_MiB = dmi_read_memory_str_to_MiB(dtree_mem_str); + if (strstr(dtree_mem_str, "DDR4")) rt = DDR4_SDRAM; + else if (strstr(dtree_mem_str, "DDR3")) rt = DDR3_SDRAM; + else if (strstr(dtree_mem_str, "DDR2")) rt = DDR2_SDRAM; + else if (strstr(dtree_mem_str, "DDR")) rt = DDR_SDRAM; + else if (strstr(dtree_mem_str, "DRDRAM")) rt = DIRECT_RAMBUS; + else if (strstr(dtree_mem_str, "RDRAM")) rt = RAMBUS; + if (rt) + m->system_memory_ram_types |= (1 << (rt-1)); + } + } + return m; } |