The Boot Loaders for the EFM8 UB2 parts (AN945SW) list a HID report size as 8 (8 bits) and a report count of 4. Yet only one byte is returned as a response to the Boot Loader commands. The other 3 bytes are just remnant values associated with the declared TxBuffer. This is easily seen with a USB analyzer.
The USB HID specification is quite flexible with regard to the report size and report count. Is this 4 byte usage a consequence of the Host side driver? Can I shorten the report count to 1?
The host tool's source code can be found here, and you should change the Input (device to host) report size synchronously.
enter the folder, and type the command similar as below,
python .\efm8loader.py EFM8UB2_RainbowBlinky.efm8