[Balloon] Daveloper meeting minutes

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Wookey
Date:  
To: Balloon
CC: lwithers
Subject: [Balloon] Daveloper meeting minutes
Here are the minutes of last week's developer meeting.

If you prefer a PDF then read this:
http://balloonboard.org/docs/Developers_Meeting_20060606.pdf

For those present there are various actions below. Some of them are quite
urgent.

--------------

Minutes of Balloon Developers Meeting 9th June 2006

Meeting at Toby Churchill Ltd (TCL) in Over.

Present: 
*    Dave Bisset (chairing), iTechnic Ltd
*    Steve Wiseman,
*    Laurie van Someren, Aleph One.
*    Wookey,  Aleph One.
*    Chris Jones, Martin-Jones Technology Ltd
*    Peter Long, Cambridge University Engineering Department (CUED)
*    Paul Fiddler, CUED
*    John Drake, TCL
*    James McKenzie, G?ralp Ltd
*    Laurence Withers, G?ralp Ltd
*    Jim Rayner, BeyondVoice Ltd
*    Nick Bane, CE Computing/TCL


Agenda:
*    Current state of Balloon3 prototypes
*    Kernels - 2.4 and 2.6 update. Which versions to support. Pushing into mainline.
*    Bootloaders - Bootldr vs. uboot. Maintenance.
*    JTAG tools - software and hardware (dongles, XJTAG, openJTAG)
*    FPGA/CPLD programming tools
*    Production. Plans, variants, finance.
*    Add-on boards
*    User Space.


Current state of Balloon3 prototypes
====================================

There are 4: 2 with FPGA, 2 with CPLD. 3 out of 4 working. 4th can probably be made to 
go. 
Running Linux, bootldr programming FPGA at boot time:
*    Nand flash working
*    Audio probably working but mixer only working hours ago, and no sound actually 
heard yet to prove it.
*    I2C wiggles bits. 
*    PCMCIA - can read idents. interrupts not working.
*    power needs work. on/off, suspend. not optimised
*    Ram banks. only 2 fitted. working. 128 MB. 
*    Remaining peripheral functions not yet tested
usb:
*    Host: PCB fault for power. USB recognises devices. 
*    client: ping over net. so hardware OK. ipkg update, run Debian over USB 
harddrive = working.
CUED is funding a further 20 like this (no PCB re-spin) for further initial software and 
hardware development.
Plan for 250 with PCB re-spin to correct known hardware bugs over next 10-12 weeks. 
Some component supply problems, which are main limit on timing. Current RoSH 
shortages causing difficulty.
CUED:
*    Has money from DTI to develop teaching aids and design hardware and 
software.
*    Website of teaching materials
*    So far have done PSU board, motor-driver board.
*    i2c for add-on boards
*    Planning break-out boards to bring out everything on balloon 3.
*    Have done Real-Time Linux presentation at RT conference - quite a lot of 
interest. Producing dev environment, on CD. Farnell are offering to supply round 
the world.
*    National instruments interested in porting Labview to it.
Jim:
*    Interested to use balloon and help out project. Will stick his oar in when it 
becomes clear where he can help.


Kernels
=======

2.4.25 is current. Works on balloon2, not balloon3. Now buildable with gcc3.3, and works 
with yaffs2 + MTD mods.  This version will be kept as 2.4 example but no further 
development.
2.6 is now largely working on balloon2 and 3 but in different trees. Nick has balloon2 with 
at-long-last-working USB in 2.6.12 SVN on Husaberg And he has 2.6.16.5 with balloon3 
support Laurence has 2.6.16.5 with balloon2 support at Guralp
Nick has got a gadget driver working on balloon3 which allows cool stuff.
TCL want to move to 2.6 but currently uses devfs extensively. devfs was killed in 2.6.13. 
There was discussion of devfs/udev/hal/hotplug exploring the most commonly acceptable 
progression path and the function of each.
Everyone agreed to make 2.6+udev the default base, but of course people can use 
whatever they like. 
ACTION: Wookey/Nick/Laurence/James will arrange to merge the trees and get definitive 
spares tree on balloonboard.org
A call was made to identify kernel files changed in the Balloon development:
*    Balloon.c main port
*    balloonID chip
*    Samosa bus in dev/char
*    balloon PCMCIA
*    MTD.
On balloon2 Samosa = nand bus. On balloon3 Samosa and nand bus are different
Kernel 2.6.18 opens imminently for patches. We want to try and get balloon stuff in so we 
don't keep maintaining a big patch.
It is good to avoid having whole kernel trees in balloonboard SVN - mostly a waste of 
space. Just need to keep changed files or patches. Agreed to keep sparse tree of 
changed files as easier to follow than patches. Needs scriptage to make easy to use.
Both James and Nick need to be able to hack kernels for own purposes and have stuff 
work. They can use branches to keep things centrally but still do their own thing when 
needed.
ACTION: James (or anyone) - do script to diff tree and generate sparse tree of changed 
files. Wiki page documenting branches would be good too.
The CUED did Real-Time patches for 2.6.8, using RTAI. At the time this was a great 
advance over the 2.4 based stuff everyone else was using. Now the patches are probably 
moot as things have moved on. These days RTAI has split and Xenomai seems to be the 
more active project. Support for Real-Time was generally seen as a "good thing" to try 
and encourage.
ACTION: Paul to post their patches so we can put them on the site in case anyone wants 
to refer to them. (Low priority)
ACTION: Lennert/Wookey/Nick/Laurence/Colin - After merging trees kernel team will ask 
lennert Buytenhek to help prepare, review and submit patches to mainline.
Standard/recommended toolchains are needed as well as kernel source. Many of us use 
emdebian.org tools, but not much use for non-debian people. We need to make a 
crosstool toolchain tarball for that.
ACTION: Wookey/Colin: Detail toolchain choices in docs and put toolchain 
packages/tarballs on the site.


Bootloaders
===========

Guralp do not like bootldr, especially maintaining device support in it as well as the kernel.
They have written their own minimal loader in order to use linux-as-bootldr. So this loads
a kernel+ramdisk from NOR in order to provide bootloader functionality. This means
drivers only have to be written and maintained once. They will use this scheme for
production. One aspect is that the Linux structure means you need to have userspace in
order to use CF slot stuff (Ethernet, flash drive). This has implications for smallest NOR
chip that will work with this scheme. However cheap NOR is now quite sizable.
They are happy to donate code to the project, but may prefer to label it as owned by the
project in order to avoid support responsibilities. This is fine and it was agreed to alter
copyright notices to Balloonboard org.
Some discussion about exactly what legal status balloonboard.org had (not much). Not an
impediment to writing "copyright balloonboard.org" on stuff if we want to.
ACTION: James/Laurence - put their bootloader on balloonbaord.org and add info to wiki.
Nick and TCL do like bootldr - it does what they want and they are used to it. Their
production is based around it (and fillballoon).
Colin has taken Original and TCL fillballoon versions and organised them, along with
associated upload tools (jflash, playsxvf, audio-off) into one codebase with makefiles.
Uses sudo to avoid requiring root. Now in balloon SVN. This should be the standard tool
henceforth.
James now has free code to program Xilinx (CPLD) from jed files instead of having to use
the Windows tools to generate xsvf files and playsxvf to program. This need incorporating
in bbl.
ACTION: James to provide Colin with software/links
ACTION: Colin to test and incorporate to bbl
There are currently various bootldr trees.
DaveB has added FPGA loading support in his version for Balloon 3.
Nick has done balloon3 version (upon which dave's is based) Colin has updated bootldr
for gcc3.3, wookey updated for yaffs2 and nick fettled a bit more.
ACTION: Dave/Nick/Wookey/Colin - merge bootldr versions and get one that does
everything into balloonbaord.org SVN
Discussion about bootldr no longer being supported upstream (handhelds.org) and
containing a lot of cruft (WinCE/ipaq support). Colin wants to cut it down to stuff we use.
Others think it is useful to have all that example code around. It was generally agreed to
take what there is as a core from which to work.
A more mainstream loader might be good but there is a lot of work to do porting it to
balloon, with little immediate benefit.
We agreed that as both the Guralp loader and bootldr were going to be supported by
people anyway (Guralp and Nick/TCL respectively) then we could continue to use both.
We have in fact now done all the work on bootldr that is needed for balloon3, so we can
probably ignore it for quite a while now. bootldr will be the default solution for the time
being, but we will look to move to the Linux-as-loader solution in the longer term.

JTAG Tools
==========

Dave has written bflash, which is a much better, more generic version of jflash. Supports
new-style dongles as now used by TCL and Aleph One. These dongles work for Xilinx
and flashprogramming/CPU debug, so we can get away from the 'two different dongles'
hassle.
OpenJTAG stuff was considered but deemed not quite what we wanted for this task. (due
to assumptions about chains)
PXA has an abbreviated chain (75 cells instead of 504 bits). Bflash has rudimentary
support for this but needs further debug.
ACTION: Dave - upload bflash stuff.
ACTION: Colin - integrate with bbl
Tool does not yet have a GUI. (some) People would like one.
We also need debug, higher-speed programming, and general XJTAG facilities, but
preferably with a much lower price tag. The OpenJTAG project has been working on this
and is interested in balloon3 as a test case. We need to compare notes - possibly use
their USB dongle hardware, etc.
Guralp have a design for such a thing too.
ACTION: Wookey - put DaveB in touch with OpenJTAG people.
ACTION: DaveB/James - Work out if co-operation is appropriate and what to do next if
so. report back.

FPGA/CPLD tools/programming
===========================

There is now a Linux toolchain as well as a windows one. called ISE Webpack. Freely
downloadable. Probably not distributable. XC3S400 supported (as used on Balloon3) ,
Spartan3 FPGA supported up to XC3S1500 with free webpack.
FPGA/CPLD contains some logic for board itself: backplane, nand, CF, interface plus
pinko and serial and LED control. You always need that.
We have VHDL for CPLD and FPGA for that stuff. Dave is working on how best to make it
easy to always include that logic block, but also add your own logic.
ACTION: Dave - supply VHDL for balloon3 logic.
FPGA has special (and complex) power needs. Will bring out power pads for high-
efficiency PSU on next respin, so power doesn't need to go through more switchers than
absolutely necessary (important to Guralp and anyone else with strict power needs).
FPGA consumption depends on how much logic is configured. Uses lots of power if not
configured at all, so must not be left like that. Approx Balloon 3 power numbers: 90mA
@4V on CPLD 130mA on nearly empty FPGA. (Note: no attempt at serious power
conservation has been made yet)
Can turn off FPGA if you don't need any IO. 2mS to reload. Still get external wakeups
from GPIOs.

Builds and Variants
===================

Need to publish schematic. Now uses smartPDF so connections and names are
highlightable. James wants netlist too so text-based tools can be used for same task.
ACTION: Dave/Steve - publish schematic and Netlist (This will happen at the next main
build)
Will publish PDF schematic and gerbers, but not Protel design files, as for Balloon2. We
should perhaps have discussed this a bit more, and whether this still makes sense, but it
got lost in all the other practical stuff. {Note for discussion at the next meeting.}
The design is now bed-of-nails-able for power and JTAG/serial which is good for
production of minimal fit boards.
We need to decide which build options to have.
Main ones are RAM, nand, nor options. Missing off connectors. And of course basic
FPGA/CPLD choice.
Dave will check out build options. General principle is to have a cheap one, and a good
one. Possibly room for a mid-range option too. Main target markets are education and
developers. Peter pointed out that a bit more expense is not a problem for education if it
can be shown to have a long life (more than 3 years). So more RAM is good.
Approx BOM prices are CPLD: GBP 100, FPGA: GBP 130. So double those for plausible
sales prices. Room for reduction with larger builds.
Current build of 20 as prototype (apart from actual error fixes) then 200 with respun
design is being paid for by Peter from Cambridge/MIT fund. Strict time limit on that before
money runs out (September).
ACTION: Dave - propose a couple of default build options.

Add-on boards
=============

What do we need. This was a difficult question which was hard to reach conclusions on 
without more idea of constraints. People need to go away an think about it. Feedback is 
very welcome. FFC connections are cheap. Samtec connector is not.
General feeling that having board with same footprint as mainboard is good, for mounting 
and boxing. CUED has a transparent plastic box design that they will be using - can be 
made available (education users like to see what they are using). Much more expensive 
to make it metal as well as plastic. We decided that this was not needed (EMC is the 
reason it would be useful). A plastic box could always be nickel-sprayed. Box and board 
may be sold separately to avoid the need for EMC testing (only required for finished 
products, as opposed to components).
Small-footprint boards do not have room for every connector. Maybe a pair of boards, but 
that makes it hard to get scope in. Some would like a big flat dev board with all possible 
connectors.
The Eng dept has already made a board that supplies power and a set of useful 
connectors. They also have a i2C boards with prototyping area. 
We probably want a general developers board with Ethernet and a load of connectors. 
Some other specific boards might be useful. e.g. Ethernet, video (VGA/RCA), 6522-style 
User port, LCD/touch screen interface board. Vote now...
ACTION: Everyone - tell Chris what you want in terms of add-ons.
ACTION: SteveW - supply protel design/schematics for backplane and board base 
design, so people have a starting point for special-purpose add-on boards. 
ACTION: Chris/Dave write a hardware developers page for the Wiki/Web
ACTION : Wookey - Move irc server to somewhere more reliable than Aleph One. 
       Colin has added this info to the website.
DONE. {It is now irc.oftc.net#balloon (decided there was nothing to be gained 
from running our own server on balloonbaord.org, and it has overhead implications for 
avoiding irc spammers)}
We need to make it easier for people to upload info to balloonboard.org. the wiki is usually 
a good start, but for files people need access.
Developers need ssh access.
ACTION: Wookey - Give everyone at this meeting who doesn't have one a login:
        daveb, peter, stevew, james, lwithers, jimr
DONE.


Userspace
=========

Balloon has so far largely been used with the TCL familiar-based distribution. This is now
crufty and always had a rather dodgy GPL status in that finding the exact source for the
binaries was difficult.
We need a better solution.
James highly recommended openwrt. 'It just works'. Download, menu-based configure
(uses buildroot) - spits out filesystems images (knows about jffs2 but not yaffs right now).
Makes its own toolchian. Distro-agnostic
Familiar has now moved to a build based on OpenEmbedded. OE is good but
complicated. Nick had tried it but got lost. But it is versatile, comprehensive and
supported. Also builds own toolchain. And is distro-agnostic.
Wookey is already involved with Embedded Debian and so will pursue that option. As of
today you can build a small base system for balloon but there are not many packages
ready. Main advantage is debian-compatibility, and easy integration of huge pile of debian
packages. Needs a debian dev box.
Slind, was also mentioned, but that relies on Ethernet on the target so it not very useful on
balloon.
James said it was really hard to get a debian-arm root image on the box. We should
supply a ready-prepared one.
ACTION: Wookey/Nick - put up an nfs-root tarball suitable for development.
ACTION: Wookey/Colin/Jim - Examine alternatives and choose/configure something to
be a default.

Concluding Remarks
==================

Dave emphasised that this is a volunteer project, and things don't work unless people
really do do actions they have agreed to in a reasonably timely matter. Or ask for help if
they need it. The project has been running rather slowly for the past year or two, and we
need to be a bit more organised in the future. That is happening now, and things are
looking good, but we need to keep at it.

Thanks go to TCL for providing lunch and accommodation for the meeting.

Another meeting was agreed for ~6 months time. November seemed best.
November 24th is suggested as a date for people's diaries.

Venue and time to be agreed.

Thanks to Wookey for preparing the Minutes text.

Document Date 15/06/2006 14:08:00


Wookey
-- 
Aleph One Ltd, Bottisham, CAMBRIDGE, CB5 9BA, UK  Tel +44 (0) 1223 811679
work: http://www.aleph1.co.uk/     play: http://www.chaos.org.uk/~wookey/