* [PATCH v1 0/2] Move transitional dev req to legacy interface @ 2023-02-25 22:06 Parav Pandit 2023-02-25 22:06 ` [PATCH v1 1/2] transport-pci: Use lowecase alphabets Parav Pandit 2023-02-25 22:06 ` [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section Parav Pandit 0 siblings, 2 replies; 6+ messages in thread From: Parav Pandit @ 2023-02-25 22:06 UTC (permalink / raw) To: mst, virtio-dev, cohuck; +Cc: virtio-comment, shahafs, Parav Pandit Currently the PCI transitional device discovery requirements are located in two sections. One it located in regular device section mixed with non transitional device normative statements. Some of them are already located in the second legacy interface section. Legacy interfaces is the section to describe transitional device requirements as mentioned in the first legacy interface section 2.2.3. Hence move these normative statements and requirements to the Legacy interface section. This is only an editorial change. patch summary: patch-1 use capital alphabets to define device id patch-2 move pci device id normative statements adjacent to other requirements changelog: 1. use lowercase letters 2. add missing '.' Parav Pandit (2): transport-pci: Use lowecase alphabets transport-pci: Move transitional device id to legacy section transport-pci.tex | 82 ++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 40 deletions(-) -- 2.26.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 1/2] transport-pci: Use lowecase alphabets 2023-02-25 22:06 [PATCH v1 0/2] Move transitional dev req to legacy interface Parav Pandit @ 2023-02-25 22:06 ` Parav Pandit 2023-02-25 22:06 ` [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section Parav Pandit 1 sibling, 0 replies; 6+ messages in thread From: Parav Pandit @ 2023-02-25 22:06 UTC (permalink / raw) To: mst, virtio-dev, cohuck; +Cc: virtio-comment, shahafs, Parav Pandit Use uniformly lowercase alphabets to write PCI vendor id and device id. Signed-off-by: Parav Pandit <parav@nvidia.com> --- changelog: v0->v1: - use all lowercase letters to define device and vedor id --- transport-pci.tex | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/transport-pci.tex b/transport-pci.tex index 0642107..9f9f076 100644 --- a/transport-pci.tex +++ b/transport-pci.tex @@ -18,8 +18,8 @@ \section{Virtio Over PCI Bus}\label{sec:Virtio Transport Options / Virtio Over P \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} -Any PCI device with PCI Vendor ID 0x1AF4, and PCI Device ID 0x1000 through -0x107F inclusive is a virtio device. The actual value within this range +Any PCI device with PCI Vendor ID 0x1af4, and PCI Device ID 0x1000 through +0x107f inclusive is a virtio device. The actual value within this range indicates which virtio device is supported by the device. The PCI Device ID is calculated by adding 0x1040 to the Virtio Device ID, as indicated in section \ref{sec:Device Types}. @@ -28,7 +28,7 @@ \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Ov \devicenormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} -Devices MUST have the PCI Vendor ID 0x1AF4. +Devices MUST have the PCI Vendor ID 0x1af4. Devices MUST either have the PCI Device ID calculated by adding 0x1040 to the Virtio Device ID, as indicated in section \ref{sec:Device Types} or have the Transitional PCI Device ID depending on the device type, @@ -69,13 +69,13 @@ \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Ov to drive the device. \drivernormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} -Drivers MUST match devices with the PCI Vendor ID 0x1AF4 and +Drivers MUST match devices with the PCI Vendor ID 0x1af4 and the PCI Device ID in the range 0x1040 to 0x107f, calculated by adding 0x1040 to the Virtio Device ID, as indicated in section \ref{sec:Device Types}. Drivers for device types listed in section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} -MUST match devices with the PCI Vendor ID 0x1AF4 and +MUST match devices with the PCI Vendor ID 0x1af4 and the Transitional PCI Device ID indicated in section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery}. @@ -89,7 +89,7 @@ \subsubsection{Legacy Interfaces: A Note on PCI Device Discovery}\label{sec:Virt Transitional devices MUST have the PCI Subsystem Device ID matching the Virtio Device ID, as indicated in section \ref{sec:Device Types}. Transitional devices MUST have the Transitional PCI Device ID in -the range 0x1000 to 0x103f. +the range 0x1000 to 0x103F. This is to match legacy drivers. @@ -688,7 +688,7 @@ \subsubsection{Vendor data capability}\label{sec:Virtio Devices CAN present multiple Vendor data capabilities with either different or identical \field{vendor_id} values. -The value \field{vendor_id} MUST NOT equal 0x1AF4. +The value \field{vendor_id} MUST NOT equal 0x1af4. The size of the Vendor data capability MUST be a multiple of 4 bytes. -- 2.26.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section 2023-02-25 22:06 [PATCH v1 0/2] Move transitional dev req to legacy interface Parav Pandit 2023-02-25 22:06 ` [PATCH v1 1/2] transport-pci: Use lowecase alphabets Parav Pandit @ 2023-02-25 22:06 ` Parav Pandit 2023-02-25 22:59 ` Michael S. Tsirkin 1 sibling, 1 reply; 6+ messages in thread From: Parav Pandit @ 2023-02-25 22:06 UTC (permalink / raw) To: mst, virtio-dev, cohuck; +Cc: virtio-comment, shahafs, Parav Pandit Currently PCI device requirements section contains mix of normative statements for for regular (non transitional) device and transitional device under one section. Some requirements of the transitional device are also located in legacy interface section which is the right section for it. Hence, 1. Move transitional device requirements to their designated Legacy interface section 2. Describe regular device requirements without quoting it as "non transitional device" While at it, write the description using a singular object definition. This is only an editorial change. This patch is on top of [1]. [1] https://lists.oasis-open.org/archives/virtio-dev/202302/msg00578.html Signed-off-by: Parav Pandit <parav@nvidia.com> --- changelog: v0->v1: - rebased to lowercase device id notation - added missing '.' --- transport-pci.tex | 74 ++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/transport-pci.tex b/transport-pci.tex index 9f9f076..5d22e6f 100644 --- a/transport-pci.tex +++ b/transport-pci.tex @@ -24,50 +24,28 @@ \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Ov The PCI Device ID is calculated by adding 0x1040 to the Virtio Device ID, as indicated in section \ref{sec:Device Types}. Additionally, devices MAY utilize a Transitional PCI Device ID range, -0x1000 to 0x103F depending on the device type. +0x1000 to 0x103f depending on the device type. \devicenormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} -Devices MUST have the PCI Vendor ID 0x1af4. -Devices MUST either have the PCI Device ID calculated by adding 0x1040 +The device MUST have the PCI Vendor ID 0x1af4. +The device MUST calculate PCI Device ID by adding 0x1040 to the Virtio Device ID, as indicated in section \ref{sec:Device -Types} or have the Transitional PCI Device ID depending on the device type, -as follows: - -\begin{tabular}{|l|c|} -\hline -Transitional PCI Device ID & Virtio Device \\ -\hline \hline -0x1000 & network device \\ -\hline -0x1001 & block device \\ -\hline -0x1002 & memory ballooning (traditional) \\ -\hline -0x1003 & console \\ -\hline -0x1004 & SCSI host \\ -\hline -0x1005 & entropy source \\ -\hline -0x1009 & 9P transport \\ -\hline -\end{tabular} +Types}. For example, the network device with the Virtio Device ID 1 -has the PCI Device ID 0x1041 or the Transitional PCI Device ID 0x1000. - -The PCI Subsystem Vendor ID and the PCI Subsystem Device ID MAY reflect -the PCI Vendor and Device ID of the environment (for informational purposes by the driver). +has the PCI Device ID 0x1041. -Non-transitional devices SHOULD have a PCI Device ID in the range -0x1040 to 0x107f. -Non-transitional devices SHOULD have a PCI Revision ID of 1 or higher. -Non-transitional devices SHOULD have a PCI Subsystem Device ID of 0x40 or higher. +The device SHOULD have a PCI Device ID in the range 0x1040 to 0x107f. +The device SHOULD have a PCI Revision ID of 1 or higher. +The device SHOULD have a PCI Subsystem Device ID of 0x40 or higher. This is to reduce the chance of a legacy driver attempting to drive the device. +The PCI Subsystem Vendor ID and the PCI Subsystem Device ID MAY reflect +the PCI Vendor and Device ID of the environment (for informational purposes by the driver). + \drivernormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} Drivers MUST match devices with the PCI Vendor ID 0x1af4 and the PCI Device ID in the range 0x1040 to 0x107f, @@ -85,11 +63,35 @@ \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Ov PCI Subsystem Device ID value. \subsubsection{Legacy Interfaces: A Note on PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery / Legacy Interfaces: A Note on PCI Device Discovery} -Transitional devices MUST have a PCI Revision ID of 0. -Transitional devices MUST have the PCI Subsystem Device ID + +The transitional device has one of the following PCI Device ID +depending on the device type: + +\begin{tabular}{|l|c|} +\hline +Transitional PCI Device ID & Virtio Device \\ +\hline \hline +0x1000 & network device \\ +\hline +0x1001 & block device \\ +\hline +0x1002 & memory ballooning (traditional) \\ +\hline +0x1003 & console \\ +\hline +0x1004 & SCSI host \\ +\hline +0x1005 & entropy source \\ +\hline +0x1009 & 9P transport \\ +\hline +\end{tabular} + +The transitional device MUST have a PCI Revision ID of 0. +The transitional device MUST have the PCI Subsystem Device ID matching the Virtio Device ID, as indicated in section \ref{sec:Device Types}. Transitional devices MUST have the Transitional PCI Device ID in -the range 0x1000 to 0x103F. +the range 0x1000 to 0x103f. This is to match legacy drivers. -- 2.26.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section 2023-02-25 22:06 ` [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section Parav Pandit @ 2023-02-25 22:59 ` Michael S. Tsirkin 2023-02-27 2:54 ` Parav Pandit 0 siblings, 1 reply; 6+ messages in thread From: Michael S. Tsirkin @ 2023-02-25 22:59 UTC (permalink / raw) To: Parav Pandit; +Cc: virtio-dev, cohuck, virtio-comment, shahafs On Sun, Feb 26, 2023 at 12:06:36AM +0200, Parav Pandit wrote: > Currently PCI device requirements section contains mix of normative > statements for for regular (non transitional) device and > transitional device under one section. > > Some requirements of the transitional device are also located in > legacy interface section which is the right section for it. > > Hence, > 1. Move transitional device requirements to their designated Legacy > interface section > 2. Describe regular device requirements without quoting it as "non > transitional device" > > While at it, write the description using a singular object definition. > > This is only an editorial change. > > This patch is on top of [1]. > > [1] https://lists.oasis-open.org/archives/virtio-dev/202302/msg00578.html > > Signed-off-by: Parav Pandit <parav@nvidia.com> nack I already answered this. legacy sections describe legacy interface of transitional devices. > --- > changelog: > v0->v1: > - rebased to lowercase device id notation > - added missing '.' > --- > transport-pci.tex | 74 ++++++++++++++++++++++++----------------------- > 1 file changed, 38 insertions(+), 36 deletions(-) > > diff --git a/transport-pci.tex b/transport-pci.tex > index 9f9f076..5d22e6f 100644 > --- a/transport-pci.tex > +++ b/transport-pci.tex > @@ -24,50 +24,28 @@ \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Ov > The PCI Device ID is calculated by adding 0x1040 to the Virtio Device ID, > as indicated in section \ref{sec:Device Types}. > Additionally, devices MAY utilize a Transitional PCI Device ID range, > -0x1000 to 0x103F depending on the device type. > +0x1000 to 0x103f depending on the device type. > > \devicenormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} > > -Devices MUST have the PCI Vendor ID 0x1af4. > -Devices MUST either have the PCI Device ID calculated by adding 0x1040 > +The device MUST have the PCI Vendor ID 0x1af4. > +The device MUST calculate PCI Device ID by adding 0x1040 > to the Virtio Device ID, as indicated in section \ref{sec:Device > -Types} or have the Transitional PCI Device ID depending on the device type, > -as follows: > - > -\begin{tabular}{|l|c|} > -\hline > -Transitional PCI Device ID & Virtio Device \\ > -\hline \hline > -0x1000 & network device \\ > -\hline > -0x1001 & block device \\ > -\hline > -0x1002 & memory ballooning (traditional) \\ > -\hline > -0x1003 & console \\ > -\hline > -0x1004 & SCSI host \\ > -\hline > -0x1005 & entropy source \\ > -\hline > -0x1009 & 9P transport \\ > -\hline > -\end{tabular} > +Types}. > > For example, the network device with the Virtio Device ID 1 > -has the PCI Device ID 0x1041 or the Transitional PCI Device ID 0x1000. > - > -The PCI Subsystem Vendor ID and the PCI Subsystem Device ID MAY reflect > -the PCI Vendor and Device ID of the environment (for informational purposes by the driver). > +has the PCI Device ID 0x1041. > > -Non-transitional devices SHOULD have a PCI Device ID in the range > -0x1040 to 0x107f. > -Non-transitional devices SHOULD have a PCI Revision ID of 1 or higher. > -Non-transitional devices SHOULD have a PCI Subsystem Device ID of 0x40 or higher. > +The device SHOULD have a PCI Device ID in the range 0x1040 to 0x107f. > +The device SHOULD have a PCI Revision ID of 1 or higher. > +The device SHOULD have a PCI Subsystem Device ID of 0x40 or higher. > > This is to reduce the chance of a legacy driver attempting > to drive the device. > > +The PCI Subsystem Vendor ID and the PCI Subsystem Device ID MAY reflect > +the PCI Vendor and Device ID of the environment (for informational purposes by the driver). > + > \drivernormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery} > Drivers MUST match devices with the PCI Vendor ID 0x1af4 and > the PCI Device ID in the range 0x1040 to 0x107f, > @@ -85,11 +63,35 @@ \subsection{PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Ov > PCI Subsystem Device ID value. > > \subsubsection{Legacy Interfaces: A Note on PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery / Legacy Interfaces: A Note on PCI Device Discovery} > -Transitional devices MUST have a PCI Revision ID of 0. > -Transitional devices MUST have the PCI Subsystem Device ID > + > +The transitional device has one of the following PCI Device ID > +depending on the device type: > + > +\begin{tabular}{|l|c|} > +\hline > +Transitional PCI Device ID & Virtio Device \\ > +\hline \hline > +0x1000 & network device \\ > +\hline > +0x1001 & block device \\ > +\hline > +0x1002 & memory ballooning (traditional) \\ > +\hline > +0x1003 & console \\ > +\hline > +0x1004 & SCSI host \\ > +\hline > +0x1005 & entropy source \\ > +\hline > +0x1009 & 9P transport \\ > +\hline > +\end{tabular} > + > +The transitional device MUST have a PCI Revision ID of 0. > +The transitional device MUST have the PCI Subsystem Device ID > matching the Virtio Device ID, as indicated in section \ref{sec:Device Types}. > Transitional devices MUST have the Transitional PCI Device ID in > -the range 0x1000 to 0x103F. > +the range 0x1000 to 0x103f. > > This is to match legacy drivers. > > -- > 2.26.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section 2023-02-25 22:59 ` Michael S. Tsirkin @ 2023-02-27 2:54 ` Parav Pandit 2023-02-27 7:29 ` Michael S. Tsirkin 0 siblings, 1 reply; 6+ messages in thread From: Parav Pandit @ 2023-02-27 2:54 UTC (permalink / raw) To: Michael S. Tsirkin Cc: virtio-dev@lists.oasis-open.org, cohuck@redhat.com, virtio-comment@lists.oasis-open.org, Shahaf Shuler > From: Michael S. Tsirkin <mst@redhat.com> > Sent: Saturday, February 25, 2023 6:00 PM > > On Sun, Feb 26, 2023 at 12:06:36AM +0200, Parav Pandit wrote: > > Currently PCI device requirements section contains mix of normative > > statements for for regular (non transitional) device and transitional > > device under one section. > > > > Some requirements of the transitional device are also located in > > legacy interface section which is the right section for it. > > > > Hence, > > 1. Move transitional device requirements to their designated Legacy > > interface section > > 2. Describe regular device requirements without quoting it as "non > > transitional device" > > > > While at it, write the description using a singular object definition. > > > > This is only an editorial change. > > > > This patch is on top of [1]. > > > > [1] > > https://lists.oasis-open.org/archives/virtio-dev/202302/msg00578.html > > > > Signed-off-by: Parav Pandit <parav@nvidia.com> > > nack I already answered this. legacy sections describe legacy interface of > transitional devices. > Legacy device id of the transitional device is 0x1000 for net. Legacy revision id of the transitional device is 0x0. Why revision id belongs to legacy section, but device id doesn't? Still trying to understand this convoluted policy. Will re-read your email again if that is explained somehow without bringing the driver in context. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section 2023-02-27 2:54 ` Parav Pandit @ 2023-02-27 7:29 ` Michael S. Tsirkin 0 siblings, 0 replies; 6+ messages in thread From: Michael S. Tsirkin @ 2023-02-27 7:29 UTC (permalink / raw) To: Parav Pandit Cc: virtio-dev@lists.oasis-open.org, cohuck@redhat.com, virtio-comment@lists.oasis-open.org, Shahaf Shuler On Mon, Feb 27, 2023 at 02:54:09AM +0000, Parav Pandit wrote: > > > > From: Michael S. Tsirkin <mst@redhat.com> > > Sent: Saturday, February 25, 2023 6:00 PM > > > > On Sun, Feb 26, 2023 at 12:06:36AM +0200, Parav Pandit wrote: > > > Currently PCI device requirements section contains mix of normative > > > statements for for regular (non transitional) device and transitional > > > device under one section. > > > > > > Some requirements of the transitional device are also located in > > > legacy interface section which is the right section for it. > > > > > > Hence, > > > 1. Move transitional device requirements to their designated Legacy > > > interface section > > > 2. Describe regular device requirements without quoting it as "non > > > transitional device" > > > > > > While at it, write the description using a singular object definition. > > > > > > This is only an editorial change. > > > > > > This patch is on top of [1]. > > > > > > [1] > > > https://lists.oasis-open.org/archives/virtio-dev/202302/msg00578.html > > > > > > Signed-off-by: Parav Pandit <parav@nvidia.com> > > > > nack I already answered this. legacy sections describe legacy interface of > > transitional devices. > > > Legacy device id of the transitional device is 0x1000 for net. > Legacy revision id of the transitional device is 0x0. > Why revision id belongs to legacy section, but device id doesn't? > Still trying to understand this convoluted policy. > Will re-read your email again if that is explained somehow without bringing the driver in context. It's convoluted because legacy is convoluted. It's a bolt-on. We have a modern description. Is says e.g. "A". Then legacy chapter comes and say "yea but legacy is B". This is not how spec normally works. The rule is this: one should be able to ignore legacy sections if not building a legacy driver/device. If you are building a modern driver it must support transitional devices. Thus is must know about id 0x1000. Conclusion - 0x1000 is out of legacy section. If you are building a modern driver it ignores revision. But legacy drivers used revision 0. So a transitional device has 0 to make legacy drivers work. Conclusion - revision 0 is in the legacy section. -- MST ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-02-27 7:29 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-02-25 22:06 [PATCH v1 0/2] Move transitional dev req to legacy interface Parav Pandit 2023-02-25 22:06 ` [PATCH v1 1/2] transport-pci: Use lowecase alphabets Parav Pandit 2023-02-25 22:06 ` [PATCH v1 2/2] transport-pci: Move transitional device id to legacy section Parav Pandit 2023-02-25 22:59 ` Michael S. Tsirkin 2023-02-27 2:54 ` Parav Pandit 2023-02-27 7:29 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox