CSL DAT Adapter CSL 2.x DAT Reference Implementation on EDMA3 hardware using EDMA3 Low level driver.

Slides:



Advertisements
Similar presentations
Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
Advertisements

purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Chapter 3 Process Description and Control
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
6/9/2015B.Ramamurthy1 Process Description and Control B.Ramamurthy.
Page 1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
Chapter 13 Embedded Systems
1HW1 Explain the transition “interrupted” and “event wait.” Describe how they are different. NewReadyRunningTerminated Waiting (Blocked) admitted Dispatched.
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Processes and Resources
1 I/O Management in Representative Operating Systems.
Multicore Navigator: Queue Manager Subsystem (QMSS)
Operating System Program 5 I/O System DMA Device Driver.
KeyStone Resource Manager June What is resource manager? LLD for global Resource management – static assignment of the device resources to DSP cores.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
EDMA3 Keystone SoC Devices
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.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
KeyStone II Interrupts. Agenda Motivation for this presentation The interrupt Scheme – SPI 0 example Configure interrupt - Hyperlink example.
KeyStone Training Multicore Navigator: Packet DMA (PKTDMA)
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
Lecture 8 Page 1 CS 111 Online Other Important Synchronization Primitives Semaphores Mutexes Monitors.
FTP Server API Implementing the FTP Server Registering FTP Command Callbacks Data and Control Port Close Callbacks Other Server Calls.
KeyStone SoC Training SRIO Demo: Board-to-Board Multicore Application Team.
Fast Fault Finder A Machine Protection Component.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
How to write a MSGQ Transport (MQT) Overview Nov 29, 2005 Todd Mullanix.
Way beyond fast © 2002 Axis Systems, Inc. CONFIDENTIAL Axis Common Transaction Interface (CTI) Architecture Highlights 9/11/2003 Ching-Ping Chou Axis Systems,
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
CS 478: Microcontroller Systems University of Wisconsin-Eau Claire Dan Ernst Advantages of Operating Systems vs. Raw Hardware Raw HardwareOperating System.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
More Discussions on hw5 Timer interrupts –called ticks. ISR called tick handler Kernel uses ticks for: –time keeping, incrementing the global system time.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
NCHU System & Network Lab Lab #6 Thread Management Operating System Lab.
DSP/BIOS Real Time Operating system using DSP /ARM processor.
UDI Architecture In-Depth Robert Lipe UDI Development Team Lead
KeyStone SoC Training SRIO Demo: Board-to-Board Multicore Application Team.
Mutual Exclusion -- Addendum. Mutual Exclusion in Critical Sections.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
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.
7-Nov Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Oct lecture23-24-hll-interrupts 1 High Level Language vs. Assembly.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
7/9/ Realizing Concurrency using Posix Threads (pthreads) B. Ramamurthy.
Multiprogramming. Readings r Chapter 2.1 of the textbook.
After Mcasp_open completed
HIBI_PE_DMA Example.
OPERATING SYSTEMS CS3502 Fall 2017
Other Important Synchronization Primitives
Organization of Programming Languages
EE 445S Real-Time Digital Signal Processing Lab Spring 2017
Structure of Processes
An overview of the kernel structure
EE 445S Real-Time Digital Signal Processing Lab Fall 2013
Process Description and Control
Lecture Topics: 11/1 General Operating System Concepts Processes
Process Description and Control
Process Description and Control
Process Control B.Ramamurthy 2/22/2019 B.Ramamurthy.
Process Description and Control
Process Description and Control
Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads
CS510 Operating System Foundations
Process Description and Control
Chapter 1: Introduction CSS503 Systems Programming
KeyStone Training Multicore Applications Literature Number: SPRPXXX
Presentation transcript:

CSL DAT Adapter CSL 2.x DAT Reference Implementation on EDMA3 hardware using EDMA3 Low level driver.

EDMA3 Low Level Driver (LLD) EDMA3 Driver EDMA3 Resource Manager PaRAMs DMA/ QDMA Channels TCCs EDMA3 ISRs PSP Drivers CSL/DAT Framework Components DMAN3ACPY3 EDMA3 Package Internally calls EDMA3 Driver APIs EDMA3 Resource Manager

EDMA3 LLD Package  OS independent package  Registering and un-registering of EDMA3 Interrupt Service Routines with the underlying OS is responsibility of user.  User expected to provide implementation for the following functions to correctly link an application with the EDMA3 LLD Package.  edma3OsProtectEntry, edma3OsProtectExit  Used to protect entry and exit into critical sections of code.  edma3OsSemGive, edma3OsSemTake  Used for proper sharing and management of EDMA3 resources among multiple users.  Demo application provides sample implementation of these functions on BIOS

EDMA3 LLD Initialization EDMA3_DRV_create() 0 EDMA3_RM_create() EDMA3_DRV_open() EDMA3_RM_open() Initializes the global and shadow regions and programs EDMA3 H/W registers. Creates EDMA3 Driver Object associated with the hardware HW specific configuration information passed as argument. EDMA3_DRV_Handle OS specific SEM_create() call Creates the EDMA3 Driver Instance, associated with particular shadow region. Takes region specific configuration information and a semaphore handle as argument Returns handle to newly created instance.

EDMA3 LLD Sequence (Driver APIs) 0 EDMA3_DRV_requestChannel() EDMA3_RM_allocResource() EDMA3_RM_registerTccCb() EDMA3_RM_mapEdmaChannel() EDMA3_RM_mapQdmaChannel() Allocates a channel, param set, and a tcc. Registers the callback function and enable interrupts. Binds channel to the param set. Specify the channel type, channel number, tcc, event queue and the callback function. EDMA3_DRV_Handle OS specific EDMA3 ISR registration call

EDMA3 LLD Sequence (cont’d..) EDMA3_DRV_setQdmaTrigWord() EDMA3_DRV_setSrcParams() EDMA3_DRV_setDestParams() 0 EDMA3_DRV_setSrcIndex() EDMA3_DRV_setDestIndex() EDMA3_DRV_setTransferParams() EDMA3_DRV_setOptField() Programs PaRAM Set EDMA3_DRV_Handle

EDMA3 LLD Sequence (cont’d..) EDMA3_DRV_clearErrorBits() EDMA3_DRV_setParam() EDMA3_DRV_enableTransfer() After transfer completes, callback function is called (if registered) Mode of data transfer (event, manual, QDMA) passed as an argument along with the channel id. 0 EDMA3_DRV_Handle

EDMA3 LLD Sequence (cont’d..) 0 EDMA3_DRV_close() EDMA3_DRV_freeChannel() EDMA3_DRV_delete() EDMA3_RM_close() Resets the state of the RM Instance configuration. Unregisters interrupts if no other RM instance exists. Programs H/W registers EDMA3_RM_delete() EDMA3_RM_freeResource()… EDMA3_DRV_Handle OS specific SEM_delete() and EDMA3 ISR un-registration calls

CSL DAT  CSL DAT consists of a small set of convenience APIs to move data around using the EDMA hardware.  DAT_open, DAT_copy, DAT_copy2d, DAT_fill, DAT_wait, DAT_busy, DAT_close.  CSL 2.x DAT and 3.x DAT implementations had different behavior as the underlying EDMA hardware changed (EDMA2 to EDMA3)  DAT_copy, DAT_copy2d are non-blocking calls on DAT 2.x, and blocking calls on DAT 3.x.

CSL DAT Adapter  CSL DAT wrapper OS independent.  CSL DAT adapter implements the CSL 2.x DAT on the EDMA3 hardware  Uses the CSL 2.x header files  Behavior of the new API implementation, similar to that on EDMA2 hardware  Uses the EDMA3 Low Level Driver Package (only the Driver API was required)  Adds two APIs DAT_EDMA3LLD_init () and DAT_EDMA3LLD_exit() to set up the EDMA3 LLD.  Users of the package need to implement 2 functions  _dat_critical_section_enter() and _dat_critical_section_exit()  Demo application provides sample implementation of these functions on BIOS

CSL DAT adapter (cont’d) DAT 2.x on EDMA2 (hardware queue depth 4 on DM642) DAT_copy x x x x DAT_open DAT_copy x DAT 3.x on EDMA3 (no hardware queue)

CSL DAT adapter (cont’d) DAT 2.x on EDMA2 (hardware queue depth 4 on DM642) DAT_copy x x x x DAT_open DAT_copy x DAT 3.x on EDMA3 (no hardware queue) X DAT_copy

CSL DAT adapter (cont’d) DAT 2.x on EDMA2 (hardware queue depth 4 on DM642) DAT_copy x x x x DAT_open DAT_copy x DAT using CSL Adapter on EDMA3 (no hardware queue) DAT_copy x x numChannels = 6 DAT_copy x

 See DAT adapter code with example