Partition file structureΒΆ

The contents of a Data Partition are defined in a .json file which is passed to a generation script which forms the binary files used when flashing the device. The generation process is described below, after the definition .json file is described.

For the purpose of explanation consider the following example for a custom XVF3610-UA Data Partition:

{
"comment": "",
"spispec_path": "16mbit_12.5mhz_sector_4kb.spispec",
"regular_sector_size": "4096",
"hardware_build": "0xFFFFFFFF",
"item_files": [
    { "path": "input/usb_to_device_rate_48k.txt", "comment": "" },
    { "path": "input/device_to_usb_rate_48k.txt", "comment": "" },
    { "path": "input/usb_mclk_divider.txt", "comment": "" },
    { "path": "input/xmos_usb_params.txt", "comment": "" },
    { "path": "input/i2s_rate_16k.txt", "comment": "" },
    { "path": "input/led_after_boot.txt", "comment":"" }
  ]
}

Comment pairs are provided for the .json configuration, but also the individual item files:

{ "comment": "" }

A running VocalFusion device needs to know the size and geometry of its external QSPI flash in order to write firmware upgrades to it. This is added to a Data Partition in the form of a flash specification or SPI specification (See Appendix C for custom flash support)

{ "spispec_path": "16mbit_12.5mhz_sector_4kb.spispec" }

The Data Partition generation process aligns various sections onto flash sectors, and needs to know the sector size (this can be found in the flash device datasheet):

{ "regular_sector_size": "4096" }

Hardware build is a custom-defined, 32bit identifier written to flash along with the application firmware. It can be used to define a unique identifier for the hardware revision or other information which cannot be overwritten by subsequent updates:

{ "hardware_build": "0xFFFFFFFF" }

Item files contain the commands to execute. The format of item files is described below. An optional comment field is provided:

{ "path": "input/usb_to_device_rate_48k.txt", "comment": "" }

Note

Because the generator is a Python script, the paths use forward slashes irrespective of platform.