tech-embed archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Roadblocks to further widespread adoption of NetBSD in embedded systems (at least in my neck of the woods)

[[Perhaps we should move part of this thread to netbsd-advocacy as it is
not entirely about technical issues.]]

At Fri, 26 Mar 2010 13:49:17 -0500, Jack Atkinson 
<> wrote:
Subject: Roadblocks to further widespread adoption of NetBSD in embedded 
systems (at least in my neck of the woods)
>   However, I cannot recommend NetBSD to them at this 
> time, because of these areas that are lacking:
> (listed by highest priority)
> 1. Official PowerQuicc support in the NetBSD tree along with drivers for 
> CPM module.  (PowerPC is not quite the same, but a good starting point)

Is your client looking at the QorIQ PowerPC e500-based platform too?

> 2. No flash support for NOR flash (NAND lacking is well, but NOR is more 
> important for this company based on current deployed hardware)

Depending on the exact devices, and the level of support required, I
think there may be BSD-licensed drivers already available in some cases,
i.e. in other BSDs, though it's pretty low-level basic stuff suitable
only for stuffing new firmware images down, maybe saving configs,
etc. but no true filesystem support or wear-levelling layers, etc.
Eg. FreeBSD's cfi driver, and apparently there are some old and new NAND
driver projects for FreeBSD as well (one by the late John Birrell).
John claimed "writing NAND drivers for FreeBSD using GEOM is a trivial
matter.  It only taking a few days or a week at most."

There's also sdhc(4) and sdmmc(4) coming in NetBSD-6, and m25p(4) for
SPI-connected NOR FLASH already in NetBSD-4.

> 3.  Better remote debugging over ethernet (kernel included).  I may be 
> wrong on this, but I haven't seen a lot of info on how to do this for 
> NetBSD.
> 4. Ability to build a small kernel with small subset of userland 
> utilities much like BusyBox on Linux, but not GPL.

Very easy to do with crunchgen, as Herb mentioned, and most of the
framework is already there to do it with the existing Makefiles and
build scripts (at least for i386).  It is how the install media works
for some platforms, including i386.

As a bit of an experiment I've recently just managed to stuff almost
everything in the base system into a single crunchgen binary that
together with a (tuned) i386 kernel is less than 8 megabytes
(compressed) file, and expands when running into a 12MB memory
filesystem where the crunchgen binary inside is just 7.8MB with the only
major things missing being BIND and Postfix, and AMD and NFS-server (and
YP and PAM), I think.  I only had to write a couple of new Makefiles and
a configuration file to feed the ramdisk/crunchgen builder tools.  A
couple more weeks worth of work and I could have the basis for a
complete system for a CPE/router/firewall box (ala m0n0wall, openwrt, or
nanobsd) that booted from FLASH, safely stored its /etc on a separate
FLASH partition, etc. all on some little embedded PC board, like the
ALIX.2 I'm testing it on.

I.e. this part is trivial as it more or less exists already.  :-)

> 5. Better real time support (it's getting there by 6.0 and technically 
> really a low priority due to more control plane software development the 
> company does)
> I say this not to complain, but maybe to help point out these major 
> issues from another company's perspective. If the above areas had full 
> support in the tree, I could almost guarantee it would become adopted.  
> I want to encourage the embedded side of the NetBSD community to commit 
> to these areas more. Personally, I hope to contribute to one of these 
> areas in my own spare time, particularly in the PowerQuicc area (ref 
> boards and debuggers are expensive!).

I echo your sentiments about working more on embedded systems support in
the public code base.  NetBSD has a good history of being successfully
used as a foundation for many embedded systems projects, but sadly many
of the companies who have used it are often unable or unwilling to fully
contribute their efforts back to the public code base.  All too often
the "unable" part is due to hardware companies desperately protecting
their trade secrets with overly broad NDAs that prevent source for
software that drives their hardware from ever being released.  Sometimes
it seems as if the "unwilling" part comes from the desire to capitalize
on expensive development efforts without considering the potential
payback from sharing.  It's the whole "open-source" argument from all
sides and from top to bottom.  :-)

From your client's business perspective I think the initial question
might be to ask how much of what they would pay for QNX licensing are
they willing to pay to developers in order to be able to make use of
NetBSD, and over how long are they able to amortise this cost?

                                                Greg A. Woods
                                                Planix, Inc.

<>       +1 416 218 0099

Attachment: pgporj7XIICXf.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index