docs(rmmd): document the EL3-RMM IDE KM Interface

This patch updates the documentation for the EL3-RMM IDE KM interface,
addressing errors found in the previous version and fixed formatting
issues and added missing details.

Change-Id: I84ff734d3de755fa793620e9b1446cf9b75763b0
Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com>
diff --git a/docs/components/rmm-el3-comms-spec.rst b/docs/components/rmm-el3-comms-spec.rst
index 1ff2037..6a07271 100644
--- a/docs/components/rmm-el3-comms-spec.rst
+++ b/docs/components/rmm-el3-comms-spec.rst
@@ -747,7 +747,10 @@
    fid,x0,[63:0],UInt64,Command FID
    ecam_address,x1,[63:0],UInt64,Used to identify the root complex(RC)
    rp_id,x2,[63:0],UInt64,Used to identify the root port within the root complex(RC)
-   Keyset[12]:Dir[11]:Substream[10:8]:StreamID[7:0],x3,[63:0],UInt64,IDE selective stream informationKey set: can be 0 or 1unused bits MBZ.
+   "Keyset[12]:
+   Dir[11]:
+   Substream[10:8]:
+   StreamID[7:0]",x3,[63:0],UInt64,IDE selective stream informationKey set: can be 0 or 1unused bits MBZ.
    KeqQW0,x4,[63:0],UInt64,Quad word of key [63:0]
    KeqQW1,x5,[63:0],UInt64,Quad word of key [127:64]
    KeqQW2,x6,[63:0],UInt64,Quad word of key [191:128]
@@ -763,7 +766,7 @@
 
 .. csv-table:: Output values for RMM_IDE_KEY_PROG
    :header: "Name", "Register", "Field", "Type", "Description"
-   :widths: 1 1 1 2 4
+   :widths: 1 1 1 1 5
 
    Result,x0,[63:0],Error Code,Command return status
 
@@ -777,10 +780,10 @@
    :header: "ID", "Condition"
    :widths: 1 5
 
-   ``E_RMM_OK``,Key programming is successful.
-   ``E_RMM_FAULT``,Key programming is not successful.
-   ``E_RMM_INVAL``,Key programming arguments are incorrect.
-   ``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6
+   ``E_RMM_OK``,The Key programming is successful.
+   ``E_RMM_FAULT``,The Key programming is not successful.
+   ``E_RMM_INVAL``,The Key programming arguments are incorrect.
+   ``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
    ``E_RMM_AGAIN``,Returned only for non-blocking mode. IDE-KM interface is busy or request is full. Retry required.
    ``E_RMM_INPROGRESS``,Returned only for non-blocking mode. The caller must issue RMM_IDE_KM_PULL_RESPONSE SMC to pull the response.
 
@@ -811,7 +814,10 @@
    fid,x0,[63:0],UInt64,Command FID
    ecam_address,x1,[63:0],UInt64,Used to identify the root complex(RC)
    rp_id,x2,[63:0],UInt64,Used to identify the root port within the root complex(RC)
-   Keyset[12]:Dir[11]:Substream[10:8]:StreamID[7:0],x3,[63:0],UInt64,IDE selective stream information. Key set can be 0 or 1. Unused bits MBZ.
+   "Keyset[12]:
+   Dir[11]:
+   Substream[10:8]:
+   StreamID[7:0]",x3,[63:0],UInt64,IDE selective stream information. Key set can be 0 or 1. Unused bits MBZ.
    request_id,x4,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
    cookie,x5,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
 
@@ -821,7 +827,7 @@
 
 .. csv-table:: Output values for RMM_IDE_KEY_SET_GO
    :header: "Name", "Register", "Field", "Type", "Description"
-   :widths: 1 1 1 2 4
+   :widths: 1 1 1 1 5
 
    Result,x0,[63:0],Error Code,Command return status
 
@@ -835,9 +841,9 @@
    :header: "ID", "Condition"
    :widths: 1 5
 
-   ``E_RMM_OK``,Key set go is successful.
-   ``E_RMM_FAULT``,Key set go is not successful.
-   ``E_RMM_INVAL``,incorrect arguments.
+   ``E_RMM_OK``,The Key set go is successful.
+   ``E_RMM_FAULT``,The Key set go is not successful.
+   ``E_RMM_INVAL``,Incorrect arguments.
    ``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
    ``E_RMM_AGAIN``,Returned only for non-blocking mode. IDE-KM interface is busy or request is full. Retry required.
    ``E_RMM_INPROGRESS``,Returned only for non-blocking mode. The caller must issue RMM_IDE_KM_PULL_RESPONSE SMC to pull the response.
@@ -869,7 +875,10 @@
    fid,x0,[63:0],UInt64,Command FID
    ecam_address,x1,[63:0],UInt64,Used to identify the root complex(RC)
    rp_id,x2,[63:0],UInt64,Used to identify the root port within the root complex(RC)
-   Keyset[12]:Dir[11]:Substream[10:8]:StreamID[7:0],x3,[63:0],UInt64,IDE selective stream information. Key set can be 0 or 1. Unused bits MBZ.
+   "Keyset[12]:
+   Dir[11]:
+   Substream[10:8]:
+   StreamID[7:0]",x3,[63:0],UInt64,IDE selective stream information. Key set can be 0 or 1. Unused bits MBZ.
    request_id,x4,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
    cookie,x5,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
 
@@ -879,7 +888,7 @@
 
 .. csv-table:: Output values for RMM_IDE_KEY_SET_STOP
    :header: "Name", "Register", "Field", "Type", "Description"
-   :widths: 1 1 1 2 4
+   :widths: 1 1 1 1 5
 
    Result,x0,[63:0],Error Code,Command return status
 
@@ -893,9 +902,9 @@
    :header: "ID", "Condition"
    :widths: 1 5
 
-   ``E_RMM_OK``,Key set go is successful.
-   ``E_RMM_FAULT``,Key set go is not successful.
-   ``E_RMM_INVAL``,incorrect arguments.
+   ``E_RMM_OK``,The Key set stop is successful.
+   ``E_RMM_FAULT``,The Key set stop is not successful.
+   ``E_RMM_INVAL``,Incorrect arguments.
    ``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
    ``E_RMM_AGAIN``,Returned only for non-blocking mode. IDE-KM interface is busy or request is full. Retry required.
    ``E_RMM_INPROGRESS``,Returned only for non-blocking mode. The caller must issue RMM_IDE_KM_PULL_RESPONSE SMC to pull the response.
@@ -936,7 +945,7 @@
 
 .. csv-table:: Output values for RMM_IDE_KM_PULL_RESPONSE
    :header: "Name", "Register", "Field", "Type", "Description"
-   :widths: 1 1 1 2 4
+   :widths: 1 1 1 1 5
 
    Result,x0,[63:0],Error Code,Command return status
    Result,x1,[63:0],Error Code,Retrieved response corresponding to previous IDE_KM requests.
@@ -949,16 +958,23 @@
 The table below shows all the possible error codes returned in ``Result`` upon
 a failure. The errors are ordered by condition check.
 
-.. csv-table:: Failure conditions for RMM_IDE_KM_PULL_RESPONSE
+.. csv-table:: Failure conditions for RMM_IDE_KM_PULL_RESPONSE(x0)
    :header: "ID", "Condition"
    :widths: 1 5
 
-   ``E_RMM_OK``,Key set go is successful.
-   ``E_RMM_FAULT``,Key set go is not successful.
-   ``E_RMM_INVAL``,incorrect arguments.
+   ``E_RMM_OK``,Response is retrieved successfully.
+   ``E_RMM_INVAL``,Arguments to pull response SMC is not correct.
    ``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
-   ``E_RMM_AGAIN``,KM request is empty and no response if available.
+   ``E_RMM_AGAIN``,IDE-KM response queue is empty and no response is available.
+
+.. csv-table:: Failure conditions for RMM_IDE_KM_PULL_RESPONSE(x1)
+   :header: "ID", "Condition"
+   :widths: 1 5
 
+   ``E_RMM_OK``,The previous request was successful.
+   ``E_RMM_FAULT``,The previous request was not successful.
+   ``E_RMM_INVAL``,Arguments to previous request were incorrect.
+   ``E_RMM_UNK``,Previous request returned unknown error.
 
 RMM-EL3 world switch register save restore convention
 _____________________________________________________