Embedded Linux as a platform for dynamically self-reconfiguring systems-on-chip John Williams and Neil Bergmann School of ITEE, University of Queensland Brisbane, Australia Abstract - We have previously argued the benefits of embedded Linux as an operating system platform for reconfigurable system-on-chip design. In this paper we describe our approach building tools for the implementation of dynamically and self-reconfigurable systems, and show that embedded Linux is a natural and powerful platform on which to build these tools. We present examples and demonstrations that show how complex operations such as obtaining partial bit streams from remote servers and initiating reconfiguration are achieved with a single line of Linux shell script. Keywords: dynamic self reconfiguration Microblaze embedded Linux I. Introduction The capability of modern SRAM-based FPGAs to be dynamically and partially reconfigured at runtime (a dynamically reconfigurable system, or DRS), without interrupting the operation of other logic within the FPGA, presents intriguing possibilities for novel system architectures and applications. This capability has been recognised and discussed at least since the advent of modern FPGAs if not before, however it is only recently that the technologies and tools have developed to the point whereby this may be considered a viable approach for practical digital systems. The implementation of DRSs is exceptionally challenging. Previous practical successes have generally demonstrated one specific aspect or capability, at the cost of significant engineering effort. This disproportionate effort distracts from the real objective, to design and implement meaningful systems employing dynamic self reconfiguration. Our approach to DRS design and implementation is to develop a platform of tools with which complex reconfigurable systems may be easily constructed. In this paper we propose embedded Linux as a natural host for such a platform. As part of our reconfigurable system-on-chip (RSoC) research project called Egret [2], we have previously ported an embedded Linux kernel called uClinux, to the Xilinx Microblaze soft-core processor [3]. The capability to support research and experimentation into dynamic and self reconfiguring systems is one of Egret’s design requirements. To support this goal, we have integrated support for Xilinx FPGA self-reconfiguration Microblaze uClinux kernel, using the standard Linux device driver model. By leveraging the power and flexibility of the Linux platform, we are able to rapidly develop tools to perform complex dynamic self reconfiguration tasks. into the The following section presents some brief background material on the Egret platform and the use of embedded Linux in RSoC (Reconfigurable System-on-Chip), and on existing approaches to DRS design and implementation. We then detail our approach to providing support for these systems within the context of the Linux device abstraction model. This is followed by examples that demonstrate the benefits of our approach, and finally we conclude and discuss some of the further challenges that remain for DRS research and design. II. Background A. Egret and uClinux Egret is a modular platform for RSoC research, developed by our group. The first version of Egret targets Xilinx FPGAs, utilising the Microblaze softcore processor, however the Egret concept is not tied to one particular vendor. Central to the Egret philosophy is that complex systems should be designed by assembling the required hardware modules, and specifying the module combination to a software tool that constructs the appropriate FPGA configuration, as