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: disconnect DMA channel from HW trigger lines

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN,

Hello,

we need to use DMA channels in the chain . For example, to use DMA_CH1 to trigger DMA_CH2. It is easy, we set this chain in DMA control packet.
To make it works we must enable HW triggering for DMA_CH2. But this chain isn't the only one that can make a trigger. Second source depends on setting of DMA Request Assignment Register (DREQASI_x).

Problem is that this code is independent module and we can't tell which DMA Request HW line isn't used.

By my observation it could be solved by setting unused DMA request line to this like
dmaReqAssign(DMA_CH2, 63); // HalCoGen syntax to set DREQASI0 register as 63

Problem is that I don't know if this setting is valid. There is no information about setting outside range specified on SPNS195C chapter  6.17.3 Default DMA Request Map (range DMAREQ[0] - DMAREQ[47])

Best regards, Jiri Dobry

PS: SPNU563 technical reference manual chapter 20.3.1.13 DMA Request Assignment Register 0 (DREQASI0) contain bug. Valid channel setting is 0x00-0x1F. But 32-47 is valid setting too (SPNS195C chapter  6.17.3 Default DMA Request Map)

  • Hi all,

    just a remark to Jiri's post-scriptum: yes, description of bitfield within the register DREQASI0[0..7] is a bit confusing - there are 6 bits available to select an appropriate HW request for each DMA channel as e.g. illustrated in Figure 20-4. DMA Request Mapping and Control Packet Organization of TRM SPNU563–May 2014.

    Cheers, Jiri

  • Notice in post scriptum is duplicate to e2e.ti.com/.../590766

  • No reaction? We want to now if proposed solution to set DREQASI0 out of range is valid.
  • Jiri,

    First, I apologize for the delay in getting to your questions.

    Second, I don't see any reason why you shouldn't be able to set it to 0x3F as noted in the post you linked to. To be certain this doesn't cause a problem, please be certain your testing specifically addresses this initialization and confirms no side effects in the triggering of the DMA.
  • Dear Chuck,

    you are right - almost everything can be proven by performing a set of test cases on the customer side. On the other side, a customer has purchased the device that was certified so, I would expect, a huge amount of test activities had been performed by TI and approved by the notified body during the certification process.
    Another perspective is about the test coverage - a customer is in a complicated situation to evaluate which test coverage is sufficient :-)
    I mean that TI has knowledge of internal structure and mechanisms (VHDL source code) of the DMA controller - so I would say there could be an easy static analysis of VHDL code performed on the TI side to prove that values "above" the allowed (by the inaccurate TRM) thresholds do NOT affect proper and expected behavior.
    And the last (not least) statement - the TMS570LC4357 device has got the certification up to SIL3 - as consequesnces I would expect an official work-around / errata item by TI to any undocumented and/or undefined / dangerous behavior.

    Thanks a lot,
    Best regards, Jiri
  • Jiri,

    Your points are well noted and understood. Also consider that during development and assessment there are quite a few resources allocated to the development process and many pieces of that information sometimes not passed on to everyone involved. For sure it is a safety device certified up to ASILD and SIL3. Of particular interest in these certifications is to provide evidence that the devices were developed in a certified process that is designed to minimize the risk of systematic faults. Also of particular interest according to the standards is to document the appropriate qualitative and quantitative information to demonstrate the detection and/or avoidance of random faults. These two points combined lead to the necessary reduction of risk due to random and systematic faults in the device.

    Note that my comments to you on this particular task were presented with a certain degree of confidence that the behavior of writing the higher value to the field would be benign. i.e., the module design is capable of up to 64 channels which was expanded from 32 in prior devices. As is often the case with our IP, the unimplemented signals are often tied off or handled in a way as to not impact the device operation and I strongly suspect the same in this case. Thus I don't have a great deal of concern that this is in any way, shape, or form a fault that would/should be considered as part of the overall certification (note that this type of fault would fall into the systematic fault area.) I also would not consider it to rise to the level of a HW bug resulting in the need of an errata advisory.

    As with any Functional Safety implementation there is a clear distinction between what is the responsibility at the device level vs. what is the responsibility at the integrator level. In this case, you are asking to use the device in a way that is not defined in the collateral so it is not necessarily a defined requirement as to the specific behavior which is why a stated that if you would like to use an undocumented feature of the device, it is requested that you do so in a cautious way with ample diligence given to the testing of that undocumented feature that is outside the scope of the expected use scenario.

    In regard to design resources, yes, if I had access to the RTL/design database, I could theoretically have a look at these signals and potentially see how they are hooked up. In the end, I don't have this access so this is not an option at this point.

    Also, please note that if you do find an inaccuracy in the TRM, please use the document feedback mechanism to provide feedback. We are in the process of evaluating updates to our TRMs and any inaccuracy or clarification would be a valid candidate to include in these updates.