Skip to main content
BlogNewsTop News

Adding Xtensa ISA support in Renode for the Sound Open Firmware project

By March 1, 2022No Comments

This blog originally ran on the Antmicro website. For more blogs and articles like this one, visit https://antmicro.com/blog/.

The Xtensa architecture, originally from Tensilica (now part of Cadence), is the base for a family of licensable, configurable cores, enabling easy customization.
This is especially useful in certain applications such as DSP (digital signal processing), and thereby audio, where careful fine-tuning of the processing core configuration alongside the firmware can yield concrete power and performance advantages which could decide the make or break of a product.

Given the popularity of the architecture in both audio as well as IoT through Espressif’s ESP32-S series, supporting Xtensa in Renode, our open source simulation framework, has long been on our TODO list. Today we are happy to announce that, in collaboration with Google and the Sound Open Firmware project, the Xtensa ISA is now supported in Renode.

Renode and Sound Open Firmware

The Sound Open Firmware project, hosted under the Linux Foundation, aims to enable collaborative development of robust and transparent audio firmware for DSP cores (like HiFi 2/3/4 based on Xtensa) in multimedia consumer devices such as phones or BT speakers. The project involves partners like Google, Intel, NXP, AMD, Realtek and Mediatek who are building shared infrastructure and workflows to enable better security and reuse of code in the audio firmware space while letting partners focus on their specific use cases.

Projects like SOF naturally call for a robust testing methodology and easier debugging which can be used by many parties independently on different hardware, which is exactly what the open source Renode framework enables.

That is why Google’s SOF team contracted us to add Xtensa support, which now opens the possibility for developing on top of Xtensa-based platforms and taking advantage of the framework’s debugging, inspection and testing features.

Sound Open Firmware, Renode and Zephyr

With version 2.0 the SOF project has integrated Zephyr RTOS for the Apollo Lake (APL) platform, which has led to many improvements and simplifications across the project’s codebase.

This is part of a larger trend of converging towards the vendor-neutral RTOS which we are very happy to see given that we are a Platinum member of the Zephyr Project, just like Google, NXP and Intel.

Even though Renode is completely software agnostic, we collaborate closely with the Zephyr project, sharing the vendor-neutral, modular, permissive open source approach to IoT systems development with the RTOS. You can check out the Renode Zephyr dashboard to see which Zephyr-compatible boards are currently supported in Renode.

What’s next?

Having added Xtensa support as the first milestone, we are now working towards enabling better debugging for the HiFi DSP using Renode’s debug features in the SOF use case.

Adding the Xtensa ISA support is interesting from one other perspective – as mentioned earlier, the architecture also powers the wildly popular ESP32-S chip series from Espressif.
The very inexpensive but capable SoCs have paved the way for adding WiFi and BLE to pretty much anything and are therefore used in a wide range of hobbyist as well as commercial projects (we’d even developed automotive and building automation products based on ESP32).

With Espressif’s embracing of the RISC-V architecture for the ESP32-C series (as well as their collaboration with the Zephyr project), and the fact that Renode is a multi-architecture, multi-SoC capable simulator, we are definitely looking forward to supporting these platforms to allow people to build their complex IoT products in a simulation-based, software-driven methodology.

If you are interested in using SOF and/or Zephyr in your new product, or would like to see your platform supported in Renode to enhance your testing capabilities, reach out to us at contact@antmicro.com. Or, if you have any questions or comments in general, please feel free to reach out on the Zephyr Discord Channel. 

Zephyr Project