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/