WARNING - System Ace is not supported in the Xilinx Ultrascale family and Vivado.
Using System ACE For the Kernel
System ACE, on the Xilinx boards, allows compact flash (CF) to be used for loading the FPGA bitstream and the Linux kernel. This does not require the Linux kernel to know anything about System ACE as that's all hardware.
Use the genace tcl script to create the ace file which contains the FPGA bitstream and the linux kernel (or any elf).
Copy the ace file onto the CF FAT partition. If it's the only file it will be loaded by default. Ensure that any dip switches on the board are set correctly to allow the board to boot from system ACE. SW 3 on ML507 must be 00010101 for it to load from CF.
The driver had a bug such that if you don't have a CF card inserted in the slot it will lock up the kernel during boot. Putting a CF card in the slot worked around the issue. The bug was fixed in 2.6.31.
Using System ACE For the Root File System
The CF can be used for the Linux kernel root file system independent of if the kernel was loaded from the CF or not.
Enable the system ace driver in the kernel configuration (not the old driver as there were 2 with one being called "old").
Make sure the system ace is in the device tree file and the hardware build.
Enable ext3 filesystem in the kernel configuration.
Alter the boot args in device tree file to have the root=/dev/xsa2 (assuming root file system on 2nd partition) or alter the command line when the kernel boots.
You should see the system ace driver found in the console output.
The following table shows the partitions of a typical Compact Flash card used for Linux and System ACE. The FAT partition is for the system ace to load the bit stream and possibly (not necessarily) the kernel image also. The Linux partition is for a root file system. Swap space is not required for the kernel.