<div dir="ltr">Hi James,<div><br></div><div>I'll take a look at them. Thanks for pointing the related code out!</div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">- Alex Qiu</div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 8, 2020 at 10:02 AM James Feist <<a href="mailto:james.feist@linux.intel.com">james.feist@linux.intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 1/8/20 9:54 AM, Alex Qiu wrote:<br>
> Hi James,<br>
> <br>
> Yes, we have multiple devices sitting behind the mux, and they're <br>
> onboard devices instead of standalone FRUs. The parent bus is described <br>
> as the FRU for each PCIe card.<br>
> <br>
> After naming the mux channels, can these names be used somehow to config <br>
> I2C devices? For example, {"Bus": "$bus", "ChannelNames": <br>
> ["C0", "C1", "C2", "C3"]} for the mux, and {"Bus": "$bus.C1"} for <br>
> devices behind the mux on channel 1.<br>
<br>
This syntax doesn't exist today.. On all our systems things behind the <br>
mux are again detectable, so we haven't hit this problem. Right now the <br>
template replacement is purely based on the found device on d-bus. So <br>
$bus is the bus property from the xyz.openbmc_project.FruDevice <br>
interface, there's no way to trace that to a mux channel, as it's just a <br>
d-bus property.<br>
<br>
The code you're looking for is here: <br>
<a href="https://github.com/openbmc/entity-manager/blob/01542d2af1b1f45335cc8813fffcd3ed07f22989/src/Utils.cpp#L144" rel="noreferrer" target="_blank">https://github.com/openbmc/entity-manager/blob/01542d2af1b1f45335cc8813fffcd3ed07f22989/src/Utils.cpp#L144</a> <br>
<br>
<br>
Along with the channel identification logic here: <br>
<a href="https://github.com/openbmc/entity-manager/blob/01542d2af1b1f45335cc8813fffcd3ed07f22989/src/Overlay.cpp#L112" rel="noreferrer" target="_blank">https://github.com/openbmc/entity-manager/blob/01542d2af1b1f45335cc8813fffcd3ed07f22989/src/Overlay.cpp#L112</a><br>
<br>
You could probably add some special syntax to make this work. Luckily <br>
this is the one part of entity-manager that is unit-tested, so that <br>
should help you <br>
<a href="https://github.com/openbmc/entity-manager/blob/master/test/test_entity-manager.cpp" rel="noreferrer" target="_blank">https://github.com/openbmc/entity-manager/blob/master/test/test_entity-manager.cpp</a><br>
<br>
<br>
-James<br>
<br>
<br>
<br>
<br>
</blockquote></div>