Hi,
I'm investigating, how to configure EMIF I/F and MAIN/DDR PLL with RBL, especially for SPI Boot.
I found the following post and now I prefer to embed EMIF configurations to boot application.
The following is my overall understandings about SPI boot with EMIF and MAIN/DDR PLL configurations. Is my understanding correct ?
I need to explain the boot sequence to our customer (not MAD use case). So let me clarify the details about this.
- Create boot app and convert it to boot table. Some pre-processings discussed by the above post should be required.
- Use romparse utility to add a boot parameter for the attached SPI NOR device to C6678's executable image and place the product into the appropriate offset address of SPI NOR.
- After C6678 power cycle, it gets started from RBL. First of all, RBL detects a boot parameter for SPI and configure MAIN PLL with default values (if PLL is being enabled in Common Parameters in Boot Parameter) and SPI peripheral as desired.
- Next, RBL detects a boot table and starts to copy sections from SPI NOR to its run address.
- During the section copy, RBL checks if a set of EMIF configurations are newly loaded to 0x00873500 (DDR configuration table, let me call it ".ddr_config_table") at the completion of each section copy.
- So, application must intentionally place .ddr_config_table section to 0x00873500 and .ddr_config_table section should be present at the top of boot table (strictly speaking, it is okay if before the copy sections to DDR)
Best Regards,
Kawada