firmware: microchip: add PolarFire SoC Auto Update support
authorConor Dooley <conor.dooley@microchip.com>
Fri, 20 Oct 2023 13:18:43 +0000 (14:18 +0100)
committerConor Dooley <conor.dooley@microchip.com>
Wed, 6 Dec 2023 12:11:45 +0000 (12:11 +0000)
commitec5b0f1193ad461e53d083edad8fab0298fe68e3
treebb8556134c77a9f0e42460009ea45b11aff7a1e1
parentfad13b5b73e0689d19316e5d62341d8396bb261e
firmware: microchip: add PolarFire SoC Auto Update support

Add support for Auto Update reprogramming of the FPGA fabric on
PolarFire SoC, using the fw_upload mechanism a la the
intel-m10-bmc-sec-update driver.

This driver only writes the image to the spi flash & performs
validation on it, as the entire FPGA becomes unusable during the actual
reprogramming of a bitstream. To initiate the reprogramming itself, a
device reset is required. The SBI SRST extension's "cold reboot" can
trigger such a device reset, provided corresponding support has been
enabled in the HSS (Hart Software Services), the provider of SBI runtime
services on PolarFire SoC.

While this is a driver responsible for the reprogramming of an FPGA,
there is no dynamic discovery of devices involved, as runtime
reconfiguration is not possible due to the device reset requirements.
Therefore FPGA manager subsystem is not used by this driver and the FPGA
subsystem maintainers were unwilling to accept it there.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
drivers/firmware/Kconfig
drivers/firmware/Makefile
drivers/firmware/microchip/Kconfig [new file with mode: 0644]
drivers/firmware/microchip/Makefile [new file with mode: 0644]
drivers/firmware/microchip/mpfs-auto-update.c [new file with mode: 0644]