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.

TMS320C6748/46 nor flash boot on a 16 bit device

Other Parts Discussed in Thread: TMS320C6748

Suppose I want to do a NOR Flash Legacy Boot on the TMS320C6748/6.

According to spraat2c.pdf:
> NOR (or parallel Flash) boot happens from a NOR Flash device connected to the external memory
> interface (EMIFA) peripheral on EMA_CS[2]. For this boot mode, the bootloader configures EMIFA for
> 8-bit access and reads the first word from the NOR Flash. This first word indicates if the NOR Flash
> should be accessed in 16-bit or 8-bit mode, as well as which boot method to be used.


So I understand the first 4 bytes will read in 8 bit mode.

To hook up a 16 bit nor flash device we would route EMA_BA[1] to A[0], and EMA_A[n:0] -> A[n+1:1] and EMA_D[15:0] -> DQ[15:0].  Note that the 16 bit NOR flash device does not see BA[0].  If I have wired up the device like this, then how can the 4 byte reads  to recover the NOR Boot Configuration word work?  How can we ever read byte 1 (or 3) using an 8 bit access with this wiring?
I expect to see the following sequence of 8 bit reads when we attempt to read the NOR Boot Configuration word from the 16 bit device:

EMA_A[n:0]  EMA_BA[1:0]   EMA_D[15:8]  EMA_D[7:0]
0x0000      0x0           data byte 1  data byte 0
0x0000      0x1           data byte 1  data byte 0
0x0000      0x2           data byte 3  data byte 2
0x0000      0x3           data byte 3  data byte 2


Which would lead to the recovered NOR Boot Configuration Word being incorrectly received as
[31:24]     [23:16]     [15:8]      [7:0]
data byte 2 data byte 2 data byte 0 data byte 0

  • You are absolutely correct in your analysis.  However, since the info on bus width and boot mode can all be found in the data byte 0, not being able to read the bytes 1 and 3 during this initial access does not have an impact on the boot process.  Once this information from byte 0 is used to reconfigure the EMIF interface, the config word is re-read, thus giving the bootloader all four bytes for parsing.

    I see now that the document is not really clear that the word is re-read after the interface is configured.  If you feel that this is important information that should be included, please feel free to submit documentation feedback by clicking on the link that appears at the bottom of each page of the PDF file.

    Regards, Daniel