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.

TMS570LC4357: L2FMC diagnotic questions

Genius 9355 points
Part Number: TMS570LC4357

1. TMS570LC43x TRM lists the following feature: "Symmetric dual port (Port A and Port B) for higher performance and concurrent access to different banks from one or more bus masters."  How is the port delegation of different operations done? Does the programmer have any control over this?

2. Section 7 of the TRM lists several diagnostic tests that can be performed:

 I) 7.6 Deliberate ECC Errors for FMC ECC Checking - Read from single and double-error OTP and verify SEC and expected ESM faults.

 II) 7.8.2.2 ECC Data Correction Diagnostic Mode 7: Manipulate the data and/or ECC to verify SEC and expected ESM faults.

 III) 7.8.4 SECDED Software Diagnostic: Implicit read L2FMC SECDED test.

Test (III) contains a procedure to verify L2FMC SECDED, but it seems L2FMC SECDED can be better verified by running test (II) or test (I) because we can provide error input. Is my understanding correct here? Do we gain any additional coverage by running test (III), if we have already performed test (I) or (II)?

3. My customer has been experimenting with DIAGMODE=5   (described in 7.8.2.1 Address Tag Register Test Mode 5). They  get the expected results for DIAG_BUF_SEL = {4, 5, 6, 7} (ADD_TAG_ERR gets asserted), but not for DIAG_BUF_SEL = {0, 1} (ADD_TAG_ERR remains deasserted) (in other words, they get the expected result when testing Port B buffers but not port A buffers). They also see the same behavior whether executing the test routine out of SRAM or flash (note that step (1) in this test is "Branch to a non-flash region for executing this sequence). Do we have any suggestion or idea what might be happening here?

Thanks!

  • Hi TIDR,

    Did they try the API of the SafeTI diagnostic library? Do you have their test code, so I can try on my bench?
  • Hi QJ,

    Actually, the DIAG_MODE=5 issue with port A is now resolved. However, the other questions I posted are still open wrt portA/B delegation rules as well as SEcDED diags. Can you please respond to those too?

    Thanks!

  • Hello TIDR,

    iii) Implicit read: This is to detect and correct the single bit flips and double bit flips in critical system-wide settings stored in OTP when they are read from OTP immediately after reset.

    When the L2FMC is out of reset, it reads multiple OTP locations to configure various system-wide settings. All the read data goes through a SECDED checker to ensure any single bit errors are corrected and double bit errors are detected.

    For mode 7, we can run the test at any time, and use address locations.
  • Hi TIDR,

    L2FMC can be configured with either one or two ports for interface to on-chip CPU or other masters. The goal of having multiple ports on the L2FMC is to interface with maximum masters while offering as much parallelism as possible. Each port is completely independent from each other in terms of address decode, command dispatching, data processing and response handling. With 2 slave ports, it is possible for multiple masters to access different banks of the flash memory at the same time.

    Two perspectives need to be considered to fully take advantage of this architecture. First, the flash memory needs to be organized into multiple banks allowing multiple accesses to happen at the same time (There are 3 flash banks). Secondly, the software code and data segmentation is partitioned in a way that facilitates simultaneous accesses by different masters. The most optimal usage scenario of the L2FMC would be a bank dedicated per port.
  • Hi QJ

    Thanks for the clarifications. I do have further questions though - I understand that we have 3 flash banks to facilitate the 2 ports and parallelism but how does a user control explicitly what gets mapped to port A and what goes to port B? Is it done dynamically by the system where it maps access to port A and the next access if going to a different flash bank gets automatically done to port B?

    So, for example a user could configure program accesses from one flash bank thereby ensuring port A (or B) and do any simultaneous data access from flash to be from a different bank ie port B (or A)?

    Thanks!

  • Hi TIDR,

    The CPU accesses the flash memory via the flash controller Port A, and all other masters (for example DMA) use Port B to access flash memory.

    The mapping is not configurable.