Open source all the way down: developing firmware in parallel with open silicon
Main Room,
How do you write maintainable firmware for rapidly evolving open source silicon designs? This is the challenge developers contributing to the OpenTitan project have faced as the open source silicon root of trust has reached maturity. In this talk we'll cover some of the obstacles we have overcome as the project has progressed — including some challenges that are unique to open source silicon projects.
OpenTitan is an open source silicon root of trust project that includes silicon designs, verification, firmware, and integration tests. We have been developing OpenTitan's firmware in parallel with its silicon designs and have encountered several challenges that come from building execution environments to approximate how the real silicon will behave. Simulations, FPGAs, and now engineering sample silicon, are each used for different kinds of tests and each have their own trade-offs. In order to test the firmware in CI against these platforms in the open, we have had to solve problems around resource-demanding jobs, proprietary tooling, and using specific and sometimes bespoke hardware. This talk will cover some of the issues we have faced testing OpenTitan's firmware, our current solutions to these problems, and where we would like to see progress in the future based on what we've learned. We hope that sharing our knowledge will contribute toward an ecosystem of open silicon projects.