SysInfoLib functions support for VF61

I think that SysInfoLib is not supported for the Colibri VF61.
Is there another library to support for the next SysInfoLib functions in this module?

GetBoardVersion
GetBoardSerial
GetImageInfo
GetBootloaderInfo

I checked TdxAllLibrariesDll 1.7 but didn’t find any reference about these functions.

SysInfo lib on VF modules is not yet implemented. There are workarounds for this

Serial number you can find here → Single Board Computers (SBCs), Computer on Modules, System on Modules

Board version:

#define ID_HW			8
#define IOCTL_HAL_FLASHPARAMGET CTL_CODE(FILE_DEVICE_HAL,  2058,  METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct {
	DWORD id;
	void* pBuf;
	DWORD len;
} FLASHPARAMSETPARAMS;

typedef struct {
	WORD VerMaj;
	WORD VerMin;
	WORD Variant;
    WORD ProdID;
} HWCFG;

 HWCFG hwcfg;
 FLASHPARAMSETPARAMS fps;
 DWORD result;

 memset(&hwcfg, 0, sizeof(HWCFG));
 fps.id=ID_HW;
 fps.len=sizeof(HWCFG);
 KernelIoControl(IOCTL_HAL_FLASHPARAMGET, &fps, sizeof(FLASHPARAMSETPARAMS), &hwcfg, sizeof(HWCFG), &result);

For BSP version you use:

#define IOCTL_HAL_GET_BSP_VER		CTL_CODE(FILE_DEVICE_HAL,  2051,    METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct {
    DWORD ID;
    DWORD Maj;
    DWORD Min;
} BSPVER;
BSPVER BspVer={0};
KernelIoControl(IOCTL_HAL_GET_BSP_VER, NULL, 0, &BspVer, sizeof(BspVer), NULL);

Bootloader and image should always be same version.

Luka, thank you for your answer.

I tested the module serial number method that you point. It think the cid (and tid) are wrong.
I noticed that the same happens in the config block, where de fields mac.cid and mac.tid are returned or stored with the wrong endianness. I checked it in three different VF61 modules, with image 1.2 and 1.3beta4.

In the bootloader CommandPrompt I obtained

mac.tid: 0x2D1400 (Toradex MAC range ID)
mac.cid: 0x1F294B (Colibri MAC range ID)

It should have been

mac.tid: 0x00142D
mac.cid: 0x4B291F (4925727)

Log: link text

This is exactly how it is saved in NAND. If you want serial number out of that you have to swap bytes. When we implement library this will be swapped there.

The BSP version example worked fine, but the board version one didn’t.
The value of hwcfg is always zero and also de value of result. The BOOL return value of KernelIoControl is TRUE.

I Updated my original post. I also tested it.

The SysInfo Lib is now supported (since release 1.8). See also roadmap issue 19904.