I'm seeing a problem with Gecko Bootloader v1.6 and a signed and encrypted GBL file. When the upload reaches 99%, it always fails with error 0x0b03 on the EFR32BG1V132 device, which has 16 KB of RAM. When I trace the code, parser_parse() is returning 0x1006 at one of the uploads (close to the last one) which is BOOTLOADER_ERROR_PARSER_SIGNATURE.
When I run this same code on a device with 32 KB of RAM (e.g. EFR32BG1P232), it uploads successfully. There appears to be something unique to the 16 KB devices that is blocking the signature verification because uploads complete successfully with unsigned images.
Based on this customer description, it would appear that 16 KB RAM flavors of the EFR32 Blue Gecko (and by way of comparison, 16 KB versions of EFR32 Flex and Mighty Gecko) cannot run Gecko Bootloader. Is this really the case?
Fortunately, this problem is actually related to the age of the devices being used. In December 2016, EFR32 Blue, Flex, and Mighty Gecko "V" part numbers (EFR32BG1V132) were upgraded to have full encryption capabilities instead of AES alone. The full list of affected part numbers can be found in the Product Change Notification (PCN) document announcing the upgrade:
Gecko Bootloader requires SHA hashing and ECDSA encryption to perform signature verification. Because these features were not present on the original EFR32xG1V devices, Gecko Bootloader fails with the parser signature error message above when run on this older hardware. Apart from visually inspecting the date code, there is no way to determine if a suspect device has full encryption enabled, so Gecko Bootloader has no means of checking for this and thus fails in this fashion.