CC1314R10: Two Bank FLASH Memory Details

Part Number: CC1314R10

Tool/software:

I'm trying to understand the details around a statement about the FLASH memory being provided in "two banks" one of my customers highlighted to me in the datasheet. There is virtually zero further information about this in both the datasheet and TRM. More specifically:

  1. Where is the division point between banks? Are they equal size 512K banks, or asymmetric?
  2. Can program execution and data fetches out of one FLASH bank continue without any stall while the other FLASH bank is being erased or programmed?
  3. Can the bank addresses be flipped, which can be useful in some firmware update schemes?
  4. Do we have any additional documentation on the two bank feature? I've not been able to find any.

Thanks,

Stuart

  • Hi Stuart,

    The reason there is so little information is that one bank is the CCFG and the other bank is the main flash bank. CCFG has its own very specific usage, and for everything else it's the "regular flash". You can take a look at the Linker Command file where the two memory areas are defined.

    1. Where is the division point between banks? Are they equal size 512K banks, or asymmetric?

    Flash bank: Starts at 0x00000000 and continues to 0x001000000 (1 MB).

    CCFG: Starts at 0x50000000 and continues to 0x50000800 (2 kB).

    1. Can program execution and data fetches out of one FLASH bank continue without any stall while the other FLASH bank is being erased or programmed?

    Not sure, I don't think so. This is also not very likely since CCFG data is mainly fetched during boot.

    1. Can the bank addresses be flipped, which can be useful in some firmware update schemes?

    No.

    1. Do we have any additional documentation on the two bank feature? I've not been able to find any.

    I hope this explains!

    Cheers,
    Marie H

  • Marie,

    I feel that the datasheet statement is at best extremely misleading on at least two accounts, both of which the customer has flagged us on. It says:

    1024kB nonvolatile (Flash) memory provides storage for code and data in two banks. The flash memory is in-system programmable and erasable. The last flash memory sector must contain a Customer Configuration section (CCFG) that is used by boot ROM and TI-provided drivers to configure the device.

    For these statements to be true, I would expect:

    1. There to be two banks inclusive of the 0x00000000 to 0x00100000 (1MB) region, which is not the case
    2. The CCFG section to immediately follow, or be the last sector of, the 0x00000000 to 0x00100000 (1MB) region, which is not the case

    My true feelings are that these datasheet statements are not only misleading, but complete false. It seems to me that these statements were copy/past from our previous CC13x2 device datasheets, where the CCFG section was indeed the last sector in continuous FLASH memory, then lightly edited, but not providing adequate clarity. Instead, the statements should have been completely rewritten for clarity. For comparison, here is the statement from the CC13x2 datasheet:

    The up to 352-KB nonvolatile (Flash) memory provides storage for code and data. The flash memory is in-system programmable and erasable. The last flash memory sector must contain a Customer Configuration section (CCFG) that is used by boot ROM and TI provided drivers to configure the device.

    ...which to me are accurate statements specific to the predecessor CC13x2 devices.

    Can we revisit these datasheet statements in order to add clarity? I would suggest something like:

    1024kB nonvolatile (Flash) memory provides storage for code and data. The flash memory is in-system programmable and erasable. A separate 2kB FLASH bank contains a Customer Configuration section (CCFG) that is used by boot ROM and TI-provided drivers to configure the device.

    Thanks,

    Stuart

  • Hi Stuart,

    Agree and I will file a note for this. However we don't update datasheets very often.

    Cheers,
    Marie H