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 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 which contain the commands to execute (format of item files 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 uses forward slashes irrespective of platform.