mbox series

[v7,0/2] Microchip Polarfire FPGA manager

Message ID 20220322043219.23770-1-i.bornyakov@metrotek.ru (mailing list archive)
Headers show
Series Microchip Polarfire FPGA manager | expand

Message

Ivan Bornyakov March 22, 2022, 4:32 a.m. UTC
Add support to the FPGA manager for programming Microchip Polarfire
FPGAs over slave SPI interface with .dat formatted bitsream image.

Changelog:
  v1 -> v2: fix printk formating
  v2 -> v3:
   * replace "microsemi" with "microchip"
   * replace prefix "microsemi_fpga_" with "mpf_"
   * more sensible .compatible and .name strings
   * remove unused defines STATUS_SPI_VIOLATION and STATUS_SPI_ERROR
  v3 -> v4: fix unused variable warning
    Put 'mpf_of_ids' definition under conditional compilation, so it
    would not hang unused if CONFIG_OF is not enabled.
  v4 -> v5:
   * prefix defines with MPF_
   * mdelay() -> usleep_range()
   * formatting fixes
   * add DT bindings doc
   * rework fpga_manager_ops.write() to fpga_manager_ops.write_sg()
     We can't parse image header in write_init() because image header
     size is not known beforehand. Thus parsing need to be done in
     fpga_manager_ops.write() callback, but fpga_manager_ops.write()
     also need to be reenterable. On the other hand,
     fpga_manager_ops.write_sg() is called once. Thus, rework usage of
     write() callback to write_sg().
  v5 -> v6: fix patch applying
     I forgot to clean up unrelated local changes which lead to error on
     patch 0001-fpga-microchip-spi-add-Microchip-MPF-FPGA-manager.patch
     applying on vanilla kernel.
  v6 ->v7: fix binding doc to pass dt_binding_check

Ivan Bornyakov (2):
  fpga: microchip-spi: add Microchip MPF FPGA manager
  dt-bindings: fpga: add binding doc for microchip-spi fpga mgr

 .../fpga/microchip,mpf-spi-fpga-mgr.yaml      |  44 ++
 drivers/fpga/Kconfig                          |  10 +
 drivers/fpga/Makefile                         |   1 +
 drivers/fpga/microchip-spi.c                  | 448 ++++++++++++++++++
 4 files changed, 503 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
 create mode 100644 drivers/fpga/microchip-spi.c

Comments

Conor Dooley March 22, 2022, 7:38 p.m. UTC | #1
On 22/03/2022 04:32, Ivan Bornyakov wrote:
> Add support to the FPGA manager for programming Microchip Polarfire
> FPGAs over slave SPI interface with .dat formatted bitsream image.
> 

Finally had a board appear on my desk today with its spi programming
interface exposed, so should be able to test this at last.

Thanks,
Conor.

> Changelog:
>    v1 -> v2: fix printk formating
>    v2 -> v3:
>     * replace "microsemi" with "microchip"
>     * replace prefix "microsemi_fpga_" with "mpf_"
>     * more sensible .compatible and .name strings
>     * remove unused defines STATUS_SPI_VIOLATION and STATUS_SPI_ERROR
>    v3 -> v4: fix unused variable warning
>      Put 'mpf_of_ids' definition under conditional compilation, so it
>      would not hang unused if CONFIG_OF is not enabled.
>    v4 -> v5:
>     * prefix defines with MPF_
>     * mdelay() -> usleep_range()
>     * formatting fixes
>     * add DT bindings doc
>     * rework fpga_manager_ops.write() to fpga_manager_ops.write_sg()
>       We can't parse image header in write_init() because image header
>       size is not known beforehand. Thus parsing need to be done in
>       fpga_manager_ops.write() callback, but fpga_manager_ops.write()
>       also need to be reenterable. On the other hand,
>       fpga_manager_ops.write_sg() is called once. Thus, rework usage of
>       write() callback to write_sg().
>    v5 -> v6: fix patch applying
>       I forgot to clean up unrelated local changes which lead to error on
>       patch 0001-fpga-microchip-spi-add-Microchip-MPF-FPGA-manager.patch
>       applying on vanilla kernel.
>    v6 ->v7: fix binding doc to pass dt_binding_check
> 
> Ivan Bornyakov (2):
>    fpga: microchip-spi: add Microchip MPF FPGA manager
>    dt-bindings: fpga: add binding doc for microchip-spi fpga mgr
> 
>   .../fpga/microchip,mpf-spi-fpga-mgr.yaml      |  44 ++
>   drivers/fpga/Kconfig                          |  10 +
>   drivers/fpga/Makefile                         |   1 +
>   drivers/fpga/microchip-spi.c                  | 448 ++++++++++++++++++
>   4 files changed, 503 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
>   create mode 100644 drivers/fpga/microchip-spi.c
>