forked from Minki/linux
5f8d4a9008
Add support to the FPGA manager for programming Microchip Polarfire FPGAs over slave SPI interface with .dat formatted bitsream image. Signed-off-by: Ivan Bornyakov <i.bornyakov@metrotek.ru> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Tested-by: Conor Dooley <conor.dooley@microchip.com> Acked-by: Xu Yilun <yilun.xu@intel.com> Link: https://lore.kernel.org/r/20220623163248.3672-4-i.bornyakov@metrotek.ru Signed-off-by: Xu Yilun <yilun.xu@intel.com>
267 lines
8.7 KiB
Plaintext
267 lines
8.7 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# FPGA framework configuration
|
|
#
|
|
|
|
menuconfig FPGA
|
|
tristate "FPGA Configuration Framework"
|
|
help
|
|
Say Y here if you want support for configuring FPGAs from the
|
|
kernel. The FPGA framework adds an FPGA manager class and FPGA
|
|
manager drivers.
|
|
|
|
if FPGA
|
|
|
|
config FPGA_MGR_SOCFPGA
|
|
tristate "Altera SOCFPGA FPGA Manager"
|
|
depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST
|
|
help
|
|
FPGA manager driver support for Altera SOCFPGA.
|
|
|
|
config FPGA_MGR_SOCFPGA_A10
|
|
tristate "Altera SoCFPGA Arria10"
|
|
depends on ARCH_INTEL_SOCFPGA || COMPILE_TEST
|
|
select REGMAP_MMIO
|
|
help
|
|
FPGA manager driver support for Altera Arria10 SoCFPGA.
|
|
|
|
config ALTERA_PR_IP_CORE
|
|
tristate "Altera Partial Reconfiguration IP Core"
|
|
help
|
|
Core driver support for Altera Partial Reconfiguration IP component
|
|
|
|
config ALTERA_PR_IP_CORE_PLAT
|
|
tristate "Platform support of Altera Partial Reconfiguration IP Core"
|
|
depends on ALTERA_PR_IP_CORE && OF && HAS_IOMEM
|
|
help
|
|
Platform driver support for Altera Partial Reconfiguration IP
|
|
component
|
|
|
|
config FPGA_MGR_ALTERA_PS_SPI
|
|
tristate "Altera FPGA Passive Serial over SPI"
|
|
depends on SPI
|
|
select BITREVERSE
|
|
help
|
|
FPGA manager driver support for Altera Arria/Cyclone/Stratix
|
|
using the passive serial interface over SPI.
|
|
|
|
config FPGA_MGR_ALTERA_CVP
|
|
tristate "Altera CvP FPGA Manager"
|
|
depends on PCI
|
|
help
|
|
FPGA manager driver support for Arria-V, Cyclone-V, Stratix-V,
|
|
Arria 10 and Stratix10 Altera FPGAs using the CvP interface over PCIe.
|
|
|
|
config FPGA_MGR_ZYNQ_FPGA
|
|
tristate "Xilinx Zynq FPGA"
|
|
depends on ARCH_ZYNQ || COMPILE_TEST
|
|
help
|
|
FPGA manager driver support for Xilinx Zynq FPGAs.
|
|
|
|
config FPGA_MGR_STRATIX10_SOC
|
|
tristate "Intel Stratix10 SoC FPGA Manager"
|
|
depends on (ARCH_INTEL_SOCFPGA && INTEL_STRATIX10_SERVICE)
|
|
help
|
|
FPGA manager driver support for the Intel Stratix10 SoC.
|
|
|
|
config FPGA_MGR_XILINX_SPI
|
|
tristate "Xilinx Configuration over Slave Serial (SPI)"
|
|
depends on SPI
|
|
help
|
|
FPGA manager driver support for Xilinx FPGA configuration
|
|
over slave serial interface.
|
|
|
|
config FPGA_MGR_ICE40_SPI
|
|
tristate "Lattice iCE40 SPI"
|
|
depends on OF && SPI
|
|
help
|
|
FPGA manager driver support for Lattice iCE40 FPGAs over SPI.
|
|
|
|
config FPGA_MGR_MACHXO2_SPI
|
|
tristate "Lattice MachXO2 SPI"
|
|
depends on SPI
|
|
help
|
|
FPGA manager driver support for Lattice MachXO2 configuration
|
|
over slave SPI interface.
|
|
|
|
config FPGA_MGR_TS73XX
|
|
tristate "Technologic Systems TS-73xx SBC FPGA Manager"
|
|
depends on ARCH_EP93XX && MACH_TS72XX
|
|
help
|
|
FPGA manager driver support for the Altera Cyclone II FPGA
|
|
present on the TS-73xx SBC boards.
|
|
|
|
config FPGA_BRIDGE
|
|
tristate "FPGA Bridge Framework"
|
|
help
|
|
Say Y here if you want to support bridges connected between host
|
|
processors and FPGAs or between FPGAs.
|
|
|
|
config SOCFPGA_FPGA_BRIDGE
|
|
tristate "Altera SoCFPGA FPGA Bridges"
|
|
depends on ARCH_INTEL_SOCFPGA && FPGA_BRIDGE
|
|
help
|
|
Say Y to enable drivers for FPGA bridges for Altera SOCFPGA
|
|
devices.
|
|
|
|
config ALTERA_FREEZE_BRIDGE
|
|
tristate "Altera FPGA Freeze Bridge"
|
|
depends on FPGA_BRIDGE && HAS_IOMEM
|
|
help
|
|
Say Y to enable drivers for Altera FPGA Freeze bridges. A
|
|
freeze bridge is a bridge that exists in the FPGA fabric to
|
|
isolate one region of the FPGA from the busses while that
|
|
region is being reprogrammed.
|
|
|
|
config XILINX_PR_DECOUPLER
|
|
tristate "Xilinx LogiCORE PR Decoupler"
|
|
depends on FPGA_BRIDGE
|
|
depends on HAS_IOMEM
|
|
help
|
|
Say Y to enable drivers for Xilinx LogiCORE PR Decoupler
|
|
or Xilinx Dynamic Function eXchange AIX Shutdown Manager.
|
|
The PR Decoupler exists in the FPGA fabric to isolate one
|
|
region of the FPGA from the busses while that region is
|
|
being reprogrammed during partial reconfig.
|
|
The Dynamic Function eXchange AXI shutdown manager prevents
|
|
AXI traffic from passing through the bridge. The controller
|
|
safely handles AXI4MM and AXI4-Lite interfaces on a
|
|
Reconfigurable Partition when it is undergoing dynamic
|
|
reconfiguration, preventing the system deadlock that can
|
|
occur if AXI transactions are interrupted by DFX.
|
|
|
|
config FPGA_REGION
|
|
tristate "FPGA Region"
|
|
depends on FPGA_BRIDGE
|
|
help
|
|
FPGA Region common code. An FPGA Region controls an FPGA Manager
|
|
and the FPGA Bridges associated with either a reconfigurable
|
|
region of an FPGA or a whole FPGA.
|
|
|
|
config OF_FPGA_REGION
|
|
tristate "FPGA Region Device Tree Overlay Support"
|
|
depends on OF && FPGA_REGION
|
|
help
|
|
Support for loading FPGA images by applying a Device Tree
|
|
overlay.
|
|
|
|
config FPGA_DFL
|
|
tristate "FPGA Device Feature List (DFL) support"
|
|
select FPGA_BRIDGE
|
|
select FPGA_REGION
|
|
depends on HAS_IOMEM
|
|
help
|
|
Device Feature List (DFL) defines a feature list structure that
|
|
creates a linked list of feature headers within the MMIO space
|
|
to provide an extensible way of adding features for FPGA.
|
|
Driver can walk through the feature headers to enumerate feature
|
|
devices (e.g. FPGA Management Engine, Port and Accelerator
|
|
Function Unit) and their private features for target FPGA devices.
|
|
|
|
Select this option to enable common support for Field-Programmable
|
|
Gate Array (FPGA) solutions which implement Device Feature List.
|
|
It provides enumeration APIs and feature device infrastructure.
|
|
|
|
config FPGA_DFL_FME
|
|
tristate "FPGA DFL FME Driver"
|
|
depends on FPGA_DFL && HWMON && PERF_EVENTS
|
|
help
|
|
The FPGA Management Engine (FME) is a feature device implemented
|
|
under Device Feature List (DFL) framework. Select this option to
|
|
enable the platform device driver for FME which implements all
|
|
FPGA platform level management features. There shall be one FME
|
|
per DFL based FPGA device.
|
|
|
|
config FPGA_DFL_FME_MGR
|
|
tristate "FPGA DFL FME Manager Driver"
|
|
depends on FPGA_DFL_FME && HAS_IOMEM
|
|
help
|
|
Say Y to enable FPGA Manager driver for FPGA Management Engine.
|
|
|
|
config FPGA_DFL_FME_BRIDGE
|
|
tristate "FPGA DFL FME Bridge Driver"
|
|
depends on FPGA_DFL_FME && HAS_IOMEM
|
|
help
|
|
Say Y to enable FPGA Bridge driver for FPGA Management Engine.
|
|
|
|
config FPGA_DFL_FME_REGION
|
|
tristate "FPGA DFL FME Region Driver"
|
|
depends on FPGA_DFL_FME && HAS_IOMEM
|
|
help
|
|
Say Y to enable FPGA Region driver for FPGA Management Engine.
|
|
|
|
config FPGA_DFL_AFU
|
|
tristate "FPGA DFL AFU Driver"
|
|
depends on FPGA_DFL
|
|
help
|
|
This is the driver for FPGA Accelerated Function Unit (AFU) which
|
|
implements AFU and Port management features. A User AFU connects
|
|
to the FPGA infrastructure via a Port. There may be more than one
|
|
Port/AFU per DFL based FPGA device.
|
|
|
|
config FPGA_DFL_NIOS_INTEL_PAC_N3000
|
|
tristate "FPGA DFL NIOS Driver for Intel PAC N3000"
|
|
depends on FPGA_DFL
|
|
select REGMAP
|
|
help
|
|
This is the driver for the N3000 Nios private feature on Intel
|
|
PAC (Programmable Acceleration Card) N3000. It communicates
|
|
with the embedded Nios processor to configure the retimers on
|
|
the card. It also instantiates the SPI master (spi-altera) for
|
|
the card's BMC (Board Management Controller).
|
|
|
|
config FPGA_DFL_PCI
|
|
tristate "FPGA DFL PCIe Device Driver"
|
|
depends on PCI && FPGA_DFL
|
|
help
|
|
Select this option to enable PCIe driver for PCIe-based
|
|
Field-Programmable Gate Array (FPGA) solutions which implement
|
|
the Device Feature List (DFL). This driver provides interfaces
|
|
for userspace applications to configure, enumerate, open and access
|
|
FPGA accelerators on the FPGA DFL devices, enables system level
|
|
management functions such as FPGA partial reconfiguration, power
|
|
management and virtualization with DFL framework and DFL feature
|
|
device drivers.
|
|
|
|
To compile this as a module, choose M here.
|
|
|
|
config FPGA_MGR_ZYNQMP_FPGA
|
|
tristate "Xilinx ZynqMP FPGA"
|
|
depends on ZYNQMP_FIRMWARE || (!ZYNQMP_FIRMWARE && COMPILE_TEST)
|
|
help
|
|
FPGA manager driver support for Xilinx ZynqMP FPGAs.
|
|
This driver uses the processor configuration port(PCAP)
|
|
to configure the programmable logic(PL) through PS
|
|
on ZynqMP SoC.
|
|
|
|
config FPGA_MGR_VERSAL_FPGA
|
|
tristate "Xilinx Versal FPGA"
|
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
|
help
|
|
Select this option to enable FPGA manager driver support for
|
|
Xilinx Versal SoC. This driver uses the firmware interface to
|
|
configure the programmable logic(PL).
|
|
|
|
To compile this as a module, choose M here.
|
|
|
|
config FPGA_M10_BMC_SEC_UPDATE
|
|
tristate "Intel MAX10 BMC Secure Update driver"
|
|
depends on MFD_INTEL_M10_BMC && FW_UPLOAD
|
|
help
|
|
Secure update support for the Intel MAX10 board management
|
|
controller.
|
|
|
|
This is a subdriver of the Intel MAX10 board management controller
|
|
(BMC) and provides support for secure updates for the BMC image,
|
|
the FPGA image, the Root Entry Hashes, etc.
|
|
|
|
config FPGA_MGR_MICROCHIP_SPI
|
|
tristate "Microchip Polarfire SPI FPGA manager"
|
|
depends on SPI
|
|
help
|
|
FPGA manager driver support for Microchip Polarfire FPGAs
|
|
programming over slave SPI interface with .dat formatted
|
|
bitstream image.
|
|
|
|
endif # FPGA
|