关于USB overrun

KC坤 2010-05-17 02:15:20
26.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 1.1.0 2010/05/10 22:11:11.016 3.8sc
26.0 DO 12 01 10 01 00 00 00 08 03 06 f2 00 12 01 01 02 00 01 ................ 1.2.0 2010/05/10 22:11:11.016 10us
26.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 2.1.0 2010/05/10 22:11:11.016 8us
26.0 DO 09 02 22 00 01 01 00 a0 32 ..".....2 2.2.0 2010/05/10 22:11:11.016 5us
26.0 CTL 80 06 00 02 00 00 22 00 GET DESCRIPTOR 3.1.0 2010/05/10 22:11:11.016 9us
26.0 DO 09 02 22 00 01 01 00 a0 32 09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 41 00 07 05 81 03 08 ..".....2....... 3.2.0 2010/05/10 22:11:11.016 3us
26.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 4.1.0 2010/05/10 22:11:11.016 9us
26.0 CTL 21 0a 00 00 00 00 00 00 SET IDLE 5.1.0 2010/05/10 22:11:11.016 8us
26.0 CTL 81 06 00 22 00 00 81 00 GET DESCRIPTOR 6.1.0 2010/05/10 22:11:11.019 3.0ms
26.0 DI 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 05 75 01 ..........)...%. 6.2.0 2010/05/10 22:11:11.032 12ms
26.0 CTL 21 09 00 02 00 00 01 00 SET REPORT 7.1.0 2010/05/10 22:11:12.569 1.5sc
26.0 DO 00 . 7.2.0 2010/05/10 22:11:12.572 3.2ms
28 DO 00 00 .. 8.1.0 2010/05/10 22:11:12.572 9us
26.1 DI 00 00 1e 00 00 00 00 00 ........ 9.1.0 2010/05/10 22:11:18.708 6.1sc
28 DI 00 00 00 1e 00 00 00 00 00 ......... 10.1.0 2010/05/10 22:11:18.708 18us
26.1 DI 00 00 00 00 00 00 00 00 ........ 11.1.0 2010/05/10 22:11:18.716 7.9ms
28 DI 00 00 00 00 00 00 00 00 00 ......... 12.1.0 2010/05/10 22:11:18.716 6us
26.1 DI 00 00 1e 00 00 00 00 00 ........ 13.1.0 2010/05/10 22:11:20.348 1.6sc
28 DI 00 00 00 1e 00 00 00 00 00 ......... 14.1.0 2010/05/10 22:11:20.348 12us
26.1 DI 00 00 00 00 00 00 00 00 ........ 15.1.0 2010/05/10 22:11:20.356 7.9ms
28 DI 00 00 00 00 00 00 00 00 00 ......... 16.1.0 2010/05/10 22:11:20.356 12us
26.0 CTL 21 09 00 02 00 00 01 00 SET REPORT 17.1.0 2010/05/10 22:15:19.158 3.9mn
26.0 DO 00 . 17.2.0 2010/05/10 22:15:19.158 14us
26.0 NSTS d3 02 00 c0 error 17.3.0 2010/05/10 22:15:19.158 3us
26.0 CTL 21 0a 00 00 00 00 00 00 SET IDLE 18.1.0 2010/05/10 22:15:19.228 69ms
26.0 USTS 05 00 00 c0 no response 18.2.0 2010/05/10 22:15:19.232 3.9ms
26 RSET 19.1.0 2010/05/10 22:15:19.293 61ms
26 NSTS 00 00 00 00 success 19.2.0 2010/05/10 22:15:19.679 385ms
26.1 RSET 20.1.0 2010/05/10 22:15:19.679 11us
26.1 USTS 05 00 00 c0 no response 20.2.0 2010/05/10 22:15:21.307 1.6sc
26 RSET 21.1.0 2010/05/10 22:15:22.362 1.0sc
26 NSTS 00 00 00 00 success 21.2.0 2010/05/10 22:15:22.518 155ms
26.1 RSET 22.1.0 2010/05/10 22:15:22.518 11us
26.1 USTS 0c 00 00 c0 buffer overrun 22.2.0 2010/05/10 22:15:22.521 2.9ms
26 RSET 23.1.0 2010/05/10 22:15:24.578 2.0sc
26 NSTS 00 00 00 00 success 23.2.0 2010/05/10 22:15:24.734 155ms
26.1 RSET 24.1.0 2010/05/10 22:15:24.734 23us
26.1 USTS 0c 00 00 c0 buffer overrun 24.2.0 2010/05/10 22:15:24.737 3.0ms
26 RSET 25.1.0 2010/05/10 22:15:26.490 1.7sc
26 NSTS 00 00 00 00 success 25.2.0 2010/05/10 22:15:26.648 157ms
26.1 RSET 26.1.0 2010/05/10 22:15:26.648 17us
26.1 USTS 0c 00 00 c0 buffer overrun 26.2.0 2010/05/10 22:15:26.651 2.9ms
26 RSET 27.1.0 2010/05/10 22:15:27.786 1.1sc
26 NSTS 00 00 00 00 success 27.2.0 2010/05/10 22:15:27.943 156ms
26.1 RSET 28.1.0 2010/05/10 22:15:27.943 16us
26.1 USTS 0c 00 00 c0 buffer overrun 28.2.0 2010/05/10 22:15:27.946 2.9ms


USB键盘唤醒以后出现以上问题,请问有那位大侠知道原因
...全文
248 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
KC坤 2010-06-01
  • 打赏
  • 举报
回复
现在我通过USB分析仪分析以后,发现是在我唤醒以后没有对端点做 clear endpoint feature的动作,在对其重新clear endpoint feature以后,发现问题解决。
以上信息供大家学习交流
KC坤 2010-05-26
  • 打赏
  • 举报
回复
我修改了以后,發現這個現象還是存在的,我已經把端點0和1能夠接收到的最大包都改成了64。
我現在開始懷疑是不是不是FIFO溢出,而是端點之間為了爭奪緩存器而發生了OVERRUN。
還請高手們指點一下
謝謝啦。。。
KC坤 2010-05-19
  • 打赏
  • 举报
回复
因為鍵盤使自己做的,我也不知道為什么一直會出現這個問題,不知道是端點0溢出還是端點1溢出,而且我端點1最大可接收包為64,而我的端點0卻只能是8,端點0不能改,所以我現在非常郁悶。。。
老人参 2010-05-19
  • 打赏
  • 举报
回复
如果是溢出,

是你键盘的枚举描述符问题,我也遇到过溢出问题,

修改描述符就ok
98132239 2010-05-17
  • 打赏
  • 举报
回复
是你的USB键盘有问题吧?换个键盘还会这样吗?
PassMark BurnInTest V5.3 Copyright (C) 1999-2008 PassMark Software All Rights Reserved http://www.passmark.com Overview ======== Passmark's BurnInTest is a software tool that allows all the major sub-systems of a computer to be simultaneously tested for reliability and stability. Status ====== This is a shareware program. This means that you need to buy it if you would like to continue using it after the evaluation period. Installation ============ 1) Uninstall any previous version of BurnInTest 2) Double click (or Open) the downloaded ".exe" file 3) Follow the prompts UnInstallation ============== Use the Windows control panel, Add / Remove Programs Requirements ============ - Operating System: Windows 2000, XP, 2003 server, Vista (*) - RAM: 32 Meg - Disk space: 6 Meg of free hard disk space (plus an additional 10Meg to run the Disk test) - DirectX 9.0c or above software for 3D graphics and video tests (plus working DirectX drivers for your video card) - SSE compatible CPU for SSE tests - A printer to run the printer test, set-up as the default printer in Windows. - A CD ROM + 1 Music CD or Data CD to run the CD test. - A CD-RW to run the CD burn test. - A network connection and the TCP/IP networking software installed for the Network Tests Pro version only: - A serial port loop back plug for the serial port test. - A parallel port loop back plug for the parallel port test. - A USB port loop back plug for the USB port test. - A USB 2.0 port loop back plug for the USB 2.0 port test. - PassMark ModemTest V1.3 1010 (or higher) for Plugin Modem testing. - PassMark KeyboardTest V2.2 1011 (or higher) for Plugin Keyboard testing. - PassMark Firewire Plugin V1.0 1000 (or higher) and a 揔anguru FireFlash?drive for Plugin Firewire testing. (*) Windows 2000 does not support the CD-RW burn test. The advanced RAM test is only available under Windows 2000 and Windows XP professional (the other RAM tests are supported under the other OS's). Users must have administrator privileges. Windows 98 and Windows ME ========================= Windows 98 and ME are not supported in BurnInTest version 5.3 and above. Use a version of BurnInTest prior to 5.2 for compatibility with W98 and ME. Windows 95 and Windows NT ========================= Windows 95 and NT are not supported in BurnInTest version 4.0 and above. Use a version of BurnInTest prior to 3.1 for compatibility with W95 and NT. Version History =============== Here is a summary of all changes that have been made in each version of BurnInTest. Release 5.3 build 1035 revision 4 WIN32 release 10 November 2008 - Lenovo China specific build. Lenovo system detection changes. Release 5.3 build 1035 revision 3 WIN32 release 7 November 2008 - Lenovo China specific build. Lenovo system detection changes. Release 5.3 build 1035 revision 2 WIN32 release 6 November 2008 - Lenovo China specific build. Lenovo logo and Lenovo system detection changes. Release 5.3 build 1035 WIN32 release 5 November 2008 - Lenovo China specific build. Changes include: Lenovo logo added, Lenovo system support only, 32-bit BurnInTest restricted to 32-bit Windows and BurnInTest run as administrator. Release 5.3 build 1034 WIN32 release 3 October 2008 - Correction to setting the CD burn test drive in preferences. - Changed the mechanism to check for the required DirectX Direct3D as the previous method did not work on some system (some W2003 servers). - Enhanced the mechanism to report memory hardware errors in the Memory torture test. Release 5.3 build 1033 WIN32 release 1 October 2008 - Changes to correct a BurnInTest crash problem on some systems. When the disk and standard RAM tests are run for many hours, BurnInTest may have disappeared with no error message. Release 5.3 build 1030 WIN32 release 25 September 2008 - Changes to investigate a BurnInTest crash problem on XP SP3. Release 5.3 build 1028 WIN32 release 11 September 2008 - Two 2D Video memory test crash bug workarounds implemented. Crashes in (i) DirectX DirectShow and (ii) ATI atiumdag.dll library. - A hang on startup has been corrected. A 2 minute timeout has been added to the collection of system information. - Video playback, Hard disk and CD/DVD test 'no operations' error reporting changed. - When BurnInTest crashes, it will not generate a "minidump" file. Minidumps will need to be sent to Microsoft as per the normal process. However, a log entry will be added to the normal BurnInTest log. - Changes to trace logging to reduce activity when trace logging is not turned on. - Note: We have seen a report of the Video Playback failing (crash) due to a faulty video codec, ffdshow.ax. If you are using this we suggest you try a different Video file and codec. Release 5.3 build 1027 revision 0003 WIN32 release 19 August 2008 - Changed the 2D test to wait for the Video Playback test in order to allow memory allocation for the Video playback test. - Changed the Memory test to wait for the Video Playback test and 3D test to allow memory allocation for these tests. - Minor changes to the No operation error watchdog timer for the CD and Hard disk tests. - Minor correction to the Butterfly seek test. - Video playback trace logging increased. Release 5.3 build 1027 revision 0002 WIN32 release 19 August 2008 - Video playback trace logging increased. Release 5.3 build 1027 WIN32 release 31 July 2008 - Corrected a bug where BurnInTest would fail to start if Activity trace level 2 logging (debug level logging) was turned on and the Logging Summarize option was also selected. - Minor change to the serial port test where, if "Disable RTS/CTS and DSR/DTR test phase" was selected the DTR and RTS lines would be explicitly disabled to prevent any toggling of these lines. Previously these where enabled, but not explicitly toggled. Release 5.3 build 1026 WIN32 release 17 July 2008 - Updated Level 2 and Level 3 CPU cache information for newer Intel CPU's. - Updated the detection of Hyperthreading and the number of logical CPUs for a new Intel CPU. Release 5.3 build 1025 WIN32 release 11 July 2008 - Corrected a Disk test bug where on rare occasions a verification error is incorrectly displayed. This is during the random seeking phase of the "Random data with random seeking" test mode and only occurs with some specific test settings. Release 5.3 build 1024 WIN32 release 10 July 2008 - Workaround for the rare crash bug in Vista in atklumdisp.dll at address 0x730676ae. - Added trace debug information for BurnInTest startup and the 3D test. Release 5.3 build 1022 WIN32 release 12 June 2008 - Corrected a bug where the 2D video memory test in BurnInTest v5.3.1020 and v5.3.1021 would report a "Not enough video memory available for test" error if the test was run a couple of times (without closing BurnInTest). Release 5.3 build 1021 WIN32 release 5 June 2008 - 32-bit BurnInTest PRO 5.3.1020 would not start on Windows 2000. This has been corrected. Release 5.3 build 1020 WIN32 release 29 May 2008 - BurnInTest could have crashed on accessing bad video memory hardware in the 2D test. This problem is now just reported as an error (and BurnInTest) continues. - When BurnInTest crashes, it should now generate a "minidump" file to help debug which system component caused the failure (32-bit Pro version only). - Other minor changes. Release 5.3 build 1019 WIN32 release 16 May 2008 - Corrected rare crash bugs in the 2D and Video tests. - Added a hot Key, F4, to set the auto run flag and run the tests (i.e. set "-r" and then run the tests). - Other minor changes. Release 5.3 build 1018 WIN32 release 16 April 2008 - Added an operation watchdog timer for all tests. In rare cases, a single test can stop in the operating system - i.e. there is a problem in the operating system/ device driver that prevents control being returned to the BurnInTest for that test. This was added for specialized serial port hardware that could lockup after several hours of testing. Release 5.3 build 1017 WIN32 release 3 April 2008 - Corrected the Advanced Network test to run on non-English Operating Systems. Release 5.3 build 1016 WIN32 release 17 March 2008 - Added additional USB 2.0 Loopback plug test initialization to ensure plugs are in a 'clean' state when starting the USB tests. This was added due to reported USB data verification errors after scripted USB testing across multiple reboots. Release 5.3 build 1015 WIN32 release 27 February 2008 - Increased error reporting detail for the standard RAM test, when the -v command line option is used. Release 5.3 build 1014 WIN32 release 30 January 2008 - Corrected a problem where the loopback sound test could run out of memory if run for several days. Release 5.3 build 1013 WIN32 release 31 December 2007 - Improved the reporting of COM port errors such that in the rare case a COM port locks up in the Operating System, the error is still reported. - Corrected a bug, where in rare cases, the result summary could be duplicated in a log file. - Updated license management, in an attempt to remove a rare crash on startup. Release 5.3 build 1012.0002 WIN32 release 31 October 2007 - New build of Rebooter (64-bit Windows correction). - Clarifications in the help file. Release 5.3 build 1012 WIN32 release 17 October 2007 - Changed the Standard Network Test, "Test all available NICs" such that the number of Network Addresses specified in Preferences->Network will be the number of NICs tested. This will error faulty NICs that are not detected by the BurnInTest auto NIC detection mechanism. - Minor change to the 2D memory test when run with the 3D test (multiple large windows) and the RAM test. Aimed at correcting sympton: Access Violation 0x00404CF9. - Corrections to the mapping of paths with ".\". Release 5.3 build 1011 rev 2 WIN32 release 17 September 2007 - Modified the Multi-Process torture test to better describe a new error message introduced in V5.3.1010. Release 5.3 build 1011 - Public release WIN32 release 11 September 2007 - Corrected a bug where "Limited Evaluation Version" could be displayed even after BUrnInTest is licensed (problem introduced in 32-bit BITPRO V5.3.1010). - Changed the Sound test to allow any of the tests (Wave, Midi or MP3) to be excluded from testing by blanking the filename. - The Command line parameter "-j" (cycle disk test patterns after each test file) could fail during the Random data test due to the mechanism used in BurnInTest. The Random data test is now excluded from the test when (and only when) the "-j" command line parameter is specified. - In rare circumstances, the 2D test number of operations could potentially overflow and become negative. This has been corrected. - In rare circumstances, BurnInTest could hang if there was a system problem in rebooting the system (ie. it failed to shutdown) using PassMark Rebooter. This has been corrected. Release 5.3 build 1010 - Public release WIN32 release 28 August 2007 WIN64 release 28 August 2007 - As BurnInTest exercises system components, it is possible for faulty hardware or device drivers to cause software exceptions. These are normally seen as Windows reporting an "Access Violation". Changes have been made to handle these errors for the memory tests (for faulty RAM) and direct device driver access (for some device driver errors), as well as overarching more generic handling of these types of errors. - Corrected a software failure bug on startup (particularly Vista) where a DirectX function was causing software failures in "dsetup.dll". - Updated the "Activity Event" generated with the periodic results summary report to be numbered (from 1 upwards) such that when "Logging->Summarize", these events are not summarized. - Corrected a bug where the HTML log name could include a duplicate of the filename prefix. - Updated to the Common Errors section of help. Release 5.3 build 1009 - Public release WIN32 release 16 August 2007 - Corrected a 'zip' version cleanup problem. Release 5.3 build 1008 - Komputer Swiat Expert magazine version WIN32 STD release 14 August 2007 Release 5.3 build 1007 - Public release WIN32 release 7 August 2007 - Corrected a disk test startup problem for some large RAID systems when SMART testing is selected. - Added additional logging for the disk test when an error occurs. - Changed the 3D test when run with the 2D EMC test to be 'behind' the EMC scrolling H's test. Allowed the test to be easily exited when running the 3D test in Fullscreen mode. - Minor corrections to the Advanced Network test. - Changed the log file reference of "Network Name" to "Computer Name". WIN64 specific: - MMX and 3DNow! are obsolete for native 64-bit applications. BurnInTest has been changed to show "NA" (Not applicable) in the test window for these tests. Release 5.3 build 1006 - Limited release WIN32 release 17 July 2007 - Standard Network Test changes: - Increased the number of destination IP addresses from 4 to 6. - Added an option (default) "Test all available NICs", which will force traffic down every system NIC with a basic algorithm of NIC1 to IP Address 1, NIC2 to IP Address 2 etc. - Advanced Network test changes: - Simplified the test. - Removed the UDP and FTP options. The Standard Network test can be used as a UDP test. - Removed the Advanced Network test specific logging, and included all relevant logging in the standard BurnInTest logging mechanism. - Replaced the complicated dynamic balancing of any system NIC to any Endpoint NIC with a simpler static allocation on test startup. - Changed the error detection mechanism to detect errors much more quickly. - Re-worked the errors reported. - Changed the CPU throttling mechanism to reduce the CPU load. - Updated endpoint.exe. - Removed checkend.exe (now obsolete). - Changed the logging rollover to work with the output of interim results (e.g. per 1 minute). Previously rollover only occurred on error events written to the log. This also corrected an issue where interim results summary logging could be written to the physical disk with some delay (based on Windows disk caching). - Corrected the "Unknown" reporting of some operating systems. - Added the skipping of the Butterfly seek disk test when run on Vista and insufficient privileges. A notification of this is logged. - Intel Quad core L2 cache size reporting has been added. - Added new SMART threshold descriptions. - Added new disk test options, accessed via command line parameters: /ka: keep disk test files in all cases (c.f. /k keep disk test files on error). /j: cycle patterns between test files. Note: Random seeking will be skipped in this case. This option has been added to allow multiple test patterns to be used across very large disks. - Added an option to make some test settings unavailable to the user. An example configuration file available on request. Release 5.3 build 1005 0001 (STD only) - Public release WIN32 release 29 June 2007 - Corrected a bug introduced in v5.3.1005.0000 STD (only) where the disk test would use up more and more system resources, thus causing test failures. Release 5.3 build 1005 rev 0003 (PRO only) - Limited public release WIN32 release 21 June 2007 - Correction to the behavior of a static RAM test pattern (rather than the default Cyclic pattern). Release 5.3 build 1005 rev 0002 (PRO only) - Limited public release WIN32 release 15 June 2007 - The "Select all CD/DVD drives" preferences option has been made user configurable, rather than using pre-defined test settings. Release 5.3 build 1005 rev 0001 (PRO only) - Limited public release WIN32 release 13 June 2007 - Bug correction for the CD auto selection feature. Release 5.3 build 1005 - Public release WIN32 release 18 May 2007 WIN64 release 18 May 2007 - In a number of cases, such as when specifying the post test application, uppercase application names were not accepted. This has been corrected. - The default font height in the 2D scrolling H's test should have been Arial 9. This has been changed. - The BurnInTest Video playback test incompatibility with Nero 6 and Nero 7 has been resolved. - The BurnInTest disk test throughput for dual core systems has been improved. Release 5.3 build 1004 rev2 - Limited release WIN32 release 8 May 2007 - Changed the Standard Network Test to better report packet error ratios. In addition, a new warning has been added to indicate that errors have been detected but not enough packets have been attempted to be sent to determine accurately whether the configured error ratio has been exceeded. - Corrected a bug where the "append to existing" logging option did not work across scripted reboots, and a new log file was created instead of appending to the existing log file. - If the 3D test was running, then BurnInTest blocked a forced close of BurnInTest, this blocking has been removed. - Changed the PASS and FAIL windows so they can now also be closed by selecting the Windows Close "X" button. Release 5.3 build 1004 - Public release WIN32 release 10 April 2007 WIN64 release 10 April 2007 - Corrected a problem introduced in BurnInTest v5.2 where BurnInTest could run out of memory (the main symptom) when tests where run for long periods (> 12hours). WIN64 specific: - Corrected a bug where the number of cores reported on a Quad core system was incorrectly reported as CPU packages. Release 5.3 build 1003 - Limited release WIN32 release 3 April 2007 - A new 2D GUI (Graphical User Interface) test has been added to the standard 2D graphics test. - Resolved an issue where BurnInTest would fail to start on Vista systems with DEP enabled for all programs. - On some systems, the Disk test could pause momentarily even when a duty cycle of 100% was specified. This pause has been removed. - When running the CD test under BartPE (Pre-install environment) 4 additional specific files are skipped as they are unavailable for testing. - Minor bug corrections. Release 5.3 build 1002 rev 0001 - Limited release WIN32 release 16 March 2007 - Changes to the new 3D test: - Added a Full screen non-windowed test for the primary monitor, where the resolution can be selected from those supported by the Graphics card. - Added the user option of changes the vertical sync in the full screen non-windowed test to be either the Maximum rate of the graphics card, or to be the rate of the monitor (this may prevent some flicker). - Added a more complex water texture using DirectX Vertex Shader 2.0 and Pixel Shader 2.0 effects (if supported by the graphics card). This applies to 3D test windows that are 800x600 or larger. - Changed some error messages from window displays (that require user intervention) to standard error reporting. Added new 3D error messages and more detail in the error reporting. - Changed the definition of an operation to be a successfully displayed frame. - Changed the definition of a cycle to be 2000 frames. - Changed 2D video memory test to wait until the 3D test starts (as per V5.2 and earlier). - A new version of rebooter has been included. - If BurnInTest is started with the -p command line parameter (to use the bit.exe directory for files such as the configuration file), then BurnInTest will start rebooter with the -p option. This can be useful when running BurnInTest and Rebooter from a USB drive. Release 5.3 build 1002 - Limited release WIN32 release 19 March 2007 - Corrected a bug introduced in V5.2 where selecting accumulated logging could lead to rebooter failing to launch. Release 5.3 build 1001 - Limited release WIN32 release 16 March 2007 - The 3D test has been improved. The 3D ball test has been replaced with a more complex 3D terrain test. This will more thoroughly exercise modern graphics cards. Further, the 3D test has been changed to support multi- monitor testing (up to 4 monitors). Accordingly, a new preferences section has been added for the 3D test. The multi-monitor test options are only available in BurnInTest Professional. Release 5.3 build 1001 - Limited release WIN32 release 16 March 2007 - The 3D test has been improved. The 3D ball test has been replaced with a more complex 3D terrain test. This will more thoroughly exercise modern graphics cards. Further, the 3D test has been changed to support multi- monitor testing (up to 4 monitors). Accordingly, a new preferences section has been added for the 3D test. The multi-monitor test options are only available in BurnInTest Professional. - BurnInTest uses DirectX 9.0c. This version of BurnInTest uses a more recent version of the Microsoft DirectX Direct3D component, October 2006. BurnInTest has been modified to detect and install this component (file) if it does not exist. - A command line parameter -X has been added to skip the DirectX version checking on BurnInTest start-up. - With the recent introduction of multi-monitor support for the Video Playback test, it is now more likely that the system will run out of memory when running multiple video tests simultaneously, particularly when more memory intensive codecs are used. A specific Insufficient resources to complete test message has been added in this case, rather than the previous more generic unrecoverable error message. The video test have been changed to attempt recovery from this and the more generic unrecoverable error, by closing the current video and opening the next. The logging detail has been increased. - Note: The BurnIntest sample video pack has been altered with the DivX Compressed Video file being removed due to the DivX codec failing with this Video file when used with multiple simultaneous Video playbacks. Access Violation: 0x69756e65. See: http://www.passmark.com/download/bit_download.htm - The video description is now collected for a larger range of Vista systems. - Windows 98 and ME are no longer supported. Please see www.passmark.com for a link to an older version of BurnInTest that will support W98/ME. Release 5.3 build 1000 rev2 - Limited release WIN32 release 9 March 2007 - A command line parameter -P has been added to allow the BurnInTest directory to be used rather than the User's personal directory. This may be useful when running BurnInTest from a USB drive for example. - When running the CD test under BartPE (Pre-install environment) 4 additional specific files are skipped as they are unavailable for testing. - A change has been made to support Hmonitor temperature monitoring on Vista. - A number of undocumented command line parameters have been documented: -B: BurnInTest will generate additional Serial port test information when activity trace level 2 logging is set. -E [data]: Specifies the test data to use in the serial port test. -M: Automatically display the Machine ID Window when BurnInTest is started. -U: Force BurnInTest to set logging on at startup. Release 5.3 build 1000 - Limited release WIN32 release 8 March 2007 - Changed the 2D and Video playback tests to support multi-monitor testing. - When running the CD test under BartPE (Pre-install environment) 4 specific files are skipped as they are unavailable for testing. Release 5.2 build 1006 - Limited release WIN32 release 1 March 2007 - Corrected a bug where BurnInTest would fail to start on certain Vista systems. - Corrected a bug where some files where the full path was not specified would be incorrectly referenced in the Program Files directory, rather than the user personal directory. Release 5.2 build 1005 - Public release WIN32 release 21 February 2007 WIN64 release 21 February 2007 - Updated the Graphics card description for Windows Vista systems. - Updated the Advanced Network test to indicate that elevated administrator privileges are required when running on Vista. - Moved files from the Program files directory for the Advanced Network Test (BurnInTest, EndPoint and CheckEnd). Specifically, the User Application directory is now used for the temporary test FTP files and the User Personal directory is now used for the log and configuration files. - Updated the cleanup process for when running the "zip" version of BurnInTest Professional from a CD or flash drive. - Updated the help link from the Windows Start, All Programs, BurnInTest menu for the browser based help. - Corrected a bug where Disk preferences displayed in the Preferences window would be incorrect when the system had no Floppy drive. - Corrected a bug where the Advanced Network test might not have been displayed until after entering the Duty Cycle selection (ie. just chaning from the standard network test to the advanced test). - Corrected a USB bug in Beta 5.2.1003 where the test would not run if there where there insufficient USB loopback plugs attached to the system. - Included a new version of PassMark Rebooter that supports Windows Vista. Release 5.2 build 1004 - Public Pre-release WIN32 release 13 February 2007 - Updated the reported Operating system for the various Vista product editions. - Disk test settings can be configured for "Automatically Select all Hard Disks", rather than using defaults. - When running the CD test under BartPE (Pre-install environment) 4 specific files are skipped as they are unavailable for testing. - Corrected a bug where temperature information could be duplicated in the HTML report. - Corrected a bug certain 'save report' warning messages could be truncated. - Help file updated. Release 5.2 build 1003 - BETA RELEASE ONLY WIN32 release 23 January 2007 - Changed the USB preferences and test to more completely check for the PassMark USB Loopback plugs and ignore any device that is not a PassMark USB Loopback plug (due to reported incorrect detection with another hardware device). - Increased Trace level debugging for Intel temperature monitoring. - Corrected a bug with the disk test introduced in 5.2.1001 Release 5.2 build 1002 - BETA RELEASE ONLY WIN32 release 22 January 2007 - Increased the number of disks that can be tested from 20 to 26. - Updated BurnInTest to reflect that Temperature monitoring with Intel Desktop utilities is supported. Intel Desktop utilities essentially is a replacement for Intel Active Monitor for newer Intel motherboards. - Increased Trace level debugging for Intel temperature monitoring. Release 5.2 build 1001 - BETA RELEASE ONLY WIN32 release 19 January 2007 - Windows Vista support. - The Block size used in the disk test is now configurable per disk. The default block size has been increased from 16KB to 32KB. - An option has been added to automatically detect all of the CD and DVD drives for the CD test (as per the disk test). This may be useful when testing across many systems with different optical drive configurations. - Increased Trace level debugging for Intel temperature monitoring. - Bugs corrected: - Disk preferences - in rare cases invalid default values could be set for a disk, an invalid value error would occur and the values would need to be manually corrected. Release 5.2 build 1000 - limited release WIN32 release 8 January 2007 - Windows Vista support. - Reduced the need for elevated administrator privileges: - Changed the location of the disk test files from the root directory of the test volume to a BurnInTest data files subdirectory (e.g from "C:\" to "C:\BurnInTest test files\") - Moved many of the files from the Program Files directory to the User directory for Windows 2000, XP and Vista. When running BurnInTest on Windows 98, ME or from a key.dat file (e.g. from a USB drive with a licensed key.dat) BurnInTest will store these files in the BurnInTest program directory. Specifically, the following files have been moved from the Program Files directory to the User Personal directory, e.g. Vista - "C:\Users\\Documents\PassMark\BurnInTest\" XP - "My Documents\PassMark\BurnInTest\" Files: Configuration file, Configuration load/save default directory, Save log file and image default directory, parallel port override "ioports.dat" directory, default command line script directory, log file directory, video file directory, Plugin directory, machine id file directory, Run as script default directory, CD burn image, Advanced network FTP temp files. - Replaced the Help system with Browser based help. - Changed the Disk test block size from 16KB to 256KB. It is planned to make this user configurable in the next build. Release 5.1 build 1014 WIN32 release 2 November 2006 WIN64 release 2 November 2006 - Corrected a bug when running on Vista, where the Standard network test would report a checksum error when the transmitted data was correct. - Corrected a bug where BurnInTest would not stop the tests based on the number of test cycles for the Plugin test or the Advanced Network test. - Made the "Could not set USB2Test mode" USB error message more specific by adding an error for insufficient system resources. - Changed the preferences Window to fit on an 800x600 resolution screen. - Corrected a minor bug in Activity level 2 trace logging with the 'hide duplicate' preference setting. - Corrected a minor memory leak if the 2D test failed to initialize (such as due to a DirectX problem). - The Parallel port test may now be used on Windows Vista. Specifically, the PassMark device driver used for the parallel port test could not be loaded on 64-bit Windows Vista as it was not digitally signed. It is now digitally signed. Release 5.1 build 1013 revision 0002 WIN32 release 19 September 2006 WIN64 release 19 September 2006 - Corrected an Access Violation problem reported by a customer on a particular MB. Release 5.1 build 1013 WIN32 release 7 September 2006 WIN64 release 7 September 2006 - The "Notes" section has been added to the Customer results certificate. - Some additional configuration range validation has been added. Release 5.1 build 1012 WIN32 release 15 August 2006 - Corrected a false report of a "Unable to get disk volume extent information" for the disk butterfly seek test. - Advanced Network test changes for errors: "Corrupt header - packet discarded" and "Advanced Network test timed out" - Advanced Network test Endpoint changes for problems on non-English Operating Systems and systems with the Windows "Network Interface" performance statistics disabled. - SMART parameters on a Samsung Hard Disk caused BurnInTest to fail when running the disk test with SMART thresholds enabled. This has been corrected. - The 2D scrolling H's test could display corrupt characters on the second and subsequent test run. This has been corrected. - A problem with the Integer maths test where the results could display a negative number of operations has been resolved. - Minor improvements to the help file. - HTML help file added for Windows Vista and Longhorn Server. - Minor improvements to the Error Classification file (error descriptions). - Some CD Trace level 1 logging has been moved to trace level 2. - Trace level 1 logging has been added to the test closing software. - New build of Endpoint.exe (1.0 1010). Release 5.1 build 1011 WIN32 release 6 July 2006 - New Advanced Network test error reporting added in the previous build V5.1 1010 has been removed. - A broader range of USB 2.0 Loopback plugs can now be used with BurnInTest. Release 5.1 build 1010 WIN32 release 4 July 2006 - Corrected the HTML report description of the L2/L3 CPU cache when the L3 cache size could not be determined. Advanced network changes: - Endpoints ran at 100% CPU load as they contained no throttling. This impacted their ability to effectively handle multiple threads handling TCP/UDP messaging. Throttling has been added to the EndPoint side to reduce CPU load. This does not greatly impact Network load. - Throttling on the BurnInTest side contained a sleep that was not insignificant. This could have impacted the BurnInTest data test thread to to handle incoming TCP and particularly UDP messages. This sleep has been reduced and other throttling parameters changed to suit. (ie. smaller sleeps more often). - EndPoint systems with x NICs (where x > 1), reported themselves as an Endpoint with x NICs, x times. Effectively registering with BurnInTest as x * x EndPoint NICS. This impacted the effectiveness of the load distribution to EndPoint NICs. An Endpoint system now only registers the once with BurnInTest. - The BurnInTest side did not report data verification Checksum errors for full duplex testing. This error determination has been corrected and reporting added. - The Test statistics sent from the Endpoint to BurnInTest could fail if the statistics block is split across 2 lower level TCP send packets. This could lead to problems like incorrect reporting of Endpoint determined checksum errors, Endpoint load and load balancing. Further it would lead to an Endpoint testthread being put into an endless TCP send loop. This would eventually bring the Endpoint system to its knees as more and more of these test threads go into this state. This has been corrected. - The Data Received reported by BurnInTest was double counted. This has been corrected. Release 5.1 build 1009 WIN32 release 23 June 2006 - Plugin test error classifications were incorrect in the log file detailed description. - Corrections to the advanced network test (BurnInTest and EndPoint). Release 5.1 build 1008 - limited release WIN32 release 20 June 2006 - Advanced network changes corrections. Most notably, a bug where part of the payload data could be lost if the payload block (eg. 1000 bytes) was split across 2 (or more) lower level TCP packets. - Added version reporting for Endpoints. Release 5.1 build 1007 - limited release WIN32 release 16 June 2006 Advanced network changes: - Corrected a BurnInTest access Violation introduced in V5.1 1006. - The Endpoint now reports its version and build to BurnInTest and BurnInTest reports this in the log file if it is an earlier version than expected. This is to help avoid the situation where old Endpoints are run on the Network, that may not be compatible with the version of BurnInTest being run by the user. - Removed a timeout report in a specific instance where a timeout is not an error. - Changed the Endpoint rebalancing and polling to occur less often after the test has been running 3 minutes. This is to help allowing the handling of polling from a larger number of multiple copies of BurnInTest on the Network. - Added a connection retries on failure for the Endpoint. - Corrected a memory leak in the Endpoint. - Increased the number of sockets supported. - Corrected some Advanced Network error classifications. Release 5.1 build 1006 - limited release WIN32 release 14 June 2006 - Improvements to the Advanced Network test (both BurnInTest V5.1 1006 and EndPoint V1.0 1004) to remove corrupted false packet corruption errors. Improved the timeout recovery mechanism. Added some validation to the Windows Network performance data used for NIC utilization. - Changes to the collection of Disk drive information on startup to try to resolve a startup issue on Systems with a large number of physical drives and 'unusual' WMI namings. Release 5.1 build 1005 WIN32 release 2 June 2006 - Corrected a bug in the Advanced network test where the test would not recover from timeout errors. The test appears to be running, but the results are 0 and the number of connected End Points are 0. Also improved the retry on timeout mechanism. - Removed some duplication in error reporting in the Advanced Network test. - Changed the Advanced Network display of Utilization to ensure a maximum of 100% displayed. - Corrected an Advanced Network test bug where the number of Errors reported in the test window would not take into account the corrupt packet threshold, and an error would be added for each occurrence of the corrupt packet (rather than when the user set threshold was reached). Release 5.1 build 1004b WIN32 release 25 May 2006 (not publicly released) - Corrected the default Advanced network corrupt packet threshold value. - Updated the data entry fields in the CD preferences when a different CD drive is selected. - The Advanced Network specific log files should be concatenated for a script run. This was only occurring for the first NIC under test. The concatenation will now occur for each NIC under test, when run from a script. - Corrected a bug where a log file name specified with no directory path could be incorrect. - Corrected a bug where the customer "Test Certificate" report incorrectly translated the "%" character from a customer specific HTML template. eg would be translated to . - The "Advanced Network test error" (215) has been removed and replaced with other existing error messages 214, 219, 220, 221 or 222. - Added the Customer name and Technician name to the text and HTMl reports. Previously, this information was only included in the "Test Certificate" report. - We have added a commandline option to specify the Serial port test data as a constant value. To specify specific data for the Serial port test you should specify e.g. "bit.exe /E 23" from the command line where 23 is in decimal and will be used for all test data (instead of random data). The vales should be between 0 and 255. Release 5.1 build 1004 WIN32 release 19 April 2006 (not publicly released) - Added the COM port speed of 921600 Kbits/s for RS 422/RS485 testing. - Changed the CD test to ensure that the entire test CD data is not cached on systems with a large amount of RAM. - Added a -M command line option to display the Machine ID window automatically when BurninTest starts. - Changed the 2D EMC scrolling H's test to work on multiple monitors were the resolution on each is different. - Changed log files such the syntax "..\" could be used for files in the directory up a level. - Minor correction to the advanced network test. Release 5.1 build 1003 WIN32 release 18 April 2006 WIN64 release 18 April 2006 - Changed the Advanced network test to allow a corrupt packet threshold value up to 1 million. - Bundled a new version of rebooter. Release 5.1 build 1002 WIN32 release 11 April 2006 WIN64 release 11 April 2006 - Corrections to the translation of V4.0 to V5 configuration files. Note: Configuration files in V5.x builds prior to V5.1 1002 could become corrupted if a V4.0 configuration file is loaded. - Corrected a bug where the main Window size and location were not restored on restarting BurnInTest. - Changes to the SMART attribute logging to support a greater range of Disk drive device drivers. Added additional Activity Level 2 trace logging. - Added an option to use CTS (Clear To Send) flow control in the loop back stage of the COM port test. - Corrected a bug where the CPU L3 cache could be reported as -1. - Help file updates. Release 5.1 build 1001 WIN32 release 30/March/2006 - Digitally signed the BurnInTest application to allow it to run under Windows Server "Longhorn". Note, previously only the installation package was digitally signed. - Updated the reported Operating system descriptions, including: - Windows Vista - Windows Server "Longhorn" - Corrected a bug where the Advanced network information was not displayed on the main window when it was run from a script. - The Advanced Network Corrupt threshold packet has been changed to produce an error every time the error is received after the threshold is reached. - Corrected the reporting of "Network, Packet discarded due to corrupt header" as a Network test error. - Corrected a bug where a new log file was not created if (only) the log prefix changed during the running of a script file. - Split the "Network, Advanced Network test error" error into 6 errors: "Network, Advanced Network test error" "Advanced Network Socket error" "Advanced Network Send error" "Advanced Network Send error - no data sent" "Advanced Network Receive error" "Advanced Network Receive error - no data received" Added either activity trace 1 or trace 2 logging for each of the errors, with additional information where available. - Added additional Serial port activity trace 2 logging. Including the logging of all transmit buffer data when the /B command line is used. Release 5.1 build 1000 WIN32 release 27/March/2006 (not a public release) Added the following features: - Create the log file directory specified in the Logging Options if it does not exist. - Condense the Advanced Network Test log files to one log file per IP address per script run, when run from a script. - Added an option to summarize duplicate errors in the log file. - Color coded errors based on severity in the Detailed event log Window and the HTML log file. - Added an option to only create a log file when BurnIn actually runs a test as opposed to every time BurnIn is executed. - Added a warning if a test thread completes with 0 cycles and 0 operations. - In the results summary html file, inserted more spacing between the 揘otes? and 揇etailed Event Log? - Changed the Activity Trace file format to be the same as the log file, ie. text or HTML, rather than always text. - The 2D 揝crolling H抯?test will now display across multiple screens/displays ?i.e. all active displays. - A threshold has been added for the 揷orrupt header ?packet discarded?event in the advanced network options so that a 揊ail?is not produced when that is the only thing that produces errors. - Added looping capability in scripting. LOOP n { ? } where n is the number of times to repeat the commands in the brackets. - Corrected a bug where PASS could be displayed if the Advanced Network test was the only test running, but it failed. Release 5.0 build 1001 WIN32 release 9/March/2006 - Corrected a bug where Network directory paths were not accepted, eg. for the log file name and post test application file name. - The CPU maths test has been improved to better load up all CPU's. Previously BurnInTest started a maths test thread per physical CPU package. BurnInTest has been changed to start a maths test thread per CPU (= num. physical CPU packages x num. CPU cores x num. logical CPUs). - The CPU preferences have been changed to allow the CPU maths test to be locked to any CPU (ie. select a CPU from a list of CPU's where the number of CPU's = num. physical CPU packages x num. CPU cores x num. logical CPUs). - The Parallel and Serial port error message have been modified in the case where a test plug may not have been connected to indicate that the user should check this. - Corrected a bug where a licenced version could display the message "[limited evaluation version]" Release 5.0 build 1000 WIN32 release 24/February/2006 WIN64 release 24/February/2006 NEW TESTS & IMPROVEMENTS TO EXISTING TESTS BurnInTest Standard and Professional versions. - Added a customer style results certificate. This will save the log file in HTML format but from the perspective of a end customer. This report style can be tailored by the user (through changing an HTML template). - An MP3 playback test has been added to the Sound test. - A color printer test has been added. - A new post test option to allow the results to be printed automatically at the end of a test has been added. - Added new Post-test action options of: - Optionally allow the user to "run an external program & exit" after BIT has been manually stopped. Modify the $RESULT variable to "PASS (manual abort)" or "FAIL (manual abort)" for this case. - Allow the results window to be displayed for all post test options (except Reboot). - Added new Pre-test actions to allow an external application to be run and have BIT wait for the application to exit. On continuing, BIT will run the subscript file (of scripting commands) if it has been created. - Changed the manual Stop buttons, to abort the running of a script (rather than just the current test). BurnInTest Professional specific. - Added a "Plugin" test that allows users to develop their own BurnInTest test modules for specialized hardware. Three external plugins may be specified at once. - A Modem test has been added to BurnInTest as a Plugin. PassMark's ModemTest Version V1.3 (latest build) is required. - A KeyBoard Test has been added to BurnInTest as a Plugin. PassMark's KeyboardTest Version V2.2 (latest build) is required. - A Firewire Test has been added to BurnInTest as a Plugin. PassMark's free Firewire plugin is required and a "Kanguru FireFlash" drive is required. - A new advanced network test has been added. BurnInTest Professional only. - The Memory test now allows the user to specify the type of test pattern to be used. - Testing with the USB 2.0 Loopback plug has been improved. When used with USB 2.0 Loopback device driver V2.0.1002, error details will now be reported for: CRC error reported by USB Host controller BIT STUFF error reported by USB Host controller DATA TOGGLE MISMATCH error reported by USB Host controller STALL PID error reported by USB Host controller DEVICE NOT RESPONDING error reported by USB Host controller PID CHECK FAILURE error reported by USB Host controller UNEXPECTED PID error reported by USB Host controller DATA OVERRUN error reported by USB Host controller DATA UNDERRUN error reported by USB Host controller BUFFER OVERRUN error reported by USB Host controller BUFFER UNDERRUN error reported by USB Host controller NOT ACCESSED error reported by USB Host controller FIFO error reported by USB Host controller TRANSACTION (XACT) ERROR reported by USB Host controller BABBLE DETECTED error reported by USB Host controller DATA BUFFER ERROR reported by USB Host controller In the case of these errors, BurnInTest will re-attempt the operation. The user can set the Error reporting to be skipped for the initial recovery attempt. IMPROVEMENTS TO TESTING FACILITIES - Added a disk autoconfig, such that when tests are started, the disk drives and settings will be defaults to all disks (exc. CD/DVD). This may be useful when testing multiple systems with different hard disk drive letters. - Store the position of the Main window on exiting BurnInTest. On starting BurnInTest, position the main window as saved; on starting tests, position the test windows as saved. - Allow a "drag & drop" of the Configuration file directly on the BurnInTest program icon. - Allow testing 99.5% to 100% of disk, instead of 94%, for disks that do not contain the Windows directory and do not contain a swap file. - Added the ability to log interim results, which may be useful for unstable systems. - AMD and Intel Dual core reporting added. - New L2 CPU cache sizes added to reports. - CPU support for SSE3, DEP and PAE added to reports. - Shortcut of "F1" for contextual help added to all Windows. - Improve the flexibility in specifying the EXECUTEWAIT scripting command for sleeper. - Updated logging header information with the hard and optical drive model. - The 2D and 3D tests have been updated to use DirectX 9.0c. - User interface updated. - The HTML report format has been improved. - The BurnInTest configuration file extension has been renamed from .cfg to use .bitcfg, to ensure the configuration file is associated with BurnInTest. - An error message indicating that accumulated log files are not supported when run from CD or DVD has been added. - To allow smaller test files with very large disks, the minimum disk test file size has been reduced from 0.1% to 0.01% of the disk space. - Log events were previously shown as "INFORMATION" if they were low level errors, or simply additional information (not errors). "INFORMATION" now refers to a low level error, and "LOG NOTE" now refers to additional information (that is not in the error count). - Improved the specific detail of the Serial Port errors detected. BurnInTest now reports framing errors, buffer overrun errors, input buffer overflow errors, parity errors and Transmit buffer full errors as specific error messages (rather than a broader error description). - Added the /k command line so the user can specify not to delete HDD test files if an error occurs. - Increased Activity trace level 1 error logging for Serial port testing. - Increased Activity trace level 1 error logging for Hyper threading detection. - Bundled a new version of the Rebooter program. - Improved the Serial port error logging (displaying baud rate) and increased Activity trace level 1 error logging (displaying erroneous data). - Modified the Window sizes to help improve navigation on smaller displays (i.e. 640x480). - The CPU load for the Standard and Torture RAM tests has been made more linear with the duty cycle setting. Note: This means that compared to the previous build of BurnInTest, less RAM test operations will be run per second (when the duty cycle is less than 100). - Additional debug code and very minor changes in the Loopback sound test. - The Post test option of "Run external application and exit" has been modified such that if no external file is specified, this Post test option will just exit BurnInTest. - Allowed the full range of PassMark USB1 loopback plugs to be used with BurnInTest Professional. - Added additional Activity Trace level 2 logging. - The delay inserted between packets in the USB2 test, when the duty cycle is less than 50, has been changed from at least 1ms to at least 1ms to 50ms (for a Duty Cycle of 49 down to 0). - The subscript commands to configure BurnInTest from an external application (i.e. specified in the bit-script-input.txt file and run by specifying either a pre-test or EXECUTEWAIT application) has been changed to allow "LOAD" commands (in addition to "SET" scripting commands). - Renamed the "Error" log to "Event" log. - Changed the order of the items in an Event log line, such that the Severity is the first item. - The EXECUTEWAIT script command has been modified such that the external application may provide an input script file (of SET... commands) to be run after the EXECUTEWAIT application closes. This allows external applications to define test environment parameters (such as the serial number and machine type). - Added scripting commands: SETSERIAL "1234-shdfgdhs-GHGHG" SETMACHINETYPE "HP XPS800" SETNOTES "Test notes defined by the external application." SETLOG "\Program Files\Plugin\plugin_log" SETPLUGIN "\Program Files\Plugin\plugin.exe" - Added POST TEST application parameter substitution to allow values to be passed to an external application at the end of a test. These are: $RESULT - "PASS" or "FAIL" will be substituted. $SERIAL - The serial number will be substituted. $MACHINETYPE - The machine type will be substituted. $NOTES - The notes will be substituted. - Added extra logging for memory allocation errors in the disk test - Added "log bad sector increase" and "bad sector threshold" options to disk test. This resulted in a change to the configuration file format and required additional code to automatically convert from old formats. - Modified the user interface in the preferences window for the disk test and the CD test - Improved the handling of USB 2.0 loopback plugs recovery from sleep states. BUG CORRECTIONS - Corrected a bug where the System and Application events logged in the BurnInTest Trace logs were wrong if the event log had reached its maximum size. - Checks that the Sound test files (WAV and MIDI) exist have been added. - The continuous auto updating of the USB image (USB Loopback plug vs. USB 2.0 Loopback plug) on the main window has been removed. This is now updated on BIT startup, selecting Refresh in USB preferences or on starting a test. If there is a serious USB problem, this (together with the USB 2.0 Loopback device driver, V2.0.1002) will avoid the possibility of BurnInTest locking up. - Corrected a bug with the Butterfly seek mode of the Disk test. This was found to occur with FAT32 disks where the Cylinder size was relatively small and the Sector size relatively large. - Reset Defaults on the Configuration Page now resets the Auto Stop Value. - Reset Defaults on the Configuration Page now resets the color indicators. - The CD test has been modified to skip invalid files either with "?"'s , to avoid reporting errors that are due to the CD test media filenames. - The Network test results window scroll bar has been corrected. - The Memory torture test could fail on some systems with a small amount of RAM and relatively high memory fragmentation. This has been corrected. - Scripting correction for .cmd files. - Corrected a bug that caused problems when running the disk test with SMART monitoring turned on. This problem only occurs on a small number of HDD's. - Corrected memory leaks - On occasion, the measured waveform from the loopback sound test may have been slightly altered on starting or stopping all tests, possibly enough to trigger an error. This has been resolved. - If an error occurred in the final second of a test, the error may have been logged but not included in the big PASS/FAIL results window. This has been corrected. - After running a script file that loaded a configuration file, that had a full path specified, the Save and Load configuration menu options no longer worked. This has been corrected. - Previously, the Version of BurnInTest was only written in the First log file after starting BurnInTest. This log line is now written in all log files. - For USB2 tests that have read or write failures, the Windows error codes are now included in the level 2 Activity trace log. - Command line parameters may now be passed to a PreTest application. - Log files may now use a single static filename. This may be useful when the log file is to be parsed by an external program. - Corrected a bug where the Plugin test would stop prematurely. - Corrected the specification of the Scripting EXECUTEWAIT filename. - Changed Script processing such that a script is aborted if a scripting error is encountered and Stop on error is selected. - Added an indication on the main window that a script is currently running ("Script currently running"). - Corrected the serial port test to identify non-existing plugs when the Disable RTS/CTS and DSR/DTR testing has been selected. - Corrected the display of strange results (666666) reported by a user, related to copy protection. - Fixed a memory leak bug in the MBM interface which caused memory allocation errors. - Added BIT version number to the ASCII log file. - Fixed a bug with the 3D Test that was causing it to stop before the autostop timer period - Changed an error in the tape drive test to a warning if tape drive doesn't support setting drive parameters. History of earlier releases: Please see http://passmark.com/products/bit_history.htm Documentation ============= All the documentation is included in the help file. It can be accessed from the help menu. There is also a PDF format Users guide available for download from the PassMark web site. Support ======= For technical support, questions, suggestions, please check the help file for our email address or visit our web page at http://www.passmark.com Ordering / Registration ======================= All the details are in the help file documentation or you can visit our sales information page http://www.passmark.com/sales Compatibility issues with the Network & Parallel Port Tests =========================================================== If you are running Windows 2000 or XP, you need to have administrator privileges to run this test. Enjoy.. The PassMark Development team
Bus Hound 5.0

Copyright (C) Perisoft 2000-2003. All rights reserved worldwide.

Bus Hound is a powerful software bus analyzer for capturing I/O and protocol from devices. Features include:

 Supports every version of IDE, SCSI, USB, 1394
 Supports all devices such as hard drives, DVD, mice, scanners, web cams, and everything else
 Supports Windows 95, 98, Me, NT 4.0, 2000, 2003, XP and XP Embedded
 Capture megabytes of I/O limited only by available memory
 Automatically stop the capture upon a trigger condition
 Measure individual read, write, and isochronous device performance
 Captures device driver packets such as IRP’s
 Filter what type of phases are captured
 Run on an unlimited number of machines at the same time
 Capture any number of devices in parallel, regardless of bus type
 Fits on a diskette for easy transportability and quick downloads
 Drag and drop captured data to other products in html format
 Save captured data to a text file or zip file
 Simple device selection from a graphical tree of devices
 Capture the system startup process
 Arrange captured data to user preferences such as the byte width per line
 View low level protocol including SCSI sense data and USB setup packets
 View microsecond resolution timing of each phase
 Watch I/O on screen in real time as it happens
 Pure software solution--no extra hardware or system changes needed



The Capture Window

Commands sent to devices consist of one or more phases. Examples of phases are command bytes, data bytes, and status bytes. Bus hound logs each phase complete with timing information and a description of the content.

Capture columns

Below are descriptions of information in each column of the Capture Window:

Device

Device ID. Each device is assigned a number which can be matched up with devices in the Devices Window. The first detected device on the system is Device ID 0, the second is Device ID 1, and so on. This field is useful in the event multiple devices are being captured in parallel.

For USB devices, the endpoint is also displayed (eg: 4.1 = device 4, endpoint 1).

Phase

Phase type. Please refer to the table for details of each phase type.

Phase Description
ADDR 8 byte 1394 transfer address
ATI 7 byte ATA task file returned from an IDE device
ATO 7 byte ATA task file sent to an IDE device
ATP Windows ATA_PASS_THROUGH data structure
CDB SCSI command descriptor block
(Known as a packet command for ATAPI devices)
CTL 8 byte setup packet of a USB control transfer
DI Data In (Device to PC transfer)
DO Data Out (PC to device transfer)
IOR Windows VXD I/O Request data structure
IRB Windows 1394 I/O Request Block data structure
IRP Windows I/O Request Packet data structure
ISOC Isochronous transfer data bytes
LEN Data transfer length of a DI,DO, or ISOC phase in
decimal units. This field is off by default and can be
turned on from the settings Window
LOCK 1394 lock transaction
NSTS Windows 4 byte kernel mode NTSTATUS field
RSET Bus or device reset
RSTS Windows VXD IOR status
SNS SCSI request sense data
SPT Windows SCSI Pass Through data structure
SRB Windows SCSI Request Block (SRB) data structure
SSTS Windows 1 byte SCSI Request Block (SRB) status
STAK Windows IO_STACK_LOCATION data structure
URB Windows USB Request Block (URB) data structure
USTS Windows 4 byte USBD_STATUS code


Data

Data bytes associated with the phase. Examples are command bytes, data transfer bytes, and status bytes.

Description

A text description of this phase provided for your convenience.

Delta

Elapsed time from the previous phase to the current phase. The following table describes the units of the time format.

Name Units
us Microseconds
ms Milliseconds
sc Seconds
mn Minutes
hr Hours
dy Days


Cmd.Phase.Ofs(rep)

This unique tag identifies the exact position within the captured data. All values are in decimal.

Cmd is the command number. Commands start at 1 and increment for each new command sent to a device.

Phase is the phase number within this command. A command is usually composed of multiple phases such as data transfer and status. This value starts at 1 and increments for each new phase within the command.

Ofs is the byte offset of the data within this phase. This value starts at 0 and increments for each byte of data in the data transfer.

Rep is the number of identical commands issued back to back. The repeat count feature can be turned off by deselecting the “Merge Repeated Commands” check box in the settings Window.

Date

Date the phase occurred in year/month/day format.

Time

Time the phase occurred in hour:minute:second.millisecond format. The hour ranges from 0 to 23 (military time).


Capturing the system startup process

If the Bus Hound application is exited while the Run button is pressed, the device driver portion of Bus Hound continues capturing data. In the event the system is restarted, it will start capturing data early in the system startup process.

If Bus Hound is exited while stopped, no capture will occur until returning to the product and pressing Run.

Customizing the capture display

The column order can be modified by dragging the column headers to the desired position. The byte width per line can be 1, 2, 4, 8, 16, or 32 bytes and is based on the width of the window. These settings are respected for Saving and drag & drop.

Searching

Searching can be performed from the capture window in either the up or down direction by typing the search string in the lower left edit box followed by pressing the up or down arrow to search up or down respectively. If the search string is not found, the trace position is not changed. Searching is not case sensitive.

Drag and Drop

To use drag and drop, first select the desired range of lines by clicking on the starting line, then hold down shift and click the ending line. The data can now be dragged using the mouse to another product.

Pressing control-c copies the selected lines to the clipboard.

Command Overlap

Overlapped commands are identified when a command starts before previous commands to the same device have completed. It is possible for Commands to be overlapped at the I/O subsystem level (which Bus Hound displays), but not at the hardware level.

Multiple DI/DO phases

Windows 9x only: if multiple DI/DO phases are listed for the same command, it indicates the transfer was split across multiple memory address ranges

PS2 Mouse data format

Below is the format of the data returned in the data in phase for PS/2 mice. This is known as the MOUSE_INPUT_DATA structure in the Windows DDK:

Offset Length Content
0 2 Not used
2 2 Position type:
0000h = relative position
0001h = absolute position
4 2 Button flags:
0001h = left button down
0002h = left button up
0004h = right button down
0008h = right button up
0010h = middle button down
0020h = middle button up
0040h = button 4 down
0080h = button 4 up
0100h = button 5 down
0200h = button 5 up
0400h = mouse wheel
6 2 Mouse wheel data
8 4 Not used
12 4 X position
16 4 Y position
20 4 Device specific information

PS2 Keyboard data format

Below is the format of the data returned in the data in phase for PS/2 keyboards. This is known as the KEYBOARD_INPUT_DATA structure in the Windows DDK:

Offset Length Content
0 2 Not used
2 2 Scan code of key
4 2 Flags:
0000h = key pressed
0001h = key released
0002h = extended scan code E0
0004h = extended scan code E1
6 2 Not used
8 4 Device specific information



The Save Window

The Save button saves all captured data to the specified file. The format of the file can be either a text file containing standard ASCII characters or a Zip file. The data will be saved in the same column order and byte width as seen on the screen.

A comment can be provided that will be placed into the header of the captured data. The current date and time can be included in the comment by inserting %c anywhere inside the comment. If saving to a zip file, the comment is also used for the zip file comment.



The Settings Window

This Window allows you to customize the capture process. Checkbox options in this window are applied instantly. Numeric entries are applied by pressing the apply button, switching to another window, or exiting Bus Hound.

Buffer Size

Specifies the number of kilobytes of RAM to use for capturing data. The size is limited only by system RAM. If not enough RAM is available to satisfy the requested size, the size is reduced to available RAM. If you need to get as much space as possible, besides adding more RAM to a system you can also try setting the buffer size before starting other applications. Note: allocating a very large buffer size under Windows 95/98/Me can take a minute.

Max Phase

Specifies the maximum number of bytes that will be captured on each phase. Example: if Max Phase is set to 32 bytes and a 64K read operation occurs, only the first 32 bytes of the read will be captured. This option is useful for keeping the size of the captured data to a minimum.

Stop When...

These are triggers that allow the capture to automatically stop when the specified condition is met. Any combination of triggers may be selected. When a trigger condition is met, the capture stops and the trigger text is highlighted in red.

Any Other Error stops the capture when an error occurs that does not fall into any of the other categories.

Buffer Full stops the capture when Bus Hound's buffer is full. If Buffer Full is deselected, capturing continues after the buffer is full, keeping the most recently captured data.

Bus Reset stops the capture when a bus reset occurs.

Data Overrun stops the capture when a data overrun or data underrun occurs.

Hardware Error stops the capture when a hardware error occurs.

Invalid Command stops the capture when an invalid command is issued.

Media Error stops the capture when a device reports a media error such as a bad sector.

No Media stops the capture when a device reports no media is present.

Not Ready stops the capture upon a not ready, timeout, or busy condition.

Text Pattern / Hex Pattern stops the capture when the specified data pattern is detected in the captured data. For text patterns, the match is case sensitive. The pattern is checked against the data transferred in any phase including commands, data, and status.

Vendor Error stops the capture when a vendor unique error occurs.

Windows Error stops the capture when an operating system type error occurs.

Phases to Capture

Contains a list of all the phase types Bus Hound can capture. Placing a check mark next to a phase allows it to be captured. Removing a check mark next to a phase results in the phase not being captured. This option is useful for filtering out phases that are not of interest or including special operating system phases that are off by default.

To the right of the check box, a white circle may appear. This indicates the phase has been detected and exists in the captured data. If the circle blinks bright green, it is a real time activity light indicating the phase has occurred and has been captured.

Merge Repeated Commands

When selected, if a command occurs that is identical to the previous command, the new command will not be logged separately. Instead, the repeat count of the previous command is incremented. This option is useful for compacting the captured data when a device is being continually polled with the same command.

Enable Sounds

If this option is enabled, Bus Hound will make an audible "ping" if the capture, settings, or devices window is up and a trigger condition is met.

Columns to Display

Place a checkmark in the boxes to include the desired columns in the Capture Window. The selected columns will also be included in drag & drop and save operations. See the section “The Capture Window” for more details about each column.



The Devices Window

The list of devices represents every device on the system which Bus Hound supports. The list automatically refreshes to reflect new or removed devices. To select/deselect a device to capture, click in the check box next to the device. The selection will be applied instantly.

Each device is assigned a number which is in parenthesis before the name of the device. This number is displayed in the capture window under the "Device" column. The number reflects the order in which the device was added to the system.

If a device is displayed in a light font, it indicates the device is not currently present on the system.

Capture new devices

Selecting this checkbox will automatically capture data for new devices that are detected. This feature is useful for capturing the first commands sent to hot plugged devices.

Device Properties

This window pane displays details about the device such as the performance. The performance is calculated by summing the total bytes transferred divided by the total elapsed time of the commands. The performance statistics are cleared when the run button is pressed in the Capture window.

Send Commands

You can send your own custom commands to a device using Bus Commander. To start Bus Commander, highlight a device with the mouse and click the “Send Commands” button or simply double click the device. Bus Commander is a very powerful complementary tool that lets you submit USB, 1394, ATA and SCSI commands to devices. You can also perform operations like bus resets and hardware port i/o.



Files Installed

BUSHOUND.EXE - Bus Hound application
BUSCMDR.EXE - Bus Commander application
BHUNINST.EXE - uninstaller
BHLOG.EXE - capture to disk tool (site license version only)
BHOUND3.VXD - device driver for Windows 95, 98, Me
BHOUND4.SYS - device driver for Windows NT 4.0
BHOUND5.SYS - device driver for Windows 98, Me, 2000, 2003, XP
HELP.RTF - product help file (this file)



Site License

The site license version of Bus Hound includes the bhlog.exe command line tool in the folder where Bus Hound is installed. bhlog spools captured data to a disk file in real time. This tool raises the maximum capture size from available RAM to available disk space. bhlog also has the ability to retain captured data in the event a system freezes or reboots by directing captured data to a file on a network drive.



FAQ

1. What type of I/O is captured?

Bus Hound takes a snap shot of packets sent across the bus. This includes commands, data, status, and timing of each command. Bus Hound does not monitor individual hardware signals.

2. Will Bus Hound change the behavior of my devices?

No. Bus Hound simply “listens” for packets. Bus Hound does not alter commands, does not send its own commands, does not replace any system drivers, and does not access the hardware. The system and devices will operate identically whether Bus Hound is installed or not.

3. Will Bus Hound degrade system performance?

Customers capturing data from extremely fast devices in parallel have been impressed by Bus Hound’s ability not to effect performance. Bus Hound is even more innocuous when in the stopped state.

4. Which devices are supported?

All IDE, SCSI, USB and 1394 devices are supported including disk drives, mice, scanners, web cams, and everything else. Devices that emulate one of these buses are also supported such as certain parallel port devices.

5. Why are there duplicate devices?

For some devices, Windows first forms high level packets that are then translated into low level packets which are in turn sent to the hardware. Bus Hound shows several devices so you can choose which level of I/O you wish to capture.

6. What does capturing I/O for a controller do?

Some controllers receive commands and some do not. You can experiment capturing data for a controller to see if the packets are of interest.

7. What if Bus Hound does not show a device?

No devices are displayed when the system is started in safe mode. This is a safety feature to keep safe mode as clean as possible.

Devices which are marked with a problem in device manager are not displayed.

SCSI adapters are not displayed under Windows 95/98/Me unless they have one or more devices attached.

8. Why are some devices grayed out?

A grayed out device indicates it is currently not attached to the system.

9. Windows 95/98/Me crashes when pressing run. What do I do?

Due to limitations in the Windows 9x architecture, if too many device drivers ask to receive notification of I/O completion, the system will crash. Microsoft device drivers and other installed software such as Bus Hound need such notifications. To resolve this, remove software likely to have additional device drivers installed for the device. For CD/DVD drives, an easy solution is to rename the legacy scsi1hlp.vxd to scsi1hlp.bak which is in the windows/system/iosubsys folder.

10. Why am I not able to capture all 1394 events?

Some 1394 devices Bus Hound displays are logical devices such as AV/VHS devices. Select devices further up the tree to capture bus activity for such devices.

While Bus Hound logs every isochronous transaction, there is no practical way for Bus Hound to see every asynchronous transaction. If you need to see more 1394 activity, note Bus Hound can capture a great deal more in operating systems prior to XP, particularly for SBP-2 devices.

11. Why am I not seeing task file (ATA) commands for IDE hard drives?

Bus Hound captures ATA commands only when an application or driver explicitly sends an ATA command (eg: SMART, IDENTIFY). For normal file system requests, Bus Hound captures SCSI CDB's instead of ATA commands due to the monolithic nature of the Windows IDE device driver. Note the CDB's captured have a one to one relationship with ATA commands and can be easily translated to their native ATA equivalent. Also note the data captured with the CDB is identical to the ATA data transfer.

12. Where can I get more detailed information on the captured data?

For your convenience, please visit www.perisoft.net/engineer for handy reference data and specifications. Also please note the following resources:

Specification Location
USB www.usb.org
SCSI www.t10.org
IDE, ATA, ATAPI www.t13.org
1394, Firewire www.1394ta.org or www.ieee.org
Windows DDK www.microsoft.com/ddk

14. Where do I get support?

Visit www.perisoft.net. Any questions, comments, or problem reports on the free or full version are welcome.

TABLE OF CONTENTS
1. INTRODUCTION.........................................................................................................1
2. TERMS AND ABBREVIATIONS.................................................................................2
3. ARCHITECTURAL OVERVIEW..................................................................................6
3.1 Introduction..........................................................................................................6
3.2 Data Transfer Types............................................................................................7
3.3 Host Controller Interface.....................................................................................7
3.3.1 Communication Channels............................................................................................7
3.3.2 Data Structures...........................................................................................................8
3.4 Host Controller Driver Responsibilities...........................................................12
3.4.1 Host Controller Management....................................................................................12
3.4.2 Bandwidth Allocation................................................................................................12
3.4.3 List Management......................................................................................................13
3.4.4 Root Hub..................................................................................................................13
3.5 Host Controller Responsibilities......................................................................13
3.5.1 USB States...............................................................................................................13
3.5.2 Frame management...................................................................................................14
3.5.3 List Processing..........................................................................................................14
4. DATA STRUCTURES...............................................................................................15
4.1 Overview.............................................................................................................15
4.2 Endpoint Descriptor..........................................................................................16
4.2.1 Endpoint Descriptor Format......................................................................................16
4.2.2 Endpoint Descriptor Field Definitions........................................................................17
4.2.3 Endpoint Descriptor Description...............................................................................18
4.3 Transfer Descriptors.........................................................................................19
4.3.1 General Transfer Descriptor......................................................................................19
4.3.1.1 General Transfer Descriptor Format...................................................................20
4.3.1.2 General Transfer Descriptor Field Definitions.....................................................20
4.3.1.3 General Transfer Descriptor Description.............................................................21
4.3.1.3.1 Buffer Address Determination.....................................................................21
4.3.1.3.2 Packet Size..................................................................................................21
4.3.1.3.3 Condition Codes..........................................................................................22
4.3.1.3.4 Sequence Bits..............................................................................................22
4.3.1.3.5 Transfer Completion....................................................................................23
4.3.1.3.6 Transfer Errors............................................................................................23
4.3.1.3.6.1 Transmission Errors..............................................................................24
4.3.1.3.6.2 Sequence Errors...................................................................................24
vi

OpenHCI - Open Host Controller Interface Specification for USB
4.3.1.3.6.3 System Errors.......................................................................................25
4.3.1.3.7 Special Handling..........................................................................................25
4.3.1.3.7.1 NAK.....................................................................................................25
4.3.1.3.7.2 Stall......................................................................................................25
4.3.2 Isochronous Transfer Descriptor...............................................................................25
4.3.2.1 Isochronous Transfer Descriptor Format............................................................25
4.3.2.2 Isochronous Transfer Descriptor Field Definitions..............................................26
4.3.2.3 Isochronous Transfer Descriptor Description......................................................26
4.3.2.3.1 Buffer Addressing........................................................................................27
4.3.2.3.2 Data Packet Size.........................................................................................28
4.3.2.3.3 Status..........................................................................................................28
4.3.2.3.4 Transfer Completion....................................................................................28
4.3.2.3.5 Transfer Errors............................................................................................28
4.3.2.3.5.1 Transmission Errors..............................................................................29
4.3.2.3.5.2 Sequence Errors...................................................................................29
4.3.2.3.5.3 Time Errors..........................................................................................29
4.3.2.3.5.4 System Errors.......................................................................................30
4.3.2.3.6 Special Handling..........................................................................................31
4.3.2.3.6.1 NAK and STALL.................................................................................31
4.3.2.4 PacketStatusWord..............................................................................................31
4.3.2.4.1 Packet Status Word Field Definitions...........................................................31
4.3.3 Completion Codes.....................................................................................................32
4.3.3.1 Condition Code Description...............................................................................33
4.4 Host Controller Communications Area............................................................33
4.4.1 Host Controller Communications Area Format..........................................................34
4.4.2 Host Controller Communications Area Description...................................................34
4.4.2.1 HccaInterruptTable............................................................................................34
4.4.2.2 HccaFrameNumber............................................................................................35
4.4.2.3 HccaDoneHead..................................................................................................35
4.5 Endpoint List Processing.................................................................................36
4.6 Transfer Descriptor Queue Processing...........................................................37
5. HOST CONTROLLER DRIVER................................................................................38
5.1 Host Controller Management............................................................................38
5.1.1 Initialization..............................................................................................................38
5.1.1.1 Load and Locate................................................................................................39
5.1.1.2 Verify Host Controller and Allocate Resources...................................................39
5.1.1.3 Take Control of Host Controller.........................................................................40
5.1.1.3.1 SMM Driver, Power-Up..............................................................................40
5.1.1.3.2 BIOS Driver................................................................................................40
5.1.1.3.3 OS Driver, SMM Active..............................................................................41
5.1.1.3.4 OS Driver, BIOS Active..............................................................................41
5.1.1.3.5 OS Driver, neither SMM nor BIOS.............................................................41
5.1.1.3.6 SMM Driver, Re-Entry................................................................................42
vii

OpenHCI - Open Host Controller Interface Specification for USB
5.1.1.4 Setup Host Controller........................................................................................42
5.1.1.5 Begin Sending SOFs...........................................................................................42
5.1.2 Operational States.....................................................................................................43
5.1.2.1 USBRESET..........................................................................................................43
5.1.2.2 USBOPERATIONAL..............................................................................................43
5.1.2.3 USBSUSPEND......................................................................................................43
5.1.2.4 USBRESUME.......................................................................................................44
5.2 Schedule.............................................................................................................44
5.2.1 Sample Host Controller Driver Definitions................................................................46
5.2.2 Miscellaneous Definitions..........................................................................................46
5.2.3 Host Controller Descriptors Definitions.....................................................................47
5.2.4 Host Controller Driver Descriptor Definitions...........................................................48
5.2.5 Host Controller Endpoints........................................................................................50
5.2.6 Host Controller Driver Internal Definitions................................................................51
5.2.7 Endpoint Descriptor Lists.........................................................................................54
5.2.7.1 Bulk and Control................................................................................................54
5.2.7.1.1 Adding........................................................................................................54
5.2.7.1.2 Removing....................................................................................................56
5.2.7.1.3 Pause...........................................................................................................59
5.2.7.2 Interrupt.............................................................................................................61
5.2.7.2.1 Polling Rate.................................................................................................64
5.2.7.2.2 Adding........................................................................................................66
5.2.7.2.3 Removing....................................................................................................66
5.2.7.2.4 Pause...........................................................................................................67
5.2.7.3 Isochronous.......................................................................................................67
5.2.7.3.1 Adding........................................................................................................68
5.2.7.3.2 Removing....................................................................................................68
5.2.7.3.3 Pause...........................................................................................................68
5.2.8 Transfer Descriptor Queues......................................................................................68
5.2.8.1 The NULL or Empty Queue...............................................................................68
5.2.8.2 Adding to a Queue.............................................................................................69
5.2.8.3 Removing from a Queue.....................................................................................73
5.2.8.4 Cancel................................................................................................................74
5.2.9 Done Queue..............................................................................................................75
5.2.10 USB Bandwidth Allocation.....................................................................................78
5.2.10.1 Scheduling Overrun Errors...............................................................................78
5.2.11 ControlBulkServiceRatio........................................................................................79
5.3 Host Controller Interrupt...................................................................................80
5.4 FrameInterval Counter.......................................................................................85
5.5 Root Hub............................................................................................................86
viii

OpenHCI - Open Host Controller Interface Specification for USB
6. HOST CONTROLLER..............................................................................................87
6.1 Introduction........................................................................................................87
6.2 USB States.........................................................................................................87
6.2.1 UsbOperational.........................................................................................................88
6.2.2 UsbReset..................................................................................................................89
6.2.3 UsbSuspend..............................................................................................................89
6.2.4 UsbResume...............................................................................................................89
6.3 Frame Management...........................................................................................90
6.3.1 Frame Timing............................................................................................................90
6.3.2 StartOfFrame (SOF) Token Generation.....................................................................91
6.3.3 HccaFrameNumber Update.......................................................................................91
6.4 List Processing..................................................................................................92
6.4.1 Priority.....................................................................................................................92
6.4.1.1 List Priority........................................................................................................93
6.4.1.1.1 Periodic Lists...............................................................................................93
6.4.1.1.2 Nonperiodic Lists........................................................................................93
6.4.1.2 Endpoint Descriptor Priority..............................................................................94
6.4.1.3 Transfer Descriptor Priority................................................................................95
6.4.2 List Service Flow......................................................................................................95
6.4.2.1 List Enabled Check............................................................................................95
6.4.2.2 Locating Endpoint Descriptors...........................................................................97
6.4.3 Endpoint Descriptor Processing................................................................................98
6.4.4 Transfer Descriptor Processing.................................................................................99
6.4.4.1 Isochronous Relative Frame Number Calculation................................................99
6.4.4.2 Packet Address and Size Calculation..................................................................99
6.4.4.3 Packet Transfer Time Check.............................................................................101
6.4.4.4 Largest Data Packet Counter Operation...........................................................102
6.4.4.5 Status Writeback..............................................................................................102
6.4.4.5.1 General Transfer Descriptor Status Writeback...........................................102
6.4.4.5.2 Isochronous Transfer Descriptor Status Writeback....................................103
6.4.4.6 Transfer Descriptor Retirement........................................................................103
6.4.5 Done Queue............................................................................................................104
6.4.5.1 Done Queue Interrupt Counter.........................................................................104
6.5 Interrupt Processing........................................................................................105
6.5.1 SchedulingOverrun Event........................................................................................105
6.5.2 WritebackDoneHead Event.....................................................................................106
6.5.3 StartOfFrame Event................................................................................................106
6.5.4 ResumeDetected Event...........................................................................................106
6.5.5 UnrecoverableError Event......................................................................................106
6.5.6 FrameNumberOverflow Event.................................................................................106
6.5.7 RootHubStatusChange Event..................................................................................107
6.5.8 OwnershipChange Event.........................................................................................107
ix

OpenHCI - Open Host Controller Interface Specification for USB
6.6 Root Hub..........................................................................................................107
7. OPERATIONAL REGISTERS.................................................................................108
7.1 The Control and Status Partition....................................................................109
7.1.1 HcRevision Register................................................................................................109
7.1.2 HcControl Register.................................................................................................109
7.1.3 HcCommandStatus Register....................................................................................112
7.1.4 HcInterruptStatus Register......................................................................................113
7.1.5 HcInterruptEnable Register....................................................................................115
7.1.6 HcInterruptDisable Register...................................................................................116
7.2 Memory Pointer Partition................................................................................117
7.2.1 HcHCCA Register...................................................................................................117
7.2.2 HcPeriodCurrentED Register.................................................................................117
7.2.3 HcControlHeadED Register...................................................................................118
7.2.4 HcControlCurrentED Register................................................................................118
7.2.5 HcBulkHeadED Register........................................................................................119
7.2.6 HcBulkCurrentED Register.....................................................................................119
7.2.7 HcDoneHead Register............................................................................................120
7.3 Frame Counter Partition..................................................................................120
7.3.1 HcFmInterval Register............................................................................................120
7.3.2 HcFmRemaining Register.......................................................................................121
7.3.3 HcFmNumber Register...........................................................................................122
7.3.4 HcPeriodicStart Register........................................................................................122
7.3.5 HcLSThreshold Register.........................................................................................123
7.4 Root Hub Partition...........................................................................................123
7.4.1 HcRhDescriptorA Register......................................................................................124
7.4.2 HcRhDescriptorB Register......................................................................................125
7.4.3 HcRhStatus Register...............................................................................................126
7.4.4 HcRhPortStatus[1:NDP] Register...........................................................................128
APPENDIX A—PCI INTERFACE................................................................................132
PCI CONFIGURATION...............................................................................................132
PCI Configuration Spaces for OpenHCI-compliant USB Host Controller.........133
COMMAND Register.......................................................................................................134
CLASS_CODE Register...................................................................................................134
BAR_OHCI Register........................................................................................................135
x

OpenHCI - Open Host Controller Interface Specification for USB
APPENDIX B—LEGACY SUPPORT INTERFACE SPECIFICATION........................136
OVERVIEW.................................................................................................................136
OPERATIONAL THEORY..........................................................................................137
Keyboard/Mouse Input..........................................................................................137
Keyboard Output...................................................................................................138
Emulation Interrupts..............................................................................................138
Mixed Environment.........................................................................................................139
Gate A20 Sequence.........................................................................................................139
SYSTEM REQUIREMENTS........................................................................................140
Host Controller Mapping.......................................................................................140
SMI Signaling.........................................................................................................141
Intercept Port 60h and 64h Accesses..................................................................141
Interrupts................................................................................................................141
Run-time Memory ..................................................................................................141
PROGRAMMING INTERFACE...................................................................................142
Modifications to existing registers......................................................................142
HcRevision Register........................................................................................................142
Legacy Support Registers....................................................................................142
HceInput Register............................................................................................................143
HceOutput Register.........................................................................................................143
HceStatus Register...........................................................................................................144
HceControl Register........................................................................................................145
IMPLEMENTATION NOTES.......................................................................................146
Emulation Interrupt Decode..................................................................................146
A20 Gate.................................................................................................................146

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧