[PATCH 0/2] Thunderbolt: allow vendor ID override for NVM programming

Francisco Blas Izquierdo Riera (klondike)
2021-11-24T16:41:45Z

Currently, the vendor ID reported by the chipset is checked before to
avoid accidentally programming devices from unsupported vendors with
a different NVM structure.

Certain Thunderbolt devices store the vendor ID in the NVM, therefore
if the NVM has become corrrupted the device will report an invalid
vendor ID and reflashing will be impossible on GNU/Linux even if the
device can boot in safe mode.

Such devices can still be programmed just fine if the vendor ID check
is overridden. Nevertheless, overriding these checks introduces the
risk of damaging controllers from other manufacturers which is a
clearly undesirable result.

Instead we allow the user to make a concious choice to override the
vendor ID by passing it as a parameter to this module. Currently,
this is done by expanding the condition to validate the vendor ID
to also check this parameter's value but, if new NVM structures
are added and a choice has to be made, the code should prefer this
parameter over the harrdware reported one when making the choice.

This patch also updates the Thunderbolt documentation to explain
how this parameter works.

root (2):
thunderbolt: allow vendor ID override for NVM programming
Documentation: explain how to override Thunderbolt Vendor ID

Documentation/admin-guide/thunderbolt.rst | 10 ++++++++++
drivers/thunderbolt/switch.c | 9 ++++++++-
2 files changed, 18 insertions(+), 1 deletion(-)