Running the Linux kernel on a DE0-nano FPGA board

[Mike] has been filling up a rather intense wiki entry outlining how to run uClinux on a DE0-nano FPGA board. This is an inexpensive dev board that will run you somewhere between $80 and $100. Right off the bat he goes into a hefty list of the reasons that this is a foolish activity. To name a few: Once you’ve complete the build the device will be tethered for reboot.  This board doesn’t have Ethernet hardware and TCP/IP is one of the beast features of the uClinux kernel. And the FPGA tools are closed-source, which doesn’t often mesh with the ideals of Linux developers. But we still like to see what it really takes to get these large-scope firmware builds to compile and load correctly.

After his preamble you’ll find three main chunks. The first deals with setting up the toolchain on Fedora 14. From there, he installs packages necessary for cross-compiling, pulls down the source packages, and gets to work. Once the kernel is compiled and running on the FPGA [Mike] goes on to show you how to build out a simple hardware add-on in the form of a couple of LEDs connected to extra FPGA pins. The final portion of the wiki details rolling support for toggling the LEDs into the software distribution.

Comments

  1. danjul says:

    raspberry pi will completely remove the need for this soon! fingers crossed!

  2. DooWeeNo says:

    one of the beast features

  3. anyone says:

    more warnings i guess: developing with altera on ANY variety of linux host is the royal buttflush of nightmares. to make matters worse, i doubt this chip has a mmu implemented making any semi-recent linux dev a quick dead end.

    STILL, cool proof of concept Mike and nice work!

    • andres ortiz says:

      yup, no mmu.

    • rizsi says:

      Which FPGA development board would you recommend for development using a Linux (as development tool)? I am new in the area but have plans to try FPGAs.

      It would be best if I could combine an open source softcore and some custom circuit.

      • pockpock says:

        If you mean using free software tools only, I don’t think this is entirely possible… If it’s okay for you to use closed source software:
        I’ve used several altera and xilinx based dev-boards on linux plattforms. Both offer free editions of their software which allow you to programm most of their chips (afik you only can’t use their newest chips so first check if the board you’d buy doesn’t have any unsupported chip). I ran into some smaller driver issues with both but xlilinx’ tools seemed a bit more buggy on linux. For simulation I use modelsim, which also has a free edition.

        I don’t know any actual board you should start with. That’s a decision you’ll have to make on your own (based on your buget, periphery you’d like ect). The DE0-nano mentioned here is a cheap start, if you want to get into FPGA development, but it lacks features you’d probabbly like to have.

      • anyone says:

        pockpock is pretty much right on there with both points. i try real hard to use opensource or pseudo opensource tools for both xilinx and altera. sadly there’s usually some little bullshit thing i needed so i ended up pirating this and that.

        as for a starter kit i would just start as small as possible till you work up to needing larger/faster hardware. besides, larger faster stuff gets expensive quick, not only hardware wise but in software licensing also.

        btw go xilinx, not altera. ;)

    • Spekkio says:

      This is an FPGA! Do NOT put FPGA’s in the same bin as microcomputers or cpu’s. It is a totally different thing. You cannot say that an FPGA does not have this or does not have that therefore crap. That is totally up to you, if you want your FPGA to have an MMU, then design one, or get one and flash it in.

  4. Plaid says:

    Maybe only $80-100 for the hardware, but his implementation requires licensing the softcore at a minimum, $500.

  5. Mike field says:

    Without a licensed core, it will only run for up to an hour, and while the JTAG is connected. As ypu poiny out,Fine to play with, but useless for any real uses.

    The NIOS2/e core is free to use, but only runs at 1/6th the speed – no caches etc…

    Mike

  6. Maiden says:

    Why not run OpenRISC, it got support for Linux kernel 3.1 and only requires about 8000LE.

  7. svofski says:

    Meh, NIOS =(

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 96,656 other followers