On Tue, Mar 22, 2022 at 10:15:50PM +0300, Ivan Bornyakov wrote: > 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(). Sorry for late reply. write_sg is for hardwares capable of handling sg buffers in batches. It does not make sense we must implement write_sg() if the image header is not fixed. They are not related. The real problem is we lack the support for variable image header. So maybe add the support in fpga manager core. Thanks, Yilun > 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 > v7 -> v8: another fix for dt_binding_check warning > > 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 > > -- > 2.34.1 >