From 3801029f7ab50559eb0e7cfa4253142c46cd0085 Mon Sep 17 00:00:00 2001 From: hornet Date: Thu, 12 Dec 2013 18:05:18 +0000 Subject: 2.3.2 MMIO: Further clarifications Clarified driver behaviour for out-of-spec MagicValue, Version and DeviceID values. Signed-off-by: Pawel Moll git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@174 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652 --- content.tex | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/content.tex b/content.tex index 01f87e4..709bbbf 100644 --- a/content.tex +++ b/content.tex @@ -1417,17 +1417,26 @@ All register values are organized as Little Endian. \endfoot \endlastfoot \mmioreg{MagicValue}{Magic value}{0x000}{R}{% - MUST be 0x74726976 (a Little Endian equivalent of the "virt" string). + Device MUST return value 0x74726976 + (a Little Endian equivalent of the "virt" string). + Driver MUST ignore device returning other values, + although it MAY report an error. } \hline \mmioreg{Version}{Device version number}{0x004}{R}{% Devices compliant with this specification MUST return value 0x2. + Legacy device (see \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}~\nameref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}) MAY return value 0x1. + Driver MUST ignore device returning other values, + although it MAY report an error. } \hline \mmioreg{DeviceID}{Virtio Subsystem Device ID}{0x008}{R}{% See \ref{sec:Device Types}~\nameref{sec:Device Types} for possible values. - Value zero (0x0) is invalid and devices returning this ID MUST be ignored - by the driver. + Value zero (0x0) is invalid and driver MUST ignore such device + but MUST NOT report any error. This behaviour can be used to + define a system memory map with placeholder devices at static, + well known addresses, assigning functions to them depending + on user's needs. } \hline \mmioreg{VendorID}{Virtio Subsystem Vendor ID}{0x00c}{R}{} @@ -1675,7 +1684,7 @@ nor behaviour: \endlastfoot \mmioreg{MagicValue}{Magic value}{0x000}{R}{} \hline - \mmioreg{Version}{Device version number}{0x004}{R}{Legacy devices MUST return value 0x1.} + \mmioreg{Version}{Device version number}{0x004}{R}{Legacy device MUST return value 0x1.} \hline \mmioreg{DeviceID}{Virtio Subsystem Device ID}{0x008}{R}{} \hline -- cgit v1.2.3