# Configuration BIN binaries

Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html)

Configuration BIN binaries include FDT, BDF, and FWD. See the following sections for details about the
            functions and configuration items of configuration BIN binaries, and how to generate them by using the tool provided in the SDK.

## FDT

Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html)

The FDT is used to configure the image information on RRAM, mainly for SBL images. FDT is programed into the RRAM when the chip leaves the factory, and is then updated only during the OTA update for			SBL images.

	
FDT includes the following entries:

	
- **SBLA**: The first SBL image in the SBLA region.
- **SBLB**: The second SBL image in the SBLB region.
- **PBL\_PATCH**: A PBL patch is a part of an SBL image. This entry is mainly used to present the PBL				patch version.
- **APP**: This entry is used for both the development mode and commercial products. In commercial products, an APP image is only stored on the flash.
- **BDF**: This entry configures the  BDF.

			
    In development mode, developers have the convenience of directly burning APP BIN files onto RRAM. SBL directly jumps to the				APP when the APP image is in RRAM.

	
An entry of FDT is called firmware description entry (FDE), which contains the following properties:

	
### ID
				
The ID property indicates the image associated with the current entry. This property has the following values.

		

Table : Values of the ID property

| Value | Description |
| --- | --- |
| 0 | The entry is for an SBL image |
| 1 | The entry is for a PBL patch |
| 2 | The entry is for an APP image |
| 3 | The entry is for a BDF |

	
### Rank
				
The Rank property represents the execution priority of the corresponding image. There are four levels of priority (from high to low): **Trial → Current → Golden → Aged**.

		
The corresponding values for these levels are as follows:

		

Table : Values of the Rank property

| Value | Rank | Description |
| --- | --- | --- |
| 3 | Trial | When a new OTA image arrives, the rank of the updated FDE is set as Trial, which has the highest priority after bootup. |
| 2 | Current | The Current rank is set after the new OTA image is authenticated successfully. This entry is always picked after bootup, unless there is a Trial rank entry. |
| 1 | Golden | A Golden rank entry will never be updated. The entry is always valid. |
| 0 | Aged | An Aged rank entry means it's invalid and useless. Whenever there is an Aged rank and a new OTA image arrives, the Aged rank gets updated to the Trial rank,							which becomes the first selection. |

	
### Format
				
This property describes the image format of FDE. This property has the following values:

		

Table : Values of the Format property

| Value | Description |
| --- | --- |
| 0 | ELF |
| 1 | BIN |

		
SBL images must be in the ELF format, and APP images stored on the RRAM for development mode must be in the			BIN format.

		
Note: This property isn't applicable for PBL patch.

	
### Address
				
This property specifies the start address of RRAM for the image in FDE.

		
The addresses of different image IDs are described in [QCC730 memory layout](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_application_development.html#qcc730_memory_layout).

	
### State
				
This property represents the state of the image associated with the entry. This property has the following values:

		

Table : Values of the State property

| Value | State | Description |
| --- | --- | --- |
| 0 | Invalid | The image is invalid. |
| 1 | Valid | The image is valid. |
| 2 | Aborted | The image is aborted due to failure of authentication, hash verification, or self-verification. |
| 3 | New | The image in FDE is an OTA new image. This state is only valid in Trial FDE. The PBL picks the Trial FDE image to authentication if the image has the New state. |
| 4 | Verify\_pending | The image needs to be verified. The value is set by SBL itself for the OTA new image. |

	
### Example
				
The following example shows a typical FDT configuration that describes:

- Two SBL images, one is Golden rank, and the other is Current rank.
- A valid APP BIN image for the development mode.
- A BDF, which is at the end of RRAM.

		

| Index | ID | Rank | Format | Address | State | Version |
| --- | --- | --- | --- | --- | --- | --- |
| 0 | SBL | Golden | ELF | 0x20A400 | Valid | XXXX |
| 1 | SBL | Current | ELF | 0x212400 | Valid | XXXX |
| 2 | PBL\_PATCH | NA | NA | 0x208400 | Invalid | XXXX |
| 3 | APP | NA | BIN | 0x21A400 | Valid | XXXX |
| 4 | BDF | NA | BIN | 0x37A000 | Valid | XXXX |

	
### FDT tools
				
The FDT tools are located under qccsdk\tools\storage\firmware\_desc\_table\:

- The frn\_fwd\_table.py script file can convert FDT XML to FDT BIN.
- The three subfolders contain typical FDT XML/BIN files for three different types of SBL				OTA layouts.
    For more details about the three types of SBL					OTA layouts, see [QCC730 OTA upgrade](https://docs.qualcomm.com/doc/80-Y8730-2/topic/firmware_upgrade.html).

		
The following folder structure shows the content of the firmware\_desc\_table folder:

		

    └── firmware_desc_table
        ├── curr_age_fdt
        │   ├── frn_curr_age_default.bin
        │   ├── frn_curr_age_default.xml
        │   ├── frn_curr_age_ota.bin
        │   └── frn_curr_age_ota.xml
        ├── curr_gold_fdt
        │   ├── frn_curr_gold_default.bin
        │   ├── frn_curr_gold_default.xml
        │   ├── frn_curr_gold_ota.bin
        │   └── frn_curr_gold_ota.xml
        ├── curr_gold_age_fdt
        │   ├── frn_curr_gold_age_default.bin
        │   ├── frn_curr_gold_age_default.xml
        │   ├── frn_curr_gold_age_ota.bin
        │   └── frn_curr_gold_age_ota.xml
        ├── frn_example_fwd.bin
        ├── frn_example_fwd.xml
        └── frn_fwd_table.pyCopy to clipboard

		
The syntax of using the frn\_fwd\_table.py tool is as follows:

		

    frn_fwd_table.py [-h] --fdtxml FDTXML --fdtbin FDTBIN [--ctype {0,1}] [--printtable]Copy to clipboard

		

Table : frn_fwd_table.py options

| Option | Description |
| --- | --- |
| -h, --help | Show the help message and exit |
| --fdtxml FDTXML | The fdt.xml file for the firmware descriptor |
| --fdtbin FDTBIN | Firmware descriptor table binary output file |
| --ctype {0,1} | Convert type:<br>0: XML to binary<br><br><br>1: Binary to XML |
| --printtable | Print the partition table as a friendly string to the output |

		
**Usage examples:**

		
Generate FDT BIN from FDT XML:

		

    python frn_fwd_table.py --fdtxml fdtxml.xml --fdtbin fdtbin.bin --ctype 0 --printtableCopy to clipboard

		
Generate FDT XML from FDT BIN:

		

    python frn_fwd_table.py --fdtxml fdtxml.xml --fdtbin fdtbin.bin --ctype 1 --printtableCopy to clipboard

## FWD

Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html)

The FWD is located at the beginning of the flash memory and describes the flash layout. FWD is followed by different regions for
            specific usages. See [Figure :  1. QCC730 memory and image structure](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_application_development.html#qcc730_memory_layout_0__fig_kfh_1qf_tzb) for details.

FWD can be configured by the download\_config.xml file, which is under the qccsdk\tools\fw\_upgrade folder. The following code shows an example download\_config.xml file:

    <fw_upgrade_config>
        <config FS1_sizeKB="64" FS2_sizeKB="64" RAMDUMP_sizeKB="64" USERDATA_sizeKB="64" RANK="1" FS1IMG="" FS2IMG="" location="flash"/>
        <flash image="FDT" file="../../scripts/storage/firmware_desc_table/curr_age_fdt/frn_curr_age_default.bin" begin="0x208000" location="rram"/>
        <flash image="FERMION_SBL" file="FERMION_SBL_HASHED.elf " begin="0x20a400" location="rram"/>
        <flash image="FERMION_SBL" file="FERMION_SBL_HASHED.elf " begin="0x212400" location="rram"/>
    </fw_upgrade_config>Copy to clipboard

For details about each item in download\_config.xml, see the following table.

Table : The download_config.xml file

| Items in download\_config.xml | Description | Default value |
| --- | --- | --- |
| FS1\_sizeKB | Primary file system size | 64 |
| FS2\_sizeKB | Secondary file system size<br><br><br>                            <br>FS2 size should be the same as FS1 size | 64 |
| USERDATA\_sizeKB | User data region size. Users can use this region to store user data. | 64 |
| RANK | The rank status of the partition table.<br><br><br>                            <br>0: Golden<br><br><br>                            <br>0xFFFFFFFF: Trial<br><br><br>                            <br>Others: Current | 1 |
| FS1IMG | Image/data that will be programmed to primary file system region when programming | N/A |
| FS2IMG | Image/data that will be programmed to secondary file system region when programming | N/A |
| Location | Partition table and APP image location. Currently only “flash” is supported. | flash |

## BDF

Source: [https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html](https://docs.qualcomm.com/doc/80-Y8730-2/topic/configuration_bin_images.html)

The BDF is located at the end of the RRAM and occupies 24 KB of space (see [Figure :  1. QCC730 memory and image structure](https://docs.qualcomm.com/doc/80-Y8730-2/topic/qcc730_application_development.html#qcc730_memory_layout_0__fig_kfh_1qf_tzb)). Usually, there is no need to flash it unless the board doesn't have a correct BDF.

Last Published: Jun 03, 2026

[Previous Topic
Program images](https://docs.qualcomm.com/bundle/publicresource/80-Y8730-2/topics/program_images.md) [Next Topic
QCC730 boot flow](https://docs.qualcomm.com/bundle/publicresource/80-Y8730-2/topics/qcc730_boot_flow.md)