Return-Path: jsg@goblin.cx
Delivery-Date: Tue Oct 10 09:09:06 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AF95Hk011306
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Tue, 10 Oct 2006 09:09:06 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:51060 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GXJEb-0004B2-BY
	for deraadt@cvs.openbsd.org; Tue, 10 Oct 2006 17:09:34 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k9AF9Qnt002664
	for <deraadt@cvs.openbsd.org>; Wed, 11 Oct 2006 01:09:26 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k9AF9Q1u028338
	for deraadt@cvs.openbsd.org; Wed, 11 Oct 2006 01:09:26 +1000 (EST)
Resent-From: jsg@goblin.cx
Resent-Date: Wed, 11 Oct 2006 01:09:26 +1000
Resent-Message-ID: <20061010150926.GA3250@mail.netspace.net.au>
Resent-To: Theo de Raadt <deraadt@cvs.openbsd.org>
Date: Fri, 15 Sep 2006 00:56:26 +1000
From: Jonathan Gray <jsg@goblin.cx>
To: Dan Williams <dcbw@redhat.com>
Cc: jg@laptop.org, mtosatti@redhat.com
Subject: Re: Marvell 88W8388 documentation
Message-ID: <20060914145626.GA8066@mail.netspace.net.au>
References: <20060914124700.GA21474@mail.netspace.net.au> <1158242721.2634.26.camel@localhost.localdomain>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1158242721.2634.26.camel@localhost.localdomain>
User-Agent: Mutt/1.5.11

On Thu, Sep 14, 2006 at 10:05:21AM -0400, Dan Williams wrote:
> 
> On Thu, 2006-09-14 at 22:47 +1000, Jonathan Gray wrote:
> > Hi guys,
> > 
> > Please correct me if I am wrong but it seems that documentation
> > for Marvell's 88W8388's is not publically available without
> > signing an NDA?
> > 
> > If this is the case why did a project that seems to pride
> > itself of openess agree to deal with such a company?
> > Drivers written under NDA tend to be full of magic numbers,
> > near impossible for others to properly maintain and
> > totally against the spirit of open projects.
> 
> In the very least, the driver is open-source and usage of magic numbers
> is no worse than the majority of current Linux wireless drivers, even
> those developed from device specifications provided by the manufacturer.
> If you look at the source, there's actually an amazing lack of magic
> numbers [1], and almost all of the numbers used have meaningful names in
> the header files.
> 
> Getting specs for the chipset is expected in the near-term, but a lot of
> stuff has to happen in parallel here.

That's great news.

> 
> > I really think you should push for Marvell to give out
> > documentation without them forcing NDAs onto people.
> 
> Are there specific things you're looking for that would require you to
> sign an NDA with Marvell to work on?  That would be useful information
> to help determine where the existing opened code & resources fall short
> and what bits need more transparency.

A driver for their recent Ethernet chipsets, a driver for their SATA
chipsets, a driver for their wireless chipsets, ongoing maintenance
and de magic'ing driver for their Ethernet PHYs.  You'll note
that the author of the Linux driver for the former also signed an NDA.

I work on the OpenBSD kernel in my spare time, we cover most of
the major wireless chipsets or have documentation from vendors without
signing NDAs.  Marvell is one of the main sticking points
and are sadly gaining a lot of marketshare over the last
few years.

But I really think it is in your best interests to not
artifically limit the amount of people who can help you.
Normally people writing drivers have little leverage
with asking vendors to do anything as they aren't seen
as the client.

The folks over at http://www.cuwireless.net/ recently got
a $500,000 US government grant to work on their NetBSD
based mesh routing system, I imagine they would be
quite interested in discussing some of their research
and helping out, given the chance to.

> 
> > Failing that I'm sure there are other vendors
> > who would be willing to be more helpful.
> 
> Possibly, but Marvell had the chip, was quite willing to do the work to
> modify the firmware bits to OLPC specifications, was willing to
> open-source their driver, etc.  Other vendors weren't nearly as willing
> as Marvell was to help the project out, so I'm not so sure your
> assertion here is correct.

I suspect you really wanted to talk to were Zydas, they had
the usb wireless market and were highly regarded.  Now they have
been aquired by Atheros it is unlikely they'll be allowed to
release documentation, source code and allow firmware redistribution
like they have in the past.

Ralink have been very helpful with questions, documentation, access
to engineers and the like in the past.  I suspect they would at least
be interested to hear of the requirements.

Realtek seem to want to help or give you the run around depending
on who you talk to.  They could perhaps be another option though.

VIA have pretty much ignored requests for documentation but
perhaps have some interesting technology.

I guess you really need something with an ARM/MIPS chip
if you want it to route while the main processor is suspended.
Which is rather sad, as that puts things into the arena
of the large companies that implement most of their stack
in the micro and tend to cost more.

> 
> Dan
> 
> [1] compared to, say, the airo driver which was even developed with some
> help from Cisco

I have tried to find documentation on Aironet devices as well, nothing
is out there, again if anyone knows otherwise, I'm all ears. Also I
suspect it was Aironet before Cisco purchased them that would have helped.

Jonathan
Return-Path: jsg@goblin.cx
Delivery-Date: Tue Oct 10 09:09:21 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AF9Jpb010528
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Tue, 10 Oct 2006 09:09:20 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:63158 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GXJEq-00059f-Eh
	for deraadt@cvs.openbsd.org; Tue, 10 Oct 2006 17:09:49 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k9AF9iaf010879
	for <deraadt@cvs.openbsd.org>; Wed, 11 Oct 2006 01:09:44 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k9AF9iH8011091
	for deraadt@cvs.openbsd.org; Wed, 11 Oct 2006 01:09:44 +1000 (EST)
Resent-From: jsg@goblin.cx
Resent-Date: Wed, 11 Oct 2006 01:09:44 +1000
Resent-Message-ID: <20061010150944.GB3250@mail.netspace.net.au>
Resent-To: Theo de Raadt <deraadt@cvs.openbsd.org>
Date: Thu, 14 Sep 2006 22:47:00 +1000
From: Jonathan Gray <jsg@goblin.cx>
To: dcbw@redhat.com, jg@laptop.org, mtosatti@redhat.com
Subject: Marvell 88W8388 documentation
Message-ID: <20060914124700.GA21474@mail.netspace.net.au>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.11

Hi guys,

Please correct me if I am wrong but it seems that documentation
for Marvell's 88W8388's is not publically available without
signing an NDA?

If this is the case why did a project that seems to pride
itself of openess agree to deal with such a company?
Drivers written under NDA tend to be full of magic numbers,
near impossible for others to properly maintain and
totally against the spirit of open projects.

I really think you should push for Marvell to give out
documentation without them forcing NDAs onto people.
Failing that I'm sure there are other vendors
who would be willing to be more helpful.

Jonathan
Return-Path: jsg@goblin.cx
Delivery-Date: Tue Oct 10 09:10:26 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AFAOAw022282
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Tue, 10 Oct 2006 09:10:25 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:60027 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GXJFs-0004c7-Gw
	for deraadt@cvs.openbsd.org; Tue, 10 Oct 2006 17:10:53 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k9AFAmeA023501
	for <deraadt@cvs.openbsd.org>; Wed, 11 Oct 2006 01:10:48 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k9AFAmmJ026343
	for deraadt@cvs.openbsd.org; Wed, 11 Oct 2006 01:10:48 +1000 (EST)
Resent-From: jsg@goblin.cx
Resent-Date: Wed, 11 Oct 2006 01:10:47 +1000
Resent-Message-ID: <20061010151047.GC3250@mail.netspace.net.au>
Resent-To: Theo de Raadt <deraadt@cvs.openbsd.org>
Delivered-To: unknown
Received: from mail.goblin.cx (69.80.208.30) by carla.home with POP3; 14 Sep
  2006 14:16:41 -0000
Received: from alligate2.nshosts.com (unverified [10.0.1.44]) by mail8.nshosts.com
 (Vircom SMTPRS 5.3.232) with ESMTP id <B0108893692@mail8.nshosts.com> for <jsg@goblin.cx>;
 Thu, 14 Sep 2006 08:03:37 -0600
Received: from mx1.redhat.com [66.187.233.31]
	by alligate2.nshosts.com (Alligate(TM) SMTP Gateway v2.6.5.25)
	with ESMPT id <B1398F3F63423200.A671BA117C7A39F3@alligate2.nshosts.com>
	for <jsg@goblin.cx>; Thu, 14 Sep 2006 08:03:28 -0700
Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
	by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8EE3VH8002751;
	Thu, 14 Sep 2006 10:03:31 -0400
Received: from mail.boston.redhat.com (mail.boston.redhat.com [172.16.76.12])
	by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8EE3VfQ008843;
	Thu, 14 Sep 2006 10:03:31 -0400
Received: from [10.13.248.15] (vpn-248-15.boston.redhat.com [10.13.248.15])
	by mail.boston.redhat.com (8.12.8/8.12.8) with ESMTP id k8EE3TY9028201;
	Thu, 14 Sep 2006 10:03:30 -0400
Subject: Re: Marvell 88W8388 documentation
From: Dan Williams <dcbw@redhat.com>
To: Jonathan Gray <jsg@goblin.cx>
Cc: jg@laptop.org, mtosatti@redhat.com
In-Reply-To: <20060914124700.GA21474@mail.netspace.net.au>
References: <20060914124700.GA21474@mail.netspace.net.au>
Content-Type: text/plain
Date: Thu, 14 Sep 2006 10:05:21 -0400
Message-Id: <1158242721.2634.26.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.8.0 (2.8.0-1.fc6) 
Content-Transfer-Encoding: 7bit
X-MXRate-Prob: 0
X-MXRate-Country: US
X-MXRate-Action: NONE
X-Alligate-Grey: Skipped
X-Alligate-In: Passed - Adult: 0 (Req: 100) Spam: 16 (Req: 100) Tot: 16 (Req: 100)
X-Alligate-QueueFile: 010974219.dta
X-Alligate-XFrom: <dcbw@redhat.com> [66.187.233.31] United States (US)
X-Alligate-XTo: <jsg@goblin.cx> (jsg@goblin.cx)


On Thu, 2006-09-14 at 22:47 +1000, Jonathan Gray wrote:
> Hi guys,
> 
> Please correct me if I am wrong but it seems that documentation
> for Marvell's 88W8388's is not publically available without
> signing an NDA?
> 
> If this is the case why did a project that seems to pride
> itself of openess agree to deal with such a company?
> Drivers written under NDA tend to be full of magic numbers,
> near impossible for others to properly maintain and
> totally against the spirit of open projects.

In the very least, the driver is open-source and usage of magic numbers
is no worse than the majority of current Linux wireless drivers, even
those developed from device specifications provided by the manufacturer.
If you look at the source, there's actually an amazing lack of magic
numbers [1], and almost all of the numbers used have meaningful names in
the header files.

Getting specs for the chipset is expected in the near-term, but a lot of
stuff has to happen in parallel here.

> I really think you should push for Marvell to give out
> documentation without them forcing NDAs onto people.

Are there specific things you're looking for that would require you to
sign an NDA with Marvell to work on?  That would be useful information
to help determine where the existing opened code & resources fall short
and what bits need more transparency.

> Failing that I'm sure there are other vendors
> who would be willing to be more helpful.

Possibly, but Marvell had the chip, was quite willing to do the work to
modify the firmware bits to OLPC specifications, was willing to
open-source their driver, etc.  Other vendors weren't nearly as willing
as Marvell was to help the project out, so I'm not so sure your
assertion here is correct.

Dan

[1] compared to, say, the airo driver which was even developed with some
help from Cisco
Return-Path: jsg@goblin.cx
Delivery-Date: Tue Oct 10 09:10:48 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AFAlCA010053
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Tue, 10 Oct 2006 09:10:48 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:51287 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GXJGF-0008BL-Ah
	for deraadt@cvs.openbsd.org; Tue, 10 Oct 2006 17:11:16 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k9AFBBob026830
	for <deraadt@cvs.openbsd.org>; Wed, 11 Oct 2006 01:11:11 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k9AFBBZS032436
	for deraadt@cvs.openbsd.org; Wed, 11 Oct 2006 01:11:11 +1000 (EST)
Resent-From: jsg@goblin.cx
Resent-Date: Wed, 11 Oct 2006 01:11:11 +1000
Resent-Message-ID: <20061010151111.GD3250@mail.netspace.net.au>
Resent-To: Theo de Raadt <deraadt@cvs.openbsd.org>
Delivered-To: unknown
Received: from mail.goblin.cx (69.80.208.30) by carla.home with POP3; 14 Sep
  2006 16:42:17 -0000
Received: from alligate6.nshosts.com (unverified [10.0.1.46]) by mail3.nshosts.com
 (Vircom SMTPRS 5.3.232) with ESMTP id <B0106470759@mail3.nshosts.com> for <jsg@goblin.cx>;
 Thu, 14 Sep 2006 10:27:13 -0600
Received: from mx1.redhat.com [66.187.233.31]
	by alligate6.nshosts.com (Alligate(TM) SMTP Gateway v2.6.5.25)
	with ESMPT id <947057C36B6B2C89.8E6522546AE2DE08@alligate6.nshosts.com>
	for <jsg@goblin.cx>; Thu, 14 Sep 2006 10:23:57 -0700
Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
	by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8EGNxmj030510;
	Thu, 14 Sep 2006 12:23:59 -0400
Received: from mail.boston.redhat.com (mail.boston.redhat.com [172.16.76.12])
	by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8EGNwEt002086;
	Thu, 14 Sep 2006 12:23:58 -0400
Received: from [10.13.248.15] (vpn-248-15.boston.redhat.com [10.13.248.15])
	by mail.boston.redhat.com (8.12.8/8.12.8) with ESMTP id k8EGNrY9014449;
	Thu, 14 Sep 2006 12:23:56 -0400
Subject: Re: Marvell 88W8388 documentation
From: Dan Williams <dcbw@redhat.com>
To: Jonathan Gray <jsg@goblin.cx>
Cc: jg@laptop.org, mtosatti@redhat.com
In-Reply-To: <20060914145626.GA8066@mail.netspace.net.au>
References: <20060914124700.GA21474@mail.netspace.net.au>
	 <1158242721.2634.26.camel@localhost.localdomain>
	 <20060914145626.GA8066@mail.netspace.net.au>
Content-Type: text/plain
Date: Thu, 14 Sep 2006 12:25:44 -0400
Message-Id: <1158251144.4675.4.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.8.0 (2.8.0-1.fc6) 
Content-Transfer-Encoding: 7bit
X-MXRate-Prob: 0
X-MXRate-Country: US
X-MXRate-Action: NONE
X-Alligate-Grey: Skipped
X-Alligate-In: Passed - Adult: 0 (Req: 100) Spam: 18 (Req: 100) Tot: 18 (Req: 100)
X-Alligate-QueueFile: 010315403.dta
X-Alligate-XFrom: <dcbw@redhat.com> [66.187.233.31] United States (US)
X-Alligate-XTo: <jsg@goblin.cx> (jsg@goblin.cx)


On Fri, 2006-09-15 at 00:56 +1000, Jonathan Gray wrote:
> On Thu, Sep 14, 2006 at 10:05:21AM -0400, Dan Williams wrote:
> > 
> > On Thu, 2006-09-14 at 22:47 +1000, Jonathan Gray wrote:
> > > Hi guys,
> > > 
> > > Please correct me if I am wrong but it seems that documentation
> > > for Marvell's 88W8388's is not publically available without
> > > signing an NDA?
> > > 
> > > If this is the case why did a project that seems to pride
> > > itself of openess agree to deal with such a company?
> > > Drivers written under NDA tend to be full of magic numbers,
> > > near impossible for others to properly maintain and
> > > totally against the spirit of open projects.
> > 
> > In the very least, the driver is open-source and usage of magic numbers
> > is no worse than the majority of current Linux wireless drivers, even
> > those developed from device specifications provided by the manufacturer.
> > If you look at the source, there's actually an amazing lack of magic
> > numbers [1], and almost all of the numbers used have meaningful names in
> > the header files.
> > 
> > Getting specs for the chipset is expected in the near-term, but a lot of
> > stuff has to happen in parallel here.
> 
> That's great news.
> 
> > 
> > > I really think you should push for Marvell to give out
> > > documentation without them forcing NDAs onto people.
> > 
> > Are there specific things you're looking for that would require you to
> > sign an NDA with Marvell to work on?  That would be useful information
> > to help determine where the existing opened code & resources fall short
> > and what bits need more transparency.
> 
> A driver for their recent Ethernet chipsets, a driver for their SATA
> chipsets, a driver for their wireless chipsets, ongoing maintenance
> and de magic'ing driver for their Ethernet PHYs.  You'll note
> that the author of the Linux driver for the former also signed an NDA.

Right; that would be nice but everything in that list besides the
wireless driver for the 8388 is beyond our scope.  Hopefully though, the
process of opening up the driver and specs for the 8388, which we have
so far held Marvell's hand through, will show them that it's not painful
and that they have nothing to fear from opening up their stuff.  But
that's all we can do now, and all we have leverage over.

> I work on the OpenBSD kernel in my spare time, we cover most of
> the major wireless chipsets or have documentation from vendors without
> signing NDAs.  Marvell is one of the main sticking points
> and are sadly gaining a lot of marketshare over the last
> few years.
> 
> But I really think it is in your best interests to not
> artifically limit the amount of people who can help you.
> Normally people writing drivers have little leverage
> with asking vendors to do anything as they aren't seen
> as the client.
> 
> The folks over at http://www.cuwireless.net/ recently got
> a $500,000 US government grant to work on their NetBSD
> based mesh routing system, I imagine they would be
> quite interested in discussing some of their research
> and helping out, given the chance to.
> 
> > 
> > > Failing that I'm sure there are other vendors
> > > who would be willing to be more helpful.
> > 
> > Possibly, but Marvell had the chip, was quite willing to do the work to
> > modify the firmware bits to OLPC specifications, was willing to
> > open-source their driver, etc.  Other vendors weren't nearly as willing
> > as Marvell was to help the project out, so I'm not so sure your
> > assertion here is correct.
> 
> I suspect you really wanted to talk to were Zydas, they had
> the usb wireless market and were highly regarded.  Now they have
> been aquired by Atheros it is unlikely they'll be allowed to
> release documentation, source code and allow firmware redistribution
> like they have in the past.
> 
> Ralink have been very helpful with questions, documentation, access
> to engineers and the like in the past.  I suspect they would at least
> be interested to hear of the requirements.
> 
> Realtek seem to want to help or give you the run around depending
> on who you talk to.  They could perhaps be another option though.
> 
> VIA have pretty much ignored requests for documentation but
> perhaps have some interesting technology.
> 
> I guess you really need something with an ARM/MIPS chip
> if you want it to route while the main processor is suspended.
> Which is rather sad, as that puts things into the arena
> of the large companies that implement most of their stack
> in the micro and tend to cost more.
> 
> > 
> > Dan
> > 
> > [1] compared to, say, the airo driver which was even developed with some
> > help from Cisco
> 
> I have tried to find documentation on Aironet devices as well, nothing
> is out there, again if anyone knows otherwise, I'm all ears. Also I
> suspect it was Aironet before Cisco purchased them that would have helped.

There isn't any, and I've tried to get some through Red Hat channels,
even Cisco's IT department wants us to fix up their own driver, but they
have decided the parts are obsolete and do not wish to spend resources
even sending us a PDF of the "Aironet 4500/4800 Developer's Manual"
which is referenced at the top.

Dan
Return-Path: jsg@goblin.cx
Delivery-Date: Tue Oct 10 09:11:02 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AFB0ZQ000255
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Tue, 10 Oct 2006 09:11:02 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:59947 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GXJGS-0006a7-UZ
	for deraadt@cvs.openbsd.org; Tue, 10 Oct 2006 17:11:30 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k9AFBO3C016938
	for <deraadt@cvs.openbsd.org>; Wed, 11 Oct 2006 01:11:24 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k9AFBOFM001736
	for deraadt@cvs.openbsd.org; Wed, 11 Oct 2006 01:11:24 +1000 (EST)
Resent-From: jsg@goblin.cx
Resent-Date: Wed, 11 Oct 2006 01:11:24 +1000
Resent-Message-ID: <20061010151124.GE3250@mail.netspace.net.au>
Resent-To: Theo de Raadt <deraadt@cvs.openbsd.org>
Delivered-To: unknown
Received: from mail.goblin.cx (69.80.208.30) by carla.home with POP3; 14 Sep
  2006 15:32:56 -0000
Received: from alligate5.nshosts.com (unverified [10.0.1.45]) by MAIL9.nshosts.com
 (Vircom SMTPRS 5.3.232) with ESMTP id <B0128408195@MAIL9.nshosts.com> for <jsg@goblin.cx>;
 Thu, 14 Sep 2006 09:12:44 -0600
Received: from alnrmhc14.comcast.net [206.18.177.54]
	by alligate5.nshosts.com (Alligate(TM) SMTP Gateway v2.6.5.25)
	with ESMPT id <B5B8E76A290912FB.875165B0511426A2@alligate5.nshosts.com>
	for <jsg@goblin.cx>; Thu, 14 Sep 2006 09:15:48 -0700
Received: from wireless-19-34.media.mit.edu ([18.85.19.34])
          by comcast.net (alnrmhc14) with SMTP
          id <20060914151554b1400m146fe>; Thu, 14 Sep 2006 15:15:54 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: Jonathan Gray <jsg@goblin.cx>
Cc: Dan Williams <dcbw@redhat.com>, mtosatti@redhat.com
In-Reply-To: <20060914145626.GA8066@mail.netspace.net.au>
References: <20060914124700.GA21474@mail.netspace.net.au>
	 <1158242721.2634.26.camel@localhost.localdomain>
	 <20060914145626.GA8066@mail.netspace.net.au>
Content-Type: text/plain
Organization: OLPC
Date: Thu, 14 Sep 2006 11:15:53 -0400
Message-Id: <1158246953.5871.215.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit
X-MXRate-Prob: -1
X-MXRate-Country: US
X-MXRate-Action: ALLOW
X-Alligate-Grey: Skipped
X-Alligate-In: Passed - Adult: 0 (Req: 100) Spam: 0 (Req: 100) Tot: 0 (Req: 100)
X-Alligate-QueueFile: 020028166.dta
X-Alligate-XFrom: <jg@laptop.org> [206.18.177.54] United States (US)
X-Alligate-XTo: <jsg@goblin.cx> (jsg@goblin.cx)


On Fri, 2006-09-15 at 00:56 +1000, Jonathan Gray wrote:

> 
> A driver for their recent Ethernet chipsets, a driver for their SATA
> chipsets, a driver for their wireless chipsets, ongoing maintenance
> and de magic'ing driver for their Ethernet PHYs.  You'll note
> that the author of the Linux driver for the former also signed an NDA.
> 
> I work on the OpenBSD kernel in my spare time, we cover most of
> the major wireless chipsets or have documentation from vendors without
> signing NDAs.  Marvell is one of the main sticking points
> and are sadly gaining a lot of marketshare over the last
> few years.
> 
> But I really think it is in your best interests to not
> artifically limit the amount of people who can help you.
> Normally people writing drivers have little leverage
> with asking vendors to do anything as they aren't seen
> as the client.

We're very aware of this.  That's why we're working on the issues around
this.

I just wanted you to understand that there were no alternatives, and
that Marvell could not give us all we want; it wasn't under their
control.

> 
> The folks over at http://www.cuwireless.net/ recently got
> a $500,000 US government grant to work on their NetBSD
> based mesh routing system, I imagine they would be
> quite interested in discussing some of their research
> and helping out, given the chance to.
> 
I think they have been in touch with Michailis.
> > 
> > > Failing that I'm sure there are other vendors
> > > who would be willing to be more helpful.
> > 
> > Possibly, but Marvell had the chip, was quite willing to do the work to
> > modify the firmware bits to OLPC specifications, was willing to
> > open-source their driver, etc.  Other vendors weren't nearly as willing
> > as Marvell was to help the project out, so I'm not so sure your
> > assertion here is correct.
> 
> I suspect you really wanted to talk to were Zydas, they had
> the usb wireless market and were highly regarded.  Now they have
> been aquired by Atheros it is unlikely they'll be allowed to
> release documentation, source code and allow firmware redistribution
> like they have in the past.
> 
> Ralink have been very helpful with questions, documentation, access
> to engineers and the like in the past.  I suspect they would at least
> be interested to hear of the requirements.
> 
> Realtek seem to want to help or give you the run around depending
> on who you talk to.  They could perhaps be another option though.
> 
> VIA have pretty much ignored requests for documentation but
> perhaps have some interesting technology.

As of this spring, *no* other vendor had the capability to allow the
mesh code to run with the main processor off; Michails was/is very in
touch with what the different vendors are doing.  Athleros was unwilling
to commit to being able to do this even in their next generation (which
would have been to late for us).

That the Marvell chip *is* capable enough to run autonomously was a
great surprise; Marvell has previously sold only to the embedded market,
and has not competed for desktop/laptop business before this.

We let them all know what we need when they ask.

And USB is *not* desirable; it just happens to be the only bus available
on this generation part in common with the Geode.  Future parts will be
interfaced via different buses.

> 
> I guess you really need something with an ARM/MIPS chip
> if you want it to route while the main processor is suspended.

Yes, this is *absolutely essential* to us.

It is the difference between 300mw power consumption and 2-3 watts power
consumption.

If we were in the 2 watt range (minimum power with the main CPU on,
etc.), the kids would have to disable their machines from the mesh all
the time to conserve battery.  A small kid can only generate 7-10 watts.
So, from one point of view, this capability is one of the 3 things that
make this machine truly novel and desirable.

> Which is rather sad, as that puts things into the arena
> of the large companies that implement most of their stack
> in the micro and tend to cost more.
> 

Actually, Marvell was competitive on prices as well, with the less
capable chips (e.g. Athleros).  I can't tell you what price we got.
                              Regards,
                                      - Jim



> > 
> > Dan
> > 
> > [1] compared to, say, the airo driver which was even developed with some
> > help from Cisco
> 
> I have tried to find documentation on Aironet devices as well, nothing
> is out there, again if anyone knows otherwise, I'm all ears. Also I
> suspect it was Aironet before Cisco purchased them that would have helped.
> 
> Jonathan
-- 
Jim Gettys
One Laptop Per Child
Return-Path: jsg@goblin.cx
Delivery-Date: Tue Oct 10 09:11:23 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AFBMg5028682
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Tue, 10 Oct 2006 09:11:23 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:61703 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GXJGo-0006RR-D2
	for deraadt@cvs.openbsd.org; Tue, 10 Oct 2006 17:11:51 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k9AFBhMq008885
	for <deraadt@cvs.openbsd.org>; Wed, 11 Oct 2006 01:11:43 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k9AFBhO1028197
	for deraadt@cvs.openbsd.org; Wed, 11 Oct 2006 01:11:43 +1000 (EST)
Resent-From: jsg@goblin.cx
Resent-Date: Wed, 11 Oct 2006 01:11:43 +1000
Resent-Message-ID: <20061010151143.GF3250@mail.netspace.net.au>
Resent-To: Theo de Raadt <deraadt@cvs.openbsd.org>
Delivered-To: unknown
Received: from mail.goblin.cx (69.80.208.30) by carla.home with POP3; 14 Sep
  2006 14:56:49 -0000
Received: from alligate5.nshosts.com (unverified [10.0.1.45]) by MAIL9.nshosts.com
 (Vircom SMTPRS 5.3.232) with ESMTP id <B0128402824@MAIL9.nshosts.com> for <jsg@goblin.cx>;
 Thu, 14 Sep 2006 08:13:32 -0600
Received: from alnrmhc12.comcast.net [204.127.225.92]
	by alligate5.nshosts.com (Alligate(TM) SMTP Gateway v2.6.5.25)
	with ESMPT id <A258CA505ADC8F30.B57D355315FBBB76@alligate5.nshosts.com>
	for <jsg@goblin.cx>; Thu, 14 Sep 2006 08:16:26 -0700
Received: from wireless-19-34.media.mit.edu ([18.85.19.34])
          by comcast.net (alnrmhc12) with SMTP
          id <20060914141632b1200pcvppe>; Thu, 14 Sep 2006 14:16:32 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: Dan Williams <dcbw@redhat.com>
Cc: Jonathan Gray <jsg@goblin.cx>, mtosatti@redhat.com
In-Reply-To: <1158242721.2634.26.camel@localhost.localdomain>
References: <20060914124700.GA21474@mail.netspace.net.au>
	 <1158242721.2634.26.camel@localhost.localdomain>
Content-Type: text/plain
Organization: OLPC
Date: Thu, 14 Sep 2006 10:16:30 -0400
Message-Id: <1158243391.5871.196.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit
X-MXRate-Prob: -1
X-MXRate-Country: US
X-MXRate-Action: ALLOW
X-Alligate-Grey: Skipped
X-Alligate-In: Passed - Adult: 0 (Req: 100) Spam: 0 (Req: 100) Tot: 0 (Req: 100)
X-Alligate-QueueFile: 020021598.dta
X-Alligate-XFrom: <jg@laptop.org> [204.127.225.92] United States (US)
X-Alligate-XTo: <jsg@goblin.cx> (jsg@goblin.cx)


On Thu, 2006-09-14 at 10:05 -0400, Dan Williams wrote:

> > Failing that I'm sure there are other vendors
> > who would be willing to be more helpful.
> 
> Possibly, but Marvell had the chip, was quite willing to do the work to
> modify the firmware bits to OLPC specifications, was willing to
> open-source their driver, etc.  Other vendors weren't nearly as willing
> as Marvell was to help the project out, so I'm not so sure your
> assertion here is correct.
> 

It is moot: no other chips had the capability we needed present in the
Marvell chip.  

The other vendors (which in general are much less helpful to free
software) were not even willing to consider adding the capability in
their next generation, and were suffering a severe case of "hubris",
that we could not possibly go with someone else's chip.
                             - Jim

-- 
Jim Gettys
One Laptop Per Child
Replied: Wed, 04 Oct 2006 12:38:34 -0600
Replied: "Jonathan Gray <jsg@goblin.cx> dcbw@redhat.com, jg@laptop.org, mtosatti@redhat.com"
Return-Path: jsg@goblin.cx
Delivery-Date: Thu Sep 14 06:47:19 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k8EClHnM017171
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Thu, 14 Sep 2006 06:47:19 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:61248 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GNqcU-0003vW-Je; Thu, 14 Sep 2006 14:47:08 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k8ECl10M027118;
	Thu, 14 Sep 2006 22:47:01 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k8ECl0Qn006521;
	Thu, 14 Sep 2006 22:47:00 +1000 (EST)
Date: Thu, 14 Sep 2006 22:47:00 +1000
From: Jonathan Gray <jsg@goblin.cx>
To: dcbw@redhat.com, jg@laptop.org, mtosatti@redhat.com
Subject: Marvell 88W8388 documentation
Message-ID: <20060914124700.GA21474@mail.netspace.net.au>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.11

Hi guys,

Please correct me if I am wrong but it seems that documentation
for Marvell's 88W8388's is not publically available without
signing an NDA?

If this is the case why did a project that seems to pride
itself of openess agree to deal with such a company?
Drivers written under NDA tend to be full of magic numbers,
near impossible for others to properly maintain and
totally against the spirit of open projects.

I really think you should push for Marvell to give out
documentation without them forcing NDAs onto people.
Failing that I'm sure there are other vendors
who would be willing to be more helpful.

Jonathan
Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Wed Oct  4 12:38:36 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k94IcY6j006189;
	Wed, 4 Oct 2006 12:38:34 -0600 (MDT)
Message-Id: <200610041838.k94IcY6j006189@cvs.openbsd.org>
To: Jonathan Gray <jsg@goblin.cx>
cc: dcbw@redhat.com, jg@laptop.org, mtosatti@redhat.com
cc: rms@gnu.org
cc: deraadt
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Thu, 14 Sep 2006 22:47:00 +1000."
             <20060914124700.GA21474@mail.netspace.net.au> 
Date: Wed, 04 Oct 2006 12:38:34 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> Please correct me if I am wrong but it seems that documentation
> for Marvell's 88W8388's is not publically available without
> signing an NDA?
> 
> If this is the case why did a project that seems to pride
> itself of openess agree to deal with such a company?
> Drivers written under NDA tend to be full of magic numbers,
> near impossible for others to properly maintain and
> totally against the spirit of open projects.
> 
> I really think you should push for Marvell to give out
> documentation without them forcing NDAs onto people.
> Failing that I'm sure there are other vendors
> who would be willing to be more helpful.

Jonathan showed me this mail he sent you about your NDA "cooperation"
with Marvell for the wireless chip that you want to use for the OLPC
project, so that Marvell will write you special hacks to do low-power
mesh networking while the main cpu is powered off.  This does not
gaurantee Marvell is going to be open and release documentation for
their chips though.

When large players like you make such private agreements with such
secretive vendors, you work against our common goals of getting more
open documentation for devices.  It is only with open documentation
that OS groups can increase device support, and later -- keep the
device drivers reliable after the device is EOL'd by the vendor.

I've heard claims that you (OLPC members, Red Hat employees) think
this relationship with Marvell will eventually prompt/teach them to be
more open in time.  Do you not realize how much of a DELUSION the
history of free/open operating systems shows that point of view to be?
Very few chip vendors have ever opened up unless they were pushed, let
alone Marvell (who I  am led to believe also has NDA's with Red Hat
employees for the Marvell Yukon/Yukon 2 gigabit ethernet chips --
again one of the few closed chips).

It is clear that your choices are not about opening up Marvell, but
simply commercially expedient and hurtful to our common cause.  You
came to Marvell with potential sales of millions of units, and then
completely wimped out in demanding ideals that you say you share with
the community.  Now other companies like Intel, Broadcom, and TI can
say to us "Why should we open up, Marvell did not have to".

So I must say I am extremely dissapointed you have chosen to work
against the very obvious goals of "open", and I hope that in time you
are made to feel ashamed of the choice you have made.
Replied: Wed, 04 Oct 2006 13:41:36 -0600
Replied: "jg@laptop.org Jonathan Gray <jsg@goblin.cx>, dcbw@redhat.com, mtosatti@redhat.com,
Replied: rms@gnu.org"
Return-Path: jg@laptop.org
Delivery-Date: Wed Oct  4 13:10:31 2006
Received: from alnrmhc14.comcast.net (alnrmhc14.comcast.net [204.127.225.94])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k94JAUJx023273
	for <deraadt@cvs.openbsd.org>; Wed, 4 Oct 2006 13:10:31 -0600 (MDT)
Received: from wireless-81.media.mit.edu ([18.85.18.81])
          by comcast.net (alnrmhc14) with SMTP
          id <20061004191003b1400kgl8ne>; Wed, 4 Oct 2006 19:10:24 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: Theo de Raadt <deraadt@cvs.openbsd.org>
Cc: Jonathan Gray <jsg@goblin.cx>, dcbw@redhat.com, mtosatti@redhat.com,
        rms@gnu.org
In-Reply-To: <200610041838.k94IcY6j006189@cvs.openbsd.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
Content-Type: text/plain
Organization: OLPC
Date: Wed, 04 Oct 2006 15:10:02 -0400
Message-Id: <1159989002.6029.710.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

Theo,

You may not believe this, but we are continuing to work on Marvell
(push, is the term you use); it has not fallen off our list at all and
is continuing to be worked by us vigorously.

And there is a reality that a piece of this is out of Marvell's short
term control: their firmware was based on a commercial embedded OS, not
theirs to give away.  There may be long term solutions here by replacing
all such code, but no short term ones.  We could not ask Marvell for
something they could not give us.

You also need to understand that this component was/is literally the
only game in town to achieve our goals: *there are no other
alternatives*.  We had no choice at all.  Not Intel.  Not Broadcom. Not
Athleros.  That Marvell chip is currently a unique part, *and they know
it*.  Negotiating positions are much stronger when you have
alternatives, and we did not. For just about everything else, we were
able to negotiate from strength; but not for this component.
                                  Best regards,
                                             - Jim Gettys





On Wed, 2006-10-04 at 12:38 -0600, Theo de Raadt wrote:
> > Please correct me if I am wrong but it seems that documentation
> > for Marvell's 88W8388's is not publically available without
> > signing an NDA?
> > 
> > If this is the case why did a project that seems to pride
> > itself of openess agree to deal with such a company?
> > Drivers written under NDA tend to be full of magic numbers,
> > near impossible for others to properly maintain and
> > totally against the spirit of open projects.
> > 
> > I really think you should push for Marvell to give out
> > documentation without them forcing NDAs onto people.
> > Failing that I'm sure there are other vendors
> > who would be willing to be more helpful.
> 
> Jonathan showed me this mail he sent you about your NDA "cooperation"
> with Marvell for the wireless chip that you want to use for the OLPC
> project, so that Marvell will write you special hacks to do low-power
> mesh networking while the main cpu is powered off.  This does not
> gaurantee Marvell is going to be open and release documentation for
> their chips though.
> 
> When large players like you make such private agreements with such
> secretive vendors, you work against our common goals of getting more
> open documentation for devices.  It is only with open documentation
> that OS groups can increase device support, and later -- keep the
> device drivers reliable after the device is EOL'd by the vendor.
> 
> I've heard claims that you (OLPC members, Red Hat employees) think
> this relationship with Marvell will eventually prompt/teach them to be
> more open in time.  Do you not realize how much of a DELUSION the
> history of free/open operating systems shows that point of view to be?
> Very few chip vendors have ever opened up unless they were pushed, let
> alone Marvell (who I  am led to believe also has NDA's with Red Hat
> employees for the Marvell Yukon/Yukon 2 gigabit ethernet chips --
> again one of the few closed chips).
> 
> It is clear that your choices are not about opening up Marvell, but
> simply commercially expedient and hurtful to our common cause.  You
> came to Marvell with potential sales of millions of units, and then
> completely wimped out in demanding ideals that you say you share with
> the community.  Now other companies like Intel, Broadcom, and TI can
> say to us "Why should we open up, Marvell did not have to".
> 
> So I must say I am extremely dissapointed you have chosen to work
> against the very obvious goals of "open", and I hope that in time you
> are made to feel ashamed of the choice you have made.
-- 
Jim Gettys
One Laptop Per Child


Replied: Thu, 05 Oct 2006 16:16:32 -0600
Replied: "jg@laptop.org Jonathan Gray <jsg@goblin.cx>, dcbw@redhat.com, mtosatti@redhat.com,
Replied: rms@gnu.org"
Return-Path: jg@laptop.org
Delivery-Date: Wed Oct  4 14:20:48 2006
Received: from alnrmhc14.comcast.net (alnrmhc14.comcast.net [206.18.177.54])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k94KKmIe026282
	for <deraadt@cvs.openbsd.org>; Wed, 4 Oct 2006 14:20:48 -0600 (MDT)
Received: from wireless-81.media.mit.edu ([18.85.18.81])
          by comcast.net (alnrmhc14) with SMTP
          id <20061004202040b1400kgp3qe>; Wed, 4 Oct 2006 20:20:42 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: Theo de Raadt <deraadt@cvs.openbsd.org>
Cc: Jonathan Gray <jsg@goblin.cx>, dcbw@redhat.com, mtosatti@redhat.com,
        rms@gnu.org
In-Reply-To: <200610041941.k94JfaPt019572@cvs.openbsd.org>
References: <200610041941.k94JfaPt019572@cvs.openbsd.org>
Content-Type: text/plain
Organization: OLPC
Date: Wed, 04 Oct 2006 16:20:36 -0400
Message-Id: <1159993236.6029.758.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Wed, 2006-10-04 at 13:41 -0600, Theo de Raadt wrote:
> > You may not believe this, but we are continuing to work on Marvell
> > (push, is the term you use); it has not fallen off our list at all and
> > is continuing to be worked by us vigorously.
> >
> > And there is a reality that a piece of this is out of Marvell's short
> > term control: their firmware was based on a commercial embedded OS, not
> > theirs to give away.  There may be long term solutions here by replacing
> > all such code, but no short term ones.  We could not ask Marvell for
> > something they could not give us.
> 
> Well, your second paragraph just made it abundantly clear that Marvell
> will never release documentation or a distributable firmware image.  

I said that they cannot distribute their current firmware, because they
do not own the rights to part of it.  I did not say that firmware could
not be released someday, just that their current firmware is entangled
in ways that they *cannot* quickly disentangle.  We deal with the world
the way it is, rather than the way we'd like it to be.

> I
> have heard this same excuse from many American wireless chip vendors
> (and never from any non-American wireless chip vendors).  And yet,
> since you did not know the lines they would play you with, you have
> not forced them to write a replacement firmware, nor have you forced
> them to ever hand out documentation to get something like that
> written.  You have gotten nothing but a specially hacked driver,
> helped by one or two people at Marvell, running with a special
> firmware which Red Hat will then sign a contract to get distribution
> rights for (and noone else will be able to distribute it).  Am I not
> correct?  Do you really see it going anywhere else?  
> 
> Furthermore, it seems you are saying that the OLPC will not be based
> on fully open or free software in the end.  And you are saying that
> your financial clout of millions of chips was not enough to put you in
> ANY position of power.

No, I was saying our options was limited from the start of the reality
of Marvell's code base, and the lack of alternatives.  There was not
time to start from a clean slate for the firmware for the part.

> 
> The OLPC project from the start gained a good reputation in the
> open/free software community from acting as if it will be open & free;
> the fact is it is not based on the open & free principles of our
> greater community.  People understood that this would all be based on
> free stuff, and that source produced for this project will all find
> it's way back into the ecosystem.  But that is not a requirement of your
> process -- it has been downgraded to something you only hope for.
> 
> Why don't you tell people the truth -- that OLPC will very likely
> depend on closed parts.  That currently there are expedient steps
> being taken that may not gaurantee a fully open platform in the end.
> If you will not, should I go make public statements about it?  I am
> willing to explain the problem to the masses for you.


You can believe me when I say that we have not let the issue drop with
Marvell, or you may not.  I repeat, we have not let the issue drop.

Here's a bit more detail of what is going on behind the scenes: we do
have a plan underway to start by getting an open version of the MIT
Roofnet software (the mesh networking firmware) out. Michailis Bletsas
here is organizing this effort.

This is a start, but not the end point that either you or us desire, and
we do not expect the work to end there.

> 
> > You also need to understand that this component was/is literally the
> > only game in town to achieve our goals: *there are no other
> > alternatives*.  We had no choice at all.  Not Intel.  Not Broadcom. Not
> > Athleros.  That Marvell chip is currently a unique part, *and they know
> > it*.  Negotiating positions are much stronger when you have
> > alternatives, and we did not. For just about everything else, we were
> > able to negotiate from strength; but not for this component.
> 
> Frankly, now that our team has reverse engineered a multitude of
> wireless chips, I am sure you are talking with any knowledge of the
> domain.  To pick just one example of a choice you had you could have
> funded the prism54 people (who already have the skills) to build a
> replacement firmware for any other chip vendor you partially opened up
> with your financial clout, since about half of the other chipset
> vendors also have arm or mips cpus on their 802.11 chips, which can
> run even when the host is turned off.  There is nothing unique about
> the Marvell chip.  It's just a processor that can can run when the
> main cpu is turned off, and that just requires that USB or other power
> be maintained.  That's not a big deal.

At a price point we could afford, *there are no alternatives right now*.
It is in fact a unique part at anything like the price we got, working
at the power consumption levels it does.

If there are people interested in helping the open firmware effort,
Michailis Bletsas is the person to contact.

> 
> According to the latest estimates you are publishing, you are talking
> at least 8 million Marvell chips.  And you gain nothing except two
> minor slaves at Marvell?
> 
> I think you went from great potential strength to absolute weakness in
> dealing with a vendor; used the open source community to gather
> momentum you did not deserve; have hurt our efforts at working with
> other vendors.  And you did not even apologize for that damaging
> effect you are having on the open/free source community's efforts to
> free up more chips!
> 
> Quite frankly the typical free/open operating system user needs good
> wireless support from their operating system more than some commercial
> spin-off project from Red Hat needs support for one locked-down chip.
> Or have you forgotten that we were supposed to be a community?
> 
> Yes, it sounds pretty harsh when stated that way.  But can I ask
> precisely when you lost your zeal to even _try_ to live up to the
> commonly held goals of the community?

In the end, OLPC is a project to help the children of the world to
*learn*. Free and open software is a means to an end, rather than the
sole end unto itself for OLPC.

It is an important aspect of kids learning that they be able to see how
computers work, but we had to choose getting systems into the hands of
kids where almost all source is available sooner, or not getting systems
out at all for months longer (later), or which would not be usable with
human power that is needed for a large fraction of the kids on the
planet, what did you expect our priorities to be?
                                       Regards,
                                               - Jim Gettys

-- 
Jim Gettys
One Laptop Per Child


Replied: Thu, 05 Oct 2006 11:31:28 -0600
Replied: "rms@gnu.org jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: rms@gnu.org
Delivery-Date: Thu Oct  5 10:45:59 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95Gjxk9029590
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 10:45:59 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GVWLs-0002y4-HY; Thu, 05 Oct 2006 12:45:40 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: jg@laptop.org
CC: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com, rms@gnu.org
In-reply-to: <1159989002.6029.710.camel@localhost.localdomain> (message from
	Jim Gettys on Wed, 04 Oct 2006 15:10:02 -0400)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <200610041838.k94IcY6j006189@cvs.openbsd.org> <1159989002.6029.710.camel@localhost.localdomain>
Message-Id: <E1GVWLs-0002y4-HY@fencepost.gnu.org>
Date: Thu, 05 Oct 2006 12:45:40 -0400

    And there is a reality that a piece of this is out of Marvell's short
    term control: their firmware was based on a commercial embedded OS, 

I presume you mean that this embedded OS is proprietary.  Whether it
is commercial (developed as a business) is neither here nor there.
See http://www.gnu.org/philosophy/words-to-avoid.html#Commercial.

									not
    theirs to give away.

Whether they release the code is not the crucial issue.  What we need
above all is the full specs of their chip, not under NDA.  With that,
we could write our own code.

Sure, it would be even better if they release the complete code of the
program that runs.  That would be a bonus.  But we don't _need_ that.

An intermediate option would be to release only their part of the
code.  This would be a partial bonus, nicer than no bonus at all.
But still not necessary.

It is well to ask them for a bonus if you think they might give it.
But let's keep the focus on the crucial issue: getting what we really
need.

      Negotiating positions are much stronger when you have
    alternatives, and we did not. For just about everything else, we were
    able to negotiate from strength; but not for this component.

The alternative I would have chosen is to give up the mesh feature.  I
would choose that rather than use non-free software.  That would be a
substantial sacrifice, but sometimes freedom requires a sacrifice.

The willingness to make such sacrifices would increase your
negotiating power to get what you want without a sacrifice.

In the longer term, there may be other potential alternatives that
would be less of a sacrifice.  Are there any other companies
interested in developing a part that could compete with this one?
Getting in on the plans early, you could work with them to get the
right outcome.

Return-Path: rms@gnu.org
Delivery-Date: Thu Oct  5 10:46:20 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95GkK7x014606
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 10:46:20 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GVWLz-0002z5-0u; Thu, 05 Oct 2006 12:45:47 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: Theo de Raadt <deraadt@cvs.openbsd.org>
CC: jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
cc: rms@gnu.org
In-reply-to: <200610041941.k94JfaPt019572@cvs.openbsd.org> (message from Theo
	de Raadt on Wed, 04 Oct 2006 13:41:36 -0600)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References:  <200610041941.k94JfaPt019572@cvs.openbsd.org>
Message-Id: <E1GVWLz-0002z5-0u@fencepost.gnu.org>
Date: Thu, 05 Oct 2006 12:45:47 -0400

    The OLPC project from the start gained a good reputation in the
    open/free software community from acting as if it will be open & free;
    the fact is it is not based on the open & free principles of our
    greater community.

Hear, hear!
Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Thu Oct  5 11:49:51 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95HnnNs012837
	for <deraadt>; Thu, 5 Oct 2006 11:49:51 -0600 (MDT)
Message-Id: <200610051749.k95HnnNs012837@cvs.openbsd.org>
Date: Thu, 05 Oct 2006 11:49:49 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Letter to OLPC
BCC:

------- Blind-Carbon-Copy

To: lwn@lwn.net, jeremy@kerneltrap.org, sam@gnubies.com,
    jem@thejemreport.com
Subject: Letter to OLPC
Date: Thu, 05 Oct 2006 11:49:49 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

I have decided to make public this letter which I sent to the OLPC
("One Laptop Per Child" group, which is strongly associated with Red
Hat.

There have been replies to it by both Jim Gettys (argueing that their
expediency is justified) and RMS (agreeing strongly with my point of
view), but I will not disclose their letters.

I am getting really tired of "open source" people who work against the
open source community.  Our little group can probably take credit for
having "opened up" more wireless devices than the rest of the
community, and therefore we feel we have a better grasp of the damage
OLPC has done here.  Our reverse engineering and documentation efforts
will in time help all free software projects.

Please take note, and publish if you wish.  Thanks.

- ---
To: Jonathan Gray <jsg@goblin.cx>
cc: dcbw@redhat.com, jg@laptop.org, mtosatti@redhat.com
cc: rms@gnu.org
cc: deraadt
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Thu, 14 Sep 2006 22:47:00 +1000."
             <20060914124700.GA21474@mail.netspace.net.au> 
Date: Wed, 04 Oct 2006 12:38:34 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> Please correct me if I am wrong but it seems that documentation
> for Marvell's 88W8388's is not publically available without
> signing an NDA?
> 
> If this is the case why did a project that seems to pride
> itself of openess agree to deal with such a company?
> Drivers written under NDA tend to be full of magic numbers,
> near impossible for others to properly maintain and
> totally against the spirit of open projects.
> 
> I really think you should push for Marvell to give out
> documentation without them forcing NDAs onto people.
> Failing that I'm sure there are other vendors
> who would be willing to be more helpful.

Jonathan showed me this mail he sent you about your NDA "cooperation"
with Marvell for the wireless chip that you want to use for the OLPC
project, so that Marvell will write you special hacks to do low-power
mesh networking while the main cpu is powered off.  This does not
gaurantee Marvell is going to be open and release documentation for
their chips though.

When large players like you make such private agreements with such
secretive vendors, you work against our common goals of getting more
open documentation for devices.  It is only with open documentation
that OS groups can increase device support, and later -- keep the
device drivers reliable after the device is EOL'd by the vendor.

I've heard claims that you (OLPC members, Red Hat employees) think
this relationship with Marvell will eventually prompt/teach them to be
more open in time.  Do you not realize how much of a DELUSION the
history of free/open operating systems shows that point of view to be?
Very few chip vendors have ever opened up unless they were pushed, let
alone Marvell (who I  am led to believe also has NDA's with Red Hat
employees for the Marvell Yukon/Yukon 2 gigabit ethernet chips --
again one of the few closed chips).

It is clear that your choices are not about opening up Marvell, but
simply commercially expedient and hurtful to our common cause.  You
came to Marvell with potential sales of millions of units, and then
completely wimped out in demanding ideals that you say you share with
the community.  Now other companies like Intel, Broadcom, and TI can
say to us "Why should we open up, Marvell did not have to".

So I must say I am extremely dissapointed you have chosen to work
against the very obvious goals of "open", and I hope that in time you
are made to feel ashamed of the choice you have made.

------- End of Blind-Carbon-Copy
Return-Path: owner-misc+M37805@openbsd.org
Delivery-Date: Thu Oct  5 11:58:32 2006
Received: from shear.ucar.edu (shear.ucar.edu [192.43.244.163])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95HwV74009563;
	Thu, 5 Oct 2006 11:58:32 -0600 (MDT)
Received: from openbsd.org (localhost.ucar.edu [127.0.0.1])
	by shear.ucar.edu (8.13.8/8.13.6) with ESMTP id k95HsCIt004561;
	Thu, 5 Oct 2006 11:54:12 -0600 (MDT)
Received: from cvs.openbsd.org (cvs.openbsd.org [199.185.137.3])
	by shear.ucar.edu (8.13.8/8.13.6) with ESMTP id k95HotIb011263 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=FAIL)
	for <misc@shear.ucar.edu>; Thu, 5 Oct 2006 11:50:55 -0600 (MDT)
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95Hos0I019862
	for <misc>; Thu, 5 Oct 2006 11:50:54 -0600 (MDT)
Message-Id: <200610051750.k95Hos0I019862@cvs.openbsd.org>
To: misc@cvs.openbsd.org
Subject: Letter to OLPC
Date: Thu, 05 Oct 2006 11:50:54 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
X-Loop: misc@openbsd.org
Precedence: list
Sender: owner-misc@openbsd.org

I have decided to make public this letter which I sent to the OLPC
("One Laptop Per Child" group, which is strongly associated with Red
Hat.

There have been replies to it by both Jim Gettys (argueing that their
expediency is justified) and RMS (agreeing strongly with my point of
view), but I will not disclose their letters.

I am getting really tired of "open source" people who work against the
open source community.  Our little group can probably take credit for
having "opened up" more wireless devices than the rest of the
community, and therefore we feel we have a better grasp of the damage
OLPC has done here.  Our reverse engineering and documentation efforts
will in time help all free software projects.

Please take note, and publish if you wish.  Thanks.

---
To: Jonathan Gray <jsg@goblin.cx>
cc: dcbw@redhat.com, jg@laptop.org, mtosatti@redhat.com
cc: rms@gnu.org
cc: deraadt
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Thu, 14 Sep 2006 22:47:00 +1000."
             <20060914124700.GA21474@mail.netspace.net.au> 
Date: Wed, 04 Oct 2006 12:38:34 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> Please correct me if I am wrong but it seems that documentation
> for Marvell's 88W8388's is not publically available without
> signing an NDA?
> 
> If this is the case why did a project that seems to pride
> itself of openess agree to deal with such a company?
> Drivers written under NDA tend to be full of magic numbers,
> near impossible for others to properly maintain and
> totally against the spirit of open projects.
> 
> I really think you should push for Marvell to give out
> documentation without them forcing NDAs onto people.
> Failing that I'm sure there are other vendors
> who would be willing to be more helpful.

Jonathan showed me this mail he sent you about your NDA "cooperation"
with Marvell for the wireless chip that you want to use for the OLPC
project, so that Marvell will write you special hacks to do low-power
mesh networking while the main cpu is powered off.  This does not
gaurantee Marvell is going to be open and release documentation for
their chips though.

When large players like you make such private agreements with such
secretive vendors, you work against our common goals of getting more
open documentation for devices.  It is only with open documentation
that OS groups can increase device support, and later -- keep the
device drivers reliable after the device is EOL'd by the vendor.

I've heard claims that you (OLPC members, Red Hat employees) think
this relationship with Marvell will eventually prompt/teach them to be
more open in time.  Do you not realize how much of a DELUSION the
history of free/open operating systems shows that point of view to be?
Very few chip vendors have ever opened up unless they were pushed, let
alone Marvell (who I  am led to believe also has NDA's with Red Hat
employees for the Marvell Yukon/Yukon 2 gigabit ethernet chips --
again one of the few closed chips).

It is clear that your choices are not about opening up Marvell, but
simply commercially expedient and hurtful to our common cause.  You
came to Marvell with potential sales of millions of units, and then
completely wimped out in demanding ideals that you say you share with
the community.  Now other companies like Intel, Broadcom, and TI can
say to us "Why should we open up, Marvell did not have to".

So I must say I am extremely dissapointed you have chosen to work
against the very obvious goals of "open", and I hope that in time you
are made to feel ashamed of the choice you have made.

Replied: Thu, 05 Oct 2006 14:15:01 -0600
Replied: "Dan Williams <dcbw@redhat.com> Jonathan Gray <jsg@goblin.cx>, jg@laptop.org, mtosatti@redhat.com,
Replied: rms@gnu.org, Chris Blizzard <blizzard@redhat.com>"
Return-Path: dcbw@redhat.com
Delivery-Date: Thu Oct  5 13:04:39 2006
Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95J4cme025826
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 13:04:39 -0600 (MDT)
Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
	by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k95J4WCG022327;
	Thu, 5 Oct 2006 15:04:32 -0400
Received: from mail.boston.redhat.com (mail.boston.redhat.com [172.16.76.12])
	by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k95J4Vii003713;
	Thu, 5 Oct 2006 15:04:31 -0400
Received: from [10.13.248.31] (vpn-248-31.boston.redhat.com [10.13.248.31])
	by mail.boston.redhat.com (8.12.8/8.12.8) with ESMTP id k95J4UX2004144;
	Thu, 5 Oct 2006 15:04:30 -0400
Subject: Re: Marvell 88W8388 documentation
From: Dan Williams <dcbw@redhat.com>
To: Theo de Raadt <deraadt@cvs.openbsd.org>
Cc: Jonathan Gray <jsg@goblin.cx>, jg@laptop.org, mtosatti@redhat.com,
        rms@gnu.org, Chris Blizzard <blizzard@redhat.com>
In-Reply-To: <200610041838.k94IcY6j006189@cvs.openbsd.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
Content-Type: text/plain
Date: Thu, 05 Oct 2006 15:06:34 -0400
Message-Id: <1160075195.8246.12.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.8.0 (2.8.0-7.fc6) 
Content-Transfer-Encoding: 7bit

On Wed, 2006-10-04 at 12:38 -0600, Theo de Raadt wrote:
> > Please correct me if I am wrong but it seems that documentation
> > for Marvell's 88W8388's is not publically available without
> > signing an NDA?
> > 
> > If this is the case why did a project that seems to pride
> > itself of openess agree to deal with such a company?
> > Drivers written under NDA tend to be full of magic numbers,
> > near impossible for others to properly maintain and
> > totally against the spirit of open projects.
> > 
> > I really think you should push for Marvell to give out
> > documentation without them forcing NDAs onto people.
> > Failing that I'm sure there are other vendors
> > who would be willing to be more helpful.
> 
> Jonathan showed me this mail he sent you about your NDA "cooperation"
> with Marvell for the wireless chip that you want to use for the OLPC
> project, so that Marvell will write you special hacks to do low-power
> mesh networking while the main cpu is powered off.  This does not
> gaurantee Marvell is going to be open and release documentation for
> their chips though.
> 
> When large players like you make such private agreements with such
> secretive vendors, you work against our common goals of getting more
> open documentation for devices.  It is only with open documentation
> that OS groups can increase device support, and later -- keep the
> device drivers reliable after the device is EOL'd by the vendor.
> 
> I've heard claims that you (OLPC members, Red Hat employees) think
> this relationship with Marvell will eventually prompt/teach them to be
> more open in time.  Do you not realize how much of a DELUSION the
> history of free/open operating systems shows that point of view to be?
> Very few chip vendors have ever opened up unless they were pushed, let
> alone Marvell (who I  am led to believe also has NDA's with Red Hat
> employees for the Marvell Yukon/Yukon 2 gigabit ethernet chips --
> again one of the few closed chips).

I would urge you to wait.  You seem to expect this process to happen
over night, which is clearly impossible.  As I'm sure you have
experienced from the OpenBSD firmware re-licensing effort, this stuff
often moves at a snails pace.  It is unreasonable to expect an "open &
release everything now!!" request to be honored at light-speed.

The end goals have not changed; freely redistributable firmware, open
drivers, and documentation.  Perhaps these goals were not adequately
expressed to you and others, and if not, then maybe OLPC needs to try
harder to express them.

Dan

> It is clear that your choices are not about opening up Marvell, but
> simply commercially expedient and hurtful to our common cause.  You
> came to Marvell with potential sales of millions of units, and then
> completely wimped out in demanding ideals that you say you share with
> the community.  Now other companies like Intel, Broadcom, and TI can
> say to us "Why should we open up, Marvell did not have to".
> 
> So I must say I am extremely dissapointed you have chosen to work
> against the very obvious goals of "open", and I hope that in time you
> are made to feel ashamed of the choice you have made.

Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Thu Oct  5 14:15:02 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95KF1HA013595;
	Thu, 5 Oct 2006 14:15:02 -0600 (MDT)
Message-Id: <200610052015.k95KF1HA013595@cvs.openbsd.org>
Date: Thu, 05 Oct 2006 14:15:01 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Re: Marvell 88W8388 documentation 
BCC:

------- Blind-Carbon-Copy

To: Dan Williams <dcbw@redhat.com>
cc: Jonathan Gray <jsg@goblin.cx>, jg@laptop.org, mtosatti@redhat.com,
    rms@gnu.org, Chris Blizzard <blizzard@redhat.com>
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Thu, 05 Oct 2006 15:06:34 EDT."
             <1160075195.8246.12.camel@localhost.localdomain> 
Date: Thu, 05 Oct 2006 14:15:01 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> I would urge you to wait.  You seem to expect this process to happen
> over night, which is clearly impossible.

Well, I see no point in waiting -- I think it will be harder to fix
this problem later.  You have already signed an agreement with
Marvell, so now I am sure that full documentation will never be made
available through your effort.  I don't know of one case in history
where signing an NDA first has resulted in free access later.  I've
been dealing with hardware documentation access issues with hardware
vendors for NEARLY TWENTY YEARS (Yes, like back when Van Jacobson was
having difficulty getting Intel 10mbit ethernet docs, in 1987).
History is on our side.  History is not on your side.

> As I'm sure you have
> experienced from the OpenBSD firmware re-licensing effort, this stuff
> often moves at a snails pace.

Actually, every vendor who has accomodated us did so pretty damn fast,
and every vendor who has refused is still busy refusing.  And why are
they refusing?  Because for all our community pressure on them, noone
with any money has convinced them otherwise.  Then someone with money
shows up.... and immediately makes a secret agreement for secret
access and vendor-only distribution.

> It is unreasonable to expect an "open &
> release everything now!!" request to be honored at light-speed.

You've been talking with Marvell for long enough to be able to know
whether or not full documentation plus firmware distribution rights
will arrive.  Jim's mail yesterday made it pretty clear that since
Marvell pparently does not own their own product outright, that is
super unlikely.

> The end goals have not changed; freely redistributable firmware, open
> drivers, and documentation.  Perhaps these goals were not adequately
> expressed to you and others, and if not, then maybe OLPC needs to try
> harder to express them.

Jim also made it totally clear yesterday that this is more about
"laptops for poor kids" than about totally free & open software.
Here, we are calling it "One Lock Per Child", or "One License Per
Child".

I've taken my concerns to the public.  I do not see why you should get
any street-cred by being associated with open/free software community,
when you are morally bankrupt regarding licensing.  You are playing
the same "Intellectual Property" game as Marvell by even having ANY
contract or agreement with them.

I have one question.  If in 2 years Marvell still won't make all the
documentation available for everyone, and they still won't make the
firmware 100% distributable... what will you do?  Cancel your agreement
and use something else?  Declare negotiations with Marvell over, and
say "Theo was right"?

No.  You won't.  You will still use their non-free crap, and give up
on your free-software goals.  And that is why your calls for me to
wait, to be patient, are the most retarded and morally bankrupt
bullshit I've heard all day.

------- End of Blind-Carbon-Copy
Return-Path: mtosatti@redhat.com
Delivery-Date: Thu Oct  5 15:58:30 2006
Received: from hera.kernel.org (hera.kernel.org [140.211.167.34])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95LwSDF011213
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 15:58:29 -0600 (MDT)
Received: from dmt.cnet (IDENT:U2FsdGVkX1+GDYkLpuK3E+Tr6uTCbxP9V+wEaeUw6HU@localhost [127.0.0.1])
	by hera.kernel.org (8.13.7/8.13.7) with ESMTP id k95JgqEp019493;
	Thu, 5 Oct 2006 19:42:55 GMT
Received: from dmt.cnet (dmt.cnet [127.0.0.1])
	by dmt.cnet (Postfix) with ESMTP id 98C004971D1;
	Thu,  5 Oct 2006 16:42:46 -0300 (BRT)
Received: (from marcelo@localhost)
	by dmt.cnet (8.13.6/8.13.6/Submit) id k95JgTg6009902;
	Thu, 5 Oct 2006 16:42:29 -0300
Date: Thu, 5 Oct 2006 16:42:28 -0300
From: Marcelo Tosatti <mtosatti@redhat.com>
To: Richard Stallman <rms@gnu.org>
Cc: jg@laptop.org, deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com
Subject: Re: Marvell 88W8388 documentation
Message-ID: <20061005194228.GA9787@dmt>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org> <1159989002.6029.710.camel@localhost.localdomain> <E1GVWLs-0002y4-HY@fencepost.gnu.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <E1GVWLs-0002y4-HY@fencepost.gnu.org>
User-Agent: Mutt/1.4.2.1i
X-Spam-Status: No, score=-3.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 
	autolearn=ham version=3.1.3
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on hera.kernel.org

On Thu, Oct 05, 2006 at 12:45:40PM -0400, Richard Stallman wrote:
>     And there is a reality that a piece of this is out of Marvell's short
>     term control: their firmware was based on a commercial embedded OS, 
> 
> I presume you mean that this embedded OS is proprietary.  Whether it
> is commercial (developed as a business) is neither here nor there.
> See http://www.gnu.org/philosophy/words-to-avoid.html#Commercial.
> 
> 									not
>     theirs to give away.
> 
> Whether they release the code is not the crucial issue.  What we need
> above all is the full specs of their chip, not under NDA.  With that,
> we could write our own code.

Certainly thats what needs to be done as a practical step forward.

As it stands now, Christopher/Michail/Jim have the power to articulate
open documentation requirements.

Has the OLPC project ever requested such thing, and what was the
outcome?

> Sure, it would be even better if they release the complete code of the
> program that runs.  That would be a bonus.  But we don't _need_ that.
> 
> An intermediate option would be to release only their part of the
> code.  This would be a partial bonus, nicer than no bonus at all.
> But still not necessary.
> 
> It is well to ask them for a bonus if you think they might give it.
> But let's keep the focus on the crucial issue: getting what we really
> need.
> 
>       Negotiating positions are much stronger when you have
>     alternatives, and we did not. For just about everything else, we were
>     able to negotiate from strength; but not for this component.
> 
> The alternative I would have chosen is to give up the mesh feature.  I
> would choose that rather than use non-free software.  That would be a
> substantial sacrifice, but sometimes freedom requires a sacrifice.
> 
> The willingness to make such sacrifices would increase your
> negotiating power to get what you want without a sacrifice.
> 
> In the longer term, there may be other potential alternatives that
> would be less of a sacrifice.  Are there any other companies
> interested in developing a part that could compete with this one?
> Getting in on the plans early, you could work with them to get the
> right outcome.
Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Thu Oct  5 16:16:32 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95MGWWM031339;
	Thu, 5 Oct 2006 16:16:32 -0600 (MDT)
Message-Id: <200610052216.k95MGWWM031339@cvs.openbsd.org>
Date: Thu, 05 Oct 2006 16:16:32 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Re: Marvell 88W8388 documentation 
BCC:

------- Blind-Carbon-Copy

To: jg@laptop.org
cc: Jonathan Gray <jsg@goblin.cx>, dcbw@redhat.com, mtosatti@redhat.com,
    rms@gnu.org
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Wed, 04 Oct 2006 16:20:36 EDT."
             <1159993236.6029.758.camel@localhost.localdomain> 
Date: Thu, 05 Oct 2006 16:16:32 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

I wanted to show you all a mail that one very astute person on the
misc@openbsd.org mailing list posted.  He details precisely how OLPC /
Red Hat should have approached this matter.

But that is not how it was done.  Instead, you behaved towards
Marvell from a position of supreme supplication, doing nothing more
than begging to lick at their teat.

If Red Hat -- the strongman of the open source community -- continues
to act like absolute wimps, how do you think that makes the little
players like us look?

Please grab some balls and go back to Marvell and renegotiate this
deal immediately -- for *FULL* documentation disclosure and firmware
distribution licensing as soon as possible.

- --

Date: Fri, 6 Oct 2006 00:08:24 +0200
From: Paul de Weerd <weerd@weirdnet.nl>
To: "Jack J. Woehr" <jwoehr@absolute-performance.com>
Cc: OpenBSD <misc@openbsd.org>
Subject: Re: Letter to OLPC

On Thu, Oct 05, 2006 at 03:54:47PM -0600, Jack J. Woehr wrote:
| >     Free and open software is a means to an end, rather than the
| >     sole end unto itself for OLPC.
| >
| > I was totally stunned by this admission.  "morally bankrupt", as Bob
| > says, is exactly what is going on.
|
| Hmm, sounds like you are saying that abstract goal of unlimited
| software freedom is
| a higher goal than providing access to modern technology to
| disadvantaged children in
| 3rd-world countries. I don't wish to argue that point, but it is
| certainly a point
| that could be debated. Why *would* the OLPC people wish to get their
| dicks caught
| in the struggle between the free-and-open software community and the
| greedheads?

This is a perfect opportunity to stand up, speak up about this issue.
Why would the Intels and Marvells of this world withhold developers
the documentation they need if they are unwilling to sign an NDA ?
They are writing software that provides 'disadvantaged children in
3rd-world countries' access to modern technology.

Reverse your argument and bring it to Marvell. Imagine the bad press
Marvell would have gotten had they declined OLPC/Red Hat access to the
documentation without NDA when asked. "This company will not allow
'disadvantaged children in 3rd-world countries' to gain access to
modern technology, because they feel the documentation to their
hardware is to secret." (or whatever their false reasoning is)

What these companies need is bad press. Bad press is bad for their
business and shareholders will start to complain. It seems that this
is the only way to make changes in big corporations, and changes are
exactly what we need.

Paul 'WEiRD' de Weerd


------- End of Blind-Carbon-Copy
Replied: Thu, 05 Oct 2006 17:33:40 -0600
Replied: "jg@laptop.org rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: jg@laptop.org
Delivery-Date: Thu Oct  5 17:00:13 2006
Received: from alnrmhc11.comcast.net (alnrmhc11.comcast.net [206.18.177.51])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95N0DuG020457
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 17:00:13 -0600 (MDT)
Received: from wireless-19-154.media.mit.edu ([18.85.19.154])
          by comcast.net (alnrmhc11) with SMTP
          id <20061005224455b11009kpste>; Thu, 5 Oct 2006 22:44:56 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: rms@gnu.org
Cc: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com
In-Reply-To: <E1GVWLs-0002y4-HY@fencepost.gnu.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
Content-Type: text/plain
Organization: OLPC
Date: Thu, 05 Oct 2006 18:44:53 -0400
Message-Id: <1160088294.6075.40.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Thu, 2006-10-05 at 12:45 -0400, Richard Stallman wrote:
>     And there is a reality that a piece of this is out of Marvell's short
>     term control: their firmware was based on a commercial embedded OS, 
> 
> I presume you mean that this embedded OS is proprietary.  Whether it
> is commercial (developed as a business) is neither here nor there.
> See http://www.gnu.org/philosophy/words-to-avoid.html#Commercial.
> 
> 									not
>     theirs to give away.
> 
> Whether they release the code is not the crucial issue.  What we need
> above all is the full specs of their chip, not under NDA.  With that,
> we could write our own code.
> 
> Sure, it would be even better if they release the complete code of the
> program that runs.  That would be a bonus.  But we don't _need_ that.
> 
> An intermediate option would be to release only their part of the
> code.  This would be a partial bonus, nicer than no bonus at all.
> But still not necessary.
> 
> It is well to ask them for a bonus if you think they might give it.
> But let's keep the focus on the crucial issue: getting what we really
> need.
> 
>       Negotiating positions are much stronger when you have
>     alternatives, and we did not. For just about everything else, we were
>     able to negotiate from strength; but not for this component.
> 
> The alternative I would have chosen is to give up the mesh feature.  I
> would choose that rather than use non-free software.  That would be a
> substantial sacrifice, but sometimes freedom requires a sacrifice.
> 
> The willingness to make such sacrifices would increase your
> negotiating power to get what you want without a sacrifice.


There is no power for access points in the parts of the world we go to.
This is not a viable option.

Most of the kids in the developing world have no electricity, much less
money for access points.  The only way we have to solve the last mile
problem at all is via a mesh network.

And in terms of mesh networking, the alternative was Atheros, with their
closed HAL.  It is a non-starter as it cannot run without the processor
running, which would require us to run at about 5-10 times the power.

> 
> In the longer term, there may be other potential alternatives that
> would be less of a sacrifice.  Are there any other companies
> interested in developing a part that could compete with this one?
> Getting in on the plans early, you could work with them to get the
> right outcome.
> 

Yes, what do you think we are doing now for our next generation?

We talk to all the manufacturers.  We *want* them to compete for the
business.  And yes, we expect the next time around we'll have more than
one possible choice.
                                 - Jim

-- 
Jim Gettys
One Laptop Per Child


Replied: Thu, 05 Oct 2006 17:58:17 -0600
Replied: "jg@laptop.org Dan Williams <dcbw@redhat.com>, Jonathan Gray <jsg@goblin.cx>,
Replied: mtosatti@redhat.com, rms@gnu.org,
Replied: Chris Blizzard <blizzard@redhat.com>"
Replied: Thu, 05 Oct 2006 17:40:40 -0600
Replied: "jg@laptop.org Dan Williams <dcbw@redhat.com>, Jonathan Gray <jsg@goblin.cx>,
Replied: mtosatti@redhat.com, rms@gnu.org,
Replied: Chris Blizzard <blizzard@redhat.com>"
Return-Path: jg@laptop.org
Delivery-Date: Thu Oct  5 17:06:57 2006
Received: from alnrmhc14.comcast.net (alnrmhc14.comcast.net [204.127.225.94])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k95N6vN5027959
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 17:06:57 -0600 (MDT)
Received: from wireless-19-154.media.mit.edu ([18.85.19.154])
          by comcast.net (alnrmhc14) with SMTP
          id <20061005230640b1400kgos6e>; Thu, 5 Oct 2006 23:06:51 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: Theo de Raadt <deraadt@cvs.openbsd.org>
Cc: Dan Williams <dcbw@redhat.com>, Jonathan Gray <jsg@goblin.cx>,
        mtosatti@redhat.com, rms@gnu.org, Chris Blizzard <blizzard@redhat.com>
In-Reply-To: <200610052015.k95KF1H8013595@cvs.openbsd.org>
References: <200610052015.k95KF1H8013595@cvs.openbsd.org>
Content-Type: text/plain
Organization: OLPC
Date: Thu, 05 Oct 2006 19:06:38 -0400
Message-Id: <1160089598.6075.63.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Thu, 2006-10-05 at 14:15 -0600, Theo de Raadt wrote:
> > I would urge you to wait.  You seem to expect this process to happen
> > over night, which is clearly impossible.
> 
> Well, I see no point in waiting -- I think it will be harder to fix
> this problem later.  You have already signed an agreement with
> Marvell, so now I am sure that full documentation will never be made
> available through your effort.  

This does not follow.  It is an assertion without proof. 

> I don't know of one case in history
> where signing an NDA first has resulted in free access later.  

Then you don't know history.

Let's see: some of my personal history, which you will probably dismiss:

As an employee of Digital Equipment Corporation, having signed the
Digital employee agreement, I was personally responsible for causing
Digital to release the programming specifications for the MIPS based
workstations and Turbochannel cards. 

In my long experience on the other side of the fence, often the
documentation doesn't really exist, are in some random directory where
no-one knows where it is, or is so intertwined with hardware
documentation that extricating programming specifications from those
documents is a long and arduous process.  Very often it is out-dated and
incorrect.  Sometimes, it is entwined with future product plans and
specifications.

The reason that the MIPS documents happened is that I bothered to track
them down and clean them up enough to get them out there, and also that
the engineering group involved was better than average at doing
documentation. I spent more than a month getting those documents in
shape that the could be released, personally.


> I've
> been dealing with hardware documentation access issues with hardware
> vendors for NEARLY TWENTY YEARS (Yes, like back when Van Jacobson was
> having difficulty getting Intel 10mbit ethernet docs, in 1987).
> History is on our side.  History is not on your side.

See above history.

My history is longer than yours: I've been at this since 1983; so I'm at
23 years and counting.  I worked on drafting the MIT license.  Please
don't tell me I don't know anything about this topic.

> 
> > As I'm sure you have
> > experienced from the OpenBSD firmware re-licensing effort, this stuff
> > often moves at a snails pace.
> 
> Actually, every vendor who has accomodated us did so pretty damn fast,
> and every vendor who has refused is still busy refusing.  And why are
> they refusing?  Because for all our community pressure on them, noone
> with any money has convinced them otherwise.  

Actually, from what I've seen, community pressure has had at best mixed
success at best.  What actually works is economics and self interest,
and pointing out the economics and self interest to those companies.

> Then someone with money
> shows up.... and immediately makes a secret agreement for secret
> access and vendor-only distribution.

You can often get more by being pleasant than confrontational.

I don't know what you mean by vendor-only distribution.

> 
> > It is unreasonable to expect an "open &
> > release everything now!!" request to be honored at light-speed.
> 
> You've been talking with Marvell for long enough to be able to know
> whether or not full documentation plus firmware distribution rights
> will arrive.  Jim's mail yesterday made it pretty clear that since
> Marvell pparently does not own their own product outright, that is
> super unlikely.

They do not own the simple operating system they used for their
firmware.

As I said in my last mail, we already have work underway to be to
replace this firmware.

You can believe this statement, or not, but it is true.  You can help,
but apparently you'd prefer to not follow up and just write more mail
messages.
> 
> > The end goals have not changed; freely redistributable firmware, open
> > drivers, and documentation.  Perhaps these goals were not adequately
> > expressed to you and others, and if not, then maybe OLPC needs to try
> > harder to express them.
> 
> Jim also made it totally clear yesterday that this is more about
> "laptops for poor kids" than about totally free & open software.
> Here, we are calling it "One Lock Per Child", or "One License Per
> Child".

Yes, 

I DO NOT APOLOGIZE FOR PUTTING THE GOOD OF THE WORLDS CHILDREN FIRST.

We are One Laptop Per Child....

> 
> I've taken my concerns to the public.  I do not see why you should get
> any street-cred by being associated with open/free software community,
> when you are morally bankrupt regarding licensing.  You are playing
> the same "Intellectual Property" game as Marvell by even having ANY
> contract or agreement with them.
> 
> I have one question.  If in 2 years Marvell still won't make all the
> documentation available for everyone, and they still won't make the
> firmware 100% distributable... what will you do?  Cancel your agreement
> and use something else?  

Two years from now we'll be using different parts and have more options.
No machine stays in production for 2 years.

> Declare negotiations with Marvell over, and
> say "Theo was right"?
> 
> No.  You won't.  You will still use their non-free crap, and give up
> on your free-software goals.  And that is why your calls for me to
> wait, to be patient, are the most retarded and morally bankrupt
> bullshit I've heard all day.

Our goals are helping kids learn.  If it is so terrible to have built
the most open system in recent memory, while continuing to do work
freeing up the firmware on the one part that the one available component
that can do what we need is underway, then I guess by your definition,
we must be terrible.

Ad homonym, abusive attacks on people's motives, goals or future
behavior do not help your case one bit.

-- 
Jim Gettys
One Laptop Per Child


Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Thu Oct  5 18:31:16 2006
Received: from cvs.openbsd.org (localhost [IPv6:::1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k960VGQk005674
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Thu, 5 Oct 2006 18:31:16 -0600 (MDT)
Received: (from deraadt@localhost)
	by cvs.openbsd.org (8.13.6/8.12.0/Submit) id k960VGoI017737
	for deraadt; Thu, 5 Oct 2006 18:31:16 -0600 (MDT)
Date: Thu, 5 Oct 2006 18:31:16 -0600 (MDT)
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Message-Id: <200610060031.k960VGoI017737@cvs.openbsd.org>
To: deraadt@cvs.openbsd.org

To: jg@laptop.org
cc: rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Thu, 05 Oct 2006 18:44:53 EDT."
             <1160088294.6075.40.camel@localhost.localdomain> 
Date: Thu, 05 Oct 2006 17:33:40 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> There is no power for access points in the parts of the world we go to.
> This is not a viable option.
> 
> Most of the kids in the developing world have no electricity, much less
> money for access points.  The only way we have to solve the last mile
> problem at all is via a mesh network.

[The above text is completely unrelated to how you negotiated weakly
with Marvell.  You keep bringing it up as the excuse for why the
Marvell agreement was made, but it simply does not matter in the big
picture.]

> And in terms of mesh networking, the alternative was Atheros, with their
> closed HAL.  It is a non-starter as it cannot run without the processor
> running, which would require us to run at about 5-10 times the power.

For the record, we have completely reverse engineered the Atheros HAL
ourselves.  We've been using our own completely open code for four
years.  So there was an option.  Maybe it used more power.  So?  I bet
you were not even aware of our code.  Of course, you would never have
had the balls to ask Atheros to open up their HAL, either.  And by the
way you can find 2-year old offical Atheros HAL source code on some
sites in eastern Europe -- with a BSD license on every file, placed
there by Sam Leffler himself.  It is already free code according to
the license, but still, we avoided it and wrote our own.

> > In the longer term, there may be other potential alternatives that
> > would be less of a sacrifice.  Are there any other companies
> > interested in developing a part that could compete with this one?
> > Getting in on the plans early, you could work with them to get the
> > right outcome.
> > 
> 
> Yes, what do you think we are doing now for our next generation?
> 
> We talk to all the manufacturers.  We *want* them to compete for the
> business.  And yes, we expect the next time around we'll have more than
> one possible choice.

Your mail does a very good job of convincing me that for now you MUST
use the Marvell chip.  Technologically, you simply do not have any
other choice.  The quantity of sales you may bring made no difference.
And as I can see, you are already investing engineering effort into
using the Marvell chips.  So in the end, even if Marvell refuses to
open up their documentation, you will accept their closed terms, and
buy 8,000,000 of their chips, and then ship closed laptops to kids.

And quite frankly, you just convinced me that Marvell will never give
us any documentation either, since I know of some other large vendors
who Marvell refused to give documentation to (but we also know some
who Marvell did give the same documentation to).  Even medium sized
vendors have learned that they must DEMAND that documentation arrives
before starting any engineering in-house that financially commits them
towards buying a particular product.

So why not simply tell Marvell that you are completely captive to
their closed model?  Why not honestly tell the open source community
that too?  Why keep trying to dance around the issues I brought up?

Therefore, in response to your solid arguments that you MUST use the
Marvell chip... I have a request.  Can I have permission to forward
your mail to Marvell?  I want to show them how convincingly you argue
that you are a captive customer of theirs.  Maybe they will even
increase the price of their chips.

Now you will think I'm a bigger asshole than before. But how did you
get to the point where I could even ask such a thing? 

Or should I just show your mail to Marvell anyways, without
permission?  If you are willing to scuttle our efforts to free
documentation, why should we not scuttle you?

Come on!  Do you really not get it?  If there is one lesson we
should have by now it is that YOU CAN'T HAVE IT BOTH WAYS!  It's the
singular problem of "vendor lock-in" that caused most of us to get
into this whole culture of writing free software!  Is Red Hat trying
to become as closed as Sun?  It took them years to dig through all
their paperwork to get Solaris source out the door.  You want that?

You would sacrifice freedom hoping to gain it back at a later date.
Has that retarded American ethos really now penetrated all the way
into the core of the Linux community?  The last thing we expected was
a bunch of woosy traitors in our midst!  What DO you stand for?  You
cannot honestly stand only for "laptops for children" and throw away
everything else that our community depends on?  Should we be asking
how else are you undermining the free/open source community behind our
backs?

I -- and many others -- are going to hold you accountable to fix this
bloody mess you have created!
Replied: Fri, 06 Oct 2006 14:42:07 -0600
Replied: "Marcelo Tosatti <mtosatti@redhat.com> jg@laptop.org, Dan Williams <dcbw@redhat.com>,
Replied: Jonathan Gray <jsg@goblin.cx>, rms@gnu.org,
Replied: Chris Blizzard <blizzard@redhat.com>"
Replied: Fri, 06 Oct 2006 14:18:19 -0600
Replied: "Marcelo Tosatti <mtosatti@redhat.com> jg@laptop.org, Dan Williams <dcbw@redhat.com>,
Replied: Jonathan Gray <jsg@goblin.cx>, rms@gnu.org,
Replied: Chris Blizzard <blizzard@redhat.com>"
Replied: Fri, 06 Oct 2006 14:09:16 -0600
Replied: "Marcelo Tosatti <mtosatti@redhat.com> jg@laptop.org, Dan Williams <dcbw@redhat.com>,
Replied: Jonathan Gray <jsg@goblin.cx>, rms@gnu.org,
Replied: Chris Blizzard <blizzard@redhat.com>"
Return-Path: mtosatti@redhat.com
Delivery-Date: Fri Oct  6 12:35:08 2006
Received: from hera.kernel.org (hera.kernel.org [140.211.167.34])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k96IZ7pX016263
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 12:35:08 -0600 (MDT)
Received: from dmt.cnet (IDENT:U2FsdGVkX1/LE11ZfjykMkylsPbC1vCE2a9ihvSyiMU@localhost [127.0.0.1])
	by hera.kernel.org (8.13.7/8.13.7) with ESMTP id k96IYshS003142;
	Fri, 6 Oct 2006 18:34:56 GMT
Received: from dmt.cnet (dmt.cnet [127.0.0.1])
	by dmt.cnet (Postfix) with ESMTP id 3BF704971D1;
	Fri,  6 Oct 2006 14:34:20 -0300 (BRT)
Received: (from marcelo@localhost)
	by dmt.cnet (8.13.6/8.13.6/Submit) id k96HY3Tf004865;
	Fri, 6 Oct 2006 14:34:03 -0300
Date: Fri, 6 Oct 2006 14:34:03 -0300
From: Marcelo Tosatti <mtosatti@redhat.com>
To: Theo de Raadt <deraadt@cvs.openbsd.org>
Cc: jg@laptop.org, Dan Williams <dcbw@redhat.com>,
        Jonathan Gray <jsg@goblin.cx>, rms@gnu.org,
        Chris Blizzard <blizzard@redhat.com>
Subject: Re: Marvell 88W8388 documentation
Message-ID: <20061006173402.GA4575@dmt>
References: <1160089598.6075.63.camel@localhost.localdomain> <200610052358.k95NwHB2006381@cvs.openbsd.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <200610052358.k95NwHB2006381@cvs.openbsd.org>
User-Agent: Mutt/1.4.2.1i
X-Spam-Status: No, score=-3.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 
	autolearn=ham version=3.1.3
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on hera.kernel.org

On Thu, Oct 05, 2006 at 05:58:17PM -0600, Theo de Raadt wrote:
> > In my long experience on the other side of the fence, often the
> > documentation doesn't really exist, are in some random directory where
> > no-one knows where it is, or is so intertwined with hardware
> > documentation that extricating programming specifications from those
> > documents is a long and arduous process.  Very often it is out-dated and
> > incorrect.  Sometimes, it is entwined with future product plans and
> > specifications.
> 
> The Marvell documentation does exist.  I have been told a bit about
> how large it is.  It sounds like you are making these statements
> without having access to it.

Its rather small (its the interface to the firmware through a set of
well defined commands).

By the way, you can easily understand the firmware interface by
looking at the Linux driver (it provides as much information as the
documentation).

Everybody in the OLPC project, including the people who decided to pick
a piece of hardware able to keep up with cost/power constraints, have
the best intentions with reference to using _only_ free software in the
machines.

Replied: Fri, 06 Oct 2006 14:15:47 -0600
Replied: "rms@gnu.org jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: rms@gnu.org
Delivery-Date: Fri Oct  6 14:06:54 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k96K6rdo028285
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 14:06:54 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GVvxx-00033d-VQ; Fri, 06 Oct 2006 16:06:42 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: jg@laptop.org
CC: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com
In-reply-to: <1160088294.6075.40.camel@localhost.localdomain> (message from
	Jim Gettys on Thu, 05 Oct 2006 18:44:53 -0400)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org> <1160088294.6075.40.camel@localhost.localdomain>
Message-Id: <E1GVvxx-00033d-VQ@fencepost.gnu.org>
Date: Fri, 06 Oct 2006 16:06:41 -0400

    Most of the kids in the developing world have no electricity, much less
    money for access points.  The only way we have to solve the last mile
    problem at all is via a mesh network.

There has to be a powered network hub somewhere in the village, or the
mesh network won't be able to reach the outside world.  Why can't that
hub do the job?

    We talk to all the manufacturers.  We *want* them to compete for the
    business.  And yes, we expect the next time around we'll have more than
    one possible choice.

Have you told them clearly that you'll choose a chip which supports
free software next time?  That is the first step to apply some leverage
for the future products.

How far in the future do you think the next time around will be?

Replied: Fri, 06 Oct 2006 14:12:55 -0600
Replied: "rms@gnu.org jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: rms@gnu.org
Delivery-Date: Fri Oct  6 14:07:05 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k96K74xv027392
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 14:07:05 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GVvy3-00034R-IG; Fri, 06 Oct 2006 16:06:47 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: Theo de Raadt <deraadt@cvs.openbsd.org>
CC: jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
cc: rms@gnu.org
In-reply-to: <200610052333.k95NXeAN006710@cvs.openbsd.org> (message from Theo
	de Raadt on Thu, 05 Oct 2006 17:33:40 -0600)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References:  <200610052333.k95NXeAN006710@cvs.openbsd.org>
Message-Id: <E1GVvy3-00034R-IG@fencepost.gnu.org>
Date: Fri, 06 Oct 2006 16:06:47 -0400

    > And in terms of mesh networking, the alternative was Atheros, with their
    > closed HAL.  It is a non-starter as it cannot run without the processor
    > running, which would require us to run at about 5-10 times the power.

    For the record, we have completely reverse engineered the Atheros HAL
    ourselves.  We've been using our own completely open code for four
    years.

Could we organize a project to reverse-engineer the Marvell chip?
Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Fri Oct  6 14:44:11 2006
Received: from cvs.openbsd.org (localhost [IPv6:::1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k96KiB4m016183
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 14:44:11 -0600 (MDT)
Received: (from deraadt@localhost)
	by cvs.openbsd.org (8.13.6/8.12.0/Submit) id k96KiB1N001137
	for deraadt; Fri, 6 Oct 2006 14:44:11 -0600 (MDT)
Date: Fri, 6 Oct 2006 14:44:11 -0600 (MDT)
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Message-Id: <200610062044.k96KiB1N001137@cvs.openbsd.org>
To: deraadt@cvs.openbsd.org

To: Marcelo Tosatti <mtosatti@redhat.com>
cc: jg@laptop.org, Dan Williams <dcbw@redhat.com>,
    Jonathan Gray <jsg@goblin.cx>, rms@gnu.org,
    Chris Blizzard <blizzard@redhat.com>
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Fri, 06 Oct 2006 14:34:03 -0300."
             <20061006173402.GA4575@dmt> 
Date: Fri, 06 Oct 2006 14:42:07 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> > The Marvell documentation does exist.  I have been told a bit about
> > how large it is.  It sounds like you are making these statements
> > without having access to it.
> 
> Its rather small (its the interface to the firmware through a set of
> well defined commands).
> 
> By the way, you can easily understand the firmware interface by
> looking at the Linux driver (it provides as much information as the
> documentation).

If it is so simple, why is Marvell firmware interface specification
142 pages long?  Are you really going to condense all of that
information into the driver, so that future driver maintainers can
work on the driver after you and your NDA document have moved onwards?

We found a copy on the net of the Marvell firmware interface
specification.

http://lists.infradead.org/pipermail/libertas-dev/attachments/20060614/bb59070f/attachment-0001.bin

See, 142 pages.  Not the largest document we've ever seen, but quite
hefty.

It looks like this is a leaked copy of the document that Red Hat got
from Marvell.  One of you guys leaked it, I suspect.  Thanks, we have
a copy now.  Shall I tell Marvell that I found this?

That said, this is only 1 of 7 documents that Marvell has for this
chip.  The other 6 documents are also very important.

Marcelo, based on the balony you spoke above, I find it hard to trust
your predictions that Marvell will open up.
Replied: Fri, 06 Oct 2006 22:44:30 -0600
Replied: "jg@laptop.org rms@gnu.org, Marcelo Tosatti <mtosatti@redhat.com>, dcbw@redhat.com,
Replied: jsg@goblin.cx, blizzard@redhat.com"
Return-Path: jg@laptop.org
Delivery-Date: Fri Oct  6 20:29:15 2006
Received: from rwcrmhc11.comcast.net (rwcrmhc11.comcast.net [216.148.227.151])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k972TERi032080
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 20:29:15 -0600 (MDT)
Received: from [192.168.1.144] (c-24-218-178-107.hsd1.ma.comcast.net[24.218.178.107])
          by comcast.net (rwcrmhc11) with SMTP
          id <20061007012833m11000d2uce>; Sat, 7 Oct 2006 01:28:35 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: rms@gnu.org
Cc: Marcelo Tosatti <mtosatti@redhat.com>, deraadt@cvs.openbsd.org,
        dcbw@redhat.com, jsg@goblin.cx, blizzard@redhat.com
In-Reply-To: <E1GW0fH-000063-Ir@fencepost.gnu.org>
References: <1160089598.6075.63.camel@localhost.localdomain>
	 <200610052358.k95NwHB2006381@cvs.openbsd.org> <20061006173402.GA4575@dmt>
	 <E1GW0fH-000063-Ir@fencepost.gnu.org>
Content-Type: text/plain
Organization: OLPC
Date: Fri, 06 Oct 2006 21:28:32 -0400
Message-Id: <1160184512.22956.146.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Fri, 2006-10-06 at 21:07 -0400, Richard Stallman wrote:
>     Everybody in the OLPC project, including the people who decided to pick
>     a piece of hardware able to keep up with cost/power constraints, have
>     the best intentions with reference to using _only_ free software in the
>     machines.
> 
> I am sure that everyone here has that intention, but that isn't the
> crucial question.  The crucial question is whether people are pushing
> hard enough to actually attain that goal.

Yes, we are.

> 
>     By the way, you can easily understand the firmware interface by
>     looking at the Linux driver (it provides as much information as the
>     documentation).
> 
> The code of that driver would be fine documentation if it is released.

The driver is in our git pool, awaiting upstream merge at kernel.org.

> But I think people stated here that Marvell has not released it, and
> that Marvell says it can't release that code because it is too tangled
> up with the microkernel.  

Marvell can't release the firmware that runs inside the wireless chip.

The Linux kernel driver for the Marvell wireless chip is already
available, and has been for several months.

http://dev.laptop.org/git?p=olpc-2.6;a=summary

> If that is not right, would someone please
> set me straight?
> 
>     > The Marvell documentation does exist.  I have been told a bit about
>     > how large it is.  It sounds like you are making these statements
>     > without having access to it.
> 
>     Its rather small (its the interface to the firmware through a set of
>     well defined commands).
> 
> I think we are having a miscommunication.  The documentation we need
> is the specifications for the hardware itself.  With that, we could
> write a driver.  We do not need documention of their driver as such.

Please look at the libertas driver in the git pool.
                                      Regards,
                                               - Jim Gettys

-- 
Jim Gettys
One Laptop Per Child


Replied: Fri, 06 Oct 2006 23:06:18 -0600
Replied: "jg@laptop.org rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: jg@laptop.org
Delivery-Date: Fri Oct  6 22:41:28 2006
Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [216.148.227.153])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k974fQKW026611
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 22:41:27 -0600 (MDT)
Received: from [192.168.1.144] (c-24-218-178-107.hsd1.ma.comcast.net[24.218.178.107])
          by comcast.net (rwcrmhc13) with SMTP
          id <20061007044116m1300ngqa0e>; Sat, 7 Oct 2006 04:41:17 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: rms@gnu.org
Cc: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com
In-Reply-To: <E1GVvxx-00033d-VQ@fencepost.gnu.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org>
Content-Type: multipart/mixed; boundary="=-mzrL4m/DzYrsoEs6bqCp"
Organization: OLPC
Date: Sat, 07 Oct 2006 00:41:14 -0400
Message-Id: <1160196075.22956.232.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 


--=-mzrL4m/DzYrsoEs6bqCp
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Fri, 2006-10-06 at 16:06 -0400, Richard Stallman wrote:
>     Most of the kids in the developing world have no electricity, much less
>     money for access points.  The only way we have to solve the last mile
>     problem at all is via a mesh network.
> 
> There has to be a powered network hub somewhere in the village, or the
> mesh network won't be able to reach the outside world.  Why can't that
> hub do the job?

A single access point can't reach far enough.  Despite us making the
802.11 work better than anyone else's, access points can't go far
enough, nor is there always power where you need it.  And there is no
guarantee that power there will be reliable.  Hell, Michailis brought
back pictures of a school in the capitol city of Nigeria: yes, there is
power in one room of the school: none in any of the class rooms; light
entirely from the windows (see attached).  It looks like a dirty version
of a 19th century 1 room school house in the U.S. Outside the capitol it
goes downhill from there: 30-40% of schools have no power at all.  Well
over half the kids have no electricity at home at all.  And Nigeria is a
rich country on Africa's scale.

Our focus on low power and mesh networking is due to the realities of
most of the world, that few of us rich Americans ever see.  To serve the
kids, we have no choice but to design to the real world conditions.
> 
>     We talk to all the manufacturers.  We *want* them to compete for the
>     business.  And yes, we expect the next time around we'll have more than
>     one possible choice.
> 
> Have you told them clearly that you'll choose a chip which supports
> free software next time?  That is the first step to apply some leverage
> for the future products.

We make it clear with the manufacturers we talk to.  It is an
interesting cultural exchange at times :-).

In general, we do not lack leverage at all; manufacturers are very happy
to do what we want, *so long as it is within their power and ability to
do so and they believe can make money doing so*.  A good example is
Marvell's (yes, the same Marvell company) reengineering of the SD
interface to solve the documentation and driver problem posed by the SD
association's draconian NDA terms.  They revised their SD hardware
design to conform to the public SD spec at significant expense; they
could do it for us, so they did it for us after only mild arm
twisting.  

The wireless firmware situation was/is different: Marvell doesn't own
all the IP and could not do what we wanted in any legal fashion and
there is no other vendor that (yet) makes a suitable part to use.  So,
plan B: replace the firmware entirely via Meraki; but that will take
longer than we can wait to start testing, or maybe even early
deployment.  Time will tell.  And, of course, we tell all the other
vendors that want the business that they need to make a part similar to
what Marvell has done if they want the business in gen2.

It was lots of fun working with the touch pad vendor: it took about 3
times to convince them that: 1) we couldn't care less about Windows
compatibility, 2) we wanted both modes of the data from the device at
once, (it is a novel dual mode device; a cross between a tablet and
touchpad) and 3) we could make both our operating system and the window
system use a device that didn't conform to "Windows standards" without
difficulty, since we had all the code.  Once they understood we were
serious and did not have Windows constraints, the answer to "jump" was
"how high"....  Bridging the cultural barriers can take work, however.

> 
> How far in the future do you think the next time around will be?

As soon as we get this one done.  Of course, we tell every vendor that
comes through the door what they have to do if they want the Gen 2
business. Very advanced planning for the 2nd generation system will
start before this year is over.  We should be done with most hardware
testing by sometime in 2nd quarter of 2007, and that's when we'll start
in on gen2 design more seriously.
                                 - Jim


> 
-- 
Jim Gettys
One Laptop Per Child


--=-mzrL4m/DzYrsoEs6bqCp
Content-Disposition: attachment; filename=Classroom.jpg
Content-Type: image/jpeg; name=Classroom.jpg
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEASABIAAD/4ZRaRXhpZgAATU0AKgAAAAgACwEPAAIAAAAYAAAAkgEQAAIA
AAAMAAAAqgESAAMAAAABAAEAAAEaAAUAAAABAAAAtgEbAAUAAAABAAAAvgEoAAMAAAABAAIAAAEx
AAIAAAASAAAAxgEyAAIAAAAUAAAA2AITAAMAAAABAAEAAIdpAAQAAAABAAABGsSlAAcAAAAuAAAA
7AAAe5RDQVNJTyBDT01QVVRFUiBDTy4sTFRELgBFWC1aODUwICAgIAAAAABIAAAAAQAAAEgAAAAB
MS4wMCAgICAgICAgICAgICAAMjAwNjowOToxNSAxMzo0NToxOABQcmludElNADAzMDAAAAAFAAEA
FgAWAAIBAAAAAQAFAAAAAQEBAAAAARCEAAAAAB+CmgAFAAAAAQAAApSCnQAFAAAAAQAAApyIIgAD
AAAAAQACAACQAAAHAAAABDAyMjGQAwACAAAAFAAAAqSQBAACAAAAFAAAAriRAQAHAAAABAECAwCR
AgAFAAAAAQAAAsySBAAKAAAAAQAAAtSSBQAFAAAAAQAAAtySBwADAAAAAQAFAACSCAADAAAAAQAA
AACSCQADAAAAAQAZAACSCgAFAAAAAQAAAuSSfAAHAAB4ggAAAuygAAAHAAAABDAxMDCgAQADAAAA
AQABAACgAgAEAAAAAQAADMCgAwAEAAAAAQAACZCgBQAEAAAAAQAAe3ajAAAHAAAAAQMAAACkAQAD
AAAAAQAAAACkAgADAAAAAQAAAACkAwADAAAAAQAAAACkBAAFAAAAAQAAe26kBQADAAAAAQAmAACk
BgADAAAAAQAAAACkBwADAAAAAQACAACkCAADAAAAAQAAAACkCQADAAAAAQAAAACkCgADAAAAAQAA
AAAAAAAAAAAAAQAAADwAAAAcAAAACjIwMDY6MDk6MTUgMTM6NDU6MTgAMjAwNjowOToxNSAxMzo0
NToxOAABcMAAAHnsAAAAAAAAAAADAAAAHgAAAAoAAAMWAAAAZFFWQwAAAABPAAIAAwAAAAIBQADw
AAMABAAAAAEAAHKsAAQABAAAAAEAAAjKIAAABwAAcqwAAAjKIAEAAgAAABIAAAa0IAIAAgAAABQA
AAbGIAMABwAAAAgAAAbaIAQABwAAAAT+//j/IAUAAwAAAAEAAAAAIBEAAwAAAAIBjgF6IBIAAwAA
AAEADAAAIBMAAwAAAAEAAgAAIBQABwAAACQAAAbiICEAAwAAAAQAAAcGICIABAAAAAEAAAr0ICMA
AwAAAAEABQAAIDEABwAAAAIADAAAIDIABwAAAAIAZAAAIDMAAwAAAAEAAQAAIDQAAwAAAAEDvgAA
IDUAAwAAAAEAZAAAIDYABAAAAAG4iYjwIDcABAAAAAFAAI9gIDgABAAAAAEAAAAAIDkAAwAAAAEA
AAAAIEEAAwAAAAEEpQAAIEIAAwAAAAEEoQAAIEMAAwAAAAEACAAAIEQAAwAAAAEAAAAAIEUAAwAA
AAEABAAAIEYAAwAAAAEgSQAAIEcABAAAAAEADwAAIEgAAwAAAAEBLAAAIEkAAwAAAAEEpQAAIEoA
AwAAAAEABAAAIFEABAAAAAEAAAADIFIABAAAAAEAAAAAIFMABAAAAAEAAAAAIFQABAAAAAEAAAAA
IFUABwAAAAEAAAAAIFYAAQAAAAEAAAAAIFcABwAAAAEAAAAAIFgAAwAAAAEAAAAAIFkAAwAAAAEA
AAAAIFoABwAAAaQAAAcOMAAAAwAAAAEAAgAAMAEAAwAAAAEAAQAAMAIAAwAAAAEAAgAAMAMAAwAA
AAEAAwAAMAUAAwAAAAIAAAABMAYAAgAAABgAAAiyMAcAAwAAAAEAAAAAMAgAAwAAAAEAAQAAMAkA
AwAAAAEAAQAAMBEABwAAAAIAAAAAMBIABwAAAAIAAAADMBMABwAAAAIAAAAAMBQAAwAAAAEAyAAA
MBUAAwAAAAEAAAAAMBYAAwAAAAEAAAAAMBcAAwAAAAEAAAAAMBgAAwAAAAEAAAAAMBkAAwAAAAEA
AQAAMBoAAwAAAAEAAAAAMBsAAwAAAAEAAAAAMBwAAwAAAAEAAAAAMB0AAwAAAAIAAAAAMB4AAwAA
AAEAAAAAMB8AAwAAAAEAAAAAMCAAAwAAAAEAAAAAMCEAAwAAAAIAAAAAMCIAAwAAAAIAAAAAMCMA
AwAAAAEAAAAAMCQAAwAAAAEAAQAAMCUAAwAAAAEBkAAAMCYAAwAAAAEBAAAAMCcAAwAAAAEAAwAA
MCgAAwAAAAEAAAAAMCkAAwAAAAEAAAAAAAAAADA2MDIAADEzMTAAADQyAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABJBcTAAAAAxgApDsAA7gLbAAAKbzEAAAAAAAAAAAAAAAAAAAD/////
/////wD/7ACNAQEKAABkvgAAR3z/6VD/6lP/7W//86T//OQABf4ADuYAF6QAIFAAKQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExvbmRvbgAAAAAAAAAAAAAAAAAAAAAAAP/Y/9sAhAAB
AQECAQECAgECAgICAgMFAwMDAwMGBAUEBQcHCAgHBwcHCAkMCggJCwkHBwoOCgsMDQ0NDQgKDxAO
DQ8MDQ0NAQECAgMCAwUDAwULCAYICwsLCwsLCwsLDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0NDQ3/wAARCADwAUADASIAAhEBAxEB/8QBogAAAQUBAQEBAQEAAAAAAAAAAAEC
AwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5
eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj
5OXm5+jp6vHy8/T19vf4+foBAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKCxEAAgECBAQDBAcF
BAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygp
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
ABEIAJIAxAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAAC
AQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZ
GiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOU
lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T1
9vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAAB
AncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Sl
pqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA
AhEDEQA/AJkmXqyj6ZNPF0oXB4HsacEB/hH5U4xKRyq/lWftkaezGLdow+Usfx/+tTTcRk8s59RU
4RQMbV/Kjy1/ur+VP2yD2ZF9qUjClgPQD/69NLoeTI2f93P9anMakYKjH0qMwRnqg/Wj2yF7NjBP
EvTcW9xmlM7EcsF9M/4U7yUxgL+VJ5Ef939TT9sg9mxglVushY+nSniRl5V0j/A5oMS4wOB7cUwQ
qPU/jR7aIezY4lSeZS59ORSl3UYTavv3/wAajKY6Ege1NKgdST7Ue2iHs2I8Bk5eVm+jCnJAIxlU
/EtmgEg8ACpV5OOtQ6vYpU+49FkP8ePYVMqSY5c/nSRjnmpsDGScCodSTHypDlTuWNTKo7CoVYZ4
zUyEZ4qNWMdzT155PSoh5jfdIp5GABzQAy7GYfxrNOd1ac4At2yec5rMY5OafQETwjMZ9jUu35aj
th8jH3qfaMdKllFZsA9RRUhiUnJA/KigCoHwRnoalrnD4nsQR8r4/D/Gq954vMaRfYoVk3Z3bzyv
5GtfZvoiFNHTzTpAm5sn2AqiNSYkBYRj/ermm8YXxP8Ax5QNnjAJqvF4juGO77HESDjaWNXGl3RL
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


--=-mzrL4m/DzYrsoEs6bqCp--

Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Fri Oct  6 22:44:30 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k974iUPj031455
	for <deraadt>; Fri, 6 Oct 2006 22:44:30 -0600 (MDT)
Message-Id: <200610070444.k974iUPj031455@cvs.openbsd.org>
Date: Fri, 06 Oct 2006 22:44:30 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Re: Marvell 88W8388 documentation 
BCC:

------- Blind-Carbon-Copy

To: jg@laptop.org
cc: rms@gnu.org, Marcelo Tosatti <mtosatti@redhat.com>, dcbw@redhat.com,
    jsg@goblin.cx, blizzard@redhat.com
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Fri, 06 Oct 2006 21:28:32 EDT."
             <1160184512.22956.146.camel@localhost.localdomain> 
Date: Fri, 06 Oct 2006 22:44:30 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> > I am sure that everyone here has that intention, but that isn't the
> > crucial question.  The crucial question is whether people are pushing
> > hard enough to actually attain that goal.
> 
> Yes, we are.

Prove it!  Prove that you are working hard at it!  You could say you
are working hard to get to the moon and it'd be about as real.

I am still asking for permission to forward your mail to Marvell.
Please grant it.  If you don't, I still might.  If I do forward it, I
will let you know.  I am trying to find out exactly who in volume
sales I should show it to.

> >     By the way, you can easily understand the firmware interface by
> >     looking at the Linux driver (it provides as much information as the
> >     documentation).
> > 
> > The code of that driver would be fine documentation if it is released.
> 
> The driver is in our git pool, awaiting upstream merge at kernel.org.

A driver without documentation is useless, and if Richard Stallman
believes that a driver written without full open documentation is
worth anything, then Richard Stallman is someone who would sell his
mother into slavery for a beer.

> > But I think people stated here that Marvell has not released it, and
> > that Marvell says it can't release that code because it is too tangled
> > up with the microkernel.  
> 
> Marvell can't release the firmware that runs inside the wireless chip.

Jim, are you stupid?  You phrase that entire sentence to avoid the facts.
While we would like the source, we know we won't get it.  Let me phrase it
in one very simple yes/no question:

	Does your contract with Marvell gaurantee to the community
	that they will release full documentation and firmware rights
	at a time in the future not more than one year.

	Yes/no.

Please answer that question.  Don't joke around.  I'm getting very angry
and am very tempted to violate all the rules of mail etiquete and publish
those whole archive of mail.  You keep avoiding the hard questions by
deleting them.

> The Linux kernel driver for the Marvell wireless chip is already
> available, and has been for several months.
> 
> http://dev.laptop.org/git?p=olpc-2.6;a=summary

That driver cannot be maintained without full chip documentation.  In
two years when you switch to another chip, we will have no
documentation to fix it.  And you will try to walk away acting as if
this is not your fault.  It WILL BE YOUR FAULT.  I am trying you save
you from feeling like a total tool in two years.  Don't you get it?

> > If that is not right, would someone please
> > set me straight?
> > 
> >     > The Marvell documentation does exist.  I have been told a bit about
> >     > how large it is.  It sounds like you are making these statements
> >     > without having access to it.
> > 
> >     Its rather small (its the interface to the firmware through a set of
> >     well defined commands).
> > 
> > I think we are having a miscommunication.  The documentation we need
> > is the specifications for the hardware itself.  With that, we could
> > write a driver.  We do not need documention of their driver as such.
> 
> Please look at the libertas driver in the git pool.

What?  Look at code that noone will fix be able to fix in 2 years when
Marcello with his NDA documentation no longer cares?

Jim, you are doing a smash up job of convincing me that you don't give
as damn about open or free code.

------- End of Blind-Carbon-Copy
Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Fri Oct  6 23:06:18 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k9756IU9020858
	for <deraadt>; Fri, 6 Oct 2006 23:06:18 -0600 (MDT)
Message-Id: <200610070506.k9756IU9020858@cvs.openbsd.org>
Date: Fri, 06 Oct 2006 23:06:18 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Re: Marvell 88W8388 documentation 
BCC:

------- Blind-Carbon-Copy

To: jg@laptop.org
cc: rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Sat, 07 Oct 2006 00:41:14 EDT."
             <1160196075.22956.232.camel@localhost.localdomain> 
Date: Fri, 06 Oct 2006 23:06:18 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

> We make it clear with the manufacturers we talk to.  It is an
> interesting cultural exchange at times :-).
> 
> In general, we do not lack leverage at all; manufacturers are very happy
> to do what we want, *so long as it is within their power and ability to
> do so and they believe can make money doing so*.

Can you give us an example of something that Marvell has opened up?

> A good example is
> Marvell's (yes, the same Marvell company) reengineering of the SD
> interface to solve the documentation and driver problem posed by the SD
> association's draconian NDA terms.  They revised their SD hardware
> design to conform to the public SD spec at significant expense; they
> could do it for us, so they did it for us after only mild arm
> twisting.  

Here in OpenBSD, one of our developers working for 3 weeks completely
reverse engineered the SD spec for drives.  He's still working on the
SDIO stuff.  But that will happen soon enough.  People have been
coming forward who are willing to help our developer understand things
that are not yet disclosed by the SD 'Forum' (what a stupid name for a
secret cabal).  Those people who are helping are not coming from the
Linux world.

So you walk in with orders for 8,000,000 chips, and the SD forum says
"no way" when you ask for documentation, and Marvell goes through
"incredible effort".  How can you have things so upside down?

I bet that what really happened is Marvell said "we have no power,
please keep buying our chips" and you said "oh my, we must buy your
chips" and then Marvell did the work and now you say "oh my lord,
marvell you are my hero".

Yes, I am mocking you because I think you have been lied to and you
believe the vendor.  Furthermore, you don't care to improve the open /
free source world, and now everything you are saying is a CYA move to
try to make sure this does not become bad press for OLPC.

> The wireless firmware situation was/is different: Marvell doesn't own
> all the IP

So they claim

> and could not do what we wanted in any legal fashion

So they claim

> and there is no other vendor

So you claim

> that (yet) makes a suitable part to use.

So they claim.

> So,
> plan B: replace the firmware entirely via Meraki; but that will take
> longer than we can wait to start testing, or maybe even early
> deployment.  Time will tell.  

Expediency over open, free, disclosure.

> And, of course, we tell all the other
> vendors that want the business that they need to make a part similar to
> what Marvell has done if they want the business in gen2.

Did you research Inprocomm, Hitachi, Connexant, Atmel, and the other
20 or so vendors who put ARM cpu's onto 802.11 parts?  I have read
their data sheets.  I still don't know what makes Marvell special.
I've asked you what makes them special, but of course you have an NDA
with Marvell and can't show me what makes them special.

> It was lots of fun working with the touch pad vendor: it took about 3
> times to convince them that: 1) we couldn't care less about Windows
> compatibility, 2) we wanted both modes of the data from the device at
> once, (it is a novel dual mode device; a cross between a tablet and
> touchpad) and 3) we could make both our operating system and the window
> system use a device that didn't conform to "Windows standards" without
> difficulty, since we had all the code.  Once they understood we were
> serious and did not have Windows constraints, the answer to "jump" was
> "how high"....  Bridging the cultural barriers can take work, however.

Is the touchpad interface totally free and open?  Where can I get the
PDF file?

Is the camera interface totally free and open?  Where can I get the
PDF file for it?  Yes, I have already talked to Jonathan Corbet about
that.  Guess what, Richard.  The camera interface in the laptop is
also completely locked down under NDA.

How many other interfaces in this "open" laptop are totally locked down
by NDA's, Jim?  The keyboard?  The flash chips?  The screen?  The power
controller?

Is there anything truly open about this crappy laptop that is going to
enslave the world?

Can you please explain in very clear language to me how this laptop is
in any way more open than a typical MS-DOS / Windows capable laptop, like
for instance a Thinkpad?

Yes, maybe it is cheaper.  Maybe it has mesh.  Maybe it runs on less
power.

But you also told the world that it would be more open, and that it
would run Linux, it would be all GNU, and wow, therefore it would be
better for children than Microsoft.  And that is a complete
fabrication.  It is a new monopoly rising, with a laptop even more
locked up in single vendor software and hardware than anything else we
have seen in a while.

> > How far in the future do you think the next time around will be?
> 
> As soon as we get this one done.  Of course, we tell every vendor that
> comes through the door what they have to do if they want the Gen 2
> business. Very advanced planning for the 2nd generation system will
> start before this year is over.  We should be done with most hardware
> testing by sometime in 2nd quarter of 2007, and that's when we'll start
> in on gen2 design more seriously.

You will put closed-product ahead of open/free this time.  But
next time you will put open/free ahead of your product.

I don't believe you.

------- End of Blind-Carbon-Copy
Return-Path: rms@gnu.org
Delivery-Date: Fri Oct  6 19:07:56 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k9717tm6000860
	for <deraadt@cvs.openbsd.org>; Fri, 6 Oct 2006 19:07:55 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GW0fH-000063-Ir; Fri, 06 Oct 2006 21:07:43 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: Marcelo Tosatti <mtosatti@redhat.com>
CC: deraadt@cvs.openbsd.org, jg@laptop.org, dcbw@redhat.com, jsg@goblin.cx,
        blizzard@redhat.com
In-reply-to: <20061006173402.GA4575@dmt> (message from Marcelo Tosatti on Fri,
	6 Oct 2006 14:34:03 -0300)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <1160089598.6075.63.camel@localhost.localdomain> <200610052358.k95NwHB2006381@cvs.openbsd.org> <20061006173402.GA4575@dmt>
Message-Id: <E1GW0fH-000063-Ir@fencepost.gnu.org>
Date: Fri, 06 Oct 2006 21:07:43 -0400

    Everybody in the OLPC project, including the people who decided to pick
    a piece of hardware able to keep up with cost/power constraints, have
    the best intentions with reference to using _only_ free software in the
    machines.

I am sure that everyone here has that intention, but that isn't the
crucial question.  The crucial question is whether people are pushing
hard enough to actually attain that goal.

    By the way, you can easily understand the firmware interface by
    looking at the Linux driver (it provides as much information as the
    documentation).

The code of that driver would be fine documentation if it is released.
But I think people stated here that Marvell has not released it, and
that Marvell says it can't release that code because it is too tangled
up with the microkernel.  If that is not right, would someone please
set me straight?

    > The Marvell documentation does exist.  I have been told a bit about
    > how large it is.  It sounds like you are making these statements
    > without having access to it.

    Its rather small (its the interface to the firmware through a set of
    well defined commands).

I think we are having a miscommunication.  The documentation we need
is the specifications for the hardware itself.  With that, we could
write a driver.  We do not need documention of their driver as such.
Replied: Sat, 07 Oct 2006 22:05:16 -0600
Replied: "rms@gnu.org "
Replied: Sat, 07 Oct 2006 14:24:45 -0600
Replied: "rms@gnu.org jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: rms@gnu.org
Delivery-Date: Sat Oct  7 14:11:32 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k97KBWkw024756
	for <deraadt@cvs.openbsd.org>; Sat, 7 Oct 2006 14:11:32 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GWIVt-0005LT-La; Sat, 07 Oct 2006 16:11:13 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: Theo de Raadt <deraadt@cvs.openbsd.org>
CC: jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
cc: rms@gnu.org
In-reply-to: <200610062012.k96KCtPR003267@cvs.openbsd.org> (message from Theo
	de Raadt on Fri, 06 Oct 2006 14:12:55 -0600)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References:  <200610062012.k96KCtPR003267@cvs.openbsd.org>
Message-Id: <E1GWIVt-0005LT-La@fencepost.gnu.org>
Date: Sat, 07 Oct 2006 16:11:13 -0400

    I suspect that OLPC and/or Red Hat and/or their developers have
    already signed agreements with Marvell, thus these are not the people
    who can help reverse-engineer the chips.

You are probably right, but we can recruit other people to do it
regardless of whether those people can work on it.

But I think they could fund the reverse engineering, as long as it is
actually done by people who have not seen the material from Marvell
and to whom the NDA does not apply.


Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Sat Oct  7 14:24:45 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k97KOjxv027428
	for <deraadt>; Sat, 7 Oct 2006 14:24:45 -0600 (MDT)
Message-Id: <200610072024.k97KOjxv027428@cvs.openbsd.org>
Date: Sat, 07 Oct 2006 14:24:45 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Re: Marvell 88W8388 documentation 
BCC:

------- Blind-Carbon-Copy

To: rms@gnu.org
cc: jg@laptop.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Sat, 07 Oct 2006 16:11:13 EDT."
             <E1GWIVt-0005LT-La@fencepost.gnu.org> 
Date: Sat, 07 Oct 2006 14:24:45 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

>     I suspect that OLPC and/or Red Hat and/or their developers have
>     already signed agreements with Marvell, thus these are not the people
>     who can help reverse-engineer the chips.
> 
> You are probably right, but we can recruit other people to do it
> regardless of whether those people can work on it.
> 
> But I think they could fund the reverse engineering, as long as it is
> actually done by people who have not seen the material from Marvell
> and to whom the NDA does not apply.

We contact vendors for documentation, and we get it quite often.

If we cannot get documentation for a device that is becoming very
common in our users' machines -- we reverse engineer when we have to.

Now that an NDA has been signed with a bunch of vendors, those vendors
are MUCH less likely to hand out documentation.

That is why open source vendors should never sign NDA's, no matter how
much they want them!  It may let a driver be written, but it is
IMPOSSIBLE to maintain it later.

That was my point from day 1:

	Red Hat signs NDA's all the time, and it is making it
	very difficult for open source driver maintainers to
	write and MAINTAIN drivers!

It's not just an OpenBSD problem -- it is affecting ALL of us
who are writing and MAINTAINING drivers!

Jim is not writing or MAINTAINING drivers, so he does not see the
problem!

Richard is not writing drivers either, so he does not see the problem
either!

And when was the last time you reverse engineered a driver, Richard?
Have you any idea how much the world has changed?

Down here in the trenches, where we are writing and maintaining
drivers it is becoming absolute HELL, and it is due to the actions
SPECIFICALLY of Red Hat.  And now OLPC is doing it too.

You have documentation NDA's with SD Association (for the SD/SDIO bus)
and OmniVision (for the camera), too.  What other documentation did
you get under NDA?


How is this an open laptop?  The thinkpad sitting beside me on the
table is using more openly documented hardware than this thing you are
going to make millions of.

DAMN RIGHT -- OLPC is building a laptop more proprietary than IBM.
More things in the IBM laptop are documented *and* have drivers.  For
OLPC, many parts will only have drivers -- NO DOCUMENTATION.

------- End of Blind-Carbon-Copy
Return-Path: rms@gnu.org
Delivery-Date: Sat Oct  7 21:30:24 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k983UOe7016177
	for <deraadt@cvs.openbsd.org>; Sat, 7 Oct 2006 21:30:24 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GWPMb-0006jr-SG; Sat, 07 Oct 2006 23:30:05 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: jg@laptop.org
CC: mtosatti@redhat.com, deraadt@cvs.openbsd.org, dcbw@redhat.com,
        jsg@goblin.cx, blizzard@redhat.com, rms@gnu.org
In-reply-to: <1160184512.22956.146.camel@localhost.localdomain> (message from
	Jim Gettys on Fri, 06 Oct 2006 21:28:32 -0400)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <1160089598.6075.63.camel@localhost.localdomain>
	 <200610052358.k95NwHB2006381@cvs.openbsd.org> <20061006173402.GA4575@dmt>
	 <E1GW0fH-000063-Ir@fencepost.gnu.org> <1160184512.22956.146.camel@localhost.localdomain>
Message-Id: <E1GWPMb-0006jr-SG@fencepost.gnu.org>
Date: Sat, 07 Oct 2006 23:30:05 -0400

    >     By the way, you can easily understand the firmware interface by
    >     looking at the Linux driver (it provides as much information as the
    >     documentation).
    > 
    > The code of that driver would be fine documentation if it is released.

    The driver is in our git pool, awaiting upstream merge at kernel.org.

I overlooked the distinction between the driver and the firmware when
I wrote that message.  Sorry.

Now I understand what you were saying before.

I would expect that programmers can figure out, from the driver, how
new firmware would have to talk to it.  However, the firmware has
another interface: to the chip.  That is the interface we need Marvell
to give us specs for.

Return-Path: rms@gnu.org
Delivery-Date: Sat Oct  7 21:30:30 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k983UUBW015485
	for <deraadt@cvs.openbsd.org>; Sat, 7 Oct 2006 21:30:30 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GWPMj-0006m0-9M; Sat, 07 Oct 2006 23:30:13 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: jg@laptop.org
CC: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com, rms@gnu.org
In-reply-to: <1160196075.22956.232.camel@localhost.localdomain> (message from
	Jim Gettys on Sat, 07 Oct 2006 00:41:14 -0400)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org> <1160196075.22956.232.camel@localhost.localdomain>
Message-Id: <E1GWPMj-0006m0-9M@fencepost.gnu.org>
Date: Sat, 07 Oct 2006 23:30:13 -0400

    The wireless firmware situation was/is different: Marvell doesn't own
    all the IP 

Please let's avoid use of the propaganda term "IP".
It blurs the most basic distinctions, and should _never_ be used
(see http://www.gnu.org/philosophy/not-ipr.xhtml).

This case here provides a good illustration of the confusion that that
term tends to cause.  Because it uses that vague term rather than
something meaningful, your statement doesn't begin to tell us what
kind of issue we face.

Previous messages said that it is a matter of a non-free microkernel.
I.e., a specific part of the program.  Is that the whole problem?

    So,
    plan B: replace the firmware entirely via Meraki; but that will take
    longer than we can wait to start testing, or maybe even early
    deployment.

I am not sure what this means; I don't know what Meraki is.
Maybe this is a good plan.  Could you tell me more about it?

      We should be done with most hardware
    testing by sometime in 2nd quarter of 2007, and that's when we'll start
    in on gen2 design more seriously.

It sounds like gen2 might be produced in 2008 or 2009; is that right?
Return-Path: jg@laptop.org
Delivery-Date: Sun Oct  8 09:09:53 2006
Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [216.148.227.153])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k98F9rh1003230
	for <deraadt@cvs.openbsd.org>; Sun, 8 Oct 2006 09:09:53 -0600 (MDT)
Received: from [192.168.1.148] (c-24-218-178-107.hsd1.ma.comcast.net[24.218.178.107])
          by comcast.net (rwcrmhc13) with SMTP
          id <20061008150940m1300ngqlne>; Sun, 8 Oct 2006 15:09:46 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: rms@gnu.org
Cc: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com
In-Reply-To: <E1GWPMj-0006m0-9M@fencepost.gnu.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org>
	 <1160196075.22956.232.camel@localhost.localdomain>
	 <E1GWPMj-0006m0-9M@fencepost.gnu.org>
Content-Type: text/plain
Organization: OLPC
Date: Sun, 08 Oct 2006 11:09:38 -0400
Message-Id: <1160320179.22956.385.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Sat, 2006-10-07 at 23:30 -0400, Richard Stallman wrote:
>     The wireless firmware situation was/is different: Marvell doesn't own
>     all the IP 
> 
> Please let's avoid use of the propaganda term "IP".
> It blurs the most basic distinctions, and should _never_ be used
> (see http://www.gnu.org/philosophy/not-ipr.xhtml).

Sure.

> 
> This case here provides a good illustration of the confusion that that
> term tends to cause.  Because it uses that vague term rather than
> something meaningful, your statement doesn't begin to tell us what
> kind of issue we face.

The third party embedded OS vendor both owns its copyrights and it's
license requires an NDA to see their code, as I understand it.

> 
> Previous messages said that it is a matter of a non-free microkernel.

The microkernel's license made opening the firmware in the short term an
absolute non-starter and something that could be not be negotiated;
there was not time nor other alternatives to the course we took.

We were able to and did negotiate that alternative firmware would come
into existence.

> I.e., a specific part of the program.  Is that the whole problem?

Depends on what you mean by "problem". We see other "opportunities" in
the community's (and we believe Marvell's) interest, if we can make them
come about. Marvell has other code of their own creation we'd like to
see open, if we can convince them of it being in their interest and
benefit, and we're negotiating with them on that code.  

These negotiations with hardware vendors take time, as it is an
educational process for most hardware vendors about economic models of
free software and open hardware, something foreign to most vendors.  I
do not know what the outcome of those discussions will ultimately be.
Being bulls in a china shop will not help those negotiations.  More I
will not say, and attempting to insert yourselves into the negotiations
will just reduce the chance of a good outcome, and we will actively
oppose any attempts to do so.  If and when it comes time for legal
language to be put about such a donation, I don't doubt we'll be in
touch with Eben Moglen and the SFLC on the topic, as we are on other
free software legal topics.

As should be evident from Marvell's behavior with the SD interface, we
have both a good relationship and serious negotiating clout with them,
and intend that both continue. 

The *big* levers we have include that the next generation of the machine
we plan to be 5-10 times as many units, which would take us from being a
speculative moderate sized customer to a very big one (there are *a lot*
of chips sold for embedded 802.11 use now, which is where Marvell has
concentrated) and that Marvell will be facing competition by that date.
We have been talking to (and will continue to talk to) the other
wireless chip manufacturers to ensure they understand our unique
requirements. I saw one of the senior Athleros people here within the
last two weeks ;-). Having the Roofnet firmware underway also helps our
negotiating position, as does Marvell's understanding that they will
face competition in future machines and that they will have to earn our
business.

> 
>     So,
>     plan B: replace the firmware entirely via Meraki; but that will take
>     longer than we can wait to start testing, or maybe even early
>     deployment.
> 
> I am not sure what this means; I don't know what Meraki is.
> Maybe this is a good plan.  Could you tell me more about it?

http://www.meraki.net/ are in the process of porting the MIT Roofnet
code to the Marvell chip, and that code will remain open.  How long this
will take is unclear to me as I'm not directly involved in that effort.
This has come about due to OLPC. You'll see a people you you know
personally on the "about Meraki" page and others having come from
Roofnet, along with a "Meraki's hardware platforms are open, and we
encourage others to modify and extend them" statement. A quick look at
the licensing of Roofnet is a mixture of MIT/GPL.

> 
>       We should be done with most hardware
>     testing by sometime in 2nd quarter of 2007, and that's when we'll start
>     in on gen2 design more seriously.
> 
> It sounds like gen2 might be produced in 2008 or 2009; is that right?

Yup, though I'd expect we have to have a new machine in production
before the end of 2008.
                              Best regards,
                                       - Jim


-- 
Jim Gettys
One Laptop Per Child


Return-Path: jsg@goblin.cx
Delivery-Date: Sun Oct  8 16:25:07 2006
Received: from min.bytemine.net (min.bytemine.net [134.106.146.209])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k98MP52E009002
	(version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO)
	for <deraadt@cvs.openbsd.org>; Sun, 8 Oct 2006 16:25:06 -0600 (MDT)
Received: from dsl-210-15-216-215-static.vic.netspace.net.au ([210.15.216.215]:50047 helo=carla.home)
	by min.bytemine.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.60)
	(envelope-from <jsg@goblin.cx>)
	id 1GWh4n-0006QQ-RK; Mon, 09 Oct 2006 00:24:55 +0200
Received: from carla.home (jsg@localhost.home [127.0.0.1])
	by carla.home (8.13.6/8.13.6) with ESMTP id k98MOkgR019842;
	Mon, 9 Oct 2006 08:24:46 +1000 (EST)
Received: (from jsg@localhost)
	by carla.home (8.13.6/8.13.1/Submit) id k98MOhmB016501;
	Mon, 9 Oct 2006 08:24:43 +1000 (EST)
Date: Mon, 9 Oct 2006 08:24:43 +1000
From: Jonathan Gray <jsg@goblin.cx>
To: Jim Gettys <jg@laptop.org>
Cc: rms@gnu.org, deraadt@cvs.openbsd.org, dcbw@redhat.com, mtosatti@redhat.com
Subject: Re: Marvell 88W8388 documentation
Message-ID: <20061008222443.GA27352@mail.netspace.net.au>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org> <1159989002.6029.710.camel@localhost.localdomain> <E1GVWLs-0002y4-HY@fencepost.gnu.org> <1160088294.6075.40.camel@localhost.localdomain> <E1GVvxx-00033d-VQ@fencepost.gnu.org> <1160196075.22956.232.camel@localhost.localdomain> <E1GWPMj-0006m0-9M@fencepost.gnu.org> <1160320179.22956.385.camel@localhost.localdomain>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1160320179.22956.385.camel@localhost.localdomain>
User-Agent: Mutt/1.5.11

On Sun, Oct 08, 2006 at 11:09:38AM -0400, Jim Gettys wrote:
> 
> On Sat, 2006-10-07 at 23:30 -0400, Richard Stallman wrote:
> >     The wireless firmware situation was/is different: Marvell doesn't own
> >     all the IP 
> > 
> > Please let's avoid use of the propaganda term "IP".
> > It blurs the most basic distinctions, and should _never_ be used
> > (see http://www.gnu.org/philosophy/not-ipr.xhtml).
> 
> Sure.
> 
> > 
> > This case here provides a good illustration of the confusion that that
> > term tends to cause.  Because it uses that vague term rather than
> > something meaningful, your statement doesn't begin to tell us what
> > kind of issue we face.
> 
> The third party embedded OS vendor both owns its copyrights and it's
> license requires an NDA to see their code, as I understand it.
> 
> > 
> > Previous messages said that it is a matter of a non-free microkernel.
> 
> The microkernel's license made opening the firmware in the short term an
> absolute non-starter and something that could be not be negotiated;
> there was not time nor other alternatives to the course we took.
> 
> We were able to and did negotiate that alternative firmware would come
> into existence.

You keep talking about code, but want we really want is documentation
on how to drive the hardware.  Not information that has the
chinese whispers problem and has to be figured out by trying to
understand someone else's kernel and APIs.  I don't see why it is
so hard for marvell to give out details on the interface to their
hardware.  Not the internal details of how it works, but the 
interface, registers, bits, rx/tx descriptors, its not
rocket science.

> 
> > I.e., a specific part of the program.  Is that the whole problem?
> 
> Depends on what you mean by "problem". We see other "opportunities" in
> the community's (and we believe Marvell's) interest, if we can make them
> come about. Marvell has other code of their own creation we'd like to
> see open, if we can convince them of it being in their interest and
> benefit, and we're negotiating with them on that code.  
> 
> These negotiations with hardware vendors take time, as it is an
> educational process for most hardware vendors about economic models of
> free software and open hardware, something foreign to most vendors.  I
> do not know what the outcome of those discussions will ultimately be.
> Being bulls in a china shop will not help those negotiations.  More I
> will not say, and attempting to insert yourselves into the negotiations
> will just reduce the chance of a good outcome, and we will actively
> oppose any attempts to do so.  If and when it comes time for legal
> language to be put about such a donation, I don't doubt we'll be in
> touch with Eben Moglen and the SFLC on the topic, as we are on other
> free software legal topics.
> 
> As should be evident from Marvell's behavior with the SD interface, we
> have both a good relationship and serious negotiating clout with them,
> and intend that both continue. 
> 
> The *big* levers we have include that the next generation of the machine
> we plan to be 5-10 times as many units, which would take us from being a
> speculative moderate sized customer to a very big one (there are *a lot*
> of chips sold for embedded 802.11 use now, which is where Marvell has
> concentrated) and that Marvell will be facing competition by that date.
> We have been talking to (and will continue to talk to) the other
> wireless chip manufacturers to ensure they understand our unique
> requirements. I saw one of the senior Athleros people here within the
> last two weeks ;-). Having the Roofnet firmware underway also helps our
> negotiating position, as does Marvell's understanding that they will
> face competition in future machines and that they will have to earn our
> business.

Right, because Atheros are so open.  There is no documentation on
anything, and we are the only people shipping a driver that
actually has source for everything. I really don't see why you keep
talking to vendors that have a history of being jerks.

> 
> > 
> >     So,
> >     plan B: replace the firmware entirely via Meraki; but that will take
> >     longer than we can wait to start testing, or maybe even early
> >     deployment.
> > 
> > I am not sure what this means; I don't know what Meraki is.
> > Maybe this is a good plan.  Could you tell me more about it?
> 
> http://www.meraki.net/ are in the process of porting the MIT Roofnet
> code to the Marvell chip, and that code will remain open.  How long this
> will take is unclear to me as I'm not directly involved in that effort.
> This has come about due to OLPC. You'll see a people you you know
> personally on the "about Meraki" page and others having come from
> Roofnet, along with a "Meraki's hardware platforms are open, and we
> encourage others to modify and extend them" statement. A quick look at
> the licensing of Roofnet is a mixture of MIT/GPL.

Oh cmon, it is an Atheros SoC! Even the person who is porting
NetBSD to it under contract to cuwin has to slowly dig information
out of Linux diffs, and even then NetBSD still require this closed
driver nonsense for the wireless.  But Atheros will eventually
change their ways and be nice and friendly after you start
shipping units right? ... right

Replied: Sun, 08 Oct 2006 17:39:38 -0600
Replied: "rms@gnu.org "
Return-Path: rms@gnu.org
Delivery-Date: Sun Oct  8 16:27:25 2006
Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k98MRPCj021846
	for <deraadt@cvs.openbsd.org>; Sun, 8 Oct 2006 16:27:25 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GWh6x-00067v-Kg; Sun, 08 Oct 2006 18:27:07 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: jg@laptop.org
CC: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com, rms@gnu.org
In-reply-to: <1160320179.22956.385.camel@localhost.localdomain> (message from
	Jim Gettys on Sun, 08 Oct 2006 11:09:38 -0400)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org>
	 <1160196075.22956.232.camel@localhost.localdomain>
	 <E1GWPMj-0006m0-9M@fencepost.gnu.org> <1160320179.22956.385.camel@localhost.localdomain>
Message-Id: <E1GWh6x-00067v-Kg@fencepost.gnu.org>
Date: Sun, 08 Oct 2006 18:27:07 -0400

    The third party embedded OS vendor both owns its copyrights and it's
    license requires an NDA to see their code, as I understand it.

    > Previous messages said that it is a matter of a non-free microkernel.

    The microkernel's license made [liberating] the firmware in the
    short term an absolute non-starter and something that could be not
    be negotiated

Ok, so we are talking only about the code of the microkernel.  That is
much more specific information, and thus more conducive to
constructive activity.

Faced with this, you could press Marvell to release their own code
(i.e., everything but the microkernel).  I understand that this code
by itself won't run, but it will still take us a lot closer to having
free firmware.  There are free microkernels it could be ported to.

De Raadt may be right that you would have had a greater chance of
gaining this if you had insisted on this at the start.  But that is
water under the bridge now; the point is that it isn't too late to try
pressing for this.

    http://www.meraki.net/ are in the process of porting the MIT Roofnet
    code to the Marvell chip, and that code will remain [free].

If this produces a free replacement for the current non-free firmware,
and you switch to it, I'd say the problem will have been solved.

Is there any indication of how they are progressing?

However, it can't hurt to press Marvell to release their firmware
code (not the microkernel) anyway.  When a problem is serious
it is well to have two solutions in progress in parallel, in case
one of them fails.

Return-Path: jg@laptop.org
Delivery-Date: Sun Oct  8 19:40:44 2006
Received: from rwcrmhc15.comcast.net (rwcrmhc15.comcast.net [216.148.227.155])
	by cvs.openbsd.org (8.13.6/8.12.1) with ESMTP id k991ehsA007934
	for <deraadt@cvs.openbsd.org>; Sun, 8 Oct 2006 19:40:44 -0600 (MDT)
Received: from [192.168.1.148] (c-24-218-178-107.hsd1.ma.comcast.net[24.218.178.107])
          by comcast.net (rwcrmhc15) with SMTP
          id <20061009014026m1500aqgfle>; Mon, 9 Oct 2006 01:40:37 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: rms@gnu.org
Cc: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com
In-Reply-To: <E1GWh6x-00067v-Kg@fencepost.gnu.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org>
	 <1160196075.22956.232.camel@localhost.localdomain>
	 <E1GWPMj-0006m0-9M@fencepost.gnu.org>
	 <1160320179.22956.385.camel@localhost.localdomain>
	 <E1GWh6x-00067v-Kg@fencepost.gnu.org>
Content-Type: text/plain
Organization: OLPC
Date: Sun, 08 Oct 2006 21:40:25 -0400
Message-Id: <1160358025.22956.430.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Sun, 2006-10-08 at 18:27 -0400, Richard Stallman wrote:
>     The third party embedded OS vendor both owns its copyrights and it's
>     license requires an NDA to see their code, as I understand it.
> 
>     > Previous messages said that it is a matter of a non-free microkernel.
> 
>     The microkernel's license made [liberating] the firmware in the
>     short term an absolute non-starter and something that could be not
>     be negotiated
> 
> Ok, so we are talking only about the code of the microkernel.  That is
> much more specific information, and thus more conducive to
> constructive activity.
> 
> Faced with this, you could press Marvell to release their own code
> (i.e., everything but the microkernel).  I understand that this code
> by itself won't run, but it will still take us a lot closer to having
> free firmware.  There are free microkernels it could be ported to.

This is easier said that done at times, though in principle, true.
The other approach is to take an existing, well understood code base,
lock stock and barrel and port it: e.g. MIT roofnet.

> 
> De Raadt may be right that you would have had a greater chance of
> gaining this if you had insisted on this at the start.  But that is
> water under the bridge now; the point is that it isn't too late to try
> pressin  g for this.
> 
>     http://www.meraki.net/ are in the process of porting the MIT Roofnet
>     code to the Marvell chip, and that code will remain [free].
> 
> If this produces a free replacement for the current non-free firmware,
> and you switch to it, I'd say the problem will have been solved.
>  
> Is there any indication of how they are progressing?

Michailis would know; I don't have the hours in the day to watch parts
of the OLPC project that are under control.  If it were going badly, I'd
be much more likely to have heard about it.

> 
> However, it can't hurt to press Marvell to release their firmware
> code (not the microkernel) anyway.  

What do you think we are doing?  

I'm just having to watch what I say, as I can't expose Marvell's product
plans.

> When a problem is serious
> it is well to have two solutions in progress in parallel, in case
> one of them fails.

The Meraki effort is unlikely to fail, given the people doing the work.
It is also work OLPC cares about greatly; we have to have back haul from
many locations back to a point of presence at the schools.

                                               - Jim


-- 
Jim Gettys
One Laptop Per Child


Return-Path: rms@gnu.org
Delivery-Date: Mon Oct  9 14:10:05 2006
Received: from fencepost.gnu.org ([199.232.76.164])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k99KA4Wo017599
	for <deraadt@cvs.openbsd.org>; Mon, 9 Oct 2006 14:10:04 -0600 (MDT)
Received: from rms by fencepost.gnu.org with local (Exim 4.34)
	id 1GX1QJ-0002kU-2k; Mon, 09 Oct 2006 16:08:27 -0400
Content-Type: text/plain; charset=ISO-8859-15
From: Richard Stallman <rms@gnu.org>
To: jg@laptop.org
CC: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com, rms@gnu.org
In-reply-to: <1160358025.22956.430.camel@localhost.localdomain> (message from
	Jim Gettys on Sun, 08 Oct 2006 21:40:25 -0400)
Subject: Re: Marvell 88W8388 documentation
Reply-to: rms@gnu.org
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org>
	 <1160196075.22956.232.camel@localhost.localdomain>
	 <E1GWPMj-0006m0-9M@fencepost.gnu.org>
	 <1160320179.22956.385.camel@localhost.localdomain>
	 <E1GWh6x-00067v-Kg@fencepost.gnu.org> <1160358025.22956.430.camel@localhost.localdomain>
Message-Id: <E1GX1QJ-0002kU-2k@fencepost.gnu.org>
Date: Mon, 09 Oct 2006 16:08:27 -0400

    > When a problem is serious
    > it is well to have two solutions in progress in parallel, in case
    > one of them fails.

    The Meraki effort is unlikely to fail, given the people doing the work.
    It is also work OLPC cares about greatly; we have to have back haul from
    many locations back to a point of presence at the schools.

Every programming project has a chance of failure.
We need to plan parallel efforts
if we want a high probability of really reaching the goal.

Meanwhile, de Raadt is right that publication of the hardware
spec will be important for future maintenance of the code that
Meraki releases.
Replied: Tue, 10 Oct 2006 08:55:20 -0600
Replied: "jg@laptop.org rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Replied: Tue, 10 Oct 2006 08:48:10 -0600
Replied: "jg@laptop.org rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com"
Return-Path: jg@laptop.org
Delivery-Date: Mon Oct  9 16:58:51 2006
Received: from alnrmhc13.comcast.net (alnrmhc13.comcast.net [206.18.177.53])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k99Mwoth026291
	for <deraadt@cvs.openbsd.org>; Mon, 9 Oct 2006 16:58:51 -0600 (MDT)
Received: from wireless-230.media.mit.edu ([18.85.18.230])
          by comcast.net (alnrmhc13) with SMTP
          id <20061009205810b1300me708e>; Mon, 9 Oct 2006 20:58:21 +0000
Subject: Re: Marvell 88W8388 documentation
From: Jim Gettys <jg@laptop.org>
Reply-To: jg@laptop.org
To: rms@gnu.org
Cc: deraadt@cvs.openbsd.org, jsg@goblin.cx, dcbw@redhat.com,
        mtosatti@redhat.com
In-Reply-To: <E1GX1QJ-0002kU-2k@fencepost.gnu.org>
References: <200610041838.k94IcY6j006189@cvs.openbsd.org>
	 <1159989002.6029.710.camel@localhost.localdomain>
	 <E1GVWLs-0002y4-HY@fencepost.gnu.org>
	 <1160088294.6075.40.camel@localhost.localdomain>
	 <E1GVvxx-00033d-VQ@fencepost.gnu.org>
	 <1160196075.22956.232.camel@localhost.localdomain>
	 <E1GWPMj-0006m0-9M@fencepost.gnu.org>
	 <1160320179.22956.385.camel@localhost.localdomain>
	 <E1GWh6x-00067v-Kg@fencepost.gnu.org>
	 <1160358025.22956.430.camel@localhost.localdomain>
	 <E1GX1QJ-0002kU-2k@fencepost.gnu.org>
Content-Type: text/plain
Organization: OLPC
Date: Mon, 09 Oct 2006 16:58:09 -0400
Message-Id: <1160427489.22956.673.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.1 
Content-Transfer-Encoding: 7bit

On Mon, 2006-10-09 at 16:08 -0400, Richard Stallman wrote:
>     > When a problem is serious
>     > it is well to have two solutions in progress in parallel, in case
>     > one of them fails.
> 
>     The Meraki effort is unlikely to fail, given the people doing the work.
>     It is also work OLPC cares about greatly; we have to have back haul from
>     many locations back to a point of presence at the schools.
> 
> Every programming project has a chance of failure.
> We need to plan parallel efforts
> if we want a high probability of really reaching the goal.
> 
> Meanwhile, de Raadt is right that publication of the hardware
> spec will be important for future maintenance of the code that
> Meraki releases.

Yes, we're working on that too.  Michailis isn't around at the moment,
or I'd ask what the current state of that is.
                                         - Jim

-- 
Jim Gettys
One Laptop Per Child


Return-Path: deraadt@cvs.openbsd.org
Delivery-Date: Tue Oct 10 08:48:12 2006
Received: from cvs.openbsd.org (localhost [127.0.0.1])
	by cvs.openbsd.org (8.13.8/8.12.1) with ESMTP id k9AEmAUI016309
	for <deraadt>; Tue, 10 Oct 2006 08:48:12 -0600 (MDT)
Message-Id: <200610101448.k9AEmAUI016309@cvs.openbsd.org>
Date: Tue, 10 Oct 2006 08:48:10 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>
Subject: Re: Marvell 88W8388 documentation 
BCC:

------- Blind-Carbon-Copy

To: jg@laptop.org
cc: rms@gnu.org, jsg@goblin.cx, dcbw@redhat.com, mtosatti@redhat.com
cc: lwn@lwn.net
Subject: Re: Marvell 88W8388 documentation 
In-reply-to: Your message of "Mon, 09 Oct 2006 16:58:09 EDT."
             <1160427489.22956.673.camel@localhost.localdomain> 
Date: Tue, 10 Oct 2006 08:48:10 -0600
From: Theo de Raadt <deraadt@cvs.openbsd.org>

Jim keeps misrepresting my view to be:

(1)	"OpenBSD wants Marvell to give them firmware source"

	or

(2)	"OpenBSD wants enough documentation to write their own own firmware"


That is false.  Jim, you are making that shit up.

Our views are, and has been since day 1, that

(3)	"OpenBSD wants a vendor binary firmware that may be distributed
	 legally (copyright distribution rights)"

	*and*

(4)	"OpenBSD wants enough documentation to allow a kernel-level
	 driver to be written (which will interface with the firmware)".


BUT YOU KEEP MIS-REPRESENTING WHAT WE WANT.  In every single public
statement, you act as if we want something unreasonable!

Why do you do that?

You know that the views (1) and (2) are totally unrealistic, and that
Marvell will never give us those.  I know just as well that Marvell
would never give us firmware programming information.  Nor would
OpenBSD even WANT documentation for the chip at the firmware level.
We are not in the business of writing replacement firmwares.  We write
an operating system and the basic kernel-level drivers, not firmwares.

So why do you keep saying that we want (1) and (2) then?

Because by making it APPEAR as if I have unreasonable views, it is
easier for you to label me as "unreasonable"

Well, if you want to play the unreasonable game, I can too.

Set the record straight -- admit in a publical forum that you have
fabricated an OpenBSD position which does not exist and apologize.

You just will not stop putting words into my mouth.  I have been
strong worded but I have not misrepresented anyone's vision.
Meanwhile, even in the Jem Report you are making up this absoolute
BULLSHIT about the OpenBSD being UNREASONABLE to ask for
"documentation to write their own firmware".

I will get a forum that will carry the full archive of mails, and I
will break the rules of email exchange, unless you come clean.

You have less than 2 days.


------- End of Blind-Carbon-Copy

