openthread/ot-efr32

Enabling coexistence on efr32mg1 RCP without Simplicity Studio

Closed this issue · 6 comments

I currently build an MG1 RCP image directly from OT without Simplicity Studio. I've made some minor modifications to add custom diag commands and in general building from source fits my workflow much better.

I'd like to enable PTA coexistence now that it's supported. I found the app note and how to configure via SS within sl_rail_util_coex_common_config.h and sl_rail_util_coex_config.h. It appears the underlying OT code checks for the "catalog" item to be defined SL_CATALOG_RAIL_UTIL_COEX_PRESENT.

Wondering the best way to enable coex and include those two files directly in ot-efr32 codebase?

Hi @gabekassel

The coexistence feature for OpenThread is currently supported only via Simplicity Studio. There are additional pieces involved with this feature (besides the configuration headers and the catalog definitions) not available in OT GitHub today. The underlying changes (you are seeing in radio code) were added as a first step, in case, we plan to support it in the future.

Thanks.

Unfortunately it's complicated to use Simplicity Studio given some changes I've made in ot-efr32.

It seems like this attempt compiles, but I've not scoped lines to see if coex is working. Tracing includes in Simplicity Studio, I don't see much more than this.

Hi @gabekassel

I briefly looked at your changes. While I see that your changes are in the right direction, to get coexistence working in OT GitHub, you will definitely need to define SL_CATALOG_RAIL_UTIL_IEEE802154_PHY_SELECT_PRESENT along with SL_CATALOG_RAIL_UTIL_COEX_PRESENT(at minimum) and then resolve the dependencies. When working in Simplicity Studio, these dependencies are resolved via auto-generated files in your project. So you may have to generate these files in Simplicity Studio and then port them manually.

Please note, the above suggestions are just guidelines and have not been tested at our end. Good luck!

Thanks. SL_CATALOG_RAIL_UTIL_COEX_PRESENT is already defined in my change set. I'll play with SL_CATALOG_RAIL_UTIL_IEEE802154_PHY_SELECT_PRESENT

@schinchani thanks for the pointers. do you know if coex metrics should work with MG1 RCP and the Silabs coex implementation? trying to baseline if this works or not

Hi @gabekassel

coex metrics, as defined by OpenThread (via otRadioCoexMetrics) is not supported by the Silabs coex implementation. However, Silabs coex implementation does support counters which track a subset of these metrics.

For a project built from Simplicity Studio, you can retrieve these metrics using the coexistence get-counters command. For more details refer to coexistence_cli.c.

Thanks.