Congatec System Utility - CGUTIL

From conga-wiki

Introduction

The congatec System Utility (CGUTIL) is a unified tool for all congatec COM (Computer-on-Module) and SBC (Single Board Computer) products. This document applies to the following CGUTIL tools, version 1.7.2.0 or later.

  • cgutlcmd_efi_1.7.2.0
  • cgutlcmd_linux_1.7.2.0
  • cgutlcmd_win_1.7.2.0

It includes six main modules:

  • BIOS Update: Allows updating the system BIOS on a congatec board.
  • Firmware Update: Enables firmware updates for the congatec board controller.
  • Panel Configuration: Simplifies configuration of local flat panel displays.
  • BIOS Module Modification: Offers functions to customize a standard congatec system BIOS by adding OEM defined BIOS modules, such as:
    • Boot logos
    • BIOS setup defaults and settings
    • OEM code or data modules
  • BIOS/Board Information: Provides access to congatec-specific BIOS and hardware information.
  • BIOS Setup Configuration: Allows modification of the BIOS setup menu.

Operating Modes

The utility supports two modes:

  • Board Mode: Run the utility directly on a congatec system. It uses the CGOS API and drivers to access hardware directly. BIOS modifications are written straight to the onboard BIOS Flash memory.
  • BIOS File Mode: Perform changes on a BIOS file, which can later be flashed to the target board. This mode can run on a standard host PC but is limited to BIOS module modifications and some panel configuration functions that alter the BIOS.


⚠️ Caution:

Modifying the BIOS can lead to corruption. To prevent permanent damage:

* Always test modifications using a congatec evaluation baseboard.

* Make sure to back up the original BIOS to the external Flash memory on the baseboard.

* If the onboard BIOS becomes corrupted, the system can be recovered by booting from the external Flash and restoring the original BIOS.


For a copy of the original BIOS file to store on your baseboard, please contact congatec support.

Installation

The CGUTIL package is available on the congatec website. The package includes the following utility versions in a single ZIP file:

  • Windows Command Line and Graphical User Interface (GUI)
  • Linux command line
  • UEFI shell

📄 Note:

The Windows and Linux versions require the CGOS driver set, which can be found in the driver section of each product on the congatec website.

Windows Command Line and GUI

The folder CGUTIL\WIN32 of the utility package contains the Windows Command Line (CGUTLCMD.EXE) and GUI version (CGUTLGUI.EXE) of the CGUTIL. The executables may be placed in any directory. However, both versions need additional files from the CGOS driver package.

In order to use the utility in BIOS File Mode (modification of congatec BIOS file only) on a host or target system, extract the Windows version of the file CGOS.DLL from the CGOS driver package. Copy this file into the same directory as the utility executable or into the WINDOWS\SYSTEM32 folder. Installation is not required.

In order to use the utility in Board Mode (direct target system modification) on a congatec board, install the complete CGOS driver package on the system. Ensure that you have ‘Administrative Rights’ on the system and follow the installation instructions in the CGOS driver package.

Linux Command Line

In order to build the Linux command line version of the CGUTIL (cgutlcmd), run make in the folder cgutillx/cgutlcmd. Installation is not required. It may be placed in any directory. However, additional files from the CGOS driver package for Linux are required.

In order to use the utility in BIOS File Mode (modification of congatec BIOS file only) on a host or target system, extract the Linux version of the CGOS interface library (libcgos.so) from the CGOS driver package. Copy this file into the same directory as the utility executable or into the directory of standard system library. Installation is not required.

In order to use the utility in Board Mode (direct target system modification) on a congatec board, install the CGOS interface library and kernel driver on the system. For detailed information about CGOS driver setup on a Linux system, refer to the documentation included in the respective CGOS driver package.

UEFI Shell

The UEFI shell version of the CGUTIL is located in the folder cgutil/uefi/X64 of the package. In order to use cgutlcmd from the UEFI shell, copy the file cgutlcmd.efi to a UEFI shell accessible medium. Installation and additional files are not required.

📄 Note:

All of these packages contain readme.txt and/or version.txt files. These files contain detailed information about installation and use.

How to use CGUTIL

The CGUTIL offers multiple function modules, accessible via command line or Windows GUI. Since the Linux, Windows, and UEFI shell command line versions share the same syntax, they are collectively referred to as the command line version.

Each module description may include a brief reference to related BIOS features; detailed BIOS documentation is provided separately by congatec.

The utility supports two main modes:

  • Board Mode (requires a target system; enables all functions)
  • BIOS File Mode (functions limited to file operations)

Additionally, the GUI version supports EPI File Only Mode, which is restricted to creating and modifying EPI panel data set files without requiring a board or BIOS file.

In the Windows GUI (CGUTLGUI), the main window allows target selection and access to modules. Functions unavailable in the chosen mode are disabled. When using BIOS File Mode, an input BIOS file must be selected. An output file is then specified for modifications. If the original BIOS file is reused as output, changes are saved to it directly. To preserve the original, define a separate output file. For read-only use, skip the output file selection.

The following functions are explained:

  • CGUTIL Main Module
  • BIOS Update Module
  • Firmware Update Module
  • Panel Configuration Module
  • Windows GUI Version
  • BIOS Modification Module
  • BIOS Module Types
  • Board and BIOS Information Module
  • BIOS Setup Configuration Module

CGUTIL Main Module

Windows GUI version

Execute CGUTLGUI.exe. The following window appears:

CGUITL01.png

After selecting the input BIOS file, the following dialog appears:

CGUTIL02.png

Command line versions

When using the command line versions of the CGUTIL (CGUTLCMD), the desired function module must be selected by passing a module selection parameter. If a module can be used in ‘Board’ and ‘BIOS File’ mode, the operating target must also be selected by passing the respective parameter.

Calling CGUTLCMD without any parameters provides an overview of the available function module selection parameters. Invoking CGUTLCMD with a function module selector as the only parameter displays the module’s usage description. All parameters are accepted in lower and upper case letters, although all descriptions use upper case.

To support batch file operations, CGUTLCMD sets an error level of one or higher, to indicate an execution error. Error level zero indicates success.

Example:

c:\> CGUTLCMD

Output:

  • BCPROG: Board Controller Firmware Update Module
  • BFLASH: System BIOS Update Module
  • CPANEL: Panel Configuration Module MODULE BIOS Module Modification Module
  • CGINFO: Board/BIOS Information Module

Example:

c:\> CGUTLCMD BFLASH

Usage description for the BIOS update module.

BIOS Update and Write Protection

Most congatec boards support the ‘BIOS Update and Write Protection’ feature. If this feature is enabled in the BIOS setup menu, all write and erase accesses to the target system’s Flash Memory chip are blocked. This would also block all functions of the CGUTIL that require flash write or erase accesses (for example: BIOS update or any BIOS modifications in ‘Board’ mode). In order to allow BIOS updates or BIOS modifications in ‘Board’ mode even if the protection is enabled, the utility includes functions to temporarily deactivate the ‘BIOS Update and Write Protection’ by passing the correct deactivation password to the system.

For more information about the ‘BIOS Update and Write Protection’ feature and the handling of the protection by the CGUTIL, refer to the congatec application note 'AN5 BIOS Update And Write Protection'.

BIOS Update Module

This module allows you to update the BIOS of a congatec board. The respective BIOS file is checked for consistency and compatibility (that is, whether it may or may not be used with the respective target board). The BIOS can not be programmed if the BIOS file is not a valid BIOS or it has not been created for the target system.

📄 Note:

The BIOS Update Module is only supported when the CGUTIL is in ‘Board’ mode.

This legacy BIOS Update is obsolete and is only available until CGUTIL version 1.6.3 and until cgos version 1.03.032.

Windows GUI version

CGUITL03.png

Available functions:

[Select BIOS File] Select the BIOS file that should be programmed.
[Update BIOS] Start flash programming (can only be selected after the BIOS file has been chosen).
[Deactivate BIOS Update Protection] This function is only available and required if the ‘BIOS Update and Write Protection’ feature is available and activated in the current BIOS. In this case, write and erase accesses to the target’s Flash Memory chip are only possible after temporarily deactivating the protection. This can be done by passing the correct deactivation password using the dialog started with this button.

Additional control flags:

[Invalidate CMOS] Invalidate the contents of the CMOS RAM in the Real Time Clock after BIOS programming (usually not necessary anymore).
[Preserve BIOS Password]
[Keep LAN Areas] Keep all LAN areas (firmware, configurations etc.) of a supported project while performing a forced extended/full flash update.
[Force Extended Flash] Force extended/full flash update instead of BIOS content only (standard) flash update.

During the BIOS update process, the central display section shows progress or error messages.


📄 Note:

The ‘Current Standard BIOS Version’ and ‘Current OEM BIOS Version’ displayed on the window always refer to the BIOS currently stored in the flash part. After a BIOS update, the new BIOS in the flash part becomes active only after rebooting the board.

Command line version

Function module selector:

BFLASH

Syntax:

CGUTLCMD BFLASH <BIOS file> [options / commands]

Syntax description:

<BIOS file> Name of the BIOS file to be programmed

Options:

/E Perform extended/full flash update instead of BIOS content only (standard) flash update.
/EF Force extended/full flash update instead of BIOS content only (standard) flash update.
/EM Perform extended/full flash update instead of BIOS content only (standard) flash update. Manufacturing mode. No automatic reboot after BIOS update.
/EFM Force extended/full flash update instead of BIOS content only (standard) flash update. Manufacturing mode. No automatic reboot after BIOS update.
/D Defer BIOS update. If this parameter is passed, the BIOS update process stops after preprocessing and allow you to switch to a different Flash Memory chip.
/C Invalidate the contents of the CMOS RAM in the Real Time Clock after BIOS programming. This option is obsolete and only maintained for backwards compatibility.
/NOC Do not invalidate the contents of the CMOS RAM in the Real Time Clock after BIOS programming. This option is obsolete and only maintained for backwards compatibility.
/AOO Perform immediate/automatic off-on cycle to unlock extended BIOS Flash Memory area if necessary. Default for UEFI shell versions. Use to override OS dependent default unlock behavior of /E, /EM, /EF, /EFM BIOS update options.
/NAOO Do NOT perform immediate/automatic off-on cycle to unlock extended BIOS Flash Memory area. Requires manual off-on cycle to make unlock effective. Default for all other OS versions. Use to override OS dependent default unlock behavior of /E, /EM, /EF, /EFM BIOS update options.
BP:xxx Specify password to deactivate the ‘BIOS Update and Write Protection’. This option can also be used without the ‘BIOS File’ parameter (that is, CGUTLCMD BFLASH /BP:password) to deactivate the ‘BIOS Update & Write Protection’ without updating the BIOS. This is required in order to allow other functions of the utility to perform necessary flash write accesses.

Commands:

The commands /EIL , /EU , /EUM , /EL , /ELM do not require a <BIOS file> parameter, as none of them start an actual BIOS update.

/EIL Check whether extended BIOS area is locked.
/EU Unlock extended BIOS area for update and execute automatic off-on cycle to make unlock effective.
/EUM Unlock extended BIOS area for update without automatic off-on. Requires manual off-on cycle to make unlock effective.
/EL Lock extended BIOS area and execute automatic off-on cycle to make lock effective.
/ELM Lock extended BIOS area without automatic off-on cycle. Requires manual off-on cycle to make lock effective.

The extended/full flash update is necessary to perform an update of the complete flash contents on systems that contain additional data in the BIOS Flash Memory chip besides the actual system BIOS. This is the case for most newer congatec products based on Intel technology. The BIOS Flash Memory chip areas that contain this additional data are write‑locked by default and have to be unlocked before being updated. This unlock typically requires an automatic or manual board off‑on cycle, which is (if necessary) initiated by the first call of the BIOS update command. After the automatic or manual off‑on cycle the board should start in unlocked mode. The BIOS update command has to be called again then, this time resulting in an actual BIOS update.

All /E… options and commands as well as /AOO and /NAOO options are related to this extended/full flash update and lock/unlock handling. With options /E and /EM the extended flash update is only performed if the extended flash content has changed. If not, the utility automatically switches to the standard, faster BIOS content‑only update. With options /EF and /EFM the extended update is performed, even if not mandatory. For systems that do not support or require an extended flash update at all, the options /E and /EF are simply ignored. Instead of that, a standard BIOS content only update is performed.

When starting a BIOS update with /E, /EM, /EF and /EFM options, the UEFI shell version of CGUTLCMD by default performs an immediate (forced) off‑on cycle to unlock extended BIOS Flash Memory areas if necessary. For other OS versions, CGUTLCMD does not perform such an automatic (forced) off‑on cycle to avoid OS / file system corruption. The necessary off‑on cycle has to be initiated by other means (software controlled or manually). The options /AOOand /NAOO may be used to override the default unlock off‑on cycle behaviour for each CGUTLCMD version. The standalone commands /EIL, /EU, /EUM, /EL, /ELMcan be used to check and control the extended BIOS Flash Memory area lock state without actually starting a BIOS update.

Recommended usage:

CGUTLCMD BFLASH BIOSFILE.BIN /E

The following exit codes may be returned by the BIOS update module:

0x00 Success
0x01 General error
0x02 Interface access or initialization error
0x03 BIOS incompatibility error
0x04 The specified file is not a valid BIOS file
0x05 BIOS size mismatch
0x06 Error processing file
0x07 Extended flash update not possible
0x08 This platform/BIOS requires an extended/full flash update. Use parameter /E to update
0x09 Failed to unlock flash for extended update
0x0A Failed to lock flash after extended update
0x0B Extended update initiated but not (yet) completed. Perform manual soft off-on cycle and relaunch the process to complete the update

Booting from one flash memory chip and flashing the other:

If you have two BIOS Flash Memory chips (one on the module and one on the baseboard) you can boot from either of them and flash the other. This feature is most helpful if one BIOS becomes corrupted and unable to boot the system. You can restore it using the other BIOS. The procedure for GUI and command line versions is explained below.

GUI version:

After booting from the current Flash Memory chip, the BIOS Update Module of the CGUTIL must be launched before switching to a different flash part. Once the BIOS Update Module window is started, it is safe to switch to another flash part and the BIOS update process can be performed as usual.

Command line Versions:

Before switching to another flash part, launch the utility with the following parameters:

CGUTLCMD BFLASH BIOSFILE /D

The utility starts as usual, performs the required preprocessing, and then stops and informing you that it is now safe to switch to another flash part. After doing this and pressing a key to confirm, the BIOS update process is performed as usual.

📄 Note:

Keep in mind that an extended / full flash update (initiated using /EF option) is mandatory when writing a BIOS to a Flash Memory chip that has not been programmed before with a BIOS valid for the board in use. This option can be combined with the /D option:

CGUTLCMD BFLASH BIOSFILE /EF /D

Firmware Update Module

All congatec boards are equipped with an onboard micro controller. Together with the respective firmware, this micro controller provides a common set of dedicated add‑on functions found on all congatec boards.

Use the Firmware Update Module of the CGUTIL to update the firmware of the congatec board controller. Integrated check and validation routines ensure that only valid and compatible firmware files are programmed.

Although the board controller performs an internal restart after firmware updates, it is recommended to shut down and restart the system once a new firmware has been programmed.

📄 Note:

The Firmware Update Module is only supported when the CGUTIL is in ‘Board’ mode.

Windows GUI version

CGD.png

Available functions:

[Select Firmware File] Select the board controller firmware file that should be programmed.
[Program Firmware] Start programming of the board controller (can only be selected after the firmware file has been chosen).

During the firmware update process, the central display section of the window shows progress or error messages if there are any.

The ‘Current Firmware Version’ displayed on the window always refers to the firmware that is currently used by the board controller. As the board controller performs an internal restart after programming, this information is immediately updated when the firmware has been programmed.

Command line version

Function module selector:

BCPROG

Syntax:

CGUTLCMD BCPROG <firmware file> [options]

Syntax description:

<Firmware file> Name of the firmware file to be programmed

Options:

/B Batch mode. No user queries are performed.
/F Fast mode. Verification of the update process is skipped.
/Q Quick mode. Verification of unused space is skipped.
/S Silent mode. All screen outputs except for error messages are suppressed.
/V Verbose mode. Enables additional diagnostic output.
/bldrenable Enable bootloader switch.
/bldrdisable Disable bootloader switch.

Bootloader switches

There may be two special options /bldrenable and /bldrdisable. They are used to force or inhibit the immediate loading and starting of the updated firmware after it has been programmed. These options should be employed with care as they are intended for special use cases. If not supported then they are either ignored or the update process is aborted with a device programming error.

📄 Note:

In general, if a cBC firmware update is not completed properly, unexpected system behavior may occur until a full G3 power cycle is performed.

Recommended usage:

CGUTLCMD BCPROG FIRMWARE.DAT


⚠️ Caution:

* Do not update the board controller unless it is explicitly recommended by congatec.

* Do not update the 4th Gen board controller firmware (CGBCP4xy.DAT) while console redirection is enabled on a board controller UART.

* The additional parameters offered by the command line versions are meant for congatec internal purposes only. They are listed here for completeness but should not be used by congatec customers.

BIOS Capsule Update Module

General description

The BIOS Capsule Update Module offers a secure BIOS integrated update mechanism, where the BIOS firmware binary needs to be signed as a PKCS#7 UEFI capsule. This signed UEFI capsule needs to be named as “BIOSUPDT.cap” and placed in the respective directories of the OS, that can be accessed by the BIOS at boot.

Windows C:\
Linux /
EFI Root directory

When the capsule “BIOSUPDT.cap” is placed accordingly, the capsule update process needs to be triggered by the CGUTIL. After the next system restart of any kind, the BIOS integrated update mechanism will be executed and validates the input capsule. The BIOS signature check is strictly compliant to NIST SP 800-147. If the signature is valid, the update will proceed.

📄 Note:

The creation of the PKCS#7 UEFI capsule is a separate process, which is not covered here.

The naming of the signed UEFI capsule to “BIOSUPDT.cap” is mandatory. Otherwise, the BIOS integrated update mechanism will not recognize the file and the process will not start.

GUI version

1. Switch to the BIOS Capsule update Module tab.

CG1.png

2. Select a signed BIOS capsule file BIOSUPDT.cap by selecting Check Capsule File.

CG2.png

3. The CGUTIL checks if the file is valid. If so, place the BIOSUPDT.cap to the respective directory as mentioned in the description above.

CG3.png

4. If the file has been placed, trigger the process by Trigger BIOS Capsule Update and restart the system.

CG4.png

Command line version

Function module selector:

BIOSCU

Syntax:

CGUTLCMD BIOSCU [options] [commands]

Syntax description:

Options:

/TO Trigger only the secure BIOS capsule update.
BIOSUPDT.cap Check the BIOS capsule file for validity and trigger secure BIOS capsule update (not available in EFI shell).

Commands:

/R Automatically restart the board after the command is entered
/D Defer BIOS update. Allows switching to the external flash part
/P Preserve BIOS password
/F Force update even if BIOS project IDs do not match
/LAN Restore LAN area(s)
/Q Quiet mode. Do not display any messages during the BIOS update
/CP /dir/ Copy the BIOSUPDT.cap into the desired directory /dir/ (not available in EFI shell)

Panel Configuration Module

All congatec boards support the EDID™ 1.3 based EPI (Embedded Panel Interface) specification for configuration of local flat panels.

The congatec system BIOS includes a table of predefined and validated EPI data sets for standard panels (called the EPI Panel Data module or simply the EPI module) as well as placeholders for up to three (depends on the actual BIOS) OEM EPI data sets for custom panels within the standard EPI module. The standard and OEM panel data sets of this module can be selected via the BIOS setup menu and is then used for panel configuration during startup. Furthermore, an auto panel detection mechanism can be selected in the setup. In this case, the BIOS tries to find and use an EPI or EDID™ 1.3 data set in an off‑board EEPROM connected to the EPI I2C bus(referred to as EPI EEPROM from now on).

The CGUTIL allows you to save and update the whole EPI module, save and update the OEM specific EPI data sets within the standard EPI module, as well as reading, writing and clearing the EPI EEPROM. Standard EPI data sets included in the EPI module can be extracted and saved to a file. This file can then be programmed to an EPI EEPROM or used as a base to create a new EPI data set for an OEM panel.

The utility verifies the validity of all data written to any of the locations. The standard EPI BIOS module can only be replaced by a valid congatec EPI BIOS module. The OEM panel data set must be a valid EPI or standard EDID™ 1.3 data set. The EPI EEPROM can be programmed with EPI or EDID™ 1.3 data sets.

In addition to panel data set handling, the command line versions of the ‘Panel Configuration Module’ also include functions to block and unblock the backlight enable signal of the video controller as well as functions to control the backlight intensity using the method or device selected in BIOS setup. The GUI version also offers a sub module to check, create or modify EPI data sets.

Refer to the EPI specification and further congatec documentation for detailed information about the EPI standard and the congatec EPI implementation, as well as for detailed information about the panel configuration data set formats mentioned above.

📄 Note:

Since the EPI BIOS module is part of the system BIOS, updating this module or updating the OEM EPI data set within this module means that the original system BIOS must be modified and therefore obviously is no longer the exact same BIOS. This fact is tracked and indicated later on when using the modified BIOS. To do this in a defined way, it is recommended to assign an OEM version to the BIOS when updating the EPI module or the OEM EPI data set. Please refer to the description of the BIOS Module Modification Module in section 3.4 of this user’s guide for more information about how to do this.

Windows GUI version

Panel configuration main window
CGE.png

The ‘Data Set Entries In BIOS EPI Module’ window shows a list of all EPI panel data sets included in the EPI module of the current BIOS. Entries marked as ‘OEM’ represent the placeholders for OEM panel data sets that can be ‘filled’ with own data sets. The other data set entries are standard congatec data sets that can only be read but not updated.

The output window below the function buttons is used to display additional information, error and operation progress messages.

Available functions:

[Save Selected Data Set] Save the data set selected in the ‘Data Set Entries In BIOS EPI Module’ window to a file.
[Update Selected Data Set] This function becomes available if you select one of the OEM entries in the ‘Data Set Entries In BIOS EPI Module’ window. It allows the addition of an OEM defined EPI or standard EDID™ 1.3 panel data set to the standard EPI module of the system BIOS or replace an already existing OEM panel data set entry. Standard congatec EPI data sets cannot be updated.
[Delete Selected Data Set] This function becomes available if you select one of the OEM entries in the ‘Data Set Entries In BIOS EPI Module’ window. It allows the deletion of OEM defined EPI or standard EDID™ 1.3 panel data sets from the standard EPI module. Standard congatec EPI data sets cannot be deleted.
[Update/Add Complete EPI Module] Add or replace the complete congatec EPI BIOS module. This module can only be provided by congatec and includes the OEM panel data sets.
[Save Complete EPI Module To File] Save the complete congatec EPI module included in the BIOS to a file.
[Deactivate BIOS Write Protection] This function is only available and required in ‘Board’ mode and only if the ‘BIOS Update and Write Protection’ feature is available and activated in the current BIOS. In this case write and erase accesses to the target’s Flash Memory chip and therefore all BIOS modifications in ‘Board’ mode are only possible after temporarily deactivating the protection. This can be done by passing the correct deactivation password to the dialog appears after pressing this button.
[Edit/Create EPI Data Set File] Opens the ‘EPI Data Set Generator’ sub module, which allows the creation of a new EPI data set file. If a data set entry has been selected from the BIOS data set list, the corresponding data is used as a base for further modifications. If no entry has been selected then data set creation must be done from scratch.
[Update/Add EPI EEPROM Data] Write one of the above described panel data sets to the EPI EEPROM.  This function is only available in ‘Board’ mode.
[Save EPI EEPROM Data To File] Read a panel data set from the EPI EEPROM and save it to a file. This function is only available in ‘Board’ mode.
[Clear EPI EEPROM] Clear the EEPROM connected to the EPI I2C bus. This function is only available in ‘Board’ mode.

Command line version

Function module selector:

CPANEL

Syntax:

CGUTLCMD CPANEL /OT:[target] /[command] [parm]

Syntax description:

/OT: Specify the operating target.

BOARD: All actions result in direct hardware accesses to the respective congatec board. All other strings are interpreted as name of the BIOS file to be modified.

parm Command parameter, if required (for example, filename of data file).

Commands:

/SEPI Find congatec EPI module and save it to a file specified by PARM.
/LEPI Add or replace the complete congatec EPI module. PARM must specify the name of a valid congatec EPI module file.
/SSTD:xxx Find standard EPI data set number xxx (hexadecimal) in the BIOS and save it to a file specified by PARM.
/SOEM:xxx Find OEM EPI data set number xxx (hexadecimal) in the BIOS and save it to a file specified by PARM.
/LOEM:xxx Add or replace OEM EPI or EDID™ 1.3 panel data set number xxx (hexadecimal). PARM must be set to the name of a valid EPI or EDID™ 1.3 panel data file.
/DOEM:xxx Delete OEM EPI or 1.3 panel data set number xxx (hexadecimal).
/SEEP Read panel data set stored in the EPI EEPROM and save it to a file specified by PARM. This function is only available in ‘Board’ mode.
/LEEP Write data to congatec EPI EEPROM. PARM must be set to the name of a valid panel data set file. This function is only available in ‘Board’ mode.
/CEEP Clear the EPI EEPROM. This function is only available in ‘Board’ mode.
/SBLV Set control value of a backlight intensity control device. (PARM: 0-100; value in percent of maximum value). This function is only available in ‘Board’ mode.
/GBLV Get current value of backlight intensity control device. (Value returned in percent of maximum value). This function is only available in ‘Board’ mode.
/SBLS Set backlight enable state (PARM: 0= OFF 1=ON). This function is only available in ‘Board’ mode.
/GBLS Get backlight enable state (0: OFF 1: ON). This function is only available in ‘Board’ mode.
/DPL ADisplay list of EPI data sets included in the BIOS.

📄 Note:

When the ‘BIOS Update and Write Protection’ feature is enabled in BIOS setup, commands that try to write to the BIOS Flash Memory chip is possible to fail. In order to deactivate the BIOS write protection until next boot use: ‘CGUTLCMD BFLASH /BP:[password]’

BIOS Module Modification Module

The congatec system BIOS offers support for several OEM defined add‑on BIOS modules. Each congatec BIOS includes a flash storage area, called the Multi purpose flash area (MPFA), where these add‑on modules, along with predefined congatec standard modules, can be stored. Modules located in this area consist of a MPFA header for organization purposes and the actual module data defined and provided by the OEM or predefined by congatec.

The standard system BIOS includes routines to handle different MPFA module types. The BIOS identifies the respective module by evaluating the module type field in the MPFA header of the module and executes the appropriate function for this module type during POST. All modules use at least the module type, module ID and module revision fields of the MPFA module header. If different modules of a certain type are to be added to the BIOS, these modules must have different module IDs in order to be differentiated. The module revision field is for information purposes only, in order to keep track of module versions. Depending on the module type, additional information put into the module header might be required to handle the respective module. If this is the case, it is noted in the following module descriptions.

The CGUTIL provides functions to create, add, replace, save, and delete the BIOS add‑on modules, extract module data and generate a report of all currently included modules. Adding or deleting BIOS modules obviously means that the standard congatec BIOS is modified -- either by a BIOS file when working in BIOS File Mode, or the BIOS stored in the onboard Flash Memory chip when working in Board mode. In order to distinguish an OEM modified BIOS from the standard congatec BIOS version that it is based on, the utility also enables you to assign an OEM BIOS version to the modified BIOS. This OEM version is displayed during POST and in the setup menu in addition to the standard BIOS version.

BIOS Module Types:

  • Current Setup Settings Module (old: CMOS Backup Map)
  • Default Setup Settings Module (old: CMOS Default Map)
  • Fixed Setup Settings Module (old: Fixed CMOS Settings Map)
  • OEM Code / Data Module (obsolete / deprecated for UEFI based systems)
  • EPI Panel Data Module
  • BIOS Boot Logo Module
  • POST Logo Left Module
  • POST Logo Right Module
  • OEM Setup BIOS Module (Core8 BIOS only; obsolete otherwise)
  • OEM Video Mode Module
  • OEM HDA Verb Table Module
  • OEM SLP 1.0 Module / OEM SLIC Table Module / OA 3.0 Module
  • Standard VBIOS Module
  • OEM VBIOS Module
  • UEFI FW Volume Module
  • OEM Setup Menu Control Module
  • OEM SMBIOS Data Module


📄 Note:

All functions of the BIOS Module Modification Module are supported when the CGUTIL is in Board and BIOS-File mode.

Current setup settings module (old: CMOS Backup Map)

This module contains a copy of the current BIOS setup settings. It is generated automatically by the BIOS when leaving the setup using the ‘Save and Exit’ option and written to the BIOS flash chip. The BIOS setup settings stored in this module represent and define the currently active BIOS setup configuration. By reading the automatically generated BIOS setup settings module from a certain board and deploying it to other boards of the same kind using this utility, OEMs can easily clone setup settings. Only BIOS setup settings modules created for the same board and BIOS version can be added, everything else is rejected by the utility.

Currently, only one BIOS setup settings module is supported. The module ID parameter is reserved for future usage and must always be set to zero or 0xFF for now.

📄 Note:

This module type was called ‘CMOS Backup Map’ in the past (CGUTIL versions prior to 1.5.7).

Default setup settings module (old: CMOS Default Map)

This module can be used to override the build time defined BIOS setup default values of a congatec BIOS. If a valid setup default settings module is found by the respective BIOS module handler, the values stored within this module are used as setup default values instead of the build time defined standard setup default values, whenever the setup defaults are loaded in the BIOS setup menu.

The easiest way to create an OEM specific default setup settings module is to configure a certain congatec board to the settings required as default values and exit the setup menu using the ‘Save and Exit’ option. The BIOS automatically creates a current setup settings module using the configured values. In order to generate a default setup settings module, the generated current setup settings module must be loaded as an input data file to generate a default setup settings module. The default setup settings module in turn can be added to all target boards and that is used as OEM specific setup default value map. In order to go back to the original build time defined setup default values, the OEM default setup settings module simply must be deleted.

Only default setup settings modules created for the same board and BIOS version can be added, everything else is rejected by the utility. A standard congatec BIOS only supports one active default setup settings module. The module ID parameter for this module must always be set to zero.

Refer to the congatec application note 'AN08 Create OEM Default Map' for detailed information about how to create and add an OEM default setup settings module.

📄 Note:

This module type was called ‘CMOS Default Map’ in the past (CGUTIL versions prior to 1.5.7).

Fixed setup settings module (old: Fixed CMOS Settings Map)

Reserved for future usage.

OEM code / data module (obsolete / deprecated for UEFI based systems)

OEM BIOS modules can be used to add OEM defined data or code blocks to the standard system BIOS. By setting the load time, execution time and load address values within the MPFA header, OEMs can define when the respective module should be loaded to RAM and executed during BIOS POST. OEM BIOS code modules may be used to perform custom specific hardware initialization, pre‑boot software checks, user authentication or even skip parts of the standard BIOS boot process and create own boot loaders.

Any number of OEM BIOS modules can be added to the system BIOS as long as there is enough space left in the MPFA. However, if more than one OEM BIOS module should be used, each module must be given a unique module ID in the MPFA header. In case an OEM BIOS module is added with the module ID of an already existing OEM BIOS module, the existing module is replaced by the new one without special notification.

In addition to module type, module ID and module revision that must be configured for any BIOS add‑on module in the MPFA header, several other MPFA fields must be set for OEM BIOS modules as well:

1.   Load and execution time

Load and execution time fields define at which point during BIOS POST the OEM module should be copied to RAM and executed. The following load and start time hooks are supported:

NONE Do not load/execute the OEM module.

Choosing one of the load times listed below and using NONE as an execution time, OEM data block to the upper memory area can be loaded and keep it there to be used by an OS application.

BEFORE_CMOS_TEST Load/execute before CMOS test.

On AMIBIOS based products, this is one of the first hooks of the main BIOS (that is, bootblock execution has just been finished). Only basic chipset and memory initialization has been performed at this point in time. PCI and Super I/O devices are not yet configured and none of the standard BIOS runtime interfaces are available. OEM code executed at this point should only be developed in close cooperation with congatec.

BEFORE_VIDEO_INIT Load/execute before video BIOS initialization.

Hardware resources are assigned to video and other output devices. Final video and output device configuration occur immediately after this point.

AFTER_VIDEO_INIT Load/execute after video BIOS initialization.

Video and other output devices are fully initialized and configured. At this point the video BIOS INT10h interface becomes available.

BEFORE_OPROM_SCAN Load/execute before option ROM scan.

Hardware resources have been assigned to all PCI devices. All Super I/O devices are initialized.

AFTER_OPROM_SCAN Load/execute after option ROM scan.

At this point all PCI and Super I/O devices are fully initialized and configured. Mass storage devices have been detected and configured. All BIOS runtime services are available. All option ROMs have been initialized.

BEFORE_SETUP Load/execute on setup screen start.

OEM code using this hook is executed when the setup screen is started.

SETUP_EXTENSION Load/execute as setup screen extension.

In case an OEM module is defined with this load and execution point, an additional setup node ‘OEM Setup Utility’ is displayed in the setup screen. When selected, the respective OEM code is executed, for example, to configure special hardware.

BEFORE_BOOT Load/execute at the end of the BIOS POST.

Every BIOS initialization task has been performed at this point and every BIOS runtime interface is available. The only thing that remains to be done is to search the detected boot devices for an OS loader and start the OS. Recommended execution point for an OEM defined OS loader.

The above load and execution time hooks are given in the order they are executed during BIOS POST. Do not set the load time later than the execution time, such a configuration is rejected by the CGUTIL.

2.    Load address

The load address field defines the physical memory address the OEM module should be copied to. Setting a fixed load address is possible but can be difficult to handle as the OEM may not know which memory ranges are not already used by parts of the BIOS.

Therefore, it is recommended to use the the following special address selectors instead of ‘real’, fixed addresses.

00000000h Load module at any free upper memory block address (640k...1MB).
FFFFFFFEh Load module at any free conventional memory address (0k...640k).
FFFFFFFFh Table text

📄 Note:

The standard BIOS may clear conventional RAM prior to OS boot. Moreover, operating systems may also clear the conventional RAM as well as the extended memory area during startup. Therefore, OEM code loaded to these areas may not be available after the OS starts.

3.   Entry offset

The entry offset field specifies the location within the OEM code block relative to the start of the block. The BIOS OEM code handler jumps to this location within the OEM module to start execution. Only the offset to the start of the OEM defined data block must be specified; the additional offset due to the MPFA header generated by the CGUTIL is calculated by the BIOS OEM code handler.

📄 Note:

The BIOS OEM code handler is a very simple and limited execution engine. It only copies the OEM code block to the given load address in RAM at the specified time during POST and performs a far call to the defined entry offset. Any sort of standard executable header is not evaluated. Throughout the BIOS POST, the so called big real mode is used. This means that only real mode code execution is natively supported. Flat mode memory data accesses are possible using the ES and DS segment/selector registers set to zero. Any sort of protected mode code can only be executed if the OEM code block performs the required initialization in the code part starting at the specified entry offset. The OEM code can return to the standard BIOS POST flow by performing a far return. However, this can only be successful if the memory model is unchanged, the stack is cleaned up and all registers are restored to original values.

Simple real mode COM style executables or real mode option ROM like code blocks are best suited to be included as OEM code modules.

⚠️ Caution:

* The CGUTIL cannot perform any sort of validity check on OEM BIOS code modules. If a corrupt OEM code module is added and executed during BIOS POST, the system may not boot anymore. Therefore, it should be considered as mandatory to prepare a backup copy of the original system BIOS on an external Flash Memory chip when testing OEM code modules.

* Contact the congatec technical support before adding your own code to the BIOS. Especially the selection of the appropriate load and execution times should always be performed in cooperation with congatec.

Legacy OEM code / data module support on UEFI based systems:

Although still supported, the usage of legacy OEM code / data modules for UEFI / Aptio4 and AptioV based congatec products is deprecated. Only a subset of 16‑bit code can be executed by or as part of the CSM module. This code is started and executed at the end of the UEFI POST. Therefore, early BIOS OEM code hooks are not implemented. In case the CSM module is not present or not started, legacy OEM code modules cannot be used at all and are simply ignored. OEM code data modules can still be added to the MPFA area and used in this context. However, they cannot be loaded to any other memory location.

Supported Load and Execution Time values for UEFI based systems with CSM enabled:

BEFORE_OPROM_SCAN
AFTER_OPROM_SCAN
BEFORE_SETUP (code executed on start of setup menu or F11 fast boot selection)
BEFORE_BOOT

‘Magic’ load addresses 00000000h and FFFFFFFEh for placement somewhere in UMB or somewhere in conventional memory below 1MB are supported. High address placement is NOT supported. Fixed address placement is supported but as usual not guaranteed to work and very likely to make the board unbootable. The 'BEFORE_BOOT Load/Execution' time selector does NOT support UMB placed code. Only conventional code placement and execution is supported for these Load/Execution times.

UEFI based systems (with CSM enabled) support real PCI/PCIe option ROM attachment for external PCI/PCIe devices. This is an enhancement compared to the BIOS OEM code support. A correctly configured PCI/PCIe option ROM OEM code module is loaded and configured as if attached to the PCI/PCIe device. For example, all registers are initialized as required according to PCI/PCIe option ROM specifications and PCI 3.0 option ROMs can be added as well.

For an PCI/PCIe option ROM attachment module, simply specify Load Time and Execution Time as NONE, the Entry Offset field as 00000000h and enter the PCI Vendor and Device ID into the Load Address field (for example, 80861502h for some Intel Ethernet controller).

In general the usage of native UEFI code (DXE drivers, UEFI boot loaders, …) placed in the OEM UEFI FW Volume Module is highly recommend for OEM code insertion on a UEFI based system.

EPI panel data module

As described in the Panel Configuration Module section earlier, all congatec boards support the EDID™ 1.3 based EPI (Embedded Panel Interface) specification for configuration of local flat panels. The congatec system BIOS includes a table of predefined and validated EPI data sets for standard panels. These panel data sets, as well as placeholders for OEM defined panel data sets, are included in the EPI BIOS module, which is one of the predefined modules stored in the MPFA area. This module is required for fixed panel type selection via the BIOS setup menu. It is listed here for completeness only and should never be modified or deleted using the BIOS Module Modification Module of the CGUTIL. Refer to the congatec application note 'AN12 Modify EPI File' for further information.

BIOS boot logo module

The congatec system BIOS includes support to display OEM defined BIOS boot logos during POST. The CGUTIL allows you to create the respective OEM logo modules and add them to the system BIOS. A standard congatec BIOS only supports one active OEM logo module. The module ID parameter for this module must always be set to zero. congatec’s embedded BIOS may support JPEG, GIF, and BMP images as input for OEM boot logos. BMP images with 16 colors, 256 colors and 24‑bit colors are supported, as well as monochrome images and 32‑bit color images with compression type 0. GIF logos must use 24‑bit colors and can even be animated (if supported by the respective system BIOS). It is recommended to use a JPEG image with the same resolution as the native resolution of the used display device, especially when working with LVDS flat panels. Here, YUV122 and YUV111 color component sampling is supported and the X‑density/Y‑density should be 1:1. However, not all JPEG formats and markers are supported.

In general, the following should be considered when a JPEG image is used as a boot logo:

  • Extended sequential DCT is not supported.
  • Define restart interval (DRI) is not supported.
  • Progressive encoding is not supported.
  • Lossless sequential encoding is not supported.
  • Differential sequential DCT is not supported.
  • Differential progressive DCT is not supported.
  • The X-density/Y-density should be 1:1.

JPEG files created with digital cameras and some professional image processing tools often use a lot of these unsupported features and in particularly add the IPTC or EXIF information block. Therefore, a JPEG image must always be checked before being added to the BIOS. JPEG images that cannot be displayed by the BIOS might be rejected by the utility. When in doubt, or in case your JPEG image is not working, please contact your local congatec support.

Even though an OEM logo module can be added to the BIOS by the utility, it is not activated automatically. Refer to the congatec application note 'AN11 Create And Add Bootlogo' for information about how to activate boot logo display and for further information about OEM boot logo creation in general.

📄 Note:

The boot display video mode is selected automatically, depending on the image resolution. The video BIOS or UEFI GOP driver, as well as the display device, should support the appropriate resolution otherwise the result is unpredictable.

POST logo left module

Like the full screen BIOS boot the small, left border aligned standard POST logo can also be replaced with an OEM logo packed into a POST logo left module.

Refer to the congatec application note 'AN11 Create And Add Bootlogo' for further information.

POST logo right module

Like the full screen BIOS boot a small, right border aligned standard POST logo can also be replaced with an OEM logo packed into a POST logo right module.

The POST logo right module is usually not supported by congatec default BIOS versions but may be included in customized BIOS variants. Refer to the congatec application note 'AN11 Create And Add Bootlogo' for further information.

OEM setup BIOS module (Core8 BIOS only; obsolete otherwise)

This module can be used to override the build time defined setup menu of a congatec BIOS. If a valid OEM setup module is found by the respective BIOS module handler, the setup menu layout stored within this module is used instead of the build time defined standard setup menu. An OEM setup module can be created using the BIOS setup configuration module of the CGUTIL.

The OEM setup module in turn can be added to all target boards and is used as OEM specific setup menu. In order to go back to the original build time defined setup menu, the OEM setup module must be deleted.

Only OEM setup modules created for the same board and BIOS version can be added, everything else is rejected by the utility.

A standard congatec BIOS only supports one active OEM setup module. The module ID parameter for this module must always be set to zero. Support for more than one OEM setup module in the same BIOS is possible but requires a special module selection OEM code BIOS module.

Please refer to the description of the BIOS setup configuration module in this document and to the congatec application note 'AN10 BIOS Setup Configuration' for detailed information about how to create and add an OEM setup module.

OEM video mode module

Recent congatec system BIOS versions for all congatec products based on Intel chipset include support to add additional OEM defined video modes to the standard video modes already offered by the video BIOS and UEFI GOP driver. The generic VESA frame buffer graphic drivers, the Intel graphic drivers for Windows operating systems and the Intel Linux graphics drivers, also add these OEM video modes to their lists of supported video modes and resolutions. This feature is required in order to make the best use of a display offering a special resolution that by default is not supported by the video BIOS or previously mentioned graphics drivers.

In order to create an OEM video mode module, a valid EDID™ 1.3 or EPI data set (for example, created using the EPI Data Set Generator) must be loaded as an input data file. Up to four OEM video mode modules (and thus up to four OEM video modes) can be added to the BIOS and are identified by the ‘Module ID’ parameter.

The OEM video modes are assigned the following video mode numbers.

1.    Module ID = 0

  • 8 bpp = VGA mode 60h / VESA mode 160h
  • 16 bpp = VGA mode 61h / VESA mode 161h
  • 32 bpp = VGA mode 62h / VESA mode 162h

2.    Module ID = 1

  • 8 bpp = VGA mode 62h / VESA mode 163h
  • 16 bpp = VGA mode 64h / VESA mode 164h
  • 32 bpp = VGA mode 65h / VESA mode 165h

3.    Module ID = 2

  • 8 bpp = VGA mode 66h / VESA mode 166h
  • 16 bpp = VGA mode 67h / VESA mode 167h
  • 32 bpp = VGA mode 68h / VESA mode 168h

4.    Module ID = 3

  • 8 bpp = VGA mode 69h / VESA mode 169h
  • 16 bpp = VGA mode 6Ah / VESA mode 16Ah
  • 32 bpp = VGA mode 6Bh / VESA mode 16Bh

📄 Note:

For special resolution local flat panels, no additional OEM video mode module needs to be added in order to get support for the respective special video mode and resolution. The BIOS code automatically adds a corresponding OEM video mode for the panel deriving the required data directly from the EPI data set used for physical panel adaption.

These automatically added OEM video modes are assigned the following video mode numbers:

* 8 bpp = VGA mode 6Fh / VESA mode 16Fh

* 16 bpp = VGA mode 70h / VESA mode 170h

* 32 bpp = VGA mode 71h / VESA mode 171h

OEM HDA verb table module

This module can be used to add OEM specific initialization tables for High Definition Audio Codecs to congatec system BIOS versions offering support for OEM HDA configuration. Detailed description of this feature and the required input data for this sort of module is beyond the scope of this document. Contact congatec technical support for more information about customized HDA codec initialization.

OEM SLP 1.0 module / OEM SLIC table module / OA 3.0 module

OEM activation technology allows system integrators to activate licensed copies of a Windows Operating System (OS). Therefore, end users of the embedded system do not have to activate the OS. When OEM Activation 2.1 or OEM Activation 3.0 is properly installed and set up, activating the Windows OS (Windows Product Activation) is no longer necessary.

•      OA3.0 is supported by Windows 8 and Windows 10 and may be customized using an OEM OA 3.0 Module.

•      OA2.1 is supported by Windows Vista, Windows 7 and Windows Server 2008. It can be customized using an OEM SLIC Table Module.

•      OA1.0, also known as SLP, is available for Windows XP and Windows Server 2003. Can be customized using an OEM SLP 1.0 Module.

Please refer to the congatec application note 'AN21 Add OEM ACPI SLIC Table' for further information on how to implement OEM activation 1.0, 2.1 and 3.0 on congatec embedded PC modules and SBCs using the CGUTIL.

Standard VBIOS module

Reserved for congatec internal usage.

OEM VBIOS module

Reserved for congatec internal usage.

UEFI FW volume module

In general, the usage of native UEFI code (DXE drivers, UEFI boot loaders, …) placed in the OEM UEFI FW Volume Module is highly recommended for OEM code insertion on a UEFI based system.

Please contact your local congatec support for further information.

OEM setup menu control module

By adding this module, the user is able to apply a customized setup menu layout created using the congatec Setup Menu Layout Editor. The module allows to show, hide or gray‑out a given setup node and change its title and help text.

It is not possible to change the default settings or change the options of a particular setup node. In case you want to do this, please refer to the application note 'AN8 Create OEM Default Map' to learn how to change the default settings of a congatec embedded BIOS.

The BIOS setup configuration module chapter in this document as well as the congatec application note 'AN35 BIOS Setup Configuration' describe in detail how OEM Setup Menu Control Modules can be created using the Windows GUI version of the CGUTIL. This function is not supported by the command line version of the utility (CGUTLCMD).

OEM Setup Menu Control Modules require a congatec embedded BIOS based on AMI’s AptioV UEFI firmware implementation. Only BIOS releases after June 2016 might have the support built‑in. One can check if the BIOS supports OEM setup modification by looking at the Save & Exit setup submenu. There must be an option for saving the current Setup Layout file by the item Generate Menu Layout File.

OEM SMBIOS data module

In its original state, the BIOS contains several hard coded DMI tables. In detail, these DMI tables are no simple tables with key‑value pairs for each entry. They are compound data structures containing binary, numerical and text string members. The SMBIOS specification explains the details of each type of structure. The Linux tool dmidecode can show the contents of these tables in an interpreted way or raw data structures. On Windows, the tool RWEverything can do the same. How a particular operating system reads and utilizes the tables is beyond the scope of this document.

The BIOSes of the latest and future congatec products have a feature that allows customers to change the content of these tables. It is possible to overwrite some or all data of these tables. The modification data is contained in a software module which can be created with the CGUTIL from a structured text file. An example text with all currently changeable elements is shown in the appendix of congatec application note 'AN34 OEM SMBIOS'. Please note that not all BIOS versions support all elements or allow to modify all of them.

Currently, it is only possible to implement the changes to the tables by one single software module. When applying a new module, the previous changes are deleted entirely. Therefore, if the modified data shall contain only static data, then the software module can also be included in a pre‑programmed BIOS. If the modified data shall contain some static information, like manufacturer and type and some dynamic information like serial number, it is necessary to create for each manufactured unit its own data set composed of the static and the dynamic parts and flash it directly to the unit.

Please refer to the congatec application note 'AN34 OEM SMBIOS' for further information.

Windows GUI Version

CGF.png

Available functions:

[Add Module] Add a congatec BIOS module to the operating target.
[Delete Module] Delete the module selected in the ‘Current congatec BIOS Modules’ window.
[Save Module To File] Save the BIOS module selected in the ‘Current BIOS Modules’ window. It saves the whole module, that is, the actual module data as well as the module’s MPFA header.
[Save Module Data To File] Save the data of the module (without MPFA module header) selected in the ‘Current BIOS Modules’ window to a file.
[Save Module Overview] Generates a list of all currently included BIOS MPFA modules and saves it to a file.
[Create Module] The first click on this button initiates the module creation process by asking the user to select a file containing the data that should be included in the module. After loading the module data file, the desired module type must be selected in the module type parameter field. Make sure that the module ID field is set according to the module description above and set the desired module revision. If the selected module type is ‘OEM Code/Data’, the additional parameter fields load time, execution time, load address and entry offset also must be configured and therefore become selectable. When all parameters are configured, click CREATE again to generate and save the created module to a file. This module file in turn can be added using the Add Module function.
[Deactivate BIOS Write Protection] This function is only available and required in ‘Board’ mode and only if the ‘BIOS Update and Write Protection’ feature is available and activated in the current BIOS. In this case write and erase accesses to the target’s Flash Memory chip and therefore all BIOS modifications in ‘Board’ mode are only possible after temporarily deactivating the protection. This can be done by passing the correct deactivation password using the dialog started with this button.


All actions of this function module are first performed in a temporary buffer and can be undone anytime by clicking the ‘Cancel’ button. The selected operating target is modified only after clicking the ‘Apply’ button. The top left section of the window provides an overview of the currently contained modules in the MPFA and then informs about the space left in the storage area. Selecting one of the displayed module entries updates the module parameter field with the parameters of this module. The output window below the module parameter field displays additional information, error and operation progress messages.

At the top of the window, the original congatec BIOS version and the OEM BIOS version of the current operating target are displayed. The congatec version field is included for reference purposes only and cannot be modified. The OEM BIOS version field can and should be used to assign an up to eight character add‑on OEM BIOS version string to the modified BIOS. As long as no OEM version is assigned, this field is blank. To assign an OEM version to the BIOS, simply enter the desired string in the field and press the ‘Apply’ button. The respective OEM version string is displayed together with the standard BIOS version in the BIOS setup screen and on the BIOS boot screen. If a BIOS is modified by adding or deleting a BIOS module but no dedicated OEM version is assigned, the add‑on version information would still be displayed in the setup screen or on the BIOS boot screen. However, in this case the OEM version would be set to ‘UNKNOWN’. To avoid this, it is highly recommended to always set a defined OEM version string when modifying the BIOS and use that same OEM version string to name the OEM BIOS version file.

📄 Note:

A default setup settings module can only be generated out of a valid current setup settings module file as an input file. The default setup settings module cannot be generated solely from the data of the current setup settings module.. This ensures that a default setup settings module can only be generated out of data for the same BIOS version. The current setup settings module still includes information about the BIOS that the current setup settings have been derived from. The pure module data would not contain this information anymore. Thus, the respective information couldn’t be added to the default module. A default setup settings module with invalid or non existing BIOS information however would be rejected by the Add Module function

Example: Create and add a BIOS boot logo module

1.   Initiate the module creation process by clicking the ‘Create Module’ button and select a valid JPEG data file.

CGG.png

2.   Select the ‘BIOS Boot Logo’ module type, ensure that module ID is set to zero, and enter a module revision if desired. Afterwards, click ‘Create Module’ button again to generate and save the module.

CGH.png

3.    Click ‘Add Module’ and select the recently created boot logo module file. The logo module should now be displayed in the ‘Current congatec BIOS Modules’ window. Select it and verify that the module parameters are correct.

CGI.png

4.  Set a defined OEM version in the OEM BIOS Version field and click the ‘Apply’ button to update the operating target.

CGJ.png

Command Line Version

Function module selector:

MODULE

Syntax:

CGUTLCMD MODULE /OT:[target] /[command] /OF:<output file> /IF:<input file> [parms]

Syntax description:

/OT: Specify the operating target.
BOARD All actions result in direct hardware accesses to the respective congatec board. All other strings are interpreted as name of the BIOS file to be modified.
parms Command parameters, if required (see below).
/IF: Specify the input data file (depends on command).
/OF: Specify the output data file (depends on command).

Commands:

/SAVE Find specified module and save it to the output data file.
/DSAVE Find specified module and save its data block.
/CMP Find specified BIOS module and compare it with the module input file.
/DCMP Find specified BIOS module and compare module data with the data part of the module input file.
/DEL Find specified module and delete it.
/ADD Add a new BIOS module specified with the input file parameter to the operating target.
/LIST Generate a list of all congatec BIOS modules found on the operating target and display it.
/SLIST Generate a list of all congatec BIOS modules found on the operating target and save it to the output data file.
/CREATE Create a new congatec BIOS module using input file data and store the result in the specified output file.
/INFO Display the OEM BIOS version (if assigned) and information about the free space left in the module storage area.
/OEM:xxxxxxxx Assign an OEM BIOS version (max. eight characters). This OEM BIOS version is displayed in addition to the original congatec BIOS version in BIOS setup and during POST.

congatec BIOS module parameters:

/T: BIOS module type (BYTE)
/ID: BIOS module ID (WORD). Default: 0
/R: BIOS module revision (BYTE). Default: 0
/LA: BIOS module physical load address (DWORD, usercode only). Default: 0 Special addresses:

00000000: Load module at any free upper memory block address. FFFFFFFE: Load module at any free conventional memory address. FFFFFFFF: Load module at any free extended memory address.

/LT: BIOS module load time (BYTE, user code only).Default: 0
/ET: BIOS module execution time (BYTE, user code only).Default: 0
/O: BIOS module entry offset (DWORD, user code only).Default: 0

congatec BIOS module types:

1h CMOS Backup Map Module
2h CMOS Default Map Module
3h OEM Code/Data Module
5h EPI Panel Data Module
6h BIOS Boot Logo Module
8h OEM Setup Module (Core8 BIOS only!)
9h Fixed CMOS Map Module
Bh OEM Video Mode Module
Ch OEM HDA Verb Table Module
Dh OEM SLIC Table Module
Eh OEM SLP 1.0 Module
Fh Standard VBIOS Module
10h OEM VBIOS Module
11h POST Logo Left Module
12h POST Logo Right Module
13h UEFI FW Volume Module
14h OA 3.0 Module
15h OEM Setup Menu Control Module
16h OEM SMBIOS Data Module
E0h Pad Module

congatec execution/load time selectors:

0 NONE Do not load/execute the OEM module.
2 BEFORE_CMOS_TEST Load/execute before CMOS test.
3 BEFORE_VIDEO_INIT Load/execute before video BIOS initialization.
4 AFTER_VIDEO_INIT Load/execute after video BIOS initialization.
5 BEFORE_OPROM_SCAN Load/execute before option ROM scan.
6 AFTER_OPROM_SCAN Load/execute after option ROM scan.
7 BEFORE_SETUP Load/execute on setup screen start.
8 SETUP_EXTENSION Load/execute as setup screen extension.
9 BEFORE_BOOT Load/execute at the end of BIOS POST.

All numeric parameters are interpreted as hexadecimals.

📄 Note:

The /DEL, /SAVE and /DSAVE commands require that a module type is specified. If there are more modules of this type, the first module found is chosen. For a unique identification, the module ID parameter has to be passed as well.

Whenever a BIOS module is added to or deleted from a standard congatec BIOS, the BIOS displays an add-on OEM version information string on the BIOS boot screen and in the BIOS setup menu. If no defined OEM version is assigned using the /OEM: command, the OEM version is set to ‘UNKNOWN’. To avoid this, it is highly recommended to always set a defined OEM version string when modifying the BIOS and use that same OEM version string to name the OEM BIOS version file.


Examples:

1.    Delete a BIOS boot logo module in ‘Board’ mode.

CGUTLCMD MODULE /OT:BOARD /DEL /T:6

2.   Save a current setup settings module to a file in ‘Board’ mode.

CGUTLCMD MODULE /OT:BOARD /SAVE /OF:BACKUP.MOD /T:1

3.    Create a default setup settings module out of the current setup settings module.

CGUTLCMD MODULE /OT:BOARD /CREATE /IF:BACKUP.MOD /OF:DEFAULT.MOD /T:2 /ID:0 /R:1

4.    Add the default setup settings module to a BIOS file in ‘BIOS File’ mode.

CGUTLCMD MODULE /OT:BV97R111.BIN /ADD /IF:DEFAULT.MOD

5.    Delete OEM module with module ID 2.

CGUTLCMD MODULE /OT:BOARD /DEL /T:3 /ID:2

6.    Assign a defined OEM version to the modified BIOS.

CGUTLCMD MODULE /OT:BOARD /OEM:OEMVR001

or in BIOS File Mode:

CGUTLCMD MODULE /OT:BV97R111.BIN /OEM:OEMVR001

Board and BIOS Information Module

This module offers an easy way to gather relevant information about a certain congatec board and BIOS. The information is meant to be used by customers during their own setup or manufacturing process to identify a congatec board or BIOS, or to be passed to congatec when contacting the support team.

The following information can be derived from a congatec board:

  • System BIOS Version
  • OEM BIOS Version
  • Board Controller Firmware Version
  • Board Name
  • Board Sub Name
  • Product Revision
  • Part Number
  • EAN Code
  • Serial Number
  • Manufacturing Date
  • Last Repair Date
  • Boot Counter
  • Running Time
  • CGOS API Version
  • CGOS Driver Version
  • BIOS Update and Write Protection State

The information module can also be used in ‘BIOS File’ mode, for example, to analyze a congatec BIOS file. However, only the system and OEM BIOS version can be derived from this BIOS file.

Windows GUI version

CGK.png

When started, the Windows GUI version of the Board and BIOS Information module automatically gathers and displays all available board information. This information can also be saved to a text file.

Command line version

Function module selector:

CGINFO

Syntax:

CGUTLCMD CGINFO /OT:[target] /[command] [parm] [options]

Syntax description:

/OT: Specify the operating target.
BOARD: All actions result in direct hardware accesses to the respective congatec board. All other strings are interpreted as name of the BIOS file to be analyzed.
parm Command parameters, if required (for example, input or output file name).
options Information selection option(s). One or more options to select the information that should be returned by the DUMP or SAVE command (see below).

Commands:

/DUMP Display selected information on screen.
/SAVE Save selected information to file.
/BFCHK Check whether the operating target system and OEM BIOS versions match the versions of the specified BIOS file.
/FWCHK Check whether the operating target board controller firmware version matches the version of the specified firmware file.

Information selection options:

/SILENT Information is displayed or saved without description text (for example, ‘X945R111’ instead of ‘System BIOS Version: X945R111’).
/BIOS Return system and OEM BIOS version.
/BCFW Return board controller firmware version.
/CGOS Return CGOS interface and driver version.
/BCNT Return boot counter.
/RTIM Return running time.
/MANU Return CPU-board manufacturing data.
/BUP Return state of the ‘BIOS Update and Write Protection’#.

If no selection options are passed, the complete information list is displayed or saved.


Examples:

1.    Display BIOS versions and boot counter with description text.

CGUTLCMD CGINFO /OT:BOARD /DUMP /BIOS /BCNT
Possible output:
System BIOS Version: BV97R111
OEM BIOS Version:
Boot Counter: 571

2.   Display board manufacturing information with description text.

CGUTLCMD CGINFO /OT:BOARD /DUMP /MANU
Possible output:
Board Name: BV97
Board Sub Name: TU97
Product Revision: D.1 (0x4431)
Part Number: 045106
EAN Code: 04250186144067
Manufacturing Date: 2015.05.15
Last Repair Date: 0000.00.00

BIOS Setup Configuration Module

The BIOS setup configuration option enables customers to modify the standard, build time defined BIOS setup menu of a congatec BIOS. This is achieved by launching the congatec Menu Layout File Editor, which in turn allows to create customized OEM Setup Menu Control Modules. These modules, once added to the target BIOS, allow the user to show, hide or gray‑out a given setup node and change its title and help text.

OEM setup modification requires a congatec embedded BIOS based on AMI’s AptioV UEFI firmware implementation. Only BIOS releases after mid of 2016 might have the support built‑in. One can check if the BIOS supports OEM setup modification by looking at the Save & Exit setup submenu. There must be an option for saving the current Setup Layout file using the item Generate Menu Layout File. Refer to the image below.

It is not possible to change the default settings or change the options of a particular setup node. In case you want to do this, please refer to the congatec 'AN8 Create OEM Default Map' to learn how to change the default settings of a congatec embedded BIOS.

The congatec application note 'AN35 BIOS Setup Configuration' describes in detail how to use the Windows GUI version of the CGUTIL and the congatec Menu Layout File Editor (CgMlfEditor) tool to create and apply OEM Setup Menu Control Modules for setup menu modification.

The sections below provide a brief overview.

Creating a menu layout file (MLF)

In order to edit your setup menu layout, a menu layout file containing your current BIOS layout has to be generated. It is stored on the first writable file system found, for example, a plugged in USB drive. The filename consists of the current BIOS version and has the ending “.mlf”.

1.   Select “Generate Menu Layout File” in the “Save & Exit” tab of your BIOS setup screen.

MLF.png

2.   A confirmation window appears, indicating that the file was successfully generated.

MLF 2.png

3.   In case of an error (for example, if you have no appropriate storage medium attached), a corresponding error message is displayed.

MLF 3.png

How to use the congatec Menu Layout File Editor

MLF Editor.png

Menu layout files can be opened or saved by using the ‘Open/Save MLF file...’ buttons. After a .mlf file is opened, the file name and the compatible BIOS version are shown in the window title. Any changes applied by the user are indicated by adding green background color to the corresponding item. After saving the .mlf file, the user is asked whether to open the new file and update the tree view as well as the ‘original’ fields to reflect the changes or to keep the previous view.

Item tree:

This section contains the setup menu and configuration items of the opened .mlf file sorted in a tree view layout.

Item Settings:

Changes for each selected item in the item tree can be applied using the available ‘override’ fields while the current settings are displayed in the ‘original’ fields for reference. The default selection or text for each ‘override’ field can be restored to the ‘original’ contents using the “R” button beneath the according fields.

Example:

In order to demonstrate the functionality of the congatec Menu Layout File Editor, it is assumed that the user wants to hide the settings for ‘Serial Port 0’ from Advanced / Module Serial Ports.

MLF Editor , BIOS Menu.png

1.    Expand the item tree view using the node arrows left of each item. Collapsed node arrows are filled with white, and expanded node arrows are filled with black. The content is indented hierarchically, showing the setup menu tabs at highest level. Navigate to ‘Advanced’ / ‘Module Serial Ports’ and choose ‘Serial Port 0’ entry by clicking on it. Change the visibility in the ‘Override condition’ drop down menu to ‘Suppressed’.

MLF Editor 2.png

2.   The item background color is changed to green, indicating that changes were made.

MLF Editor 3.png

3.   Save the customized menu layout to a new file (for example, “my_custom_menu.mlf”).

MLF Editor 4.png

4.   Close the congatec Menu Layout File Editor and open the BIOS Module Modification Module. Select ‘Create Module’ and choose your .mlf file as input file.

MLF Editor GUI 5.png

5.   Select “OEM Setup Menu Control” as Module Type.

MLF Editor GUI 6.png

6.   Click ‘Create Module’ again and save your module (for example, “my_custom_menu.mod”).

MLF Editor 7 GUI.png

7.   Choose ‘Add Module’ and select the module file you just created. The new module appears in ‘Current BIOS Modules’. Click on ‘Apply‘.

MLF Editor 8 GUI.png

8. The new module appears in ‘Current BIOS Modules’. Click on ‘Apply‘.

MLF Editor 9 GUI.png

9.   After reboot, enter the setup menu. The entry for ‘Serial Port 0’ should be suppressed.

MLF Editor, BIOS Menu 2.png

CGOS Functions

Please refer to the official congatec cgos manual 'CGOSAPIm14' or latest versions for the usage of the cgos functions.

CGOS Functions.png

Hardware Monitor

Please refer to the official congatec cgos manual “CGOSAPIm14” or latest versions for the usage of the hardware monitor.

Hardware Monitor.png

none]]

FAQ: Frequently Asked Questions

1. Can the CGOS Legacy Driver be used for the BIOS capsule update?

Answer:

No. The CGOS Legacy driver does not support the Capsule update procedure, because it lacks support for the trigger mechanism used in CGUTIL.

2. Can CGOS direct versions earlier than 3.0.0 be used?

Answer:

Yes, but with limited features. We recommend always to use the latest versions.