This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I currently work on a BOOT program using the TMS320C6678 component.
I have some questions about the SPI Boot Parameter Table for which
it seems some informations are missing.
1. If I understand correctly the Boot sequence :
- Firtsly, a default Boot Parameter table is loaded for which
some parameters are updated by the way of the Boot Mode Pins.
This "first" Boot Parameter Table is used to get the "real"
Boot Parameter Table from Flash.
- Then, this "real" Boot Parameter Table is used to configure
the Boot Flow allowing the BOOT software transfer.
Are the Boot Mode Pins still applicable to the "real" Boot Parameter Table ?
In this case, the Fields "Read Addr MSW" and "Read Addr LSW" would correspond
to the "real" Boot Parameter Table adressing. So, it would be impossible for the
Bootloader to know where the Boot software is located in Flash.
2. What is the encoding of the field "Address Width" ?
identical to encoding in SPI Boot Mode Pins or the number of bytes (2 or 3) ?
3. What is the encoding of the field "NPin" ?
Isn't it a mistake in the documentation : should not it be 3 or 4 pins ?
4. What is the encoding of the field "Chipsel" ?
identical to encoding in SPI Boot Mode Pins or other encoding ?
5. What is the encoding of the field "Mode" ?
identical to encoding in SPI Boot Mode Pins or other encoding ?
6. What is the encoding of the field "C2Delay" ?
Is Encoding Unit nanoseconds or SPI module clock cycles ?
Regards
Alban
Hi Yordan,
I haven't yet received any feedback from your Bootloader experts.
I try to find informations by my own, but without any success.
So, could you please ask to your experts to send me informations as soon as possible.
Thanks a lot.
Best Regards
Alban
Alban MICHELANGELI said:1. If I understand correctly the Boot sequence :
- Firtsly, a default Boot Parameter table is loaded for which
some parameters are updated by the way of the Boot Mode Pins.
This "first" Boot Parameter Table is used to get the "real"
Boot Parameter Table from Flash.- Then, this "real" Boot Parameter Table is used to configure
the Boot Flow allowing the BOOT software transfer.Are the Boot Mode Pins still applicable to the "real" Boot Parameter Table ?
In this case, the Fields "Read Addr MSW" and "Read Addr LSW" would correspond
to the "real" Boot Parameter Table adressing. So, it would be impossible for the
Bootloader to know where the Boot software is located in Flash.
Yes, your understanding is correct. The bootROM will first initialize the boot parameter table using the Boot Mode pins. The first boot parameter is used for the initial reads. If user provides a boot parameter table at the start of the image, the bootROM will replace the default parameter table with the user provided one and configure the SOC using those parameters. At this point the boot mode Pins are not applicable to the boot parameter table. in the "first" boot parameter loaded by ROM, the Read Addr, MSW and Read Addr LSW will be base address where ROM should start looking for an image in flash (provided by boot switches). This needs to be set to the base of where the real boot parameter table resides. The Read Addr MSW and Read Addr LSW of the real boot parameter table always corresponds to where the boot table starts and not to the start of the boot parameter table.
To further clarify the boot mode switches should be set so that first boot parameter table read address points to base address that contains start of "real" boot parameter table and the Read address in the real boot parameter table should point to start of the boot table image (application boot image).
Alban MICHELANGELI said:What is the encoding of the field "Address Width" ?
identical to encoding in SPI Boot Mode Pins or the number of bytes (2 or 3) ?
The Address width encoding in the boot parameter table is not same as boot pins. You need to set it to 2 or 3 to indicate 16 bit or 24 bit addressing used by the SPI flash used.
Alban MICHELANGELI said:3. What is the encoding of the field "NPin" ?
Isn't it a mistake in the documentation : should not it be 3 or 4 pins ?
The details of the boot parameter table are in the C6657 datasheet available on ti.com. NPins should be 4 or 5 to indicate the SPI flash slave device is connected to the SPI master on the SOC in 4 or 5 pin mode. 4 pin mode is with SIMO, SOMI, CS, CLK and 5 pin mode include the Enable pin on addition to the clock and chip select and the data pins. We recommend that you use the 4 pin mode configuration.
Alban MICHELANGELI said:What is the encoding of the field "Chipsel" ?
identical to encoding in SPI Boot Mode Pins or other encoding ?
There are only 2 chipselects on the device so this value should be set to 0 or 1 depending on which chipselect is used to connect the SPI flash.
All these details are part of the datasheet:in section 6.28.3.7. please review that material and let us know if you have any further questions:
We do provide examples of SPI boot which you can refer here:
Regards,
Rahul
Hello Rahul,
Thanks for your answers, but a lot of informations are really not clear about SPI Boot Parameter Table.
Moreover the link to access the KEYSTONE Bootloader FAQ does not work !!!!
Reading another Posts about C6678 Bootloader, I try to extract some informations from following Source Codes :
mcsdk_2_01_02_06\tools\boot_loader\ibl\src
Q1 : Format of the PLL Configuration in the Common parameters of the Boot Parameter table.
This format is not clearly defined in TI documentation. Do you confirm this format :
/-----------------------------------------------------------------------\
| 31 30 | 29 16 | 15 8 | 7 0 |
| PLL Ctl | multiplier | pre-divider | post divider |
\-----------------------------------------------------------------------/
with PLL CTL : 0 /* Pll is not initialized */
1 /* Initialize only if PLL is currently disabled or in bypass */
2 /* Initialize PLL regardless of current PLL state */
3 /* Put the PLL into bypass */
FOR SPI Boot Mode, which value shall be chosen for PLL Configuration (BYPASS mode) ?
Q2 : In the source Code example, Adress Width is set directly to 16 or 24 (bits), instead of 2 or 3 Bytes.
I find that very strange...
Q3 : What is the encoding of the field "Mode":
Is the encoding identical to encoding in SPI Boot Mode ?
Q4 : What is the encoding of the field "C2Delay" ?
Is Encoding Unit nanoseconds or SPI module clock cycles ?
Regards
Alban
Hello Rahul,
I'm waitting for your answer very urgently.
So, Could you please give me an answer as soon as possible
Regards
Alban
Alban,
The link for the Keytone I Bootloader FAQ seems to be working for me so I am not certain why you are not able to get to it. If you are still not able to locate the link from e2e, I would recommend that you search for the title in google and you should be able to find it.
Alban MICHELANGELI said:Q1 : Format of the PLL Configuration in the Common parameters of the Boot Parameter table.
This format is not clearly defined in TI documentation. Do you confirm this format :
/-----------------------------------------------------------------------\
| 31 30 | 29 16 | 15 8 | 7 0 |
| PLL Ctl | multiplier | pre-divider | post divider |
\-----------------------------------------------------------------------/with PLL CTL : 0 /* Pll is not initialized */
1 /* Initialize only if PLL is currently disabled or in bypass */
2 /* Initialize PLL regardless of current PLL state */
3 /* Put the PLL into bypass */
FOR SPI Boot Mode, which value shall be chosen for PLL Configuration (BYPASS mode) ?
Yes, I confirm the format of the PLL configuration field in the boot parameter table. Also, here is a table to provide more clarity on these fields:
Alban MICHELANGELI said:Q2 : In the source Code example, Adress Width is set directly to 16 or 24 (bits), instead of 2 or 3 Bytes.
I find that very strange...
The boot ROM will initially set the address width based on the setting in the boot switches and if the user provides a boot parameter table then the address width will be set accordingly. There is a function in the boot ROM that will interpret the parameter table to read the SPI flash.
Alban MICHELANGELI said:Q3 : What is the encoding of the field "Mode":
Is the encoding identical to encoding in SPI Boot Mode ?
Mode setting determines the Clock phase/polarity used during SPI signal sampling. These are the standard SPI modes 0-3 as defined in the SPI flash datasheet.
Alban MICHELANGELI said:Q4 : What is the encoding of the field "C2Delay" ?
Is Encoding Unit nanoseconds or SPI module clock cycles ?
The field is used to Setup time between chip select assert and the transaction. typically, we recommend leaving this to default settings as the field is configured by the boot ROM taking account the timings required for reading from SPI.
I would strongly recommend that you look at the SPI boot examples on the wiki as they contain examples that you can test and run on our EVM to get started.
Regards,
Rahul