summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xget_mbp101_ramcfg50
1 files changed, 50 insertions, 0 deletions
diff --git a/get_mbp101_ramcfg b/get_mbp101_ramcfg
new file mode 100755
index 0000000..0eef4e5
--- /dev/null
+++ b/get_mbp101_ramcfg
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+import sys
+
+
+ramconfigs = (
+ '4g_hynix_1600s',
+ '1g_samsung_1600',
+ '4g_samsung_1600s',
+ '1g_hynix_1600',
+ '4g_elpida_1600s',
+ '2g_samsung_1600',
+ '2g_samsung_1333',
+ '2g_hynix_1600',
+ '4g_samsung_1600',
+ '4g_hynix_1600',
+ '2g_elpida_1600s',
+ '2g_elpida_1600',
+ '4g_elpida_1600',
+ '2g_samsung_1600s',
+ '2g_hynix_1600s'
+)
+
+
+def main():
+ reg = None
+ for line in sys.stdin:
+ line = line.strip()
+ if not line.endswith('(GPIO_LVL3)'):
+ continue
+
+ reg = int(line.split(' ')[1], 16)
+ break
+
+ if reg is None:
+ raise Exceptions("failed to parse gpio registers")
+
+ # GPIO68..GPIO71
+ ramcfg = (reg >> 4) & 0xf
+
+ # reverse bit order
+ ramcfg = int('{:04b}'.format(ramcfg)[::-1], 2)
+
+ if ramcfg > len(ramconfigs):
+ print("unsupported memory configuration %d" % ramcfg)
+ else:
+ print(ramconfigs[ramcfg])
+
+
+if __name__ == '__main__':
+ main()