Difference between revisions of "MicroBlaze"

From the Linux and Unix Users Group at Virginia Teck Wiki
Jump to: navigation, search
imported>Jagged
(Xilinx Tool Installation)
(Undo revision 694 by [[Special:Contributions/imported>Pew|imported>Pew]] ([[User talk:imported>Pew|talk]]))
(Tag: Undo)
 
(7 intermediate revisions by 6 users not shown)
Line 24: Line 24:
 
Select all default options, allow the program to launch vmware-toolbox
 
Select all default options, allow the program to launch vmware-toolbox
  
Add the following to /etc/rc.local (then sudo chmod +x /etc/rc.local):
+
Add the following to /etc/rc.local (then <code>sudo chmod +x /etc/rc.local</code>):
 
<pre>
 
<pre>
 
   /usr/bin/vmware-user &
 
   /usr/bin/vmware-user &
Line 38: Line 38:
 
===Supporting Libraries===
 
===Supporting Libraries===
 
Install libusb:
 
Install libusb:
<pre>
+
<pre>
 
   sudo apt-get install libusb-0.1-4
 
   sudo apt-get install libusb-0.1-4
 
</pre>
 
</pre>
Line 56: Line 56:
 
   sudo restart udev
 
   sudo restart udev
 
</pre>
 
</pre>
**Note, for the first command you may receive a permissions error.  Try the command "sudo su" to get a root shell then run the same command sans 'sudo'
+
**Note, for the first command you may receive a permissions error.  Try the command <code>sudo su</code> to get a root shell then run the same command sans 'sudo'
  
 
* Plug in the Spartan 3E board.  Apply power and attach the USB cable between the board and computer.  If everything has been done successfully, a greed LED will illuminate next to the USB receptacle on the boad.  If unsuccessful, the red LED will be dimly lit.
 
* Plug in the Spartan 3E board.  Apply power and attach the USB cable between the board and computer.  If everything has been done successfully, a greed LED will illuminate next to the USB receptacle on the boad.  If unsuccessful, the red LED will be dimly lit.
Line 62: Line 62:
 
* Install the Xilinx EDK (SDK and Chipscope if required)
 
* Install the Xilinx EDK (SDK and Chipscope if required)
  
===Installing the libusb-driver===
+
===Installing libusb-driver===
 
Install libusb-dev and git:
 
Install libusb-dev and git:
 
<pre>
 
<pre>
Line 93: Line 93:
 
</pre>
 
</pre>
  
Add the following lines to /opt/Xilinx/11.1/settings32.sh just after list=""
+
Add the following lines to /opt/Xilinx/11.1/settings32.sh just after <code>list=""</code>
 
<pre>
 
<pre>
 
   export XIL_IMPACT_USE_LIBUSB=0
 
   export XIL_IMPACT_USE_LIBUSB=0
Line 103: Line 103:
 
</pre>
 
</pre>
  
 +
*Note if you wish to create a launcher in the desktop environment, use the following format for the 'command' and it will automatically source the settings32.sh before launching the application:
 +
<pre>
 +
  /bin/bash -c 'source /opt/Xilinx/11.1/settings32.sh && ise'
 +
</pre>
 
Sources and Other Contributors:
 
Sources and Other Contributors:
 
Via (VTLUUG member)
 
Via (VTLUUG member)
Line 130: Line 134:
 
When you're done, type <code>exit</code> on the command line to quit xmd.
 
When you're done, type <code>exit</code> on the command line to quit xmd.
  
=Programming the Board=
 
If you're given a self-extracting archive, create a directory and
 
move the file to it to avoid getting "tar bombed" and unzip it. Replace
 
"update-s09-2" with the name of your file.
 
 
<pre>NAME=update-s09-2
 
mkdir ${NAME}
 
mv ${NAME}.exe ${NAME}
 
cd ${NAME}
 
unzip ${NAME}.exe
 
</pre>
 
Now you should see a file called "update.bat". You can take a look
 
at its contents to get a clue about the commands we'll need to run.
 
 
<pre>less update.bat
 
</pre>
 
Use the arrow keys or page up/down keys to navigate and press q to quit.
 
Essentially, we just need to run Xilinx's [http://www.xilinx.com/products/design_tools/logic_design/design_entry/impact.htm impact] programmer with the given file.
 
The script given to us will have a Windows-style path to where the
 
self-extracting archive would have unpacked itself. Run the following
 
command to fix this:
 
  
<pre>sed -i s/'c:\\.*\\'/'.\/'/ ProgramBoot.cmd
 
</pre>
 
Now all we need to do is run the programmer. Make sure the Xilinx
 
tools are in your path and that the Spartan board is connected via USB
 
and powered on.
 
 
<pre>impact -batch ProgramBoot.cmd
 
</pre>
 
 
=Cable Lock Workaround=
 
=Cable Lock Workaround=
 
Sometimes you'll get an error with cable locking. Typing the following into xmd should fix this.
 
Sometimes you'll get an error with cable locking. Typing the following into xmd should fix this.
Line 169: Line 144:
 
[http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver]
 
[http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver]
  
[[Category:Electrical and Computer Engineering]]
+
[[Category:Campus_computing_resources]]
[[Category:Classwork]]
+
[[Category:Software]]
 
[[Category:Scripts]]
 
[[Category:Scripts]]

Latest revision as of 22:44, 3 January 2019

Setting Up Xilinx Utilities

The following instructions were written for Xubuntu 9.10 running on a VMware player virtual machine and may not work on other platforms or versions. If you would like to see additional coverage, please add it yourself or make a request on the wiki's wanted page.

Note that some utilities such as 'impact' are capable of using the libusb driver, while others such as 'xmd' must use the libusb-driver driver. libusb-0.1.4 is installed generally by default in *ubuntu distributions and should be available (but the udev magic still has to happen for the cable to work). In this install, we specify use of the libusb-driver by adding some lines in /opt/Xilinx/11.1/settings32.sh

Operating System

  • Install Xubuntu virtual machine
  • Update OS
  • Reboot (to load latest kernel)

Re-Install VMware tools

  sudo apt-get install build-essential linux-headers-`uname -r` psmisc

(Install VMWare tools through host menu)

Unzip tarball from /mnt/cdrom (or cdrom1) to local dir (such as ~/):

  cd ~/vmware-tools-distrib
  sudo ./vmware-install.pl

Select all default options, allow the program to launch vmware-toolbox

Add the following to /etc/rc.local (then sudo chmod +x /etc/rc.local):

  /usr/bin/vmware-user &

Add the following to /etc/fstab:

  .host:/       /mnt/hgfs       vmhgfs  user,defaults   0 0

Reboot (Verify any shared folders are now mounted on /mnt/hgfs) (Verify vmware-user is running with: ps ax | grep vmware)

Supporting Libraries

Install libusb:

  sudo apt-get install libusb-0.1-4

Install fxload:

  sudo apt-get install fxload

Xilinx Tool Installation

Install Xilinx ISE Webpack (do not install cable drivers or XilinxUpdate), then run the following commands:

  sudo sed /opt/Xilinx/11.1/ISE/bin/lin/xusbdfwu.rules -e 's:TEMPNODE:tempnode:g' > /etc/udev/rules.d/xusbdfwu.rules

  sudo cp /opt/Xilinx/11.1/ISE/bin/lin/xusb*.hex /usr/share/

  sudo restart udev
    • Note, for the first command you may receive a permissions error. Try the command sudo su to get a root shell then run the same command sans 'sudo'
  • Plug in the Spartan 3E board. Apply power and attach the USB cable between the board and computer. If everything has been done successfully, a greed LED will illuminate next to the USB receptacle on the boad. If unsuccessful, the red LED will be dimly lit.
  • Install the Xilinx EDK (SDK and Chipscope if required)

Installing libusb-driver

Install libusb-dev and git:

                sudo apt-get install libusb-dev git-core

Download libusb-driver sources:

                cd ~/
                git clone git://git.zerfleddert.de/usb-driver

Compile and install libusb driver

                cd usb-driver/
                make
                make lib32
                sudo cp libusb-drive.so /usr/local/lib/

Create a script in /etc/profile.d/ with the following contents:

  #!/bin/bash
  export PATH="$PATH/opt/Xilinx/EDK/bin/lin:/opt/Xilinx/11.1/EDK/gnu/microblaze/lin/bin/:/opt/Xilinx/11.1/SDK/bin/lin:/opt/Xilinx/11.1/ISE/bin/lin"

Make the script executable:

  sudo chmod +x /etc/profile.d/xlilnx-settings.sh

Add the following lines to /opt/Xilinx/11.1/settings32.sh just after list=""

  export XIL_IMPACT_USE_LIBUSB=0
  export LD_PRELOAD=/usr/local/lib/libusb-driver.so

16) Prior to launching a Xilinx tool (such as xmd), you must type the following command:

  source /opt/Xilinx/11.1/settings32.sh
  • Note if you wish to create a launcher in the desktop environment, use the following format for the 'command' and it will automatically source the settings32.sh before launching the application:
   /bin/bash -c 'source /opt/Xilinx/11.1/settings32.sh && ise'

Sources and Other Contributors: Via (VTLUUG member) forums.xilinx.com wiki.archlinux.org

Makefile Tricks

Automatic Download

This automatically downloads your program to the Spartan board after building. It assumes $(NAME).elf is the file you'd like to download. Note that you will probably miss warning messages regarding your code so you might want to first run make normally.

dl: $(NAME).elf
	echo 'dow $(NAME).elf' > xmd.ini
	echo 'run' >> xmd.ini
	xmd
	rm xmd.ini

When you're done, type exit to quit xmd.

Automatic Debug

debug: $(NAME).elf
	mb-gdb &
	xmd

When you're done, type exit on the command line to quit xmd.


Cable Lock Workaround

Sometimes you'll get an error with cable locking. Typing the following into xmd should fix this.

xclean_cablelock

9.x Native USB Driver

http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver