As per the Programming Specification, "0x9050 0000 – Metadata (12 bytes): This section contains data that is not programmed into the target device. Instead, it is used to check data integrity of the hex file and the silicon ID of the target device.", PSoC Programmer uses each of these bytes and analyse if the hex file is corrupted. The methodology used by PSoC Creator is confidential. Can you check if there is any corruption for the hex file?
The HEX file was modified by me and the checksum updated from outside of PSoC Creator. So by the metadata CRC, I'd imagine it did consider it corrupt. However as I changed the data and all other checksums in the file (there is one on each line followed by an image sum), it was correct as I recalculated all those.
I cannot write the file because the last metadata check is invalid.
The silicon ID is the first few bytes of the metadata - why is there a secondary CRC in there that is proprietary rather than letting users program any valid HEX file they like?
Right now PSoC Programmer can program the hex file generated by PSoC Creator only. The extra check is to prevent the programming of other modified hex files.