| 
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