Subject: Re: binary blobs (was Re: ZFS)
To: None <current-users@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: current-users
Date: 09/05/2006 17:11:02
On Tue, Sep 05, 2006 at 11:58:04AM -0700, Bill Studenmund wrote:
> On Sat, Sep 02, 2006 at 08:12:15PM +0100, Iain Hibbert wrote:
> > On Sat, 2 Sep 2006, Garrett D'Amore wrote:
> > > My biggest complaint with blobs is lack of portability, but in at least
> > > one case (ath(4)) the supplier has gone out of his way to make sure the
> > > blob is available for any platform that might have the hardware.
> > 
> > I have two complaints with blobs.
> > 
> > a) The sys/contrib/dev/ath directory (eg) is 8Mb of uuencoded binary
> > bloat, and every time another platform wants to add ath(4) support, more
> > bloat ensues. How big is the source for a wireless device driver anyway?
> > (as a reference, there seems to be 150k of wi(4) related source)
> 
> One difference between the two is that wi(4) has a microcontroller and 
> ath(4) doesn't. So the wi(4) code has a firmware for the microcontroller, 
> which obviously doesn't depend on the NetBSD architecture. aht(4) doesn't. 
> So everything that the microcontroller does is done by the host CPU. Thus 
> all of that functionality has to be handled by the host driver, and it's 
> larger and architecture-specific.
> 
> The up-shot is that I don't think a lines-of-code comparison is correct.
> 
> As to the size, I think one idea would be to gzip the blobs before 
> uuencoding.

Comparing a wi firmware with the ath HAL is not fair, because the
responsibilities of the HAL are a lot smaller than the wi firmware.
net80211 is doing a lot of the heavy lifting for ath that the firmware
does for wi.

A more meaningful comparison can be made between ath and atw, ral,
or rtw.  Neither atw, ral, nor rtw has a microcontroller.  (I might be
wrong about some varieties of ral.)

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933