2018-09-27 06:37:40

by Wesley Sheng

[permalink] [raw]
Subject: [PATCH v2] NTB: switchtec_ntb: Update switchtec documentation with pre-requisites for NTB

Update switchtec documentation
1.add pre-requisites for NTB driver
2.misc updates
change NTB hardware driver name to ntb_hw_switchtec
update the description of 2 partitions limit
add reference to Linux Documentation/ntb.txt
add use of term 'Command ID'
add use of term 'Command Return Value'
add a missing ')'

Signed-off-by: Kelvin Cao <[email protected]>
Signed-off-by: Wesley Yung <[email protected]>
Signed-off-by: Wesley Sheng <[email protected]>

---
Documentation/switchtec.txt | 30 ++++++++++++++--------
1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/Documentation/switchtec.txt b/Documentation/switchtec.txt index f788264..40e839d 100644
--- a/Documentation/switchtec.txt
+++ b/Documentation/switchtec.txt
@@ -23,7 +23,7 @@ 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
+respond with a 4-byte return code and up to 1KB of command specific
data. The interface only processes a single command at a time.


@@ -36,8 +36,8 @@ 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
+ The first 4 bytes will be interpreted as the Command ID 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
@@ -45,9 +45,9 @@ The char device has the following semantics:
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 4-byte Command Return Value 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.
@@ -83,10 +83,20 @@ The following IOCTLs are also supported by the device:
Non-Transparent Bridge (NTB) Driver
===================================

-An NTB driver is provided for the switchtec hardware in switchtec_ntb.
-Currently, it only supports switches configured with exactly 2
-partitions. It also requires the following configuration settings:
+An NTB hardware driver is provided for the Switchtec hardware in
+ntb_hw_switchtec. Currently, it only supports switches configured with
+exactly 2 NT partitions and zero or more non-NT partitions. It also
+requires the following configuration settings:

-* Both partitions must be able to access each other's GAS spaces.
+* Both NT partitions must be able to access each other's GAS spaces.
Thus, the bits in the GAS Access Vector under Management Settings
must be set to support this.
+* Kernel configuration MUST include support for NTB (CONFIG_NTB needs
+ to be set)
+
+NT EP BAR 2 will be dynamically configured as a Direct Window, and the
+configuration file does not need to configure it explicitly.
+
+Please refer to Documentation/ntb.txt in Linux source tree for an
+overall understanding of the Linux NTB stack. ntb_hw_switchtec works as
+an NTB Hardware Driver in this stack.


2018-09-27 16:40:33

by Logan Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH v2] NTB: switchtec_ntb: Update switchtec documentation with pre-requisites for NTB



On 2018-09-27 12:36 a.m., [email protected] wrote:
> Update switchtec documentation
> 1.add pre-requisites for NTB driver
> 2.misc updates
> change NTB hardware driver name to ntb_hw_switchtec
> update the description of 2 partitions limit
> add reference to Linux Documentation/ntb.txt
> add use of term 'Command ID'
> add use of term 'Command Return Value'
> add a missing ')'

You need a better commit message. It needs to describe, in plain
English, why the maintainers should merge this, not itemize the
individual changes (that's what the patch body tells us).

> * 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
> + The first 4 bytes will be interpreted as the Command ID and the
> + remainder will be used as the input data. A write will send the
> command to the firmware to begin processing.

You still have some broken white space in this patch. Notice the spacing
before "remainder" compared to the previous line.

> * Each write must be followed by exactly one read. Any double write will
> @@ -45,9 +45,9 @@ The char device has the following semantics:
> 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 4-byte Command Return Value 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.)

Here too.

> * The poll call will also be supported for userspace applications that
> need to do other things while waiting for the command to complete.
> @@ -83,10 +83,20 @@ The following IOCTLs are also supported by the device:
> Non-Transparent Bridge (NTB) Driver
> ===================================
>
> -An NTB driver is provided for the switchtec hardware in switchtec_ntb.
> -Currently, it only supports switches configured with exactly 2
> -partitions. It also requires the following configuration settings:
> +An NTB hardware driver is provided for the Switchtec hardware in
> +ntb_hw_switchtec. Currently, it only supports switches configured with
> +exactly 2 NT partitions and zero or more non-NT partitions. It also
> +requires the following configuration settings:
>
> -* Both partitions must be able to access each other's GAS spaces.
> +* Both NT partitions must be able to access each other's GAS spaces.
> Thus, the bits in the GAS Access Vector under Management Settings
> must be set to support this.
> +* Kernel configuration MUST include support for NTB (CONFIG_NTB needs
> + to be set)
> +
> +NT EP BAR 2 will be dynamically configured as a Direct Window, and the
> +configuration file does not need to configure it explicitly.
> +
> +Please refer to Documentation/ntb.txt in Linux source tree for an
> +overall understanding of the Linux NTB stack. ntb_hw_switchtec works as
> +an NTB Hardware Driver in this stack.
>