15 Jul, 2018

4 commits

  • Partial Reconfiguration (PR) is the most important function for FME. It
    allows reconfiguration for given Port/Accelerated Function Unit (AFU).

    It creates platform devices for fpga-mgr, fpga-regions and fpga-bridges,
    and invokes fpga-region's interface (fpga_region_program_fpga) for PR
    operation once PR request received via ioctl. Below user space interface
    is exposed by this sub feature.

    Ioctl interface:
    * DFL_FPGA_FME_PORT_PR
    Do partial reconfiguration per information from userspace, including
    target port(AFU), buffer size and address info. It returns error code
    to userspace if failed. For detailed PR error information, user needs
    to read fpga-mgr's status sysfs interface.

    Signed-off-by: Tim Whisonant
    Signed-off-by: Enno Luebbers
    Signed-off-by: Shiva Rao
    Signed-off-by: Christopher Rauer
    Signed-off-by: Kang Luwei
    Signed-off-by: Xiao Guangrong
    Signed-off-by: Wu Hao
    Acked-by: Alan Tull
    Signed-off-by: Greg Kroah-Hartman

    Kang Luwei
     
  • DFL_FPGA_GET_API_VERSION and DFL_FPGA_CHECK_EXTENSION ioctls are common
    ones which need to be supported by all feature devices drivers including
    FME and AFU. Userspace application can use these ioctl interfaces to get
    the API info and check if specific extension is supported or not in
    current driver.

    This patch implements above 2 ioctls in FPGA Management Engine (FME)
    driver.

    Signed-off-by: Tim Whisonant
    Signed-off-by: Enno Luebbers
    Signed-off-by: Shiva Rao
    Signed-off-by: Christopher Rauer
    Signed-off-by: Xiao Guangrong
    Signed-off-by: Wu Hao
    Acked-by: Alan Tull
    Acked-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Wu Hao
     
  • The Header Register set is always present for FPGA Management Engine (FME),
    this patch implements init and uinit function for header sub feature and
    introduces several read-only sysfs interfaces for the capability and
    status.

    Sysfs interfaces:
    * /sys/class/fpga_region///ports_num
    Read-only. Number of ports implemented

    * /sys/class/fpga_region///bitstream_id
    Read-only. Bitstream (static FPGA region) identifier number. It contains
    the detailed version and other information of this static FPGA region.

    * /sys/class/fpga_region///bitstream_metadata
    Read-only. Bitstream (static FPGA region) meta data. It contains the
    synthesis date, seed and other information of this static FPGA region.

    Signed-off-by: Tim Whisonant
    Signed-off-by: Enno Luebbers
    Signed-off-by: Shiva Rao
    Signed-off-by: Christopher Rauer
    Signed-off-by: Kang Luwei
    Signed-off-by: Xiao Guangrong
    Signed-off-by: Wu Hao
    Acked-by: Alan Tull
    Signed-off-by: Greg Kroah-Hartman

    Kang Luwei
     
  • The FPGA Management Engine (FME) provides power, thermal management,
    performance counters, partial reconfiguration and other functions. For each
    function, it is packaged into a private feature linked to the FME feature
    device in the 'Device Feature List'. It's a platform device created by
    DFL framework.

    This patch adds the basic framework of FME platform driver. It defines
    sub feature drivers to handle the different sub features, including init,
    uinit and ioctl. It also registers the file operations for the device file.

    Signed-off-by: Tim Whisonant
    Signed-off-by: Enno Luebbers
    Signed-off-by: Shiva Rao
    Signed-off-by: Christopher Rauer
    Signed-off-by: Kang Luwei
    Signed-off-by: Xiao Guangrong
    Signed-off-by: Wu Hao
    Acked-by: Alan Tull
    Acked-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Kang Luwei