Then it seems not working properly.
Check its Mode structure. What it reports. Maybe there are only zeros, meaning basically lack of support.
Also you might take a look at EFI_DEVICE_PATH_PROTOCOL instance installed on the same handle as the EFI_SIMPLE_POINTER_PROTOCOL instance. It should be installed. And should match the type of mouse (PS/2, USB, serial).
Probably mouse handling is broken at your UEFI fw.
Also, you might try to ConnectController(), in your init routine, on the handle, returned by LocateDevicePath() with the device path obtained from your handle. Probably the driver installed the protocol, but actually never was connected (its Supported/Start routines never were called and thus initialization didn't occur).
Follow this example (version 2.4, page 181)
Code:
EFI_STATUS Status;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;
EFI_HANDLE Handle;
do {
//
// Find the handle that best matches the Device Path. If it is only a
// partial match the remaining part of the device path is returned in
// RemainingDevicePath.
//
RemainingDevicePath = DevicePath;
Status = gBS->LocateDevicePath (
&gEfiDevicePathProtocolGuid,
&RemainingDevicePath,
&Handle
);
if (EFI_ERROR(Status)) {
return EFI_NOT_FOUND;
}
//
// Connect all drivers that apply to Handle and RemainingDevicePath
// If no drivers are connected Handle, then return EFI_NOT_FOUND
// The Recursive flag is FALSE so only one level will be expanded.
//
Status = gBS->ConnectController (
Handle,
NULL,
RemainingDevicePath,
FALSE
);
if (EFI_ERROR(Status)) {
return EFI_NOT_FOUND;
}
// Loop until RemainingDevicePath is an empty device path
//
} while (!IsDevicePathEnd (RemainingDevicePath));
//
// A handle with DevicePath exists in the handle database
//
return EFI_SUCCESS;