diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2021-02-10 15:27:31 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2021-02-10 15:27:31 +0300 |
commit | b1918fd7dde901388dc215ca7779e8e41dbb7df6 (patch) | |
tree | 148789d364c765f3dbe1cd2c06dcbe1010ed8925 | |
parent | 097752bcb135407f404fd8b6478a31b1e24a7f97 (diff) |
support multiple models as they all use the same gpios
-rw-r--r-- | README | 6 | ||||
-rwxr-xr-x | get_macbook_ramconfig | 80 | ||||
-rwxr-xr-x | get_mbp101_ramcfg | 50 |
3 files changed, 85 insertions, 51 deletions
@@ -1,5 +1,9 @@ USAGE - sudo inteltool -g | get_mbp101_ramcfg + sudo inteltool -g | get_macbook_ramcfg -m <MODEL> + +MODELS + mbp101 - MacBook Pro 10,1 + mba52 - MacBook Air 5,2 LICENSE BSD-2c diff --git a/get_macbook_ramconfig b/get_macbook_ramconfig new file mode 100755 index 0000000..d3a32b1 --- /dev/null +++ b/get_macbook_ramconfig @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +import sys +import argparse + + +ramconfigs = { + 'mba52': ( + '4b_hynix', + None, + '8g_hynix', + None, + '4g_samsung', + None, + '8g_samsung', + None, + None, + None, + None, + None, + '4g_elpida', + None, + '8g_elpida', + ), + 'mbp101': ( + '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(): + parser = argparse.ArgumentParser() + parser.add_argument('-m', '--model', + choices=list(ramconfigs.keys()), + help='MacBook model', + required=True) + + args = parser.parse_args() + + configs = ramconfigs[args.model] + + 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(configs) or configs[ramcfg] is None: + print("unsupported memory configuration %d" % ramcfg) + else: + print("%s (RAMCFG=%01x)" % (configs[ramcfg], ramcfg)) + + +if __name__ == '__main__': + main() diff --git a/get_mbp101_ramcfg b/get_mbp101_ramcfg deleted file mode 100755 index 7cead1e..0000000 --- a/get_mbp101_ramcfg +++ /dev/null @@ -1,50 +0,0 @@ -#!/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() |