Re: Assigning fixed numbers to i2c buses via ACPI code

Konstantin Aladyshev
2025-02-12T11:56:49Z

I'm running OpenBmc project on the x86 host. One of the applications
from the OpenBmc ecosystem tries to find IPMI FRU devices on all
available I2C buses. For that it would perform some transactions for
every possible I2C device on every I2C bus to understand if it is an
EEPROM or not.
If the user doesn't want to scan some buses it can provide
blocklist.json with addresses of the buses which shouldn't be scanned
for FRU. But this blocklist operates with absolute addresses, which is
why I want to be sure that my I2C buses would have fixed numbers on
all systems.
Also it can be the case when the user wants to make sure that buses
behind different I2C muxes are numbered in a particular way.
Shortly speaking, existing OpenBmc software relies on this alias
functionality in a couple of different scenarios. There are many
examples of its usage in the BMC DTS code for different machines.
Therefore I wonder if it is possible to do the same with x86 via ACPI
tables to support existing OpenBmc applications.

Best regards,
Konstantin Aladyshev

On Wed, Feb 12, 2025 at 2:08 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Wed, Feb 12, 2025 at 11:18:44AM +0300, Konstantin Aladyshev wrote:
> > Hello!
> >
> > Is it possible to assign fixed numbers to i2c buses via ACPI code?
> >
> > In DTS code it is done via aliases
> > (https://docs.kernel.org/i2c/i2c-sysfs.html#caveat).
> >
> > For example:
> > ```
> > aliases {
> > i2c20 = &imux20;
> > }
> >
> > &i2c1 {
> > status = "okay";
> >
> > i2c-mux@77 {
> > ...
> > imux20: i2c@0 {
> > ...
> > }
> > ...
> > }
> > }
> > ```
> >
> > Is it possible to do something like that in ACPI code?
>
> Why? What the problem do you actually have?
>
> --
> With Best Regards,
> Andy Shevchenko
>
>