support multiple models as they all use the same gpios
This commit is contained in:
parent
097752bcb1
commit
b1918fd7dd
6
README
6
README
@ -1,5 +1,9 @@
|
|||||||
USAGE
|
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
|
LICENSE
|
||||||
BSD-2c
|
BSD-2c
|
||||||
|
80
get_macbook_ramconfig
Executable file
80
get_macbook_ramconfig
Executable file
@ -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()
|
@ -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()
|
|
Loading…
x
Reference in New Issue
Block a user