Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Mar 2013 11:16:52 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        Adrian Chadd <adrian@FreeBSD.org>
Cc:        freebsd-embedded@FreeBSD.org
Subject:   Re: FreeBSD on the AP121 (AR9330)
Message-ID:  <1364404612.36972.59.camel@revolution.hippie.lan>
In-Reply-To: <CAJ-Vmom8sbMJvFn1ucGBSiptWtKPC0kE1Ss22Kj-WGVSkP_8ag@mail.gmail.com>
References:  <CAJ-Vmom8sbMJvFn1ucGBSiptWtKPC0kE1Ss22Kj-WGVSkP_8ag@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2013-03-27 at 09:48 -0700, Adrian Chadd wrote:
> Hi,
> 
> So I have FreeBSD mostly booting on the AR9330 based SoCs.
> 
> The trouble? These ship with 16MB RAM and 4MB flash.
> 
> CPU platform: Atheros AR9330 rev 1
> CPU Frequency=400 MHz
> CPU DDR Frequency=400 MHz
> CPU AHB Frequency=200 MHz
> 
> ...
> 
> Copyright (c) 1992-2013 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 10.0-CURRENT #15 r248780:248782M: Tue Mar 26 22:31:51 PDT 2013
>     adrian@marilyn:/home/adrian/work/freebsd/svn/obj/mipseb/mips.mips/usr/home/adrian/work/freebsd/svn/src/sys/AR9331
> mips
> gcc version 4.2.1 20070831 patched [FreeBSD]
> WARNING: WITNESS option enabled, expect reduced performance.
> Preloaded elf kernel "kernel" at 0x80538074.
> real memory  = 16777216 (16384K bytes)
> Physical memory chunk(s):
> 0x005d2000 - 0x00f90fff, 10219520 bytes (2495 pages)
> avail memory = 9768960 (9MB)
> 
> The kernel is 4.5MB in size uncompressed and takes up ~ 2.5MB of RAM
> just at startup. It's not going to be able to really do anything with
> our current userland without killing processes. I know it won't even
> be able to load the wlan/ath/bridge/switch modules.
> 
> So at this point I'm really, really looking for some help with cutting
> down both the kernel binary size and the kernel memory footprint. It's
> a bit ridiculous at this point.
> 
> The AR9330 is in a lot of the really cheap, really small APs that
> companies like TP-Link make in ridiculous quantities. I'd love to
> showcase FreeBSD + mesh on these, but there's just not enough space to
> run things.
> 
> So, who's up for it? I can send you hardware if you start making
> progress. Lots and lots of embedded hardware.

For starters you might try disabling WITNESS and other things you can't
afford in a slimmed-down kernel.  On the other hand, kernel bloat is
ongoing; here's a random datapoint in the form of an 8.2 versus -current
kernel built for an embedded arm using the same kernel config file (no
debugging options enabled):

  8.2    10.0
 ----    ----
 3.4M      4M  obj/arm.arm/usr/src/sys/TFLEX/kernel*
 2.6M    3.1M  obj/arm.arm/usr/src/sys/TFLEX/kernel.bin*
 1.4M    1.6M  obj/arm.arm/usr/src/sys/TFLEX/kernel.gz.tramp*

If the system isn't doing heavy IO, try "option NBUF=128" to seriously
slim down the amount of memory for buffers (by default it'll use 1/4 of
total ram up to 64MB).  It would be nice to know more about the
implications of tweaking this number, but when I asked on a mailing list
once I didn't get much useful info.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1364404612.36972.59.camel>