Fir_tool 0.5 for 5D/30D/400D and for 1Dm3 -> 7D

  • 0 Replies
  • Publish
    Fir_tool 0.5 for 5D/30D/400D and for 1Dm3 -> 7D
    « on: 10 / May / 2010, 14:57:09 »

    Please find attached a open source and free python utility, called '', to parse .fir updates for 5D/30D/400D.

    use -c to verify checksums...

    Code: [Select]
    $ python  -c 5d000111.fir
    Fir_tool 0.5 for 5D/30D/400D (9May2010)

    fileLen = 0x4f6424
    ---.fir header---
    0x000: modelId = 0x80000213, (5D, VxWorks)
    0x010: version = 1.1.1
    ---ciphered part (xor)---
     xor_decoding [0x20-0x4f6424]... OK (0213_111_firmware.bin)
    0x020: checksum = 0xe1a7fb7b
     checksum computing [0x0-0x4f6424] is OK!
    0x024: updater offset = 0x30
    0x028: firmware pack offset = 0x16e4d0
    0x02c:  = 0x0
    0x030: ---updater---
    0x16e4d0: ---firmware---
    0x16e4d0: (+0x000) firmware checksum = 0xe9f97565
     checksum computing [0x16e4d4-0x4f6424] is OK!
    0x16e4d4: 0x96e4d4 (only with 5D)
    0x16e4d8: number of files in the pack = 6
    0x16e4dc: offset to the file table = 0x20 (from 0x16e4d0)
    0x16e4e0: header size = 0x140 (from 0x16e4d0). end of header = 0x16e610
    0x16e4e4: size of file table = 0x120
    0x16e4e8: size after table = 0x387e14
    0x16e4cc: 0x1 (only with 5D)
    0x16e4d0: (+0x020) files table
    0x16e4f0: 0x0002  0x000140 0x000042 MPU_FIRMWARE                     0x0001f4
    0x16e520: 0x0002  0x000182 0x0010a0 MPU_FIRMWARE                     0x00047e
    0x16e550: 0x0002  0x001222 0x018098 MPU_FIRMWARE                     0x00ae4c
    0x16e580: 0x0001  0x0192ba 0x35d8c0 --------                         0xf8010000 0x013880
    0x16e5b0: 0x0001  0x376b7a 0x011398 --------                         0xf8780000 0x000172
    0x16e5e0: 0x0002  0x387f12 0x000042 MPU_FIRMWARE                     0x0001f4
    0x16e610: (+0x140) end of table, first file

    other output examples are here:
    - 400D 1.1.1
    - 30D 1.0.6

    for lastest fir update format (from 1Dm3 to 7D), please see this other version '', posted on the Magic Lantern mailing list

    Credits (from CHDK among others) are in the code sources or in the companion document:



    Related Topics