• Wu Hao's avatar
    fpga: add device feature list support · 543be3d8
    Wu Hao authored
    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. This patch introduces a kernel module
    to provide basic infrastructure to support FPGA devices which implement
    the Device Feature List.
    
    Usually there will be different features and their sub features linked into
    the DFL. This code provides common APIs for feature enumeration, it creates
    a container device (FPGA base region), walks through the DFLs and creates
    platform devices for feature devices (Currently it only supports two
    different feature devices, FPGA Management Engine (FME) and Port which
    the Accelerator Function Unit (AFU) connected to). In order to enumerate
    the DFLs, the common APIs required low level driver to provide necessary
    enumeration information (e.g. address for each device feature list for
    given device) and fill it to the dfl_fpga_enum_info data structure. Please
    refer to below description for APIs added for enumeration.
    
    Functions for enumeration information preparation:
     *dfl_fpga_enum_info_alloc
       allocate enumeration information data structure.
    
     *dfl_fpga_enum_info_add_dfl
       add a device feature list to dfl_fpga_enum_info data structure.
    
     *dfl_fpga_enum_info_free
       free dfl_fpga_enum_info data structure and related resources.
    
    Functions for feature device enumeration:
     *dfl_fpga_feature_devs_enumerate
       enumerate feature devices and return container device.
    
     *dfl_fpga_feature_devs_remove
       remove feature devices under given container device.
    Signed-off-by: default avatarTim Whisonant <tim.whisonant@intel.com>
    Signed-off-by: default avatarEnno Luebbers <enno.luebbers@intel.com>
    Signed-off-by: default avatarShiva Rao <shiva.rao@intel.com>
    Signed-off-by: default avatarChristopher Rauer <christopher.rauer@intel.com>
    Signed-off-by: default avatarZhang Yi <yi.z.zhang@intel.com>
    Signed-off-by: default avatarXiao Guangrong <guangrong.xiao@linux.intel.com>
    Signed-off-by: default avatarWu Hao <hao.wu@intel.com>
    Acked-by: default avatarAlan Tull <atull@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    543be3d8
dfl.c 17.7 KB