Capture data at 250 MBytes/sec with Linux on Microblaze

The problem The Xilinx Microblaze soft processor, which is implemented on the FPGA’s logic fabric, is indeed a stable and fully capable processor, but its rather low clock frequency — 70-100 MHz on a Spartan-6 — makes it a problematic candidate for data capture and frame grabbing. When running Linux on Microblaze, the current kernel [...]

Download a Linux distribution for Xilinx’ Microblaze

If you want to get to it, just go to the Xillybus mini-distro for Microblaze’s page. This distribution is a software kit, which allows you to run a functional Linux system on the SP605 or ML605 hardware evaluation kit (for Spartan-6 and Virtex-6, respectively). All components necessary to build it will be available for download [...]

Microblaze + Linux: Sample design of a custom peripheral

Scope Even though Xilinx supplies a cute wizard for creating peripherals in its EDK (version 13.2 in my case), it’s just enough to work as a demo. For a real-life case there’s no escape from getting down to the system’s guts. As it turns out, things are pretty well organized under EDK’s hood, which makes [...]

Linux on Microblaze HOWTO (part IV)

This is part IV of my HOWTO on running Linux on Microblaze. The outline is as follows: Part I: Introduction and setting up the Microblaze processor Part II: Compiling the kernel Part III: Preparing for boot and booting Part IV: Compiling user space applications (this page) Compiling user space applications We shall now look at [...]

Linux on Microblaze HOWTO (part III)

This is part III of my HOWTO on running Linux on Microblaze. The outline is as follows: Part I: Introduction and setting up the Microblaze processor Part II: Compiling the kernel Part III: Preparing for boot and booting (this page) Part IV: Compiling user space applications Generating the ACE file The ACE file is what [...]

Linux on Microblaze HOWTO (part II)

This is part II of my HOWTO on running Linux on Microblaze. The outline is as follows: Part I: Introduction and setting up the Microblaze processor Part II: Compiling the kernel (this page) Part III: Preparing for boot and booting Part IV: Compiling user space applications Kernel compilation in general Compiling a Linux kernel traditionally [...]

Linux on Microblaze HOWTO (part I)

This is part I of my HOWTO on running Linux on Microblaze. The outline is as follows: Part I: Introduction and setting up the Microblaze processor (this page) Part II: Compiling the kernel Part III: Preparing for boot and booting Part IV: Compiling user space applications Introduction This HOWTO goes through the procedures for getting [...]

The Device Tree for embedded Linux and Xilinx FPGAs

Spoiler It’s very likely that you don’t need to read this. If all you want is to get a Linux kernel to detect a Microblaze processor on an Xilinx FPGA, the relevant information is in another post of mine. This post goes into the details which are necessary to understand, if you want to write [...]

The Xilinx EDK “update bitstream” process: A closer look

Introduction The Xilinx Platform Studio (EDK) has this “update bitstream” function, which I wasn’t so clear about, despite its documentation page. Its icon says “BRAM INIT” which turns out to be more accurate than expected. So what happens during this process? When is it necessary? If you’re into running a Linux kernel, you’re most likely [...]

Microblaze ELF: A small look inside

This is a small reverse-engineering of the ELF file, as generated by Xilinx’ SDK for a simple standalone application targeted for the SP605 board. ELF headers Looking into the ELF file, we have something like this: > mb-objdump –headers sdk/peripheral_tests_1/Debug/peripheral_tests_1.elf sdk/peripheral_tests_1/Debug/peripheral_tests_1.elf:     file format elf32-microblazele Sections: Idx Name          Size      VMA       LMA       File off  Algn 0 .vectors.reset [...]