----------------------------------------------------------------------- Nuvoton Technology Corporation - Confidential Generic HID Microsoft(R) Windows(R)-Based Driver Installation Package Release Letter Copyright (c) 2008 Nuvoton Technology Corporation. All Rights Reserved. ----------------------------------------------------------------------- Generic HID Microsoft(R) Windows(R)-Based Drivers installation package for the WPC876xL/WPCE775x/WPCE781x/WPCE783x Nuvoton Notebook Embedded Controllers (henceforth referred as "EC") Release Letter Version: 7.80.5000 Date: October 2008 Please read carefully the included End User License Agreement in the file Nuvoton_EndUserLicenseAgreement.txt. PACKAGE CONTENTS ---------------- The zip file contains the following files: * setup.exe - The setup application, version 1.0.3 * ECGenHID_Installer.msi - MSI installation package * nuvotonhidgen.reg - Generic HID driver registry settings sample file * Nuvoton_EndUserLicenseAgreement.txt - End User License Agreement * ReadMe.txt - This Release Letter DESCRIPTION ----------- This product is the Nuvoton Generic HID driver installation package for the Nuvoton EC devices. This installation package contains the following driver: Nuvoton EC Windows XP/Vista(R)-Based Generic HID 32/64-bit Driver Version: 7.1.81.1007 BIOS PnP ID: WEC1040 The driver implements: Generic HID functionality The Windows-based driver is designed to work with the EC firmware (FW), which implements Generic HID support. See the next section (REQUIREMENTS) for details. REQUIREMENTS ------------ * Operating System: 32/64-bit Windows XP/Vista * Hardware: A platform containing a Nuvoton EC device with appropriate firmware and PnP BIOS. - The EC FW should support Generic HID functionality, as implemented in the latest Nuvoton EC FW release. The EC FW is provided in a separate package. For a detailed description of the EC FW functionality, see its documentation. * BIOS: The BIOS should require the following resources for the device with PnP ID ACPI/WEC1040 and configure the EC's corresponding LDN/s accordingly - One IRQ to be configured (as Level) in a selected PM channel's LDN - One of two alternative communication methods - PM channel or SHM, as follows: For PM channel: Two I/O addresses (size 1 byte each). The lower address is used for the Data Register Base Address. For SHM: 2,4,8,16 or 32 bytes of consecutive memory or consecutive I/O. If SHM-IO is used, an appropriate bit in SHM LDN should be set. Note 1: The IRQ is allocated and configured for the PM channel even when the SHM communication method is used. Note 2: Shared Memory Window #1 should be used, since Window #2 is reserved for Flash Update. Note 3: The BIOS should enable host access to HCBAH/HCBAL I/O addresses even after the POST stage. * Firmware: There are two requirements from the EC firmware to support the EC Generic HID driver: - Provide Host Configuration Address to the driver (details below) - Send HID reports in specified format (details below) The exact protocol in which both requirements are performed depends on whether the PM channel or Shared Memory is used to communicate between the FW and driver. Provide Host Configuration Address ---------------------------------- The method depends on whether the PM channel or SHM (configured by BIOS) is used to communicate between the FW and driver. PM Channel ========== When the EC firmware receives the following byte through the PM channel: 0xA1 It should send the following four bytes through the PM channel: 0xA2 <HCBAL value> 0xA4 <HCBAH value> SHM === The SHM semaphore (byte 0 of the SHM range) bits are mapped as follows: Bits set by host: 0 REQUEST 1 ACK Bits set by core: 4 CONT 7 SEND [Host verifies that SEND is clear.] [Host writes 0xA1 to byte 1 of SHM (2nd byte of the SHM range).] [Host sets REQUEST.] [Host polls with timeout on semaphore until SEND is set.] -> SHM interrupt to the core is generated. When the EC firmware recognizes (in interrupt handler) that the REQUEST bit of the semaphore is set, it reads the second byte of the SHM range. If its value is 0xA1, the EC FW writes in the SHM the following four values: 0xA2 <HCBAL value> 0xA4 <HCBAH value> The FW writes these values in the following manner: FW writes the values to bytes 1 and onwards of the SHM memory buffer. FW sets SEND bit in SHM semaphore. If the buffer size is not sufficient to hold all the values, then the FW also sets CONT. [Host reads the values from the buffer and clears REQUEST, which generates an SHM interrupt to the core.] -> In interrupt handler, the FW clears SEND. If there is need for one or more transactions (i.e., if the SHM buffer is only 2 or 4 bytes long), the transaction continues with additional values, as follows: [Host polls with timeout on semaphore until SEND is set.] FW writes the remaining values to bytes 1 and onwards of the SHM memory buffer. FW sets SEND bit in the SHM semaphore. If the buffer size is not sufficient to hold all the values, then FW also sets CONT. [Host reads the values from the buffer and sets ACK, which generates an SHM interrupt to the core.] [Host polls with timeout on semaphore until SEND is cleared.] -> In interrupt handler, FW clears SEND. [Host clears ACK, which generates an SHM an interrupt to the core.] If there is more data, the host polls on SEND again ... Send HID reports in specified format ------------------------------------ The method depends on whether the PM channel or SHM (configured by BIOS) is used to communicate between the FW and the driver. PM Channel ========== The EC firmware should provide HID reports to the Windows driver through the PM channel configured and reported by BIOS. The reports must correlate to the Report Descriptor, which is provided to the Windows driver through a registry entry (see attached nuvotonhidgen.reg file for example). The reports must be framed in the following format: BYTE1 BYTE2 BYTE2 BYTE3 BYTE4 ...BYTE(N+3) BYTE(N+4) BITS 7..5 BITS 4..0 Sync. Value Reserved Report Size Rep. ID Rep. 1...Rep. N Checksum (0xA5) (Must be 0) Sync. Value: A constant value (0xA5) indicating the beginning of a new structure. Report Size: Number of bytes in the structure, excluding the Sync. Value, Report Size, and Checksum bytes. Report ID: Must correspond to one of the Report IDs declared in the Report Descriptor. The driver does not validate this value and passes it to Windows as is. Checksum: Checksum value (8-bit additive) of all bytes in the structure, excluding the Sync. Value (and Checksum itself). SHM === The format of the data sent is the same as described in the PM channel section. However, instead of sending byte-by-byte, chunks of data are sent, up to the limit of the SHM buffer size (minus 1 for semaphore). Each chunk of data is sent as follows: FW sets SEND, and writes the values to bytes 1 and onwards of the SHM memory buffer (e.g., for a 16-byte buffer, the FW can fill up to 15 bytes with data). If the buffer size is not sufficient to hold all values, the FW also sets CONT. FW generates a PM channel interrupt. [-> In interrupt handler, the host reads the values from the buffer and sets ACK, which generates an SHM interrupt to the core.] -> In interrupt handler, the FW clears SEND and generates a PM channel interrupt. [-> In interrupt handler, the host clears ACK, which generates an SHM interrupt to the core.] If there is more data to send for the current report, the FW sets SEND again.... ============================================================================ Registry ============================================================================ The following registry entries are provided to the driver under the HKLM\Software\Nuvoton\ECGenericHID key "ReportDescriptor" Describes the format of the HID reports that the driver sends to the HID Class Windows driver. Note that the driver supports only input from the EC to the host OS. Default value: None (driver fails to start device if does not exist) Example: Report descriptor containing one report with USB keyboard key-code value // // Keyboard // 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x06, // USAGE (Keyboard) 0xA1, 0x01, // COLLECTION (Application) 0x85, 0x01, // REPORT_ID (1) 0x05, 0x07 // USAGE_PAGE(Key Codes) 0x19, 0xE0, // USAGE_MINIMUM (Left Control key) 0x29, 0xE7, // USAGE_MAXIMUM (Right GUI key) 0x75, 0x01, // REPORT_COUNT (1) 0x95, 0x08, // REPORT_SIZE (8) 0x81, 0x02, // INPUT (Variable) 0x19, 0x00, // USAGE_MINIMUM (0) 0x29, 0x90, // USAGE_MAXIMUM (90) 0x26, 0xff, 0x00 // LOGICAL_MAXIMUM (255) 0x75, 0x08, // REPORT_SIZE (8) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x00, // INPUT (Data, Array) 0xC0, // END_COLLECTION Corresponding Registry entry (see nuvotonhidgen.reg file for a full descriptor): [HKEY_LOCAL_MACHINE\SOFTWARE\Nuvoton\ECGenericHID] "ReportDescriptor"=hex:05,01,09,06,a1,01, ... ,c0 Example report: 0x1 0x0 0x20 // Report ID 1, "3" key code Example report embedded in FW packet: 0xA5 0x3 0x1 0x0 0x20 0x24 Another example report: 0x1 0x0 0x0 // "Key up" zero key code "Zero" report embedded in FW packet: 0xA5 0x3 0x1 0x0 0x00 0x4 "ReportTimeout" Maximum number of milliseconds that the driver allows in between bytes during a frame. If the timeout is exceeded, the received data for the current frame is discarded and the driver starts accumulating a new frame when a synchronization byte is recognized. Default value: 1000 Example Registry entry: [HKEY_LOCAL_MACHINE\SOFTWARE\Nuvoton\ECGenericHID] "ReportTimeout"=dword:00000200 ============================================================================ ============================================================================ INSTALL/UNINSTALL/REPAIR/UPGRADE PROCEDURES ------------------------------------------- To install, extract the zip file to a directory of your choice on a system with an on-board Nuvoton EC device. Note: To install/uninstall/repair/update the driver, you must have administrator privileges * Installation Procedure: - Regular install: 1. Run "setup.exe" (by double-clicking or from a command prompt) or Run "<setup file path>\setup.exe" from a command prompt or Run "<setup file path>\setup.exe -i <msi file path>\ECGenHID_Installer.msi" 2. Follow the on-screen instructions to complete the driver installation - Silent install: Run "setup.exe -s" from a command prompt. Or Run "<setup file path>\setup.exe -s" from a command prompt. Or Run "<setup file path>\setup.exe -s -i <msi file path>\ECGenHID_Installer.msi". Note: In Windows XP, if one or more "Found New Hardware" wizard dialogs appear before installation, click Cancel to close them. If any "Found New Hardware" wizard dialogs appear during installation, it may be ignored. To determine the installation status, the value ("failure" or "success") of the following registry entry may be used: HKLM\SOFTWARE\Nuvoton Technology Corporation\EC Generic HID Driver\install * Uninstallation Procedure: - From GUI: 1. In XP: under the "Add or Remove Programs" list, click the "Remove" button in the "Nuvoton EC Generic HID Driver" entry. Or In Vista: under the "Programs and Features" list, click the "Uninstall" button in the "Nuvoton EC Generic HID Driver" entry. 2. Follow the on-screen instructions to complete the driver uninstallation. - From a command line: Run "setup.exe -u ECGenHID_Installer.msi". Or Run "<setup file path>\setup.exe -u <msi file path>\ECGenHID_Installer.msi". - Command line silent uninstallation: Run "setup.exe -s -u ECGenHID_Installer.msi". Or Run "<setup file path>\setup.exe -s -u <msi file path>\ECGenHID_Installer.msi". * Repair Procedure: - From GUI: 1. In XP: under the "Add or Remove Programs" list, click the Change" button in the "Nuvoton EC Generic HID Driver" entry. Or In Vista: under the "Programs and Features" list, click the "Repair" button in the "Nuvoton EC Generic HID Driver" entry. 2. If a window titled "Nuvoton EC Generic HID Driver" appears, ignore it. 3. A dialog named "Device Driver Installation Wizard" appears. Follow the on-screen instructions to complete the driver repair. - From a command line: 1. Run "setup.exe". Or Run "<setup file path>\setup.exe -i <msi file path>\ECGenHID_Installer.msi". 2. Select "Repair" from the dialog. * Upgrade Procedure: Follow the Installation procedure, above. To revert to an older driver package: 1. Follow the Uninstallation procedure, above. 2. If the "Found New Hardware" wizard dialog appears, click Cancel to close it. 3. Follow the Installation procedure, above. ENHANCEMENTS ------------ First version. FIXED ISSUES ------------ First version. KNOWN ISSUES ------------ * The "Repair or Remove" dialog (which appears when a repair procedure is initiated) appears in English only, regardless of the local system language. * If the Repair procedure is attempted in non-administrator mode, in Vista, the system becomes heavily loaded for several minutes instead of generating an appropriate error message.Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.