lkml.org 
[lkml]   [2017]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v5 2/4] switchtec: Add user interface documentation
    This adds standard documentation for the sysfs switchtec attributes and
    a RST formatted text file which documents the char device interface.
    Jonathan Corbet has indicated he will move this to a new user-space
    developer documentation book once it's created.

    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    Signed-off-by: Stephen Bates <stephen.bates@microsemi.com>
    Tested-by: Krishna Dhulipala <krishnad@fb.com>
    Reviewed-by: Wei Zhang <wzhang@fb.com>
    Reviewed-by: Jens Axboe <axboe@fb.com>
    ---
    Documentation/switchtec.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++
    MAINTAINERS | 1 +
    2 files changed, 54 insertions(+)
    create mode 100644 Documentation/switchtec.txt

    diff --git a/Documentation/switchtec.txt b/Documentation/switchtec.txt
    new file mode 100644
    index 0000000..4bced4c
    --- /dev/null
    +++ b/Documentation/switchtec.txt
    @@ -0,0 +1,53 @@
    +========================
    +Linux Switchtec Support
    +========================
    +
    +Microsemi's "Switchtec" line of PCI switch devices is already
    +supported by the kernel with standard PCI switch drivers. However, the
    +Switchtec device advertises a special management endpoint which
    +enables some additional functionality. This includes:
    +
    +* Packet and Byte Counters
    +* Firmware Upgrades
    +* Event and Error logs
    +* Querying port link status
    +* Custom user firmware commands
    +
    +The switchtec kernel module implements this functionality.
    +
    +
    +Interface
    +=========
    +
    +The primary means of communicating with the Switchtec management firmware is
    +through the Memory-mapped Remote Procedure Call (MRPC) interface.
    +Commands are submitted to the interface with a 4-byte command
    +identifier and up to 1KB of command specific data. The firmware will
    +respond with a 4 bytes return code and up to 1KB of command specific
    +data. The interface only processes a single command at a time.
    +
    +
    +Userspace Interface
    +===================
    +
    +The MRPC interface will be exposed to userspace through a simple char
    +device: /dev/switchtec#, one for each management endpoint in the system.
    +
    +The char device has the following semantics:
    +
    +* A write must consist of at least 4 bytes and no more than 1028 bytes.
    + The first four bytes will be interpreted as the command to run and
    + the remainder will be used as the input data. A write will send the
    + command to the firmware to begin processing.
    +
    +* Each write must be followed by exactly one read. Any double write will
    + produce an error and any read that doesn't follow a write will
    + produce an error.
    +
    +* A read will block until the firmware completes the command and return
    + the four bytes of status plus up to 1024 bytes of output data. (The
    + length will be specified by the size parameter of the read call --
    + reading less than 4 bytes will produce an error.
    +
    +* The poll call will also be supported for userspace applications that
    + need to do other things while waiting for the command to complete.
    diff --git a/MAINTAINERS b/MAINTAINERS
    index a57686f..aa702b0 100644
    --- a/MAINTAINERS
    +++ b/MAINTAINERS
    @@ -9512,6 +9512,7 @@ M: Stephen Bates <stephen.bates@microsemi.com>
    M: Logan Gunthorpe <logang@deltatee.com>
    L: linux-pci@vger.kernel.org
    S: Maintained
    +F: Documentation/switchtec.txt
    F: drivers/pci/switch/switchtec*

    PCI DRIVER FOR NVIDIA TEGRA
    --
    2.1.4
    \
     
     \ /
      Last update: 2017-02-26 08:42    [W:4.076 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site