Hi all, I am trying to gain access to the EEPROM of a Dell S5212F-ON switch running a vanilla 6.1.44 kernel. The EEPROM is accessed over SMBus on an i801 bus over PCI at "00:1f.4 Class 0c05: 8086:19df i801_smbus". The environment that I'm working under is ONIE (https://github.com/opencomputeproject/onie), and the userspace tools that I'm using to test the access are: - onie-syseeprom: reads the EEPROM by essentially using a combination of 'i2c_smbus_write_byte()' and 'i2c_smbus_read_byte()' commands - i2cdump -y 1 0x50: reads the EEPROM by using 'i2c_smbus_read_byte_data()' commands Using the i2cdump utility read the EEPROM, but produced garbage output. However, the garbage data was consistent all the time - even after reboots. Using the onie-syseeprom tool failed on the ioctl for the i2c_smbus_write_byte with ENXIO - in fact all writes always failed like this. It is also worth mentioning that there are no errors, warnings or crashes/traces in the dmesg output of the running kernel. In fact, the info messages for the i801_smbus look all correct to me and are exactly the same of confirmed working kernels: [ 2.514373] i801_smbus 0000:00:1f.4: enabling device (0000 -> 0003) [ 2.514594] i801_smbus 0000:00:1f.4: SPD Write Disable is set [ 2.514649] i801_smbus 0000:00:1f.4: SMBus using PCI interrupt After a long (and painful) exercise of compiling myself up from a confirmed working 4.9 kernel, I realized that the problem must have been introduced between kernels 6.0 and 6.1. Reverting the "i2c: i801: Prefer async probe" commit (https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=342530f7fe1ada578452c4daa2c9b5902cedf480) fixed the problem, and my userspace tools started working again as expected. Looking at the commit I do not really believe that this should have that drastic of an impact, and that reverting this commit is probably only hiding the underlying real problem. My current semi-educated guess/working theory is that the probing probably never finished when in async mode or something went wrong when doing an async probe? I'm assuming that reverting this commit is definitely not feasible as I seem to be the first person to run into this issue, and I also believe that there is probably a hidden problem. How can I debug this further? Any help is much appreciated. --- Marcus Heese Linux Platform Engineer Hedgehog SONiC Foundation