Firmware file format (.gdf)

From Granite Devices Knowledge Wiki
Revision as of 12:01, 9 June 2017 by Tero K (Talk | contribs)


Jump to: navigation, search

File format byte by byte

All multibyte integers are stored LSB first.

GDF version 300

Header

IDString - 4 bytes, always="GDFW"

BLFileVersion - 2 bytes, value=300

TargetDriveType - 2 bytes, Argon=4000, Ion=11000, Atomi=14000

HostFWbytes - 4 bytes, number of bytes for STM32 CPU

GCFWbytes - 4 bytes, number of bytes for GraniteCore CPU or 0xffffffff if not included

Data

Data of HostFW begins. Amount of bytes is HostFWbytes

Data of GCFW begins. Amount of bytes is GCFWbytes

File checksum

FileCksum - 4 bytes calculated from the current file. Simply sum of all unsigned bytes in file except CKSum itself


GDF version 310 - draft

Header

IDString - 4 bytes, always="GDFW"

BLFileVersion - 2 bytes, value=310

TargetDriveType - 2 bytes, Argon=4000, Ion=11000, Atomi=14000

HostFWbytes - 4 bytes, number of bytes for STM32 CPU

GCFWbytes - 4 bytes, number of bytes for GraniteCore CPU or 0xffffffff if not included

BLBackwardsCompatibilityVersion - 2 bytes. Value indicates if file is backwards comaptible with older versions (i.e. BLFileVersion may be >310 but if BLBackwardsCompatibilityVersion==310, then software supporting only up to 310 will be able to use this file)

AdditionalHeaderVariabalesAmount - 4 bytes, number of following structures in the header

Following items are optional - following ValueID & Value pairs repeats AdditionalHeaderVariabalesAmount times

ValueID - 2 bytes, specifies type of data

Value - 4 bytes

List of currently supported ValueIDs

  • ValueID=100: Value contains unique binary file ID used by SimpleMotion deployment tool API

Data

Data of HostFW begins. Amount of bytes is HostFWbytes

Data of GCFW begins. Amount of bytes is GCFWbytes

File checksum

FileCksum - 4 bytes calculated from the current file. Simply sum of all unsigned bytes in file except CKSum itself


In no event the Product Information or parts hereof shall be regarded as guarantee of conditions or characteristics. The Product Information or any part thereof may also not be regarded as a warranty of any kind. No liability of any kind shall be assumed by Author with respect to Product Information or any use made by you thereof, nor shall Author indemnify you against or be liable for any third party claims with respect to such information or any use thereof.

As content of this Wiki may be edited by user community, Granite Devices Oy or it's affiliates do not take any responsibility of the contents of this Wiki. Use information at your own risk. However, Granite Devices staff attempts to review all changes made to this Wiki and keep information trustworthy.

Without written consent, Granite Devices' Products or Intellectual Property shall not be used in situations or installations where living beings, material property, or immaterial property could be harmed by the operation, features or failures of Product. Products may only be used in a way where hazards like moving parts, electric shock, laser radiation, or fire can't be realized even if the content of this Wiki would suggest otherwise.