SMEDIA - v3l0c1r4pt0r/lkv-wiki GitHub Wiki

SMEDIA

SMEDIA is easily identifiable by magic string SMEDIA02 at its beginning. After header of unknown format, it contains another blob of data (SMAZ), storing compressed machine code.

Data stored in this container are all big-endian. It is different than in ITEPKG container.

  • SMEDIA header
    • 0x00: 8-bytes SMEDIA02
    • 0x08: uint32_t setup_microcode_base_address
    • 0x0C: uint32_t setup_microcode_length
    • 0x10: uint32_t data_length
  • Setup Microcode (setup_microcode_base_address-bytes)
    • Unknown (header_length - 8-bytes)
      • Copyright Header
      • MMP setup microcode
    • uint32_t data_checksum - unknown checksum scheme.
    • uint32_t total_unpacked_data_length
  • SMAZ Compressed Data (data_length-bytes)
    • SMAZ (4-bytes)
    • uint32_t unpacked_chunk_length
    • Multiple SMAZ Compressed Chunks
      • uint32_t unpacked_chunk_length
      • uint32_t packed_chunk_length
      • SMAZ Compressed Data (packed_chunk_length-bytes)
    • Padding Bytes: 0x00 - at least 4-bytes are required.