|
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