Skip to content

Commit 61cdb45

Browse files
soby-mathewTrustedFirmware Code Review
authored andcommitted
Merge "docs(rmmd): document the EL3-RMM IDE KM Interface" into integration
2 parents 293364f + c0fa892 commit 61cdb45

File tree

1 file changed

+38
-22
lines changed

1 file changed

+38
-22
lines changed

docs/components/rmm-el3-comms-spec.rst

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,10 @@ Input values
747747
fid,x0,[63:0],UInt64,Command FID
748748
ecam_address,x1,[63:0],UInt64,Used to identify the root complex(RC)
749749
rp_id,x2,[63:0],UInt64,Used to identify the root port within the root complex(RC)
750-
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.
750+
"Keyset[12]:
751+
Dir[11]:
752+
Substream[10:8]:
753+
StreamID[7:0]",x3,[63:0],UInt64,IDE selective stream informationKey set: can be 0 or 1unused bits MBZ.
751754
KeqQW0,x4,[63:0],UInt64,Quad word of key [63:0]
752755
KeqQW1,x5,[63:0],UInt64,Quad word of key [127:64]
753756
KeqQW2,x6,[63:0],UInt64,Quad word of key [191:128]
@@ -763,7 +766,7 @@ Output values
763766

764767
.. csv-table:: Output values for RMM_IDE_KEY_PROG
765768
:header: "Name", "Register", "Field", "Type", "Description"
766-
:widths: 1 1 1 2 4
769+
:widths: 1 1 1 1 5
767770

768771
Result,x0,[63:0],Error Code,Command return status
769772

@@ -777,10 +780,10 @@ a failure. The errors are ordered by condition check.
777780
:header: "ID", "Condition"
778781
:widths: 1 5
779782

780-
``E_RMM_OK``,Key programming is successful.
781-
``E_RMM_FAULT``,Key programming is not successful.
782-
``E_RMM_INVAL``,Key programming arguments are incorrect.
783-
``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6
783+
``E_RMM_OK``,The Key programming is successful.
784+
``E_RMM_FAULT``,The Key programming is not successful.
785+
``E_RMM_INVAL``,The Key programming arguments are incorrect.
786+
``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
784787
``E_RMM_AGAIN``,Returned only for non-blocking mode. IDE-KM interface is busy or request is full. Retry required.
785788
``E_RMM_INPROGRESS``,Returned only for non-blocking mode. The caller must issue RMM_IDE_KM_PULL_RESPONSE SMC to pull the response.
786789

@@ -811,7 +814,10 @@ Input values
811814
fid,x0,[63:0],UInt64,Command FID
812815
ecam_address,x1,[63:0],UInt64,Used to identify the root complex(RC)
813816
rp_id,x2,[63:0],UInt64,Used to identify the root port within the root complex(RC)
814-
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.
817+
"Keyset[12]:
818+
Dir[11]:
819+
Substream[10:8]:
820+
StreamID[7:0]",x3,[63:0],UInt64,IDE selective stream information. Key set can be 0 or 1. Unused bits MBZ.
815821
request_id,x4,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
816822
cookie,x5,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
817823

@@ -821,7 +827,7 @@ Output values
821827

822828
.. csv-table:: Output values for RMM_IDE_KEY_SET_GO
823829
:header: "Name", "Register", "Field", "Type", "Description"
824-
:widths: 1 1 1 2 4
830+
:widths: 1 1 1 1 5
825831

826832
Result,x0,[63:0],Error Code,Command return status
827833

@@ -835,9 +841,9 @@ a failure. The errors are ordered by condition check.
835841
:header: "ID", "Condition"
836842
:widths: 1 5
837843

838-
``E_RMM_OK``,Key set go is successful.
839-
``E_RMM_FAULT``,Key set go is not successful.
840-
``E_RMM_INVAL``,incorrect arguments.
844+
``E_RMM_OK``,The Key set go is successful.
845+
``E_RMM_FAULT``,The Key set go is not successful.
846+
``E_RMM_INVAL``,Incorrect arguments.
841847
``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
842848
``E_RMM_AGAIN``,Returned only for non-blocking mode. IDE-KM interface is busy or request is full. Retry required.
843849
``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 @@ Input values
869875
fid,x0,[63:0],UInt64,Command FID
870876
ecam_address,x1,[63:0],UInt64,Used to identify the root complex(RC)
871877
rp_id,x2,[63:0],UInt64,Used to identify the root port within the root complex(RC)
872-
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.
878+
"Keyset[12]:
879+
Dir[11]:
880+
Substream[10:8]:
881+
StreamID[7:0]",x3,[63:0],UInt64,IDE selective stream information. Key set can be 0 or 1. Unused bits MBZ.
873882
request_id,x4,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
874883
cookie,x5,[63:0],UInt64,Used only in non-blocking mode. Ignored in blocking mode.
875884

@@ -879,7 +888,7 @@ Output values
879888

880889
.. csv-table:: Output values for RMM_IDE_KEY_SET_STOP
881890
:header: "Name", "Register", "Field", "Type", "Description"
882-
:widths: 1 1 1 2 4
891+
:widths: 1 1 1 1 5
883892

884893
Result,x0,[63:0],Error Code,Command return status
885894

@@ -893,9 +902,9 @@ a failure. The errors are ordered by condition check.
893902
:header: "ID", "Condition"
894903
:widths: 1 5
895904

896-
``E_RMM_OK``,Key set go is successful.
897-
``E_RMM_FAULT``,Key set go is not successful.
898-
``E_RMM_INVAL``,incorrect arguments.
905+
``E_RMM_OK``,The Key set stop is successful.
906+
``E_RMM_FAULT``,The Key set stop is not successful.
907+
``E_RMM_INVAL``,Incorrect arguments.
899908
``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
900909
``E_RMM_AGAIN``,Returned only for non-blocking mode. IDE-KM interface is busy or request is full. Retry required.
901910
``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 @@ Output values
936945

937946
.. csv-table:: Output values for RMM_IDE_KM_PULL_RESPONSE
938947
:header: "Name", "Register", "Field", "Type", "Description"
939-
:widths: 1 1 1 2 4
948+
:widths: 1 1 1 1 5
940949

941950
Result,x0,[63:0],Error Code,Command return status
942951
Result,x1,[63:0],Error Code,Retrieved response corresponding to previous IDE_KM requests.
@@ -949,16 +958,23 @@ Failure conditions
949958
The table below shows all the possible error codes returned in ``Result`` upon
950959
a failure. The errors are ordered by condition check.
951960

952-
.. csv-table:: Failure conditions for RMM_IDE_KM_PULL_RESPONSE
961+
.. csv-table:: Failure conditions for RMM_IDE_KM_PULL_RESPONSE(x0)
953962
:header: "ID", "Condition"
954963
:widths: 1 5
955964

956-
``E_RMM_OK``,Key set go is successful.
957-
``E_RMM_FAULT``,Key set go is not successful.
958-
``E_RMM_INVAL``,incorrect arguments.
965+
``E_RMM_OK``,Response is retrieved successfully.
966+
``E_RMM_INVAL``,Arguments to pull response SMC is not correct.
959967
``E_RMM_UNK``,Unknown error or the SMC is not present if the version is < 0.6.
960-
``E_RMM_AGAIN``,KM request is empty and no response if available.
968+
``E_RMM_AGAIN``,IDE-KM response queue is empty and no response is available.
969+
970+
.. csv-table:: Failure conditions for RMM_IDE_KM_PULL_RESPONSE(x1)
971+
:header: "ID", "Condition"
972+
:widths: 1 5
961973

974+
``E_RMM_OK``,The previous request was successful.
975+
``E_RMM_FAULT``,The previous request was not successful.
976+
``E_RMM_INVAL``,Arguments to previous request were incorrect.
977+
``E_RMM_UNK``,Previous request returned unknown error.
962978

963979
RMM-EL3 world switch register save restore convention
964980
_____________________________________________________

0 commit comments

Comments
 (0)