Forum Discussion
BeMicro and Programming Under Linux
Hello,
I have just received a BeMicro and have completed the tutorial up to the point where I need to download the SOF file. Unfortunately, I cannot get Quartus II v 9.1sp2 Programmer to recognize the BeMicro as a programming device when plugged in. I get "No Hardware". I am running Linux Fedora 12, and I have significant experience with getting the USB Blaster to work. For example, I have added an entry in udev rules with the proper id numbers: SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a4a0", OWNER="root", GROUP="root", MODE="0666", SYMLINK+="usbblaster" but the Programmer does not recognize the device. When I plug my USB Blaster in, the Programmer recognizes it just fine. Is there anything special I need to do to get the Programmer to recognize the BeMicro as a programming device? Thank you in advance for your help. Dave Rector19 Replies
- Altera_Forum
Honored Contributor
i think the BeMicro board uses a non-standard driver. try searching the forum for BeMicro and you may find some clues
- Altera_Forum
Honored Contributor
Thank you for your reply,
I have indeed scoured the web (and the altera forum pages). So far there had been only one other poor soul who has asked the same question. The response was to add a udev rules entry, which I have tried. Has anyone else tried running the BeMicro under Linux? and been successful? - Altera_Forum
Honored Contributor
the first post was the one i was thinking of:
http://www.alteraforum.com/forum/showthread.php?t=20490&page=2 things i would do would be booting up in Windows to make sure your BeMicro works, and opening the FTDI tool to read the EEPROM settings and make sure your udev rules have the correct device/product IDs. i don't have a BeMicro to tinker with. - Altera_Forum
Honored Contributor
Yes, I saw this post.
It is quite disappointing that Altera doesn't make the USB programming interface easier. The parallel port based blaster was quite trivial and easy to implement. Perhaps if they used the generic usb-serial protocol, then they wouldn't have to rely on specialized drivers. They may sell more silicon that way. One of the things I like best about Altera is the Linux support. I had toyed with Actel parts when I was making a decision early on, because programming the silicon was easier with the built-in flash-ram. But two things were disappointing about Actel. First, the parts were significantly slower, and second, the Linux support was pathetic. Way back in time, more than 15 years, I used Xilinx parts, but then a year into my project, they made marketing survey based decisions to drop Linux support and discontinue some of their best parts, so I switched to QuickLogic which were better parts overall, but were only programmable once without the window. At this point, I have eliminated all of my Windows computers and dual boot machines, since Linux has become so well supported. Thus, I cannot test the BeMicro on a Windows machine. I see the BeMicro 'non-support' of Linux as a regression, and hopefully, not a trend. As a side note, I find it both hilarious and comforting that the Windows based Quartus is built on top of Cygwin, which is really Linux running in emulation within Windows. They should be able to support native Linux better. Wouldn't it be even more hilarious if I was forced to resort to running Quartus under 'wine' to try to get this BeMicro driver to work. I have also designed my own bit-banging programming tools for both JTAG and AS which were equally trivial to the parallel interface. I use them in various scenarios including remote update for a fully wireless and inductively powered device. But alas, as the other poster stated, not compatible with the Quartus programmer due to its special hardware. With the information from the various BeMicro posts, it should be relatively easy to write my own programming tool, and then simply produce a binary output programming file from Quartus. With the BeMicro, I still haven't gotten to the NIOS IDE stage, so I suspect there may be additional surprises with the non-Linux supported USB interface. - Altera_Forum
Honored Contributor
i agree that's an annoying snag. i don't suspect less Linux support will be the way forward, after all i don't think BeMicro is an Altera product. for example, finally having a QII Web Edition for Linux was a huge step forward.
- Altera_Forum
Honored Contributor
Yes, BeMicro is a third party product. Never-the-less, the programming interface needed to be blessed by Altera, because it must talk to Quartus. Thus, I suspect someone screwed up, and didn't make sure that programming the BeMicro was going to be compatible across platforms. I see that Windows 64 bit (and other platforms) are also not supported... I think this really limits its use.
- Altera_Forum
Honored Contributor
Hi I was wondering if anyone here that's been using their bemicro has made any use of the 80 pin edge connector? Would you know of an 80 pin connector that would slip onto the end of the bemicro from which I could run wires from? I would like to run pwr and assorted inputs to the brd through this connector and run control signals out. Thanks... Mike
- Altera_Forum
Honored Contributor
Hello Everyone,
I have spent some time waiting for answers from both Arrow and Altera about supporting the BeMicro under multiple platforms with no joy. Here is what Altera said: ------------------------------------------------------------------ Dear David, We are sorry that we do not support this device, you may need to contact Arrow for the supporting. We shall set the SR to close pending. thanks Best regards kenny -------------------------------------------------------------------- Here is what Arrow said: -------------------------------------------------------------------- Hi David -- please see the answer below RE the BEMICRO device... The BeMicro is only supported on a Windows platform. There are no Linux drivers for it. I am afraid I could not provide more details -- Brian Mackintosh, Manager Arrow Online Service Center (p) 877-237-8621 ------------------------------------------------------------------- So it looks like if you are using anything other than Windows XP, that you are SOL with the BeMicro. The sad thing is ... from what I can see, writing some sort of wrapper or interpreter for the BeMicro should be relatively trivial, especially if Arrow was willing to open source the code of their driver, and someone could do it in less than a day. Unfortunately, I don't have the time right now. Perhaps someday in the near future, if someone hasn't already done it, I will do it when I get some time. Additionally, with the new release of Quartus II v10, it should have been easy for Altera to incorporate a hook for the BeMicro, and equivalent "minimal" USB interfaces in the Programmer software. Well, I am somewhat disappointed in the support that both Altera and Arrow provided for the BeMicro. I wish there were some way to impress upon them that they should consider that people run Quartus on different platforms. Dave Rector *:^) - Altera_Forum
Honored Contributor
David,
I heard about the request for Linux support for BeMicro and discussed this with a colleague of mine. He said that writing a Linux driver for BeMicro would not be too much effort and so he did it. Of course, he could not test the driver in lots of different Linux environments but at least it works on his PC. If you like to volunteer for the test just go to the Central European BeMicro download page and get the new zip file containing the documentation and the reference designs. This file also contains a linux-i586 folder in the driver folder. Please tell me about the test result. The URL is http://www.arrowce.com/bemicro Hope that helps, Harald - Altera_Forum
Honored Contributor
I spent some time this weekend installing the driver from the arrowce site mentioned by Harald, and testing the BeMicro. The folks at Arrow were kind enough to send me the file by e-mail earlier on Friday (Thanks!).
With some additional work, was able to complete the BeMicro LED exercise. Thus, the driver appears to work fine, both for programming, and for the jtag-uart control, but only using the 32 bit Linux version of everything. This is a very good development! I installed the libjtag_hw_arrow.so driver in the quartus/linux/ directory, enabled selinux text-relocation, set rw permissions for the USB device and installed the FTDI library libftd2xx version 0.4.16 from: http://www.ftdichip.com/drivers/d2xx.htm The Quartus programmer magically recognized the presence of the libjtag_hw_arrow.so library, I don't know how it did that, unless it simply searches for any library file with a "libjtag_hw" prefix, then tries to use it. Quite clever. However, I have a couple questions remaining: 1) The BeMicro example exercise claims that the jtag-uart can be accessed through a regular serial port, and thus a program such as "hyperterminal" under windows could access it. I could not find an equivalent device under Linux to access the jtag-uart through any of the standard serial port devices under /dev. Am I missing something, or is the nios2-ide console the only access to the jtag-uart port under Linux? 2) The NIOS2-IDE/Eclipse environment is quite different under Linux than what appears to be under the windows environment. With some effort and frustration, I was able to figure out most of where everything needed to be configured, however, I could not find where to specify the "interrupt vector" and "interrupt size" in the Linux version under the hardware specification. Any hints about this? 3) Since the README file states that the i586 driver was developed with a 64 bit machine, it seems that a 64 bit version should be trivial to produce? Any chance of making the source code available? Thank you again for your help. Dave Rector *:^)