OSI and Architecture Independent Device Driver Jim Chen HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source.

Slides:



Advertisements
Similar presentations
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Advertisements

User Oriented APIs for Timing System Jim Chen Hytec Electronics Ltd Timing Workshop – 5 th June 2014, Prague.
EPICS Collaboration Meeting, CEA, Saclay, Oct 2014 The use of EtherCAT with EPICS at Diamond Ronaldo Mercado 22/10/2014.
1 SECURE-PARTIAL RECONFIGURATION OF FPGAs MSc.Fisnik KRAJA Computer Engineering Department, Faculty Of Information Technology, Polytechnic University of.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Embedded Solutions for EPICS Based Control Systems Miroslaw Dach Goran Marinkovic Paul Scherrer Institut Switzerland.
Lecture 12 Page 1 CS 111 Online Devices and Device Drivers CS 111 On-Line MS Program Operating Systems Peter Reiher.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
1 Network Packet Generator Characterization presentation Supervisor: Mony Orbach Presenting: Eugeney Ryzhyk, Igor Brevdo.
CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
Provisional Hytec Electronic Ltd Hytec 1U IOC Darrell Nineham Hytec Electronics Ltd.
HW API internal meeting 2/10/2001 Eric CANO, CERN/EP-CMD1 What’s proposed? l Integration with Christoph’s generic hardware access library for user-friendly.
Using FPGAs with Embedded Processors for Complete Hardware and Software Systems Jonah Weber May 2, 2006.
EtherCAT Driver for Remote I/O James Rowland, Ronaldo Mercado and Nick Rees.
Argonne National Laboratory is managed by The University of Chicago for the U.S. Department of Energy P0 Feedback Project: Merging EPICS with FPGA’s Nicholas.
CSE598C Virtual Machines and Their Applications Operating System Support for Virtual Machines Coauthored by Samuel T. King, George W. Dunlap and Peter.
Hardware Overview Net+ARM – Well Suited for Embedded Ethernet
Cortex-M3 Debugging System
18. June 2003EPICS WS Control of Digital Power Supplies Andreas Lüdeke Swiss Light Source / PSI 20 May 2003 EPICS Collaboration Meeting.
Eric Björklund (LA-UR )
Stanford Linear Accelerator Center PowerPC and VXI Kinetic Systems V151 Embedded PowerPC Slot-0 Controller.
VxWorks & Memory Management
EPICS Insertion Device Control System Pete Owens EPICS Collaboration Meeting June 2003 Control System for a Helical Undulator Pete Owens Daresbury Laboratory.
APS BPM and power supply applications on micro-IOCs W. Eric Norum
SLAAC Hardware Status Brian Schott Provo, UT September 1999.
Writing Your Own Custom IP Drivers for the IOC Blade 9010 By Darrell Nineham 5 Craddock.
1 CS503: Operating Systems Spring 2014 Dongyan Xu Department of Computer Science Purdue University.
NETW 3005 I/O Systems. Reading For this lecture, you should have read Chapter 13 (Sections 1-4, 7). NETW3005 (Operating Systems) Lecture 10 - I/O Systems2.
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
GBT Interface Card for a Linux Computer Carson Teale 1.
Update on FPGA/IOC applications and RTEMS developments at the APS W. Eric Norum
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent University.
Conversion to EPICS R3.14 Mark Rivers. New capabilities Progress in converting synApps/GSECARS Outstanding issues Work to be done Outline.
Xenomai’s Porting on processor NIOS II Professor : P. Kadionik Authors : Bassi Vincent Louati Azza Mirault Raphael Polette Simon.
1Auger - North / October 2005 J-M.Brunet, S.Colonges, B.Courty, Y.Desplanches, L.Guglielmi, G.Tristram APC Laboratory – CNRS / IN2P3.
A Comparative Study of the Linux and Windows Device Driver Architectures with a focus on IEEE1394 (high speed serial bus) drivers Melekam Tsegaye
Running EPICS on NI CompactRIO Initial Experience Eric Björklund (LA-UR )
ICS – Software Engineering Group 1 The PCI Record EPICS Collaboration Meeting l May 2002 at BESSY, Germany May 2002 at BESSY, Germany David.
Memory Map, Programming Language, and Windows Dr. Harold D. Camp IT February 2007.
I/O management is a major component of operating system design and operation Important aspect of computer operation I/O devices vary greatly Various methods.
1 EPICS Linux Based IOC Support EPICS Meeting at BESSY May 2002 Marty Kraimer.
Experience Running Embedded EPICS on NI CompactRIO Eric Björklund Dolores Baros Scott Baily.
FECC/SAIOC/RTEMS Making Lemonade. FECC “Slow” Code (in PC) –Ported iRMX code –By Bob Sass and Tony –As little hand work as possible –EPICS OSI layer –Dual.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
Nevis FVTX Update Dave Winter FVTX Silicon Meeting 13 July 2006.
Fast Fault Finder A Machine Protection Component.
EPICS DIAMOND EPICS Meeting, EPICS base 3.14 OSI: Operating System Independent Support Marty Kraimer.
Status of the STT Motherboard Testing Evgeny Popkov Boston University 5 Jan
CERN Control Standards Front-End Computer Layer Stéphane Deghaye BE/CO/FE
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Welcome to the world of ARM. COURSE CONTENT Module 1: Introduction  Introduction of ARM Processors  Evolution of ARM  32 - bit Programming Module 2:
New IP Drivers using drvIpac Module Driver:CANopen Carrier Driver:GPFC drvIpac ?? CANopen Tip810 CAN Tip810 mv162GPFCatc40vipc310vipc616 Module driver.
Migration to PPC at JLab Richard Dickson. VME data interface differences: CPU VMEchip2 VME mvme177 System Local Bus PPC 750 CPU Raven VME mvme2700.
Guirao - Frascati 2002Read-out of high-speed S-LINK data via a buffered PCI card 1 Read-out of High Speed S-LINK Data Via a Buffered PCI Card A. Guirao.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
Networked Embedded Systems Pengyu Zhang EE107 Spring 2016 Lecture 8 Serial Buses.
Lecture 2. General-Purpose Computer Systems Prof. Taeweon Suh Computer Science Education Korea University ECM586 Special Topics in Embedded Systems.
The World Leader in High Performance Signal Processing Solutions Linux Industrial I/O Subsystem Open Platform Solutions Michael Hennerich.
Integrating Advantech PCI I/O cards into EPICS. Outline ANTARES computer control and data acquisition systems architecture STAR computer control and data.
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Operating System Structure
Group Manager – PXI™/VXI Software
D.Cobas, G. Daniluk, M. Suminski
GBT-FPGA Interface Carson Teale.
Read-out of High Speed S-LINK Data Via a Buffered PCI Card
The PCI bus (Peripheral Component Interconnect ) is the most commonly used peripheral bus on desktops and bigger computers. higher-level bus architectures.
CSCI 315 Operating Systems Design
I/O Systems I/O Hardware Application I/O Interface
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 13: I/O Systems.
Presentation transcript:

OSI and Architecture Independent Device Driver Jim Chen HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source

The problem Things in common The solution Exceptions and caveats Conclusions HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source Contents

Since introducing of asyn, EPICS device support actually becomes device driver Asyn takes over the interfaces with records – the device support layer Asyn standardize the interfaces to generic data type Device driver only focuses on hardware access and controls HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source EPICS Device Support to “Device Driver” ---- Much easier!

VxWorks What’s the Problem HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source RTEMS LinuxWindows FreeBSD DarwinSolaris …… The operating systems: The architectures: VME ATCA/uTCA PCI/PCIe/cPCI/PXI C ConCon o D Standalone via TCP/IP Cubie board Raspberry PI EtherCat BUS cPCI IOC9010 PCIe6335 uTCA7003 VME8004 FPGA IOC8800 The processors (with different BSP or device driver): PPC (MVMExxxx) Intel (Concurrent/Tews/Acromag) PMC ARM……

For a single ADC for example HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source C ConCon o D uTCAVMEcPCI … Standalone IOC9010 IOC8800 Linux PPCIntel … ConcurrentKontron … EurotechAdvantech … PC104 Raspberry PI /Cubie Board The BSP or processor device driver could be totally different Some have kernel-user space like Linux, Windows. Some just have one space – VxWorks, RTEMS VME architecture has AM code plus addr/data bit and even CR/CSR etc whereas PCI doesn’t

VxWorks Multiply by Different OS HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source RTEMS LinuxWindows FreeBSD DarwinSolaris …… PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel PPCIntel How about DAC, Scaler, Digital, SIO, Step motor, Timing modules, frame grabber….. (An exaggerated figure)

Hold on – we’ve got OSI model HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source OSI model – Operating System Independent. It takes over the operating dependant calls (interrupt, mutex, event, message queue, signals, thread, math etc etc) Yet down to the device driver level, we still face architecture differences and processor specific BSP/kernel driver differences

Things in Common HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source Register access For all I/O moduels such as ADC, DAC, Scaler, Digital, SIO, Step motor, Timing modules, frame grabber etc devices…. Most processors use PCI/PCIe to bridge the other side, implemented by Universe II/Tsi148/Plx chips Memory access Interrupt management DMA or BLT or MBLT

The (my) solution – ipac + arch specific HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source BSP or kernel device driver mmap/sysBustoLocal connectInterrupt/waitInterrupt dmaInit/dmaRequest Utilise Andrew Johnson’s ipac module + arch specific interface to BSP/kernel device driver What ipac provides: Generic base addresses mapping ipmBaseAddr Generic interrupt management ipmIrqCmd ipmIntConnect This applies to both carrier card case and normal modules as well (see examples) The only thing ipac doesn’t have is DMA support at the moment Standard ipac/asyn interfaces Arch specific Interface EPICS device driver BSP/kernel driver

Example 1 -- Carrier Card + IP HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source C ConCon o D VME 8004 PCIe 6335 uTCA 7002 uTCA 7003 Standalone IOC9010 PC104 IOC8800 Cubie board /Raspberry PI BUS IPs ADC DAC SCALER

Example 1 -- Carrier Card + IP HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source Ipac-2.11 drvHy8002.c drvTip810.c drvXy9660.c …… Linux VME Intel Concurrent VxWorks/RTEMS RTEMS VME PPC EPICS Device Driver cct Kernel Driver + API Intel PCI/PCIe Linux PCI/PCIe Intel drvHyRTEMSCarrier.c drvHy8002Concurrent.c drvHyLinuxCarrier.c devLib devLib2 Hytec Kernel Driver + API Device

Example 2 – Micro Research Timing Module HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source VME cPCI PMC PXI cRIO …… They have the nearly identical (at least to now) register/memory configuration They have similar interrupt scheme MRF provides a generic API function set for Linux, based on memory pointer! With the arch specific interface module in place, we can use this generic API for all

Example 2 – Micro Research Timing Module HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source Ipac-2.11 Linux VME Intel EPICS Device Driver Kernel Driver + API Linux cPCI Intel drvMrfcPCIcct.c VxWorks/RTEMS drvMrfVMEPPC.c VME PPC drvMrfVMEcct.c …… Kernel Driver + API With CR/CSR support devLib Device

Exceptions and Caveats HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source mmap – not all OS support Byte swap – endian problem. Not all processor boards support it. Then need be32_to_cpu etc. Serial port, Ethernet. This needs device driver. Can be done by this model. Standalone unit, like Raspberry PI/Cubieboard IOC8800, the interface cound be SPI or just I/O operations. We might be able to utilise the macro: be32_to_cpu – developing.. DMA support – no common support in EPICS by far. Maybe a generic dmaInit, dmaRequest in ipac plus drvXXX.c?

Conclusion HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source EPICS Device driver to hardware has common operations such as register, memory access, interrupt management and DMA operations The ipac module happens to provide these services in standard interfaces. We can utilise ipac plus OS/Arch specific module to mezzanine the OS/ARCH specific which hides the complex operations. And it gives a common EPICS device driver for I/O peripherals – easy to maintain. Discussion Is this the right place? A DMA interface? --- leave these to the core developers

Thank You! HYTEC ELECTRONICS LIMITED Spring 2013 – Diamond Light Source