ReadMe.txt Driver File Contents (MIR_Nuvoton_8.1.81.1000_W7x86W7x64_A.zip)

-----------------------------------------------------------------------
Nuvoton Technology Corporation - Confidential
Generic HID Microsoft(R) Windows(R)-Based Driver Installation Package
Release Letter
Copyright (c) 2009 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 to as "EC") Release Letter
Version:  8.80.1001
Date:     July 2009



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.4
   * 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 7-Based Generic HID 32/64-bit Driver
       Version:          8.1.81.1000
       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 7
    
   * 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: 

        The FW writes the values to bytes 1 and onwards of the SHM mem. buffer. 
        The 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. 
        [The host reads the values from the buffer and clears REQUEST, which
        generates an SHM interrupt to the core.] 
        -> In the 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.] 
        The FW writes the remaining values to bytes 1 and onwards of the SHM
        memory buffer. 
        The FW sets SEND bit in the SHM semaphore. 
        If the buffer size is not sufficient to hold all the values, then the 
        FW also sets CONT. 
        [The host reads the values from the buffer and sets ACK, which
        generates an SHM interrupt to the core.] 
        [The host polls with timeout on semaphore until SEND is cleared.] 
        -> In the interrupt handler, FW clears SEND. 
        [The 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 1 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".
   
     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. 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. 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 called "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
------------
    * Installs Windows 7 driver, only on Windows 7.

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.
     
HISTORY
-------
Version 7.80.5000 October 2008:

   ENHANCEMENTS
   None (first release).

   FIXED ISSUES
   None (first release).
Download Driver Pack

How To Update Drivers Manually

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.

server: web4, load: 1.02