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.

TMS320F28075: EMU_BOOTCTRL in TMS320F28075

Part Number: TMS320F28075


Hello,

Checking the latest TRM (SPRUHM9E) and datasheet of TMS320F28075 (SPRS902G) to change the BMSP1 pin, I observed the following issues:

1) The emulator boot control register labeled EMU_BOOTCTRL in RTM and EMUBOOTCTRL in datasheet.

2) Section 4.6 of RTM, "Configuring Emulation Boot Options" refers to itself: 

"The values that can be set in the BMODE field of the EMU_BOOTCTRL register are listed in Section 4.6"

3) I can not find the EMU_BOOTCTRL in the register view of CCS when connected to a device.

4) The EMU_BOOTCTRL is not listed in memory map.

5) The address 0xD00 for EMUBOOTCTRL mentioned in 6.9.1 of datasheet, but in Table 6-1 this address is the start of PieVectTable

 With regards,

MHG

2) 

  • Mir,
    Thank you for the feedback. I am looking into this and will share my findings.
  • 1) The emulator boot control register labeled EMU_BOOTCTRL in RTM and EMUBOOTCTRL in datasheet.

    Your observation is correct. We will fix this in the next revision of our documentation. (change the datasheet to EMU_BOOTCTRL)

    2) Section 4.6 of RTM, "Configuring Emulation Boot Options" refers to itself:
    "The values that can be set in the BMODE field of the EMU_BOOTCTRL register are listed in Section 4.6"

    Your observation is correct. That sentence should refer to Table 4-5. EMU_BOOTCTRL has the same bitfields as the BOOTCTRL located in OTP. This allows testing of the values from emulation before programming OTP.

    3) I cannot find the EMU_BOOTCTRL in the register view of CCS when connected to a device.

    EMU_BOOTCTRL isn’t actually a register, just refers to a location in RAM (PIE RAM).

    4) The EMU_BOOTCTRL is not listed in memory map.

    See answer above.

    5) The address 0xD00 for EMUBOOTCTRL mentioned in 6.9.1 of datasheet, but in Table 6-1 this address is the start of PieVectTable

    PIE RAM starts at 0xD00 but the first couple locations are reserved (when initializing the PIE vector table in app code) for these boot ROM variables.
  • Hareesh,
    Thank you very much for the answers. That resolved my issues and I can change the value of EMU_BOOTCTRL with confidence.
    However, quoting from your answer:
    EMU_BOOTCTRL isn’t actually a register, just refers to a location in RAM (PIE RAM)
    I believe registers mostly could be treated as "a location in RAM" with special functionality. I do not know anything about implementation of EMU_BOOTCTRL in this chip but from a programmer's point of view it is a register and I expected to see it in register map.

    With regards,
    MHG
  • CCS treats (true) registers differently than RAM locations. Calling that location as a “register” is confusing and one would expect to see it in the register map (like you did). We are contemplating replacing the word “register” with “control-word”. Here are the modifications under review:

    Datasheet:

    In this mode, the user can program the EMU_BOOTCTRL control-word (at location 0xD00) to instruct the device on how to boot. If the contents of the EMU_BOOTCTRL location are invalid, then the device would default into WAIT Boot mode.

     

    TRM:

    When connected to the device using an emulator, the EMU_BOOTCTRL control-word is used to determine the boot mode. This “register” allows the user to experiment with various boot mode settings before writing to the BOOTCTRL register in the user-configurable DCSM OTP. EMU_BOOTCTRL has the same bit-fields as BOOTCTRL located in OTP. This allows testing of the values from emulation before programming OTP. The values that can be set in the BMODE field of  EMU_BOOTCTRL  are listed in Table 4-5. Some notable options include being able to have emulation boot read from the boot mode select pins, emulate standalone boot using the values in OTP, and boot according to the Get boot value stored in OTP. Refer to Section 4.9.6 for details on the GPIOs used in the various boot modes.

    Note that EMU_BOOTCTRL is not actually a register, but refers to a location in RAM (PIE RAM). PIE RAM starts at 0xD00, but the first few locations are reserved (when initializing the PIE vector table in app code) for these boot ROM variables.

  • Hareesh,

    Thank you for clarification and sharing the modifications to datasheet and TRM in advance.
    I believe this EMU_BOOTCTRL should be also mentioned in chapter 6.3 of datasheet as a footnote for PIE RAM or a new table of all control-words.

    MHG