Initialization Pairs and INT File Attribute - Initialization Pairs and INT File Attribute - 2026.1 English - UG1283

Bootgen User Guide (UG1283)

Document ID
UG1283
Release Date
2026-06-23
Version
2026.1 English

Initialization pairs let you easily initialize processing systems (PS) registers for the MIO multiplexer and flash clocks. With this, you can fully configure the MIO multiplexer before copying the FSBL image into OCM or executing it from flash with execute-in-place (XIP).

You can also set the flash device clocks to their maximum bandwidth.

There are 256 initialization pairs at the end of the fixed portion of the boot image header. We designate initialization pairs as such because a pair consists of a 32-bit address value and a 32-bit data value. When no initialization is to take place, all of the address values contain 0xFFFFFFFF, and the data values contain 0x00000000. Set initialization pairs with a text file that has an .int file extension by default, but can have any file extension.

The[init]file attribute precedes the file name to identify it as the INIT file in the BIF file. The data format consists of an operation directive followed by:

  • An address value
  • An = character
  • A data value

A semicolon (;) terminates the line. This is one .set. operation directive; for example:

.set. 0xE0000018 = 0x00000411; // This is the 9600 uart setting.

Bootgen fills the boot header initialization from the INT file up to the 256 pair limit. When the BootROM runs, it looks at the address value. If it is not 0xFFFFFFFF, the BootROM uses the next 32-bit value following the address value to write the value of address. The BootROM loops through the initialization pairs, setting values, until it encounters a 0xFFFFFFFF address, or it reaches the 25sixth initialization pair.

Bootgen provides a full expression evaluator (including nested parenthesis to enforce precedence) with the following operators:

* = multiply
/ = divide
% = mod
+ = addition
- = subtraction
~ = negation
>> = shift right
<< = shift left
& = binary and
| = binary or
^ = binary nor

The numbers can be hex (0x), octal (0o), or decimal digits. Number expressions are maintained as 128-bit fixed-point integers. You can add white space around any of the expression operators for readability.