Verifying the modem

Use the verification file in the modem firmware package to check if the modem was updated successfully.

The firmware.update.image.digest.txt file contains the hash of all the different contiguous regions of the modem. Use the following procedure to get the hash of these regions from the modem and compare the values.
  1. Using either the HEX files or the verification file, find the addresses and length of the segments you want to verify.
  2. Write 0x7 to 0x2000000C.
  3. Write the number of segments to be validated to 0x20000010.
  4. Write the address of segment n to 0x20000014+(n*8).
  5. Write the length of segment n to 0x20000018+(n*8).
  6. Write 1 to 0x4002A004 to start the verification.
  7. Write 1 to 0x4002A004 to start the IPC transaction.
  8. Poll IPC.MODEM_CTRL_EVENT.
    0x2000000C writes (0x3) and reads (0x7) responses from the modem. If the response is 0xA5xxxxxx, it is an acknowledgement of the command. If the response is 0x5Axxxxxx, it is an error where the last six digits is the error code.
  9. Read out the digest of the requested areas in 0x20000010 – 0x20000030.
    The values are in big-endian and must be converted to little-endian.
  10. Compare the readout with the values in the verification file.
    If the received hash is the same as the hash given in the file, the firmware on the modem is the same as the one provided in the modem firmware package.