Bhupesh Sharma

Bhupesh Sharma

● Worked with Silicon vendors and open-source software giants in the past.
● Been hacking on boot loaders & kernel since past 18 years.
● Contribute to: Linux, EFI/u-boot bootloader & Secure FW
● User-space utilities like: kexec-tools, and Makedumpfile.
● Co-maintainer hat(s): U-boot UFS, Qcom Ethernet & crash-utility tool.
● Area of Interest: 0-day Silicon bringup using open-source software.

Getting your open source software ready for 0-day SoC bringup : success stories and strategies

The cost of taping out a System on Chip (SoC) typically can range from $2 to $3 million and varies depending on the process node, size, complexity and the services required. All the SOC design companies aim for timely tape out with Zero silicon bugs however in reality most of the chips required multiple iterations before final delivery to customers. Program failure can have a severe impact on a company. It can lead to financial losses, and customer dissatisfaction, and can even damage the company's reputation. It can lead to a lack of trust in the company's products or services.

In addition to design issues, if the software that runs on the SoC, is not developed with the mindset that it should run on the SoC on the first day the chip is taped out, the probability of program failure and overall cost increases.

Having worked with several ARM based Silicon vendors and on different Silicon bringup strategies - which includes running bootloaders, secure firmware, rich OS like Linux, or RTOS like FreeRTOS, I can share some success stories using solid strategies to get software setup before the actual Silicon is ready. Open source software and firmware plays a critical role in getting such pre-silicon software ready - as one can reuse existing code, try it on pre-silicon emulation or simulation platforms and even upstream the early boot-up code.

I will share an example of how I worked on enabling Freescale based silicon bringup code for a 0-day bringup, which included running das u-boot bootloader, secure firmware (ARM trusted firmware), Linux and a simple networking user-space application on the very first day the Silicon was taped out from fab. I will also share how simulator based early software development was done for the same (e.g. https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts#L7).

Contributing support for a new upcoming Silicon platform back to upstream allows us to use open-source software directly during Silicon + board bringup, thus de-coupling the requirement of the actual bringup site being co-located with the geography where the fab is located (for 0-day bringup).

I will also share the challenges normally faced while doing the same and how we can possibly leverage open-source software advocacy for working around these. I will also share some best practices one can employ while choosing the right simulator or emulator model(s) for pre-silicon testing of boot software, especially if we want to boot all the way upto linux / android userland.