IPMC Firmware Fatih Bellachia

Slides:



Advertisements
Similar presentations
LAPP IPMC Mezzanine HARDWARE & SOFTWARE
Advertisements

ASU Real-Time Operating System. Supervised by: Dr. Mohammed Sobh.
INTELLIGENT PLATFORM MANAGEMENT CONTROLLER FOR NUCLEAR FUSION FAST PLANT SYSTEM CONTROLLERS 17th Real Time Conference IPFN, Lisbon, Portugal, May,
Slide 1 ITC 2005 Gunnar Carlsson 1, David Bäckström 2, Erik Larsson 2 2) Linköpings Universitet Department of Computer Science Sweden 1) Ericsson Radio.
Smart-Sensor Infrastructure in the IPAC Architecture V.Tsetsos 1, V. Papataxiarhis 1, F.Kontos 1, P.Patelis 2, S.Hadjiefthymiades 1, E.Fytros 2, L.Liotti.
Shelf Management & IPMI SRS related activities
Development of an ATCA IPMI Controller Mezzanine Board to be used in the ATCA developments for the ATLAS Liquid Argon upgrade Nicolas Dumont Dayot, LAPP.
Operating Systems.
Virtual Machine Management
Update on the ATCA work going on at LAPP xTCA interest group - CERN 08/04/2013 Nicolas LETENDRE Alain Bazan, Fatih Bellachia, Sébastien Cap,Nicolas Dumont-Dayot,
Introduction to USB Development. USB Development Introduction Technical Overview USB in Embedded Systems Recent Developments Extensions to USB USB as.
About Samway Electronic SRL Founded in 2005 in Bucharest, Romania Focused on management and monitoring solutions for telecom/industrial computers Active.
EE 446 Project Assignment Top Design Sensor Components Pin Assignment and Configuration Completed Physical Setup Project Tasks.
The ZigBee Development Enviroment Date: 2009/11/24 Speaker: Junn-Keh Yeh Advisor: Quincy Wu.
UDI Tutorial & Driver Walk-Through Part 2 Kurt Gollhardt SCO Core OS Architect
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
Real-time Closed Loop Controller Raffaele Cetrulo Rolando Ortega Hector Rubio.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
XTCA projects (HW and SW) related to ATLAS LAr xTCA interest group - CERN 07/03/2011 Nicolas Letendre – Laurent Fournier - LAPP.
Virtual 8086 Mode  The supports execution of one or more 8086, 8088, 80186, or programs in an protected-mode environment.  An 8086.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
(1) SIMICS Overview. (2) SIMICS – A Full System Simulator Models disks, runs unaltered OSs etc. Accuracy is high (e.g., pollution effects factored in)
Commands 3/1/ Boot PROM Fundamentals All Sun systems have resident boot PROM firmware Provides basic hardware testing and initialization prior.
IPMI developments at LAPP dec 15, 2011IPMI developments at LAPP, L.Fournier1 Alain BAZAN, Fatih BELLACHIA,Sébastien CAP, Nicolas DUMONT DAYOT, Laurent.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
1 Hardware Tests of Compute Node Carrier Board Hao Xu IHEP, CAS.
Fatih Bellachia Sébastien Cap, Nicolas Dumont ‐ Dayot, Jasmin Fragnaud, Nicolas Letendre, Guy Perrot, Isabelle Wingerter.
MicroTCA & AdvancedTCA Shelf Management Jiping Cao May, 2009 Controls Conference (RT2009) Beijing China.
Johannes Lang: IPMI Controller Johannes Lang, Ming Liu, Zhen’An Liu, Qiang Wang, Hao Xu, Wolfgang Kuehn JLU Giessen & IHEP.
Timothy Kritzler and Joseph Mintun Sponsor: Martin Engineering, Illinois Advisors: Dr. Malinowski and Dr. Ahn Bradley University Electrical and Computer.
XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser Dariusz Makowski, Technical University of Łódź LLRF review, DESY, 3 December 2007 The Importance.
XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser Dariusz Makowski, Technical University of Łódź, DMCS ATCA LLRF project review, DESY, 3-4.
Team Members: ECE- Wes Williams, Will Steiden, Josh Howard, Alan Jimenez Sponsor: Brad Luyster Honeywell Network Traffic Generator.
Introduction to Operating Systems Concepts
Chapter 13: I/O Systems.
A. Aloisio, R. Giordano Univ. of Naples ‘Federico II’
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
BASIC PROGRAMMING C SCP1103 (02)
Muen Policy & Toolchain
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Design of an AdvancedTCA board Management Controller Solution
Microcontrollers, Basics Fundamentals of Digital Debugging
CS501 Advanced Computer Architecture
CERN-IPMC Solution for AdvancedTCA Blades
BASIC PROGRAMMING C SCP1103 (02)
Cypress CY3663 Development Kit
UNIT – Microcontroller.
CP220x The Industry’s Smallest Ethernet Controller
xTCA interest group meeting
Subject Name: Microcontroller Subject Code: 10ES42
Introduction to Microprocessors and Microcontrollers
Computer Science I CSC 135.
Chapter 2: The Linux System Part 1
Module 2: Computer-System Structures
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
Implementing an OpenFlow Switch on the NetFPGA platform
Chapter 7 –Implementation Issues
Module 2: Computer-System Structures
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Ch 17 - Binding Protocol Addresses
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Module 12: I/O Systems I/O hardwared Application I/O Interface
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

IPMC Firmware Fatih Bellachia Sébastien Cap, Nicolas Dumont‐Dayot, Jasmin Fragnaud, Nicolas Letendre, Guy Perrot, Isabelle Wingerter

Intelligent platform management Controller softwARE Software project name ICARE stands for Intelligent platform management Controller softwARE Intelligent platform management Controller softwARE Tutorial Fatih Bellachia

IPMC Overview The IPMC supports an intelligent hardware management system for ATCA board and ATCA carrier board (see Figure) which provides the ability to manage the power, cooling, and interconnect needs of intelligent devices; to monitor events; to log events to a central repository and also the ability to manage the mezzanine modules according to user’s implementation, as well as the communication with the Shelf Manager. Tutorial Fatih Bellachia

IPMC Specifications The IPMC software solution is fully compliant with the following specifications: IPMI v1.5 (document revision 1.1) and some relevant subset of IPMI v2.0 (document revision 1.0). PICMG 3.0 R3.0 (AdvancedTCA base specification). AMC.0 R2.0 (AdvancedMC base specification). Tutorial Fatih Bellachia

Software Environment Features Linux host development 32-bit ARM Cortex-M4 microcontroller Written in standard ANSI C GCC (4.7.0) tool chain Open Source Configuration Management environment: - CMT FRU (ATCA board) generation utility (using M4 preprocessor) OpenOCD (0.9.0) utility (Linux/Windows) Need USB to JTAG interface Debug-Adapter-Hardware Olimex ARM-USB-TINY-H NGX technology … Tutorial Fatih Bellachia

Software design Focus Distributed bare-metal application Event (message) driven architecture Design of the IPMC firmware is based on the components (modules) Tutorial Fatih Bellachia

Software architecture Bare-metal application Component IPMC CMC sensors FwUpgrade JTAG Mst OEM I/O E-keying Middleware IPMB IMC LWIP (BSD) OEM… Channel MessageQueue MessageDispatcher HAL USART USB I2C SPI RCC GPIO WDG Driver libopencm3 (LGPL) ethernet MCU STM32F4x7 Tutorial Fatih Bellachia

SuperLoop Task 4 Task 3 Task 2 Task 1 (Timer Task) Infinite Loop Time Non-preemtible Pseudo FIFO scheduler These architecture is called foreground/background systems An application consists of an infinite loop which calls the tasks to perform the desired operations (in background) Interrupt Service Routine (ISR) manage asynchronous events (in foreground) Foreground is also called "interrupt level"; background is called "task level" Tutorial Fatih Bellachia

IPMC component Intelligent Platform Management Controller synoptic SDR repository FRU Manager Sensors Handle switch Payload Event FRU Information Event Event/Message Dispatcher SDR Manager Event Message LED Message Message IPMC Event Notifier IPMB-0 Message Receiver IPMB-0 Message Tutorial

CMC component Carrier Management Controller synoptic IPMB-L Module State Machine Device Discovery Message Message Outputs Message Event Event Message Carrier IPMB-0 Message Event/message Dispatcher Message Inputs Event Event Event Event IPMB-L Message Receiver Inputs Monitoring IPMC Event Receiver Tutorial

Message Dispatcher Channel Filter Receivers Message Dispatcher Incoming Queue Outgoing Queue Message Dispatcher Filter Receivers Performer Channel Virtual Communication channel Ethernet IMC Mailbox IPMB Tutorial Fatih Bellachia

Module The software "module" concept allows user to  extend functionalities of IPMC without modifying existing code. MAIN SuperLoop CMC E-Keying Sensors F/W upgrade IPMC JTAG server OEM Tutorial Fatih Bellachia

Module User need to provide 3 entry point functions and information. Init Cleanup Process (periodic or not) E.g. /*----------------------------------------------------------------------------*/ bool led0_init(void) { LED_Off(LED_0); hTask = TimerTaskCreate(led0_blink, NULL, DELAY); return true; } /*---------------------------------------------------------------------------*/ void led0_process(void *pvArg) printf("\rLEDs [%c", bOn? '*': '\''); fflush(stdout); MODULE_BEGIN_DECL(led0) MODULE_NAME("Blinky LED 0") MODULE_AUTHOR("fatih.bellachia@lapp.in2p3.fr") MODULE_INIT(led0_init) MODULE_CLEANUP(NULL) MODULE_PROCESS(led0_process, NULL) MODULE_END_DECL module manifest see module/module.h Tutorial Fatih Bellachia

EEPROM prom.c Used to store FRU/SDR information The Framework support EEPROM M24256 or 24xx256 For an unsupported EEPROM the user must overwriting the following functions: bool prom_init(void) bool prom_reset(void) int prom_erase(unsigned addr, int len) bool prom_busy(void) int prom_read(void *dst, unsigned src_addr, int len) int prom_write(unsigned dst_addr, void *src, int len) By default FRU/SDR data are stored in 'IOIF' MCU memory. Tutorial Fatih Bellachia

Sensor sensors.c The Framework support the following sensors AD7414 LTC4151 LTC2499 IQ65033QMA10 Register your sensor with the ResourceBroker library e.g.: /*----------------------------------------------------------------------------*/ bool SensorsInit() { RBResource_t stResource; // AD7414 Temperature stResource.ucChannelId = CHANNEL_I2C_SENSOR; stResource.ucAddress = SDR_AD7414_I2C_ADDR; stResource.ucIdentifier = SDR_NUM_AD7414_TEMP; stResource.fnInit = InitSensorAD7414; stResource.fnRead = ReadSensorAD7414; stResource.fnWrite = WriteSensorAD7414; if (ResourceBrokerAddResource("AD7414 Temp", &stResource) == false) return false; … return true; } Channel # I2C address Unique sensor ID User’s functions Tutorial Fatih Bellachia

SDR sdr_data.c Channel ID The channel IDs are defined in channel/channel.h CHANNEL_I2C_MGT (managed by IPMC) CHANNEL_I2C_SENSOR (managed by IPMC) CHANNEL_I2C_USER_IO CHANNEL_I2C_IPM_IO <Full|Compact> Sensor Record set BYTE 7 [4:7] channel_num Sensor Number Unique number identifying the sensor (e.g. see cfg_data.h) set BYTE 8 [0:7] sensor_number I2C address of sensor Compact Sensor Record set BYTE 31 [0:7] OEM - Reserved for OEM use Full Sensor Record set BYTE 47 [0:7] OEM - Reserved for OEM use There are 2 kinds of record to describe the sensors. Full Sensor Record: The Full Sensor Record can be used to describe any type of sensor Compact Sensor Record: The Compact Sensor Record saves space, but has limitations in the sensors it can describe Tutorial Fatih Bellachia

E-Keying p2p_ekeying.c Register your backplane channel with ekeying library e.g. /*----------------------------------------------------------------------------*/ bool set_port_state_callback(linkDescriptor linkInfo, char state) { if (linkInfo == 0x00001101) do something… else if (linkInfo == 0x00001102) do something else… … return true; } bool my_init(void) EKRegisterFunc(0x00001101, set_port_state_callback); EKRegisterFunc(0x00001102, set_port_state_callback); Link Descriptor (32-bit word) Link Grouping ID: Indicates whether the Ports of this Channel are operated together with Ports in other Channels. A value of 0 always indicates a Single-Channel Link. A common, non-zero Link Grouping ID in multiple Link Descriptors indicates that the Ports covered by those Link Descriptors must be operated together. A unique non-zero Link Grouping ID also indicates Single-Channel Link. Link Type Extension: Identifies the subset of a subsidiary specification that is implemented and is defined entirely by the subsidiary specification identified in the Link Type field. Link Type: Identifies the PICMG® 3.x subsidiary specification that governs this description or identifies the description as proprietary; see Table 3-52, "Link Type.“ Link Designator: Identifies the Interface Channel and the Ports within the Channel that are being described; see Table 3-51, "Link Designator." Base I/F – channel 1 Base I/F – channel 2 Tutorial Fatih Bellachia

Firmware & Tools F/W Upgrade Configuration Flash Memory Factory Firmware will be initially stored in both the Configuration flash memory and micro-controllers internal flash memory. The factory firmware always remains available in the IPMC flash memory. The micro-controllers will revert to it after 3 failing consecutive attempts of upgrading the internal flash memory. Firmware update requires a new firmware in the IPMC CPLD. Version 5.2 is available from the ICARE twiki page. Requires the USB-JTAG Adaptor and openOCD tool for upgrading. For those requiring it, IPMCs will be exchanged if you do not want to do the update yourselves. IPMC update factory IOIF CPLD MCU IPMC IOIF Tutorial

Firmware & Tools FRU/SDR generator Tutorial

Software project area ICARE-00-01-00 HAL Middleware main FwUpgrade IPMC master_MCU IOIF slave_MCU User OEM sensors E-keying GCC tool chain Linker Binary Target IPMC bmc_IPMC STM32F407 IOIF bmc_IOIF STM32F407 CMC Tutorial Fatih Bellachia