|
20 | 20 |
|
21 | 21 | """
|
22 | 22 |
|
| 23 | +import glob |
23 | 24 | import os
|
24 | 25 | import re
|
25 | 26 |
|
@@ -321,20 +322,23 @@ def _beaglebone_id(self) -> Optional[str]:
|
321 | 322 | if "beaglev-starlight" in board_value:
|
322 | 323 | return boards.BEAGLEV_STARLIGHT
|
323 | 324 |
|
| 325 | + # find device alias at i2c address 0x50 (0-00500, 0-00501, etc) |
| 326 | + nvmem_devices = glob.glob('/sys/bus/nvmem/devices/0-0050*') |
| 327 | + # do not expect there to be more than one eeprom |
| 328 | + if len(nvmem_devices) > 1: |
| 329 | + return None |
| 330 | + |
| 331 | + eeprom_dir = nvmem_devices[0] |
324 | 332 | try:
|
325 |
| - with open("/sys/bus/nvmem/devices/0-00500/nvmem", "rb") as eeprom: |
| 333 | + with open(f"{eeprom_dir}/nvmem", "rb") as eeprom: |
326 | 334 | eeprom_bytes = eeprom.read(16)
|
327 | 335 | except FileNotFoundError:
|
328 | 336 | try:
|
329 |
| - with open("/sys/bus/nvmem/devices/0-00501/nvmem", "rb") as eeprom: |
| 337 | + # Special Case for AI64 |
| 338 | + with open("/sys/bus/nvmem/devices/2-00500/nvmem", "rb") as eeprom: |
330 | 339 | eeprom_bytes = eeprom.read(16)
|
331 | 340 | except FileNotFoundError:
|
332 |
| - try: |
333 |
| - # Special Case for AI64 |
334 |
| - with open("/sys/bus/nvmem/devices/2-00500/nvmem", "rb") as eeprom: |
335 |
| - eeprom_bytes = eeprom.read(16) |
336 |
| - except FileNotFoundError: |
337 |
| - return None |
| 341 | + return None |
338 | 342 |
|
339 | 343 | if eeprom_bytes[:4] != b"\xaaU3\xee":
|
340 | 344 | return None
|
|
0 commit comments