SPRUJ52C june 2022 – july 2023 AM69 , AM69A , TDA4AH-Q1 , TDA4AP-Q1 , TDA4VH-Q1 , TDA4VP-Q1
The xSPI-Fast boot mode is an extension of the xSPI boot mode where the OSPI PHY will be tuned in order to set the frequency of operation to 100MHz for 8D-8D-8D mode. Flash needs to support SFDP.
To support Fast xSPI boot, ROM expects the tuning configuration in the last sector of flash which is determined by the flash device configuration. Absence of the configuration will cause ROM to switch the non-PHY based/standard xSPI boot.
ROM will get the flash memory density (flash memory size S) andlargest erase sector size (E bytes) from the BFPT table and calculates the beginning of last sector as E bytes from the end of flash. We call this location as start of the configuration data (C0 = S - E)
Supported Configurations:
Selection between the two configurations is through magic words defined by ROM.
Offset from C0 | Description |
---|---|
0 to 127 | 128 byte calibration pattern |
128 to 131 |
4 byte Magic Word (defined by ROM). There are two distinct magic words to indicate
The magic word is stored in little endian format. Absence of the magic word leads the ROM use the non-PHY mode. |
132 to 135 |
4 byte unsigned int for clock frequency. Only 100Mhz is currently supported. ROM operates at 20 dummy cycles, so the flash should support the chosen frequency at 20 dummy cycles. The clock frequency is stored in little endian format. Any unknown clk freq leads ROM to the non-PHY mode. eg:
|
136 to 139 | 4 bytes are reserved must be set to 0xFF |
140 to 143 |
3 bytes for Tx_delay, Rx_delay, Rd_delay and one byte for padding. (Only used in case of offline tuning) Byte 135 - Padding must be set to 0xFF. |
144 to 158 |
15 parameters (one byte each) (Only used in case of online tuning) |
Parameters | Offset from C0 |
---|---|
Tx_delay | byte 140 |
Rx_delay | byte 141 |
Rd_delay | byte 142 |
0xFF (Padding) | byte 143 |
Parameters | Offset from C0 |
---|---|
Tx_Low_window_start | byte 144 |
Tx_Low_window_end | byte 145 |
Tx_High_window_start | byte 146 |
Tx_High_window_end | byte 147 |
Rx_min_bound_start | byte 148 |
Rx_min_bound_end | byte 149 |
Rx_max_bound_start | byte 150 |
Rx_max_bound_end | byte 151 |
Tx_min_bound_start | byte 152 |
Tx_min_bound_end | byte 153 |
Tx_max_bound_start | byte 154 |
Tx_max_bound_end | byte 155 |
Rd_Delay_init | byte 156 |
Rd_Delay_max | byte 157 |
Tx_offset_tuning_point | byte 158 |
The boot mode pin configuration and corresponding pin usage and mux configuration are shown below.
9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Rsvd (not for boot use) | OVRD | MCU Only | Primary Boot Mode A | PLL Config | |||||
X | X | X | X | 0 | 1 | 1 | X | X | X |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Backup Boot Mode Config | Primary Boot Mode Config | Backup Boot Mode | Primary Boot B | ||||
X | X | X | X | X | X | X | 1 |
Package Name | Function Name | Pull Enable | Pull Direction | Driver Index | Rx En/Dis | Pinmux Sel | Pad Configuration Register |
---|---|---|---|---|---|---|---|
MCU_OSPI0_CLK | MCU_OSPI0_CLK | Disable | n/a | 0 | Disable | 0 | WKUP_PADCONFIG_0 |
MCU_OSPI0_LBCLKO | MCU_OSPI0_LBCLKO | Disable | n/a | 0 | Disable | 0 | WKUP_PADCONFIG_1 |
MCU_OSPI0_DQS | MCU_OSPI0_DQS | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_2 |
MCU_OSPI0_D0 | MCU_OSPI0_D0 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_3 |
MCU_OSPI0_D1 | MCU_OSPI0_D1 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_4 |
MCU_OSPI0_D2 | MCU_OSPI0_D2 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_5 |
MCU_OSPI0_D3 | MCU_OSPI0_D3 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_6 |
MCU_OSPI0_D4 | MCU_OSPI0_D4 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_7 |
MCU_OSPI0_D5 | MCU_OSPI0_D5 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_8 |
MCU_OSPI0_D6 | MCU_OSPI0_D6 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_9 |
MCU_OSPI0_D7 | MCU_OSPI0_D7 | Disable | n/a | 0 | Enable | 0 | WKUP_PADCONFIG_10 |
MCU_OSPI0_CSn0 | MCU_OSPI0_CSn0 | Disable | n/a | 0 | Disable | 0 | WKUP_PADCONFIG_11 |
MCU_OSPI0_CSn1 | MCU_OSPI0_CSn1 | Disable | n/a | 0 | Disable | 0 | WKUP_PADCONFIG_12 |