en

User Tools

Site Tools


vmware.png nfs.png tftp.png subversion.png eclipse.png logo.png tutorial.png

x86 EAPI Windows

Please note that the EAPI Windows package is only available on request: Request EAPI

Preface

EAPI is intended to be installed on Windows 7 64-bit and Windows 10 64-bit.

On Windows 7 KB3033929 update must be installed on the system to support SHA-2 Code Signing Certificate.
More information about it is available at:
https://technet.microsoft.com/en-us/library/security/3033929.aspx

Installation

EAPI installation

  1. Decompress the EAPI archive onto an USB drive.
  2. Plugin the USB drive to the Starterkit
  3. Run the Windows command prompt as administrator and navigate into the TqWin64EAPI_R01.01 folder on the USB drive
  4. Execute install.batch from the command prompt


EAPI uninstallation

  1. Open Windows Device Manager
  2. Find System Devices→Tq driver.
  3. Select Uninstall and check “Delete the driver software for this device”


EAPI verifying installation

  1. Right click on TqDrv.sys file from this package and choose Properties→Details to locate file version.
  2. Make sure that TqDrv.sys file version and driver version in Device Manager are identical.
  3. Make sure that TqDrv.sys file from C:\Windows\System32\drivers is identical to one from this package.

EAPI Functions

For detailed functions description please refer to PICMG EAPI specification: COM_EAPI_R1_0.pdf
All examples are using the sample application TqApp.exe.
The TqApp is available in sources and is provided as a part of the EAPI package.

EAPI Initialisation

The EApiLibInitialize function has to be called at the beginning of every application.
An error will be returned if TQ driver is not installed on the system.

The EApiLibUnInitialize function has to be called at the end of every application.


EAPI Information Functions

EApiBoardGetStringA

Supported EAPI ID values:

  • EAPI_ID_BOARD_MANUFACTURER_STR
  • EAPI_ID_BOARD_NAME_STR
  • EAPI_ID_BOARD_REVISION_STR
  • EAPI_ID_BOARD_SERIAL_STR
  • EAPI_ID_BOARD_BIOS_REVISION_STR
  • EAPI_ID_BOARD_HW_REVISION_STR
  • EAPI_ID_BOARD_PLATFORM_TYPE_STR

Example


EApiBoardGetValue

Supported EAPI ID values:

  • EAPI_ID_GET_EAPI_SPEC_VERSION
  • EAPI_ID_BOARD_RUNNING_TIME_METER_VAL
  • EAPI_ID_BOARD_DRIVER_VERSION_VAL
  • EAPI_ID_BOARD_LIB_VERSION_VAL
  • EAPI_ID_HWMON_CPU_TEMP
  • EAPI_ID_HWMON_SYSTEM_TEMP
  • EAPI_ID_HWMON_VOLTAGE_3V3
  • EAPI_ID_HWMON_VOLTAGE_VBAT
  • EAPI_ID_HWMON_VOLTAGE_5VSB
  • EAPI_ID_HWMON_VOLTAGE_12V
  • EAPI_ID_HWMON_FAN_CPU
  • EAPI_ID_HWMON_FAN_SYSTEM

Supported Values for EApiBoardGetValue function

Example


  • Temperature sensors values are in 0.1 Kelvin.
  • Voltage sensors values are in millivolts.
  • Fan speed values are in RPM.

EAPI Display Backlight

Backlight Functions are only available if a suitable display is connected.
Latest Intel(R) HD Graphics driver has be installed on the system.
Backlight can only be enabled/disabled via BIOS.

Supported Functions

EApiVgaGetBacklightEnable Returns current Backlight Enable state
EApiVgaGetBacklightBrightness Get Backlight Brightness Value (0-255)
EApiVgaSetBacklightBrightness Set Backlight Brightness Value (0-255)



EAPI Storage Functions

EEPROM

There are 2 available EEPROMs available on the TQ x86 Starterkits

  • 0 - Module EEPROM (0xA0 address on I2C bus)
  • 1 - Carrier EEPROM (0xAE address on I2C bus)
EApiStorageCap

Function returns Storage Size and Block Length value, needed to calculate write block alignment and size for EApiStorageAreaWrite function.

EApiStorageAreaRead
EApiStorageAreaRead ID Offset Bytecnt
Datatype dec hex dec

Example:

EApiStorageAreaWrite

Offset and ByteCnt parameters must be a multiple of Block Length value that is returned by EApiStorageCap function.

EApiStorageAreaWrite ID Offset Data
Datatype dec hex hex …. hex

Example:


EAPI I2C Bus Functions

The current frequency is defined in Windows registry:

HKLM\SYSTEM\CurrentControlSet\Services\TqDrv\Parameters\I2cBusSpeed

100KHz are set as default frequency, the following frequencies are available for the primary CPLD I2C Bus:

  • 50KHz
  • 100KHz
  • 400KHz

After changing I2C frequency in Windows registry, Tq driver must be reset in Windows Device Manager:

- Open Windows Device Manager -> System Devices -> TqDriver
- Right Click on TqDriver and select "Disable" 
- Right click on TqDriver and select "Enable
EApiI2CWriteReadRawr
EApiI2CWriteReadRaw bus_id i2c_addr string_to_write bytes_to_read
Datatype dec hex hex … hex dec

To ignore write operation: <string_to_write> = “”
To ignore read operation: <bytes_to_read> = 0

Example:

EApiI2CReadTransfer | EApiI2CWriteTransfer
EApiI2CReadTransfer bus_id i2c_addr cmd type bytes_to_read
EApiI2CWriteTransfer bus_id i2c_addr cmd type bytes_to_write
Datatype dec hex hex hex dec

where 'type' = 0/1/2 (No Command/ Standard Command/ Extended Command)

Examples


EAPI Watchdog Functions

EApiWDogStart

Delay mode is not supported. Event mode and Reset mode are supported.

List of possible Watchdog timeout values

If timeout falls between these values, the closest top value will be used: For Example:
For 10 seconds - 16 secnds will be used.
For 683 seconds - 1024 seconds will be used.

Event Mode

Event timeout must be defined, other Timeout values must be 0.
2 interrupt lines are supported: 10 and 11.
Default line is 11.
Interrupt number must be defined in 2 places:

  • Windows registry: HKLM\SYSTEM\CurrentControlSet\Services\TqDrv\Parameters\WdtInterrupt
  • TQ driver resources in Device Manager

To change IRQ line you need to change it in 2 places. After that you need to reset Tq driver in Windows Device Manager:

  • Open Windows Device Manager and find System Devices/ TqDriver
  • Right Click on TqDriver and choose “Disable”, then reenable it
Reset mode

Reset timeout must be defined, other Timeout values must be 0.
Following reset modes are supported:
1 = watchdog reset output triggers hard reset signal
0 = watchdog reset output triggers power-on button
Reset mode is definded in Windows Registry, default value is 1.

HKLM\SYSTEM\CurrentControlSet\Services\TqDrv\Parameters\WdtReset
Dual-Stage Mode

In dual-stage mode (Event + Reset) Event timeout will be used for both stages. Event timeout must be defined, reset timeout must not equal zero.
EApiWDogStart <Delay> <EventTimeout> <ResetTimeout>
Time must be specified in ms.
Example:

EApiWDogStart 0 15200 1000

GPIO

8 GPIO's are available all TQ x86 Modules , all of them can be defined as output or input.
The EAPI library defines two different mechanisms to address GPIO: pin addressing and bank addressing.
Function EAPI_GPIO_BANK_ID(GPIO_NUM) is used to define the GPIO bank.

EApiGPIOGetDirection

TqApp function EApiGPIOGetDirectionuses bank addressing.

Example:

EApiGPIOSetDirection

EApiGPIOSetDirection <Pin> <Direction> uses pin addressing.

GPIO Direction Value
Output 0
Input 1

Example:
Setting pin 2 to output

> TqApp.exe EApiGPIOSetDirection 2 0
EApiGPIOSetLevel

EApiGPIOSetLevel <bank> uses bank addressing, where <bank> is a group of 32 pins addressed simultaneously. Example:

> TqApp.exe EApiGPIOsetLevel 4 1
EApiGPIOGetLevel

EApiGPIOGetLevel <bank> uses bank addressing, where <bank> is a group of 32 pins addressed simultaneously. Example:

> TqApp.exe EApiGPIOGetLevel 0
Bank 0: LEVEL = 0xfb

TQ Library Functions

TqWdtWaitForInterrupt

This function detects Watchdog interrupts, there is a standalone application for TqWdtWaitForInterrupt because it’s not part of EAPI.

Examples



Known Issues

  • I2C EEPROM may be unstable if I2C bus speed is set to 400KHz. Recommended I2C bus speed is 100KHz.
  • EEPROM access is unstable, e.g. when some data is written to I2C EERPOM it may get written to wrong offset. Usually it happens after large number (thousands) of successive write operations to the EEPROM, or while reading EEPROM in big chunks. Most likely it is a h/w issue of particular model of EEPROM.

en/x86/eapi_windows.txt · Last modified: 2019/11/22 13:45 by weinholdo


Disclaimer

TQ-Systems GmbH provides the Board Support Packages (BSP) free of charge. The software included in the shipment has been configured individually for the starter kits. The software is only intended to evaluate the module. The use of the Board Support Packages (BSP) is only allowed within the scope of functionality described by TQ-Systems GmbH. TQ-Systems GmbH does not accept any liability for all further changes of the Board Support Package and for any damage resulting from its use.


Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki