Han, Weidong
2009-Jun-05 01:49 UTC
[Xen-devel] [patch 3/3] VT-d cleanup: correct way to submit command to GCMD register
Per VT-d spec, software should submit only one "incremental" command at a time to Global Command reigster. Current implementation uses a variable (gcmd) to record the state of Global Status register. It''s error prone. A good algorithm to use is as follows, whenver software needs to submit a command: Read current value of Global Status Register (X); // This tells what is the current state of commands enabled in hardware X = Bitwise OR the new command bit to X; // The only new bit set in X is the one new command we are going to issue Write X to Global Command register; // Submit the command Poll Global Status register until it has new value of X ; // Poll until command is done Signed-off-by: Weidong Han <weidong.han@intel.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Han, Weidong
2009-Jun-05 02:03 UTC
RE: [Xen-devel] [patch 3/3] VT-d cleanup: correct way to submit command to GCMD register
The patch attached in previous mail is obsolete. Attached the right one. Thanks. Regards, Weidong Han, Weidong wrote:> Per VT-d spec, software should submit only one "incremental" command > at a time to Global Command reigster. Current implementation uses a > variable (gcmd) to record the state of Global Status register. It''s > error prone. A good algorithm to use is as follows, whenver software > needs to submit a command: Read current value of Global Status > Register (X); // This tells what is the current state of commands > enabled in hardware X = Bitwise OR the new command bit to X; // The > only new bit set in X is the one new command we are going to issue > Write X to Global Command register; // Submit the command Poll > Global Status register until it has new value of X ; // Poll until > command is done > > > Signed-off-by: Weidong Han <weidong.han@intel.com>_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel