Visible to Intel only — GUID: sfo1410068040369
Ixiasoft
Visible to Intel only — GUID: sfo1410068040369
Ixiasoft
7.1.3.7.1. Boot Configuration
Booting configuration is provided from a combination of the BSEL pins and the boot mode fuses. The BSEL pins indicate if the boot source is the FPGA or one of the HPS flash interfaces. If the fpga_boot_f fuse is blown, it overrides these pin values. The fpga_boot_f fuse value can be read from the hps_fusesec register.
BOOTSEL Field Value |
Flash Device |
---|---|
0x0 |
Reserved |
0x1 |
FPGA (HPS-to-FPGA bridge) |
0x2 |
1.8 V NAND flash memory |
0x3 |
3.0 V NAND flash memory |
0x4 |
1.8 V SD/MMC flash memory with external transceiver |
0x5 |
3.0 V SD/MMC flash memory with internal transceiver |
0x6 |
1.8 V quad SPI flash memory |
0x7 |
3.0 V quad SPI flash memory |
Within the device, there are fuses that provide some of the boot mode configuration information. The fuse values can be read through the HPS_fusesec register:
Bits |
Name | Description |
---|---|---|
31:27 | Reserved | Bit values in this field are undefined. |
26:23 | csel_f | This field indicates the value of the clock select fuses that are available for configuring the clock for the boot interface and for the PLLs. Refer to the Clock Configuration section for more information on CSEL encodings. |
22 | dbg_access_f | This fuse determines the initial state of the debug access domains. |
21 | dbg_lock_JTAG | This field indicates if the HPS JTAG access level can be changed through software when the HPS is released from reset.
|
20 | dbg_lock_DAP | This field indicates if the DAP access level can be changed through software when the HPS is released from reset.
|
19 | dbg_lock_CPU0 | This field indicates if the CPU0 debug access level can be changed through software when the HPS is released from reset.
|
18 | dbg_lock_CPU1 | This field indicates if the CPU1 debug access level can be changed through software when the HPS is released from reset.
|
17 | dbg_lock_CS | This field indicates if the CoreSight debug access level can be changed through software when the HPS is released from reset.
|
16 | dbg_lock_FPGA | This field indicates if the FPGA debug access level can be changed through software when the HPS is released from reset.
|
15:12 | Reserved | Bit values in this field are undefined. |
11 | clr_ram_order_f | This fuse value determines how RAMs are cleared during a tamper event.
|
10 | clr_ram_cold_f | This fuse value indicates what happens to the RAM on a cold reset.
|
9 | clr_ram_warm_f | This fuse value indicates what happens to the RAMs on a warm reset.
|
8 | oc_boot_f | This fuse value determines if the second-stage boot code is allowed to boot from on-chip RAM.
|
7 | hps_clk_f | This fuse value selects the clock used for the boot process and in the case of a tamper event, memory scrambling.
|
6 | fpga_boot_f | If blown, this fuse value allows the FPGA to configure independently and allows the HPS to boot from an encrypted next-stage boot source that was decrypted into the FPGA.
|
5 | aes_en_f | This fuse value indicates if a decryption of the flash image is always performed.
|
4:2 | kak_src_f | This bit field indicates the source of the Key Authorization Key (KAK) which can be in:
|
1 | kak_len_f | This fuse value indicates the Key Authorization Key (KAK) length:
|
0 | authen_en_f | This fuse value determines whether authentication of flash images is required prior to execution.
|