# Configuration BIN binaries

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

Configuration BIN binaries include FDT and BDF. 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-5/topic/configuration_bin_images.html](https://docs.qualcomm.com/doc/80-Y8730-5/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.

	
FDT includes the following entries:

	
- **SBLA**: The first SBL image in the SBLA region.
- **SBLB**: The second SBL image in the SBLB region. This region isn't used yet.
- **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 in 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 Over-the-air (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.

	
### 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 | 0x222400 | Valid | XXXX |
| 4 | BDF | NA | BIN | 0x37A000 | Valid | XXXX |

	
### FDT tools
				
The FDT tools are located under modules\hal\qcom\qfdt:

- 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.

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

		

    └── qfdt
        ├── 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_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

## BDF

Source: [https://docs.qualcomm.com/doc/80-Y8730-5/topic/configuration_bin_images.html](https://docs.qualcomm.com/doc/80-Y8730-5/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). Usually, there is no need to flash it unless the board doesn't have a correct BDF.

### BDF tools

The BDF tools are under the modules\hal\qcom\tools\qbdf folder:

- The BDF\_txt2bin.py script file can convert BDF TXT to BDF BIN.
- The BDF\_bin2txt.py script file can convert BDF BIN to BDF TXT.

The following folder structure shows the content of the qbdf folder:

    └── qbdf
    ├── bdf_file
    │	├── bdwlan01.txt
    │	├── bdwlan03.txt
    │	├── mqm730i.txt
    │	└── mqm730x.txt
    ├── BDF_bin2txt.py
    ├── BDF_txt2bin.py
    ├── bdf_multi_bin_txt.py
    ├── bdf_multi_txt_bin.py
    ├── bin2txt.py
    ├── txt2bin.py
    ├── NvTpl.txt
    ├── README.md
    ├── bin2txt.pyCopy to clipboard

**Usage examples:**

Generate BDF BIN from BDF TXT:

    python BDF_txt2elf.py ./bdf_fileCopy to clipboard

Generate BDF BIN from BDF TXT:

    python BDF_bin2txt.py ./bdf_flieCopy to clipboard

Last Published: Apr 27, 2026

Previous Topic
 
Program images Next Topic

QCC730 boot flow