Calculating CRC for bootloader firmware
Usually your program image would only have its verification CRC computed across the image and not any of the configuration registers in the MCU. But be aware that CRC calculations can have many variables even with the same CRC acceleration table. Some of these factors:


Are the CRC bytes locations in the image itself included in the calculation?
Do you start the CRC calculation loop with a seed of 0x0000 or 0xFFFF?
The order you store the CRC bytes in the image needs to be comprehended.
The CRC table is typically 16-bits wide for MCU type application. It makes a difference if you take the high table byte first into the computation loop or the low byte.
Sometimes the final computed CRC is logically inverted before having its value stuffed into the image.


It is strongly recommended that you prototype your CRC generator and checker routines in a PC C language environment to ensure the algorithms encode  and decode the same way. If you are trying to put your own algorithm up against that generated/decoded by another tool it is especially important to test it thoroughly before you ever try to make it work on a live embedded system where it can be more difficult to test and debug.