Add Windows INF driver templates and class driver OS support information to the docum...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 19 May 2013 15:06:53 +0000 (17:06 +0200)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 19 May 2013 15:06:53 +0000 (17:06 +0200)
LUFA/CodeTemplates/WindowsINF/CDC-ACM.inf [new file with mode: 0644]
LUFA/CodeTemplates/WindowsINF/RNDIS.inf [new file with mode: 0644]
LUFA/DoxygenPages/DevelopingWithLUFA.txt
LUFA/DoxygenPages/OSDrivers.txt [new file with mode: 0644]

diff --git a/LUFA/CodeTemplates/WindowsINF/CDC-ACM.inf b/LUFA/CodeTemplates/WindowsINF/CDC-ACM.inf
new file mode 100644 (file)
index 0000000..34ae08f
--- /dev/null
@@ -0,0 +1,61 @@
+;     Windows LUFA CDC ACM Setup File
+; Copyright (c) 2000 Microsoft Corporation
+
+[Version]
+Signature="$Windows NT$"
+Class=Ports
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
+DriverVer=7/1/2012,10.0.0.0
+
+[Manufacturer]
+%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64
+
+[SourceDisksNames]
+
+[SourceDisksFiles]
+
+[DestinationDirs]
+DefaultDestDir=12
+
+[DriverInstall]
+Include=mdmcpq.inf
+CopyFiles=FakeModemCopyFileSection
+AddReg=DriverInstall.AddReg
+
+[DriverInstall.Services]
+Include=mdmcpq.inf
+AddService=usbser, 0x00000002, LowerFilter_Service_Inst
+
+[DriverInstall.AddReg]
+HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider"
+
+;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
+
+[DeviceList.NTx86]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
+
+[DeviceList.NTia64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGNAME="http://www.lufa-lib.org"
+DESCRIPTION="LUFA CDC-ACM Virtual Serial Port"
\ No newline at end of file
diff --git a/LUFA/CodeTemplates/WindowsINF/RNDIS.inf b/LUFA/CodeTemplates/WindowsINF/RNDIS.inf
new file mode 100644 (file)
index 0000000..2bb0b8f
--- /dev/null
@@ -0,0 +1,56 @@
+;     Windows LUFA RNDIS Setup File
+; Copyright (c) 2000 Microsoft Corporation
+
+[Version]
+Signature="$Windows NT$"
+Class=Net
+ClassGUID={4d36e972-e325-11ce-bfc1-08002be10318}
+Provider=%MFGNAME%
+DriverVer=7/1/2012,10.0.0.0
+
+[Manufacturer]
+%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64
+
+[ControlFlags]
+ExcludeFromSelect=*
+
+[DriverInstall]
+Characteristics=0x84 ; NCF_PHYSICAL + NCF_HAS_UI
+BusType=15
+include=netrndis.inf
+needs=Usb_Rndis.ndi
+AddReg=Rndis_AddReg_Vista
+
+[DriverInstall.Services]
+include=netrndis.inf
+needs=Usb_Rndis.ndi.Services
+
+;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204C
+
+[DeviceList.NTx86]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204C
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204C
+
+[DeviceList.NTia64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204C
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGNAME="http://www.lufa-lib.org"
+DESCRIPTION="LUFA RNDIS USB Ethernet Adapter"
index e669e28..9a02f95 100644 (file)
@@ -15,6 +15,7 @@
  *  \li \subpage Page_TokenSummary - Summary of Compile Time Tokens
  *  \li \subpage Page_Migration - Migrating from an Older LUFA Version
  *  \li \subpage Page_VIDPID - Allocated USB VID and PID Values
  *  \li \subpage Page_TokenSummary - Summary of Compile Time Tokens
  *  \li \subpage Page_Migration - Migrating from an Older LUFA Version
  *  \li \subpage Page_VIDPID - Allocated USB VID and PID Values
+ *  \li \subpage Page_OSDrivers - Operating System Driver Information
  *  \li \subpage Page_BuildLibrary - Building as a Linkable Library
  *  \li \subpage Page_ExportingLibrary - Exporting LUFA for IDE Use
  *  \li \subpage Page_WritingBoardDrivers - How to Write Custom Board Drivers
  *  \li \subpage Page_BuildLibrary - Building as a Linkable Library
  *  \li \subpage Page_ExportingLibrary - Exporting LUFA for IDE Use
  *  \li \subpage Page_WritingBoardDrivers - How to Write Custom Board Drivers
diff --git a/LUFA/DoxygenPages/OSDrivers.txt b/LUFA/DoxygenPages/OSDrivers.txt
new file mode 100644 (file)
index 0000000..28c1ca9
--- /dev/null
@@ -0,0 +1,111 @@
+/** \file
+ *
+ *  This file contains special DoxyGen information for the generation of the main page and other special
+ *  documentation pages. It is not a project source file.
+ */
+
+/** \page Page_OSDrivers Operating System Drivers
+ *
+ *  Most of the USB classes supported by LUFA are also supported natively in
+ *  most operating systems, without extra drivers being required. However, in
+ *  some cases, a driver file is required in order for the device to enumerate
+ *  and function correctly.
+ *
+ *  \section Sec_OSClassSupport Operating System USB Class Support
+ *  The table below lists the supported LUFA USB classes, and their associated
+ *  <i>native</i> support on modern operating systems.
+ *
+ *  <table>
+ *  <tr>
+ *   <th width="200px">USB Class</th>
+ *   <th width="200px">Android</th>
+ *   <th width="200px">Windows</th>
+ *   <th width="200px">Linux</th>
+ *   <th width="200px">OS X</th>
+ *  </tr>
+ *  <tr>
+ *   <td>Android Open Accessory</td>
+ *   <td>2.3.4+</td>
+ *   <td>N/A</td>
+ *   <td>N/A</td>
+ *   <td>N/A</td>
+ *  </tr>
+ *  <tr>
+ *   <td>Audio 1.0</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  <tr>
+ *   <td>CDC-ACM</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  <tr>
+ *   <td>HID</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  <tr>
+ *   <td>MIDI</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  <tr>
+ *   <td>Mass Storage</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  <tr>
+ *   <td>Printer</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  <tr>
+ *   <td>RNDIS</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>N/A</td>
+ *  </tr>
+ *  <tr>
+ *   <td>Still Image</td>
+ *   <td>N/A</td>
+ *   <td>XP+</td>
+ *   <td>2.6.?+</td>
+ *   <td>10.?+</td>
+ *  </tr>
+ *  </table>
+ *
+ *  \section Sec_WinINFTemplates Windows INF Drivers
+ *  Windows uses INF driver files to associate a USB device of a specific class,
+ *  Vendor and Product ID, compatibility ID or other characteristic to a kernel
+ *  driver. In most cases these files are build into the operating system, and
+ *  no special user action or driver files are required for a device using a
+ *  standard USB class to enumerate. However, for some classes, a specific INF
+ *  driver must be created and given to the operating system for the device to
+ *  enumerate.
+ *
+ *  Those USB classes requiring a custom INF driver file in Windows are listed
+ *  below, along with a basic INF template for each class.
+ *
+ *  \subsection SSec_WinINF_CDC Windows CDC INF Template
+ *  This template is required for all CDC-ACM devices on Windows XP or newer.
+ *  \verbinclude WindowsINF/CDC-ACM.inf
+ *
+ *  \subsection SSec_WinINF_RNDIS Windows RNDIS INF Template
+ *  This template is required for all CDC-RNDIS devices on Windows XP or newer.
+ *  \verbinclude WindowsINF/RNDIS.inf
+ */
+