Find EEPROM device more reliably on BeagleBones
- Use glob builtin to find device on i2c address 0x50 matching `0-0050*` instead of checking paths one at a time
This commit is contained in:
parent
287633cb1b
commit
68fbb3943a
1 changed files with 12 additions and 8 deletions
|
|
@ -20,6 +20,7 @@ Implementation Notes
|
|||
|
||||
"""
|
||||
|
||||
import glob
|
||||
import os
|
||||
import re
|
||||
|
||||
|
|
@ -321,20 +322,23 @@ class Board:
|
|||
if "beaglev-starlight" in board_value:
|
||||
return boards.BEAGLEV_STARLIGHT
|
||||
|
||||
# find device alias at i2c address 0x50 (0-00500, 0-00501, etc)
|
||||
nvmem_devices = glob.glob('/sys/bus/nvmem/devices/0-0050*')
|
||||
# do not expect there to be more than one eeprom
|
||||
if len(nvmem_devices) > 1:
|
||||
return None
|
||||
|
||||
eeprom_dir = nvmem_devices[0]
|
||||
try:
|
||||
with open("/sys/bus/nvmem/devices/0-00500/nvmem", "rb") as eeprom:
|
||||
with open(f"{eeprom_dir}/nvmem", "rb") as eeprom:
|
||||
eeprom_bytes = eeprom.read(16)
|
||||
except FileNotFoundError:
|
||||
try:
|
||||
with open("/sys/bus/nvmem/devices/0-00501/nvmem", "rb") as eeprom:
|
||||
# Special Case for AI64
|
||||
with open("/sys/bus/nvmem/devices/2-00500/nvmem", "rb") as eeprom:
|
||||
eeprom_bytes = eeprom.read(16)
|
||||
except FileNotFoundError:
|
||||
try:
|
||||
# Special Case for AI64
|
||||
with open("/sys/bus/nvmem/devices/2-00500/nvmem", "rb") as eeprom:
|
||||
eeprom_bytes = eeprom.read(16)
|
||||
except FileNotFoundError:
|
||||
return None
|
||||
return None
|
||||
|
||||
if eeprom_bytes[:4] != b"\xaaU3\xee":
|
||||
return None
|
||||
|
|
|
|||
Loading…
Reference in a new issue