NOTE: this page is for archival only, see the note at the end of the page.

Firmware versioning best practices

On this page we document how you should deal with firmware versioning for both proprietary firmware and open firmware. This includes aspects regarding API changes in the firmware and changes when you do not make API changes.

Firmware API and version numbers

You should use foo-apiversion-codeversion.fw . The apiversion would change when there are API changes within the firmware that require actual driver changes. If you are just doing simple updates you would just bump up the codeversion. The driver can then simply use the API version for the actual filename and it can be symlinked to the latest codeversion for that API.

For example say you have a firmware on API 3, and its code revision is 1.4.1. The firmware would be named:

foo-3-1.4.1.fw

As a short hand this would be symlinked to:

foo-3.fw

API and version number bumps

The general rule of thumb is that if you break or change the firmware API firmware name that the driver uses should change, the API number being bumped once. For example if you have some new driver functionality that requires new firmware then you should use a new firmware name. If your firmware code changes do not involve breaking the driver API then you can keep the API version the same. It is up to you how you deal with the code version changes.

Deprecating old firmware APIs

TBD


This is a static dump of the wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v2, v1