bootstrap of virtex-ii pro eval board ML300

Peter Ryser Peter.Ryser at
Thu Jun 5 02:45:31 EST 2003

As Scott describes correctly the preferred method of booting ML300 is through
System ACE CF. System ACE CF reads ACE files and programs the FPGA and the
PowerPC processor through the JTAG chain.

The ACE file is a concatenation of zero or one bitstream with zero to n ELF
files. Typically, it is one bitstream and one ELF file.
On power-up or reset System ACE CF reads the ACE file from the MicroDrive or
CompactFlash card and in a first step programs the FPGA. Then, in a second
step, from the same ACE file, it programs the processor, i.e. similar to an
external debugger it loads code and data contained in the ELF file into the
processor memories, sets the PC to the start address, and starts executing the

For Linux, you will use the Linux kernel as the ELF file.

You can generate ACE files easily by using EDK by running the command
$ xmd genace.tcl implementation/system.bit arch/ppc/boot/images/zImage.embedded
in your hardware project directory.

- Peter

Some useful links:
System ACE CF: (

Scott Anderson wrote:

> On Monday, June 2, 2003, at 01:48  PM, Kerl, John wrote:
> > You're saying that the entire zvmlinux.initrd file
> > (2-3 MB, say) is contained in the FPGA bitstream??
> I am saying that the entire zImage.embedded (without
> an initrd) is in the FPGA bitstream.  Its root partition
> is an ext2 partition on the IBM MicroDrive.
>    Scott

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list