Using an ACE file allows you to more easily program the FPGA and load software on it than using a Parallel-IV cable and XMD.
To generate an ACE file from a Xilinx xygwin shell:
xmd -tcl genace.tcl -opt xupGenace.opt
where the file xupGenace.opt contains the following:
-jprog
-board user
-target ppc_hw
-hw implementation/download.bit
-elf TestApp_memory/executable.elf
-configdevice devicenr 1 idcode 0x1127e093 irlength 14 partname xc2vp30
-debugdevice devicenr 1 cpunr 1
-ace system.ace
With networking operational, you can now get the board to boot 'diskless' (mount its root file system from somewhere else other than the CF). This can have some nice advantages for system development. That is, you can edit things on the root file system from a Linux box and not have to keep copying it over to the CF card. There are at least two options for this: BOOTP and NFS. This document will only discuss NFS.
Be sure NFS is configured into the kernel as well as "Root file system on NFS".
On the kernel command line when it boots,
use the following:
(To boot from CF: console=ttyS0,38400 root=/dev/xsysace/disc0/part3 rw )
To boot from nfs: console=ttyS0,38400 root=/dev/nfs nfsaddrs=client:server:gateway:netmask
rw nfsroot=/opt/xup_rootfs
The "root=/dev/nfs" tells it to
look at NFS for the root file system.
Client is what the board's address will be (we insert 192.168.0.10 here). Server
is the address of the machine that actually will serve the root file
system (we use 192.168.0.1). It can be any address that is reachable.
Gateway is how the board is to get to the network, and thereby to the
server (we use 192.168.0.1). Netmask should be obvious (we use 255.255.255.0).
Server and gateway can both be the same but they need not be.
To install NFS on ubuntu execute the following command:
sudo apt-get install nfs-kernel-server
Put the following in /etc/exports:
/opt/xup_rootfs 192.168.0.10(rw,no_root_squash,sync)
where the first arg is what is to be NFS-exported and the second arg is who to export it to (the board).
Next, put the following in /etc/hosts.deny:
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
This prevents any machine from using these
services.
Then, put the following in /etc/hosts.allow
to allow the board access to the services:
portmap:192.168.0.10
lockd:192.168.0.10
mountd:192.168.0.10
rquotad:192.168.0.10
statd:192.168.0.10
Finally, any time you change /etc/exports, you should get the daemon to re-read that file using:
exportfs -ra
A good short document on how to do this setup is at:
Another document on Linux kernel command line parameters for this is:
To mount other volumes, do the following:
mount -t nfs 192.168.0.1:/remoteDirectoryName localDirectoryName