Re: [Balloon] Most recent known good for FPGA

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Wookey
Date:  
To: balloon
Subject: Re: [Balloon] Most recent known good for FPGA
+++ Charles Manning [2010-02-17 11:02 +1300]:
> It seems that the FPGA balloon gets a bit less attention than the CLPD version
> and Wookey warned me off trying the latest a few days back. I tried something
> older but that fails to build.
>
> What's the most recent version of svn that:
> * Supports FPGA.
> * Has an FPGA binary file so there is no need to play with Xilinx tools
> * Builds, boots and does healthy things?


It's taken a while to work out the answer to this question, but I
think I've found it.

The old FPGA stuff that was actually released:
http://balloonboard.org/files/balloon3/distro/test-v0.3/
is old-arm, rather than eabi.
It corresponds to svn r260
I tried going back and rebuilding this, but it doesn't work, and only
knows how to build old arm ABI binaries anyway.

So I moved on to just before the VLIO changes. : r839 which only
requires one patch to build: to build with a vaguely recent version of
glibc installed you need to either add the patch below to the initrd
quilt series (copy it into initrd/patches and add getline.patch to the
end of the series file) or let it build until it barfs, with a
'getline redefined' whinge then apply the patch manually. Index:
buildroot/build_arm/linux-2.6.20.4/scripts/unifdef.c
===================================================================
--- buildroot.orig/build_arm/linux-2.6.20.4/scripts/unifdef.c
2010-02-20 01:18:40.000000000 +0000 +++
buildroot/build_arm/linux-2.6.20.4/scripts/unifdef.c 2010-02-20
01:19:01.000000000 +0000 @@ -206,7 +206,7 @@ static void error(const
char *); static int findsym(const char *); static void
flushline(bool); -static Linetype getline(void); +static Linetype
get_line(void); static Linetype ifeval(const char **); static void
ignoreoff(void); static void ignoreon(void); @@ -512,7 +512,7 @@

     for (;;) {
         linenum++;
-        lineval = getline();
+        lineval = get_line();
         trans_table[ifstate[depth]][lineval]();
         debug("process %s -> %s depth %d",
             linetype_name[lineval],
@@ -526,7 +526,7 @@
  * help from skipcomment().
  */
 static Linetype
-getline(void)
+get_line(void)
 {
     const char *cp;
     int cursym;




If you want to avoid the downloads for both debian and emdebian
rootfs's then edit rootfs/Makefile and set
SUBDIRS = emdebian (or debian) so you only get one.

There is another minor blip: 'make dist' gives an error on the last
file it was going to copy anyway - that doesn't matter, it's the cpld
xsvf file only).

Then you should be able to upload with
cd ../distro
utils/bbl --bootldr --fpga --installer
To upload bootloader, fpga image and nor-kernel/initrd

That should be sufficient to set you on your way whilst we get to the
bottom of the HEAD/FPGA issue.

'It works for me' :-)
Feel free to grumble if you find other issues.

Wookey
--
Principal hats: iEndian - Balloonboard - Toby Churchill - Emdebian
http://wookware.org/