[virtio-dev] [PATCH v5] Add virtio rpmb device specification

2019-09-23 Thread Huang Yang
It is a virtio based RPMB (Replay Protected Memory Block) device.

Signed-off-by: Yang Huang 
Reviewed-by: Bing Zhu 
Reviewed-by: Tomas Winkler 

v4 -> v5:
1. Add description on the mapping between block_count and virtio buffers.
2. Update "Driver Requirements: Device Operation".

v3 -> v4:
1. Remove multiple RPMB targets.
2. Remove NVMe RPMB.
3. typos fix.
4. Some wording changes for better understanding.
5. Add conformance.
---
 conformance.tex  |  20 -
 content.tex  |   1 +
 introduction.tex |   6 ++
 virtio-rpmb.tex  | 244 +++
 4 files changed, 270 insertions(+), 1 deletion(-)
 create mode 100644 virtio-rpmb.tex

diff --git a/conformance.tex b/conformance.tex
index 0ac58aa..4e8d4ae 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -22,7 +22,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
   \begin{itemize}
 \item Clause \ref{sec:Conformance / Device Conformance}.
 \item One of clauses \ref{sec:Conformance / Device Conformance / PCI 
Device Conformance}, \ref{sec:Conformance / Device Conformance / MMIO Device 
Conformance} or \ref{sec:Conformance / Device Conformance / Channel I/O Device 
Conformance}.
-\item One of clauses \ref{sec:Conformance / Device Conformance / Network 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Block Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Console Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Entropy Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Traditional Memory 
Balloon Device Conformance}, \ref{sec:Conformance / Device Conformance / SCSI 
Host Device Conformance}, \ref{sec:Conformance / Device Conformance / Input 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Crypto Device 
Conformance} or \ref{sec:Conformance / Device Conformance / Socket Device 
Conformance}.
+\item One of clauses \ref{sec:Conformance / Device Conformance / Network 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Block Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Console Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Entropy Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Traditional Memory 
Balloon Device Conformance}, \ref{sec:Conformance / Device Conformance / SCSI 
Host Device Conformance}, \ref{sec:Conformance / Device Conformance / Input 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Crypto Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Socket Device 
Conformance} or \ref{sec:Conformance / Device Conformance / RPMB Device 
Conformance}.
 \item Clause \ref{sec:Conformance / Legacy Interface: Transitional Device 
and Transitional Driver Conformance}.
   \end{itemize}
 \end{description}
@@ -183,6 +183,14 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \item \ref{drivernormative:Device Types / Socket Device / Device Operation / 
Device Events}
 \end{itemize}
 
+\conformance{\subsection}{RPMB Driver Conformance}\label{sec:Conformance / 
Driver Conformance / RPMB Driver Conformance}
+
+A RPMB driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / RPMB Device / Device Operation}
+\end{itemize}
+
 \conformance{\section}{Device Conformance}\label{sec:Conformance / Device 
Conformance}
 
 A device MUST conform to the following normative statements:
@@ -338,6 +346,16 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \item \ref{devicenormative:Device Types / Socket Device / Device Operation / 
Receive and Transmit}
 \end{itemize}
 
+\conformance{\subsection}{RPMB Device Conformance}\label{sec:Conformance / 
Device Conformance / RPMB Device Conformance}
+
+An RPMB device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Initialization}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Request Queue}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation}
+\end{itemize}
+
 \conformance{\section}{Legacy Interface: Transitional Device and Transitional 
Driver Conformance}\label{sec:Conformance / Legacy Interface: Transitional 
Device and Transitional Driver Conformance}
 A conformant implementation MUST be either transitional or
 non-transitional, see \ref{intro:Legacy
diff --git a/content.tex b/content.tex
index ee0d7c9..2573bd5 100644
--- a/content.tex
+++ b/content.tex
@@ -5677,6 +5677,7 @@ \subsubsection{Legacy Interface: Framing 
Requirements}\label{sec:Device
 \input{virtio-input.tex}
 \input{virtio-crypto.tex}
 \input{virtio-vsock.tex}
+\input{virtio-rpmb.tex}
 
 \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
 
diff --git a/introduction.tex b/introduction.tex
index c96acf9..b304777 100644

[virtio-dev] [PATCH v5] Add virtio rpmb device specification

2019-09-23 Thread Huang Yang
It is a virtio based RPMB (Replay Protected Memory Block) device.

Signed-off-by: Yang Huang 
Reviewed-by: Bing Zhu 
Reviewed-by: Tomas Winkler 

v4 -> v5:
1. Add description on the mapping between block_count and virtio buffers.
2. Update "Driver Requirements: Device Operation".

v3 -> v4:
1. Remove multiple RPMB targets.
2. Remove NVMe RPMB.
3. typos fix.
4. Some wording changes for better understanding.
5. Add conformance.
---
 conformance.tex  |  20 -
 content.tex  |   1 +
 introduction.tex |   6 ++
 virtio-rpmb.tex  | 244 +++
 4 files changed, 270 insertions(+), 1 deletion(-)
 create mode 100644 virtio-rpmb.tex

diff --git a/conformance.tex b/conformance.tex
index 0ac58aa..4e8d4ae 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -22,7 +22,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
   \begin{itemize}
 \item Clause \ref{sec:Conformance / Device Conformance}.
 \item One of clauses \ref{sec:Conformance / Device Conformance / PCI 
Device Conformance}, \ref{sec:Conformance / Device Conformance / MMIO Device 
Conformance} or \ref{sec:Conformance / Device Conformance / Channel I/O Device 
Conformance}.
-\item One of clauses \ref{sec:Conformance / Device Conformance / Network 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Block Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Console Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Entropy Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Traditional Memory 
Balloon Device Conformance}, \ref{sec:Conformance / Device Conformance / SCSI 
Host Device Conformance}, \ref{sec:Conformance / Device Conformance / Input 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Crypto Device 
Conformance} or \ref{sec:Conformance / Device Conformance / Socket Device 
Conformance}.
+\item One of clauses \ref{sec:Conformance / Device Conformance / Network 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Block Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Console Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Entropy Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Traditional Memory 
Balloon Device Conformance}, \ref{sec:Conformance / Device Conformance / SCSI 
Host Device Conformance}, \ref{sec:Conformance / Device Conformance / Input 
Device Conformance}, \ref{sec:Conformance / Device Conformance / Crypto Device 
Conformance}, \ref{sec:Conformance / Device Conformance / Socket Device 
Conformance} or \ref{sec:Conformance / Device Conformance / RPMB Device 
Conformance}.
 \item Clause \ref{sec:Conformance / Legacy Interface: Transitional Device 
and Transitional Driver Conformance}.
   \end{itemize}
 \end{description}
@@ -183,6 +183,14 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \item \ref{drivernormative:Device Types / Socket Device / Device Operation / 
Device Events}
 \end{itemize}
 
+\conformance{\subsection}{RPMB Driver Conformance}\label{sec:Conformance / 
Driver Conformance / RPMB Driver Conformance}
+
+A RPMB driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / RPMB Device / Device Operation}
+\end{itemize}
+
 \conformance{\section}{Device Conformance}\label{sec:Conformance / Device 
Conformance}
 
 A device MUST conform to the following normative statements:
@@ -338,6 +346,16 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \item \ref{devicenormative:Device Types / Socket Device / Device Operation / 
Receive and Transmit}
 \end{itemize}
 
+\conformance{\subsection}{RPMB Device Conformance}\label{sec:Conformance / 
Device Conformance / RPMB Device Conformance}
+
+An RPMB device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Initialization}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Request Queue}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation}
+\end{itemize}
+
 \conformance{\section}{Legacy Interface: Transitional Device and Transitional 
Driver Conformance}\label{sec:Conformance / Legacy Interface: Transitional 
Device and Transitional Driver Conformance}
 A conformant implementation MUST be either transitional or
 non-transitional, see \ref{intro:Legacy
diff --git a/content.tex b/content.tex
index ee0d7c9..2573bd5 100644
--- a/content.tex
+++ b/content.tex
@@ -5677,6 +5677,7 @@ \subsubsection{Legacy Interface: Framing 
Requirements}\label{sec:Device
 \input{virtio-input.tex}
 \input{virtio-crypto.tex}
 \input{virtio-vsock.tex}
+\input{virtio-rpmb.tex}
 
 \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
 
diff --git a/introduction.tex b/introduction.tex
index c96acf9..b304777 100644