|
20 | 20 |
|
21 | 21 | """
|
22 | 22 |
|
| 23 | +import glob |
23 | 24 | import os
|
24 | 25 | import re
|
25 | 26 |
|
@@ -333,20 +334,23 @@ def _beaglebone_id(self) -> Optional[str]:
|
333 | 334 | if "beaglev-starlight" in board_value:
|
334 | 335 | return boards.BEAGLEV_STARLIGHT
|
335 | 336 |
|
| 337 | + # find device alias at i2c address 0x50 (0-00500, 0-00501, etc) |
| 338 | + nvmem_devices = glob.glob("/sys/bus/nvmem/devices/0-0050*") |
| 339 | + # do not expect there to be anything but one eeprom |
| 340 | + if len(nvmem_devices) != 1: |
| 341 | + return None |
| 342 | + |
| 343 | + eeprom_dir = nvmem_devices[0] |
336 | 344 | try:
|
337 |
| - with open("/sys/bus/nvmem/devices/0-00500/nvmem", "rb") as eeprom: |
| 345 | + with open(f"{eeprom_dir}/nvmem", "rb") as eeprom: |
338 | 346 | eeprom_bytes = eeprom.read(16)
|
339 | 347 | except FileNotFoundError:
|
340 | 348 | try:
|
341 |
| - with open("/sys/bus/nvmem/devices/0-00501/nvmem", "rb") as eeprom: |
| 349 | + # Special Case for AI64 |
| 350 | + with open("/sys/bus/nvmem/devices/2-00500/nvmem", "rb") as eeprom: |
342 | 351 | eeprom_bytes = eeprom.read(16)
|
343 | 352 | except FileNotFoundError:
|
344 |
| - try: |
345 |
| - # Special Case for AI64 |
346 |
| - with open("/sys/bus/nvmem/devices/2-00500/nvmem", "rb") as eeprom: |
347 |
| - eeprom_bytes = eeprom.read(16) |
348 |
| - except FileNotFoundError: |
349 |
| - return None |
| 353 | + return None |
350 | 354 |
|
351 | 355 | if eeprom_bytes[:4] != b"\xaaU3\xee":
|
352 | 356 | return None
|
|
0 commit comments