Hardware engineers design their chips with varying levels of understanding to the impact of the design on the firmware writer who has yet to write the code to set up and control the chip. Months later when the firmware writer has a chip and is ready to start coding, the hardware engineer has basically moved on to the next project.

Discussed here are tips and techniques that can be used across several areas of chip design that will help make the firmware writer’s job easier when that time arrives. First, Assumptions and Definitions are mentioned to establish the context of the paper. The paper will then go over the several areas of chip design, such as Firmware Involvement, Documentation, Register Layout, Interrupts, and Errors.