After Mcasp_open completed

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

Dcsdgrantaid.com March Background Information 1)First Section of Application Form provides Background Information 2)Make sure you read this section.
CSC Timers Since this is a microcontroller it mainly finds itself in embedded devices Quite often embedded devices need to synchronize events The.
Software Performance Engineering - SPE HW - Answers Steve Chenoweth CSSE 375, Rose-Hulman Tues, Oct 23, 2007.
Network Adapter Driver NCTU High Speed Network Lab.
Computer System Structures memory memory controller disk controller disk controller printer controller printer controller tape-drive controller tape-drive.
HOW TO REGISTER A TEAM Version 1.04 Rev Season 1v1.04 Rev ASA’s Online Registration.
A walkthrough of the SageQuest Mobile Control Online & ESC integration.
Multicore Navigator: Queue Manager Subsystem (QMSS)
The University of New Hampshire InterOperability Laboratory Serial ATA (SATA) Protocol Chapter 10 – Transport Layer.
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS3: Concurrency 3.5. Lab Slides & Lab Manual.
Nachos Phase 1 Code -Hints and Comments
© 2003, The Technology Firm TCP Checksum Errors.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
The Functions of Operating Systems Interrupts. Learning Objectives Explain how interrupts are used to obtain processor time. Explain how processing of.
EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #2 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
Using Direct Memory Access to Improve Performance
KeyStone SoC Training SRIO Demo: Board-to-Board Multicore Application Team.
1 ARM University Program Copyright © ARM Ltd 2013 Using Direct Memory Access to Improve Performance.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
7/27/2004IETF San-Diego Plenary meeting 8/2004 EPON MIBs Lior Khermosh – Passave Technologies
Lecture 12 Page 1 CS 111 Online Using Devices and Their Drivers Practical use issues Achieving good performance in driver use.
EMR-LINK Auto-complete troubleshooting guide. Auto-completion: 1.A feature enabled within Centricity when Ignis installs a bi-directional interface and.
1 Run-to-Completion Non-Preemptive Scheduler. 2 In These Notes... What is Scheduling? What is non-preemptive scheduling? Examples Run to completion (cooperative)
“Lab. 5” – Updating Lab. 3 to use DMA Test we understand DMA by using some simple memory to memory DMA Make life more interesting, since hardware is involved,
UDI Network Drivers Network Interface Metalanguage Barry Feild SCO Server Products Group
CSL DAT Adapter CSL 2.x DAT Reference Implementation on EDMA3 hardware using EDMA3 Low level driver.
EE 345S Real-Time Digital Signal Processing Lab Fall 2008 Lab #3 Generating a Sine Wave Using the Hardware & Software Tools for the TI TMS320C6713 DSP.
Transmitter Interrupts Review of Receiver Interrupts How to Handle Transmitter Interrupts? Critical Regions Text: Tanenbaum
Lecture 8 Task Utilization. Theoretical Analysis.
Case Study: Pthread Synchronization Dr. Yingwu Zhu.
Input/Output (I/O) Important OS function – control I/O
ENEE150 Discussion 04 Section 0101 Adam Wang.
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
PROCEDURAL WORDS & PHRASES
Process Description and Control
TimeStamp.
EE 445S Real-Time Digital Signal Processing Lab Spring 2017
HIBI_PE_DMA ver author: Ari Kulmala documentation: Juha Arvio Modified: Lasse Lehtonen Last modification:
CSE 153 Design of Operating Systems Winter 2018
Completing the Parent Portion of the Student Profile
Completing the Parent Portion of the Student Profile
Module 2: Computer-System Structures
Review and Q/A.
Processor Fundamentals
Chapter 13 DMA Programming.
EE 445S Real-Time Digital Signal Processing Lab Fall 2013
BIC 10503: COMPUTER ARCHITECTURE
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
Transmitter Interrupts
Moving Arrays -- 2 Completion of ideas needed for a general and complete program Final concepts needed for Final DMA.
Implementing Mutual Exclusion
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
Module 2: Computer-System Structures
Unemployment Insurance Agency Michigan Web Account Manager
Overview of the Lab 2 Assignment: Multicore Real-Time Tasks
Lab. 4 – Part 2 Demonstrating and understanding multi-processor boot
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
Implementing Mutual Exclusion
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Process.
PROCEDURAL WORDS & PHRASES
CSE 153 Design of Operating Systems Winter 2019
Module 2: Computer-System Structures
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment. Phone:
Module 2: Computer-System Structures
Presentation transcript:

After Mcasp_open completed EDMA Link Param 1 EDMA HW Channel (PaRAM) For mcasp tx event loopJob EDMA Link Param 2 Keep reloading Loop job loopJob After Mcasp_open, EMDA HW channel would be working as loopJob with Param2

After 1st submit call EDMA Link Param 1 EDMA HW Channel (PaRAM) For mcasp tx event 1st App buffer Directly update Link addr with param1 EDMA Link Param 2 loopJob Updates happens in red. EMDA HW channel starts with param1

After 2nd submit call, if 1st isr has not processed EDMA Link Param 1 EDMA HW Channel (PaRAM) For mcasp tx event 1st App buffer EDMA Link Param 2 2nd App buffer Updates happens in red EMDA HW channel is still working with param1. Now param2 can work with valid application buffer after param1 completion. Also, loop job is out of param. Params are being linked each other with valid configurations.

After 3nd and later, submit call, if 1st isr has not processed Application packet will be queued to driver’s internal queue

ISR for 1st packet, if app has issued 3rd app buffer EDMA Link Param 1 EDMA HW Channel (PaRAM) For mcasp tx event 3rd App buffer Now working with param2 EDMA Link Param 2 2nd App buffer Updates happens in red EMDA HW channel is now working with param2. Now, param1 is updated with 3rd app buffer (get the related info from queue) Params are being linked each other with valid configurations.

ISR for 1st packet, if app has NOT issued 3rd app buffer EDMA Link Param 1 EDMA HW Channel (PaRAM) For mcasp tx event Loop Job Now working with param2 EDMA Link Param 2 2nd App buffer Updates happens in red EMDA HW channel is now working with param2. Now, param1 is updated with loop job buffer (when the internal queue is empty) Params are being linked each other with valid configurations.

Unclear points In any slides, Param1 and 2 are both loaded with valid (loop job or app buffer) configurations. Unclear points Param1 and 2 have valid values and linked each other. Even if the next ISR has missed at this point, CPU and EDMA are out of sync, but EDMA channel itself would still be able to go with previously-configured values, right ? So, it is not clear for me why you can state missing ISR can cause underrun. Did you confirm invalid link info was specified in edma channel parameter when you saw underun ? If yes, I think your suggestion is correct. But if no, there should be other reasons for underrun.

Potential issues in driver code From my code review, and I found some potential issues are present in the driver code. Please note this is NOT related to this underun/overrun issue and this is Just for your information. If these are correct, please feedback it to your driver team. submitCount is not being protected correctly between task and isr thread. In Mcasp.c at Line 2952, restoring the interrupt (to allow the interrupt), and then at line 3000, disabling the interrupt again for checking submitCount. If interrupt would happen between 2952 and 3000, driver would not work correctly. There is no reason to restore the interrupt at line 2952, I think. Not checking 1st data is serviced by EDMA before enabling the clock in Mcasp_localactivatesmfsforxmt() For transmit case using EDMA, the driver should wait for the completion of 1st data serviced before releasing the clock. See McASP UG - Transmit/Receive Section Initialization, 7-a. It says that … If DMA is used to service the McASP, the DMA automatically services the McASP upon receiving AXEVT. Before proceeding in this step, you should verify that the XDATA bit in the XSTAT is cleared to 0, indicating that all transmit buffers are already serviced by the DMA