1. 25 Jun, 2023 1 commit
    • Vishal Verma's avatar
      cxl: add a firmware update mechanism using the sysfs firmware loader · 9521875b
      Vishal Verma authored
      The sysfs based firmware loader mechanism was created to easily allow
      userspace to upload firmware images to FPGA cards. This also happens to
      be pretty suitable to create a user-initiated but kernel-controlled
      firmware update mechanism for CXL devices, using the CXL specified
      mailbox commands.
      
      Since firmware update commands can be long-running, and can be processed
      in the background by the endpoint device, it is desirable to have the
      ability to chunk the firmware transfer down to smaller pieces, so that
      one operation does not monopolize the mailbox, locking out any other
      long running background commands entirely - e.g. security commands like
      'sanitize' or poison scanning operations.
      
      The firmware loader mechanism allows a natural way to perform this
      chunking, as after each mailbox command, that is restricted to the
      maximum mailbox payload size, the cxl memdev driver relinquishes control
      back to the fw_loader system and awaits the next chunk of data to
      transfer. This opens opportunities for other background commands to
      access the mailbox and send their own slices of background commands.
      
      Add the necessary helpers and state tracking to be able to perform the
      'Get FW Info', 'Transfer FW', and 'Activate FW' mailbox commands as
      described in the CXL spec. Wire these up to the firmware loader
      callbacks, and register with that system to create the memX/firmware/
      sysfs ABI.
      
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
      Cc: Russ Weight <russell.h.weight@intel.com>
      Cc: Alison Schofield <alison.schofield@intel.com>
      Cc: Ira Weiny <ira.weiny@intel.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Ben Widawsky <bwidawsk@kernel.org>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Link: https://lore.kernel.org/r/20230602-vv-fw_update-v4-1-c6265bd7343b@intel.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      9521875b
  2. 23 May, 2023 4 commits
  3. 20 May, 2023 1 commit
  4. 18 May, 2023 3 commits
  5. 14 May, 2023 13 commits
  6. 13 May, 2023 17 commits
  7. 12 May, 2023 1 commit