Automated gateware discovery using Open Firmware
Transcription
Automated gateware discovery using Open Firmware
Automated gateware discovery using Open Firmware Shanly Rajan Embedded systems & software engineer (SA SKA) MSc Student (UCT) 6th SKA SA postgraduate bursary conference shanly.rajan@ska.ac.za 23rd November 2011 Modular Hardware 2009 RHINO ROACH (Reconfigurable Hardware Interface for computiNg and radiO) 2010 (Reconfigurable Open Architecture Computing Hardware) ROACH 2 2011 What is an FPGA? FPGAs are programmable logic elements – bread-boards on a chip that can have their circuits reconfigured to perform specific tasks very efficiently ß FPGAs can be reconfigured many times with different function FPGA needs to be programmed with hardware logic to make it meaningful Modular Gateware I N S T R U M E N T S Acknowledgment: CASPER GATE WARE What is Gateware? Gateware - Berkeley coined term “Design logic that goes into the FPGA” Gateware contains registers, memory, LUTs. MSSGE Toolchain - (Matlab,Simulink,SysGen,Edk) Bit File/ Bof File FPGA Gateware Hardware Need for Software Support Each gateware design implementation/instrument requires software support (Meaningful) Changing personalities on FPGA require software to be written each time (Time Consuming) Investigation on a mechanism that facilitates the process of gateware detection (Research) Modular Software BORPH (Berkeley Operating System for Reconfigurable Hardware) OS for evolving modular hardware (ibobs, BEE2s, ROACHs) Presents a file system of hardware registers to userspace Performance limitations Linux OS with FDT(Flattened Device Tree) support Advantage of latest kernel and driver development Use device trees and device drivers Parameterization What this research provides? A research framework which uses Open Firmware to describe FPGA designs to facilitate their detection by the operating system to operate these designs using conventional device drivers Design Choices Framework Open Firmware Platform ROACH Bootloader: Uboot PowerPC Linux Kernel (Supported bootloader and kernels) CPU Power PC More about Open Firmware Open Firmware : Hardware Independent Boot Code Boot time drivers for testing machine hardware Building device trees which OS later uses Device Tree : Data Structure that holds information about set of devices attached to a system, including permanently installed devices and plug-in devices, as described by Open Firmware In short we have • Data structure for describing hardware / gateware • Passed to kernel at boot time OF Device Tree Model Tree with nodes & properties Nodes give structure Properties add detail root platform spi bridge uart Drivers registered against bus types i2c bus temp pci bus platform_bus_type ethernet i2c_bus_type pci_bus_type Acknowledgment:Grant Labs Overall System Architecture Research Concept (DDO) DDO - Describe, Detect and Operate pluggable peripherals Can be treated Uboot Open Firmware Device Drivers Device Tree Linux Kernel Can be represented Add Me? Gateware Images Conventional Method Device Database Extension Serial UART Example Serial UART Example 1st Case: We describe a device in the device tree and use existing linux kernel device drivers to operate on the device Serial UART Example Serial Device Uartlite Serial Bit Device Driver Operates Uartlite Driver FPGA Description FPGAV5 : serial@d0010000{ device_type = "serial"; compatible = "xlnx,opb-uartlite-1.00.b"; reg = <0xd0010000 10000>; current-speed = <115200>; clock-frequency = <66666666>; xlnx,data-bits = <8>; xlnx,odd-parity = <0>; xlnx,use-parity = <0>; }; Extending device trees Detect (Invokes Match) Treating katADC as a soundcard Use katADCs to capture data into Block RAMS with a modified sound device driver and utilize sound analysis tools for visualization and playback Treating katADC as a soundcard 2nd Case We describe device in device tree and write a modified / custom device driver to operate on the device but use existing audio applications for gain adjustment and recording Use kat wit an Treating katADC as a soundcard 2nd Case We describe device in device tree and write a modified / custom device driver to operate on the device but use existing audio applications for gain adjustment and recording •Modified audio device driver •Adjusted gain using aumix audio application and observed the change Use kat wit an Advantages & Future work Advantages Future Work Alternative approach for software-FPGA interaction Hot pluggability (Kernel hotplug) Reduces time and effort spent on writing software for each piece of gateware generated Gateware resident initialisation code (Device Driver) Performance benefit Radio instruments device drivers Conclusion Open Firmware Infrastructure extended to include suitably designed gateware images Described gateware in device tree, verified detection and loading of appropriate device driver by linux OS. This research work provides a parameterized interface that can be integrated into the meerKAT digital backend software CASPER COLLABORATION 2011, India THANK YOU Supervisors: Prof Mike Inggs Dr Marc Welz SKA/KAT