A SERVICE OF

logo

Hardware Port Access API C-9
E-EQ-MX3CERG-A-ARC MX3-CE Reference Guide
Loaded Version Numbers
The registry key HKLM\Software\LXE\Version contains current version numbers of loaded
software, including PCMCIA radio drivers.
Loaded S Numbers
The registry key HKLM\Software\LXE\Snumber contains current S numbers of loaded software,
including PCMCIA radio drivers.
Hardware Port Access API
FPGA Register Access
There is an OEM API call to read FPGA registers.
typedef struct {
DWORD Register; // in - register number
DWORD Mask; // in - mask of bits to read or modify
DWORD Value; // in - value of bits to write, out -
value of bits read
} HAL_CUSTOM_REGISTER_STRUCT, * PHAL_CUSTOM_REGISTER_STRUCT;
#define IOCTL_HAL_CUSTOM_READ_BITFIELD 0x101202C
void ReadFPGA(int reg, int *val)
{
HAL_CUSTOM_REGISTER_STRUCT buf;
DWORD len;
buf.Register = reg;
buf.Mask = 0xFF;
if (!KernelIoControl
(IOCTL_HAL_CUSTOM_READ_BITFIELD,
(LPVOID)&buf,sizeof(HAL_CUSTOM_REGISTER_STRUCT),
NULL, 0, &len))
printf(“Kernel IOCTL failed\n”);
else
*val = buf.Value;
}
There is another OEM API call to write FPGA registers.
#define IOCTL_HAL_CUSTOM_WRITE_BITFIELD 0x1012030
void WriteFPGA(int reg, int val)
{
HAL_CUSTOM_REGISTER_STRUCT buf;
DWORD len;
buf.Register = reg;
buf.Mask = 0xFF;
buf.Value = val;
if (!KernelIoControl(IOCTL_HAL_CUSTOM_WRITE_BITFIELD,
(LPVOID)&buf, sizeof(HAL_CUSTOM_REGISTER_STRUCT), NULL, 0,
&len))
printf(“Kernel IOCTL failed\n”);
}