|
Hi all,
I have a custom board running uClinux 2.4, which
uses a System Ace controller and Card Flash. So far we have been using the
ace file on the card flash to load up both the bitstream into the FPGA and then
the uClinux kernel into RAM. Works fine but the ace files are huge
(>116MB).
Obvious thing to do is write a smaller bootloader
that can be loaded with the bitstream, which will then find the image.bin file
at a nice location on the card flash, load it into memory and start it up.
Operating this way, the system flashes the
green System Ace LED (STATLED) during loading of the ace file, and
then it goes solid green and stays that way, even while uClinux accesses the
(mounted) card flash during use later.
Problems creep in when I write the beginnings of
the bootloader. Whenever I use the xilfatfs to access the card
flash, the green LED goes out and stays out. I can read the file
fine, read the image.bin file into memory, and jump to it. It starts
up the kernel normally, but when uClinux tries to initialize the System Ace
driver, the red LED (ERRLED) comes on and the kernel reports: "Partition Check:
xsysacea:<3>JTAG controller couldn't read configuration from the
CompactFlash xsysacea1" and hangs later when trying to mount the Card Flash to
/tmp/sysace.
When I check the System Ace registers, the status
reg reports the CFGDONE bit true for normal uClinux operations, but false after
using xilfatfs. I tried doing set and clear of the CFGRESET bit in my
bootleader before jumping to the kernel, but that didn't seem to
help.
Obvioiusly xilfatfs is accessing the System Ace is
some different fashion from how it is used in uClinux, but the uClinux driver is
based on essentially the same low-level Xilinx driver files, and I've compared
the files and found nothing I would call significantly different at the driver
level.
Anyone run into similar issues?
Jim Law
Iris Power LP
|