390 likes | 542 Views
Working with OSK5912. By T Siva Viswanathan Naresh Krishnaswamy Harshvardhan V. Project Phases. Phase I. Introduction to OMAP. ARM926EJS. What is OMAP? Open Multimedia Application Platform Dual Core Processor. OMAP5912. TMS320C55x. Exercises Done:
E N D
Working with OSK5912 By T Siva Viswanathan Naresh Krishnaswamy Harshvardhan V
Phase I Introduction to OMAP ARM926EJS What is OMAP? Open Multimedia Application Platform Dual Core Processor OMAP5912 TMS320C55x Exercises Done: Demonstration of Audio Processing Program – Filtering of Voice available from Audio Input using Filters
Phase I OMAP Architecture
Phase I Studied general boot process Boot Process GRUB/LILO BIOS Kernel Filesystem /sbin/init initrd Run levels Programs
Phase I First Exercise – To compile a sample kernel/ filesystem, small enough to fit in a floppy Size Constraint – Severely limited kernel options available Kernel Configured in Linux using make Went for minimum possible compilable options – final kernel size around 1 MB Required second floppy for file system Kernel Compilation
Phase I File System • Basic File system • Problem: Space constraints, not enough resources available on the net. Finding the right configuration/ dependencies and fitting onto a floppy.
Phase I What is NFS? Concept of Server and Client Exports file, NFS Service Network Daemon Mounted Sample Directory from one Computer Using NFS – Direct Connection Using Server Constraint: NETWORK PROBLEM – Inconsistent Network Performance, NFS server takes unusually long time to initialize NFS – Network File System
Phase I Starting DHCP server Dynamic Assignment of IP address to a client from the server Constraints: Network, Configuration of network file DHCP – Dynamic Host Configuration Protocol
Phase I Additional Work – Bootloader and Filesystem Study Filesystems Bootloader SQUASHFS rrload Redboot CRAMFS JFFS2 U-boot
Phase II Components: Bootloader Kernel Filesystem NFS Standalone Filesystem Required for starting a proper system. Working with OSK5912
Phase II Key features: Patching with OMAP patch Configured using make menuconfig NFS option included or Standalone Filesystem – mtdblock support Needed arm specific gcc toolsuite to compile Prb : Root option not included. Kernel did not uncompress OSK Kernel
Phase II OSK Filesystem • Filesystem populated • Files used – • Busybox – An introduction
Phase II Setting Up the OSK Boot to Bootloader options menu Bootloader in system Bootloader options Kernel loaded using Tftpboot to RAM Memory pages cleared Memory pages cleared File system copied from RAM to Flash File system loaded via Tftpboot Kernel copied to flash from RAM Bootargs changed to mtdblock Bootargs changed to nfs, server ip defined, file specified System Rebooted Network Cable Connected
Phase II Filesystem Options • NFS • Useful for Debugging • Quick Change of Information • NFS server required • Multiple options can be kept • Boot args parameters • Fusing • Useful for Final Product • Information only changed in RAM • Limited File size – 16 MB • Different Images need to be loaded • Size Constraints
Phase II Research in filesystems • Comparison of JFFS2, Cramfs, Squashfs • Failure to implement CRAMFS
Phase III Schematics Analyzed Power management, Flash memory, SDRAM, Audio Codec, Compact Flash, JTAG, USB, Serial Port, Ethernet, Expansion Connectors Possible questions – example Memory Allocation in OSK answered Possible to build a board with required peripherals. Schematics
Phase IV Studied the following: DSP processor fundamentals Harvard Architecture Single Instruction Multiple Data Access ADC input Multi-tasking no parallel processing Direct Memory Access Possible Shift register, MAC, Saturation Arithmetic Circular Buffer DSP processor arch and peripherals DSP Gateway DSP BIOS DSP
Phase IV DSP Processor – TMS320C55x Also studied Registers, Memories, Interrupts involved in the Processor
Phase IV DSP Peripherals
Phase IV Real time kernel on DSP side Real-time scheduling and synchronization Host-to-target communication Real-time instrumentation DSP BIOS – The KERNEL
Phase IV DSP/BIOS Features Static and Dynamic DSP/BIOS OBJECT Modular APIS Background Idle Loop Minimum Error Checking
Phase IV Instrumentation APIs
Phase IV Software enables data transmission between the GPP processor - running Linux - and the DSP. Supports OMAP1510, 1610, 1710, and 5912. Consists of two parts- Linux Device driver on ARM (to be included in kernel while compiling) DSP libraries (compiled and linked into the DSP binaries using Linux-DSP-Tools or CCS Key feature – Usage of DSP TASKS as DEVICE FILES Inter processor Communication with DSP Gateway
Phase IV INTERNAL MEMORY, 3 types- DARAM SARAM PDROM Mapped onto MPU physical address and MPU virtual space. DSP shadow area DSP Memory Map
Phase IV Communication Done Mailbox Mechanism Three mailbox registers- one for MPU two for DSP
Phase IV Communication Done • IPBUFS • 3 types • Global • Private • System • Mailbox protocol • Task Ids • IPBUFS • Ownership is shared. Gets transferred during data transfer.
Phase IV There are five device interfaces DSP task devices- provides interface to DSP tasks for Linux applications. Each task is stored as a device file in /dev/dsptasks directory. (Static task, On Demand Task) DSP task watch device- Find out which task is in use which one has to be loaded etc. DSP control device- Allows the linux application to control the DSP reset read DSP configuration etc. Device file is created at dev/dspctl/ctl. DSP error detection device-used to detect errors such as watchdog timer expiration, DSP MMU error interrupt etc. DSP memory device- Provides access the DSP memory space for DSP program loader. Memory capacity can be extended by mapping SDRAM. LINUX API
Phase IV Sending a word from DSP to ARM side Sending Block Private or Public Memory Mapping Task Control Parent Child Common Memory Mapping Frame Buffer Programming
Phase IV Sample Program Flow – Word Send Arm side DSP side DSP Initialized via dspctl Task initialization function called ARM SENDS Word DSP receives word via Word Send Command DSP send word via word send command ARM Receives Word
Phase IV Word Send Addition Program Multiplication Program PRD Module – TCF Editing Own Programs Tried
Phase IV Module Based Approach Modules Available Types of Settings – Global, Local Analysis of Files which are called. Creation of custom functions that can use these files TCF Text Configuration File
Phase V Codec – Current Stage • AIC23 – Codec to be used with DSP • Studied Registers, Configuration of Codec and link via DSP side • Attempting various modes of communication
Phase V Framework
Phase V Method 1 • Codec Accessed via DSP • Need to configure .tcf file to include adaptor and initialize the Lower Level Drivers • Attempt to adapt a similar approach to DSP BiosLink
Phase V Method 2 • Directly accessing CODEC via ARM using ioctl commands • Create two tasks and let ARM interface between the two
Phase V Hope in attempt a simple program involving the CODEC Next step