Status of firmware distributed with the Linux kernel source

Inventory

This inventory is for 2.6.32 by Ben Hutchings. It is based on work by Bill Allombert, Larry Doolittle and Nathanael Nerode (neroden).

In cases where the file itself has no copyright or license notice, it is assumed to follow the driver file that includes it or links to it. Note that this makes very generous assumptions that the people who put the firmware into the kernel had the rights to do so. There are many cases that look suspiciously like the firmware image was grabbed without permission, but we don't try to categorize and second-guess such cases here. Ownership and permission for these blobs should be researched and documented as they are submitted for firmware-nonfree.

Files in the firmware subdirectory of the kernel are excluded; they are generally removed from Debian kernel sources and their licences are documented in firmware/WHENCE.

Source files containing firmware image

Other source files using image

Apparent license

Source files for firmware

Resulting status

Notes

arch/powerpc/platforms/cell/spufs/spu_save_dump.h_shipped

switch.c

GPLv2

spu_save.c, spu_save_crt0.S

free

arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped

switch.c

GPLv2

spu_restore.c, spu_restore_crt0.S

free

arch/powerpc/sysdev/micropatch.c

GPLv2

nondistributable; removed

drivers/char/ser_a2232fw.h

ser_a2232.c

BSD-ish

ser_a2232fw.ax

free

drivers/gpu/drm/mga/mga_ucode.h

mga_warp.c

BSD-ish

non-free; removed

3

drivers/gpu/drm/r128/r128_cce.c

BSD-ish

non-free; removed

3

drivers/gpu/drm/radeon/r600_firmware.h

r600_cp.c

BSD-ish

non-free; removed

3

drivers/gpu/drm/radeon/radeon_firmware.h

radeon_cp.c

BSD-ish

non-free; removed

3

drivers/infiniband/hw/ipath/ipath_sd7220_img.c

ipath_sd7220.c

BSD-ish/GPLv2

non-free; removed

4

drivers/media/dvb/dvb-usb/af9005-script.h

af9005-fe.c

?

nondistributable; removed

5

drivers/media/dvb/frontends/lgs8gxx.c

GPLv2

nondistributable; removed

drivers/net/appletalk/cops_ffdrv.h

cops.c

use-only

nondistributable; removed

drivers/net/appletalk/cops_ltdrv.h

cops.c

use-only

nondistributable; removed

drivers/net/ixp2000/ixp2400_rx.ucode

ixpdev.c

GPLv2

ixp2400_rx.uc

free

1

drivers/net/ixp2000/ixp2400_tx.ucode

ixpdev.c

GPLv2

ixp2400_tx.uc

free

1

drivers/net/r8169.c

GPLv2

nondistributable; removed

drivers/net/wan/wanxlfw.inc_shipped

wanxl.c

GPLv2

wanxlfw.S

free

drivers/net/wireless/atmel.c

GPLv2

atmel.c

free

drivers/scsi/53c700_d.h_shipped

53c700.c

GPLv2

53c700.scr

free

drivers/scsi/53c7xx_d.h_shipped

53c7xx.c

GPLv2

53c7xx.scr

free

drivers/scsi/aic7xxx/aic79xx_seq.h_shipped

aic79xx_core.c

BSD-ish

aic79xx.seq

free

drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped

aic7xxx_core.c

BSD-ish

aic7xxx.seq

free

drivers/scsi/aic7xxx_old/aic7xxx_seq.c

aic7xxx_old.c

BSD-ish

aic7xxx.seq

free

1

drivers/scsi/sym53c8xx_2/sym_fw1.h

sym_fw.c

GPLv2

sym_fw1.h

free

2

drivers/scsi/sym53c8xx_2/sym_fw2.h

sym_fw.c

GPLv2

sym_fw2.h

free

2

drivers/staging/otus/hal/hp*fw*.c*

hpmain.c

BSD-ish

non-free; removed

drivers/staging/rt2860/common/firmware.h

rtmp_init.c

BSD-ish

non-free; removed

6

drivers/staging/rt3070/firmware.h

rtmp_init.c

BSD-ish

non-free; removed

6

drivers/staging/rt3090/firmware.h

rtmp_init.c

BSD-ish

non-free; removed

6

drivers/staging/rtl8192su/r8192S_FwImgDTM.h

?

GPLv2

nondistributable; removed

7

drivers/staging/rtl8192su/r8192SU_HWImg.c

?

GPLv2

nondistributable; removed

7

drivers/staging/rtl8192su/r819xU_firmware_img.c

?

GPLv2

nondistributable; removed

7

drivers/staging/sxg/sxgphycode-1.2.h

sxg.c

GPLv2

nondistributable; removed

drivers/staging/vt6656/firmware.c

?

GPLv2

nondistributable; removed

sound/pci/cs46xx/cs46xx_image.h

cs46xx_lib.c

GPLv2

nondistributable; removed

sound/pci/cs46xx/imgs/*.h

cs46xx_lib.c

GPLv2

nondistributable; removed

Notes:

  1. Larry Doolittle was unable to regenerate this file from the claimed source
  2. Firmware provided as CPP macros implementing an asm
  3. Driver is patched to load firmware from the firmware-linux-nonfree package
  4. Driver is patched to load firmware from the firmware-qlogic package
  5. Driver is patched to load firmware from the Windows driver
  6. Driver is patched to load firmware from the firmware-ralink package
  7. Driver is patched to load firmware from the firmware-realtek package, which contains a properly-licenced version

In summary, Debian packages of Linux 2.6.32 should now be DFSG-free.

Specific drivers

acenic (drivers/net)

 ACENIC DRIVER
 P:      Jes Sorensen
 M:      jes@trained-monkey.org
 L:      linux-acenic@sunsite.dk
 S:      Maintained

according to freebsd's if_ti.c:

 * Alteon Networks Tigon PCI gigabit ethernet driver for ["FreeBSD"].
 * Manuals, sample driver and firmware source kits are available
 * from http://www.alteon.com/support/openkits.
 * Written by Bill Paul <wpaul@ctr.columbia.edu>
 * The firmware for the Tigon 1 and 2 ["NICs"] is compiled directly into
 * this driver by #including it as a C header file. This bloats the
 * driver somewhat, but it's the easiest method considering that the
 * driver code and firmware code need to be kept in sync. The source
 * for the firmware is not provided with the ["FreeBSD"] distribution since
 * compiling it requires a GNU toolchain targeted for mips-sgi-irix5.3.

acenic firmware source is here: http://alteon.shareable.org/

"Look at the source files yourself to understand any
 licensing restrictions on their use.  Alteon's license may be summarised
 like this: you may share and develop the firmware, but it is only for use
 with Alteon NIC products."

More useful acenic info:

Definitely not DFSG-free, but it appears distributable at least.. comments?

Jes Sorensen, the arcenic driver author, wrote :

  As I stated, I got it from Alteon with a written permission to distribute it as part of the GPL driver.

 "Alteon sold the rights to their NIC design to Nortel years ago; Nortel
 then sold off some rights to 3Com and/or Broadcom, and 3Com possibly
 sold off some of these rights to Broadcom as well."

Tracking down these people will be a pain. I've asked Broadcom about whether they own the rights to this firmware; their response:

 "Acenic is not supported by us, this was the Alteon's product."

dabusb (drivers/usb/media)

 *      Copyright (C) 1999  Deti Fliegl (deti@fliegl.de)
 deti@fliegl.de - awaiting response (apr 4, apr 13)   -dil

relicensed to BSD 12/2007 -maks

dgrs (drivers/net)

 *      Author: Rick Richardson, rick@remotepoint.com
 *      Derived from the ["SVR4"].2 (UnixWare) driver for the same card.
 *      Copyright 1995-1996 Digi International Inc.
 *      For information on purchasing a RightSwitch SE-4 or SE-6
 *      board, please contact Digi's sales department at 1-612-912-3444
 *      or 1-800-DIGIBRD.  Outside the U.S., please check our Web page
 *      at http://www.dgii.com for sales offices worldwide.
 DIGI RIGHTSWITCH NETWORK DRIVER
 P:      Rick Richardson
 L:      linux-net@vger.kernel.org
 W:      http://www.digi.com
 S:      Orphaned

The Manager of the firmware Engineering Department has been made aware and is currently researching this.

may 20:

 Dear Andres:
 After further research, we found that this product was killed in place
 and never reached the market.  We would like to request that this not be
 included.

There will be no users impacted by pulling support.

driver gone upstream 2.6.24 -maks

e100 (drivers/net)

Microcode turns out to be under 3-clause BSD license (so, distributable). Unfortunately this license is not listed in the Linux kernel sources, but it can be seen at http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/microcode/fxp/ .

emi62 (drivers/usb/misc)

 * Copyright (C) 2002
 *      Tapio Laxstr\uffffm (tapio.laxstrom@iptime.fi)
 * This file is generated from three different files, provided by Emagic.

So, undistributable. asuffield pointed out this: http://www.apple.com/pr/library/2002/jul/01emagic.html

keyspan (drivers/usb/serial)

  (C) Copyright (C) 2000-2001   Hugh Blemings <hugh@blemings.org>
  (C) Copyright (C) 2002        Greg Kroah-Hartman <greg@kroah.com>
  See http://misc.nu/hugh/keyspan.html for more information.
        The firmware contained herein as keyspan_*.h is
                Copyright (C) 1999-2001
                Keyspan, A division of InnoSys Incorporated ("Keyspan")
        as an unpublished work. This notice does not imply unrestricted or
        public access to the source code from which this firmware image is
        derived.  Except as noted below this firmware image may not be
        reproduced, used, sold or transferred to any third party without
        Keyspan's prior written consent.  All Rights Reserved.
        Permission is hereby granted for the distribution of this firmware
        image as part of a Linux or other Open Source operating system kernel
        in text or binary form as required.
        This firmware may not be modified and may only be used with
        Keyspan hardware.  Distribution and/or Modification of the
        keyspan.c driver which includes this firmware, in whole or in
        part, requires the inclusion of this statement."

This looks good; the only potentially hairy bit is the part about being distributed as part of a Linux or other Free OS kernel. Is shipping it as a separate driver, with other Linux drivers (ie, shipping a part of an OS kernel) permitted?

qla2xxx (drivers/scsi)

 * Copyright (C) 2003 Christoph Hellwig.
 * Copyright (C) 2003-2004 ["QLogic"] Corporation
 * (www.qlogic.com)
 QLOGIC ["QLA2XXX"] FC-SCSI DRIVER
 P:      Andrew Vasquez
 M:      andrew.vasquez@qlogic.com
 L:      linux-scsi@vger.kernel.org
 S:      Supported

freebsd has firmware for qla separated out and marked under BSD license; is this valid? can we just say the firmware blobs are BSD licensed?

Bits quoted from the response from David Wagner, and my response to him:

 > Can you tell me what the issue is as far as Debian is concerned? Do
 The GPL specifies that when binaries are distributed, source must be
 made available by some means.  Currently, if someone were to ask us
 (Debian) for the source to the firmware image, we would be unable to
 provide it.  That would mean we (Debian) are in violation of the
 license.  It is irrelevant what device the firmware code actually
 executes on.  Quoting the ["GPLv2"], "The source code for a work means the
 preferred form of the work for making modifications to it."  Unless
 ["QLogic"] is creating the binary image with a hex editor, I don't think it
 could be argued that the firmware image itself is the source code.
 >  you have suggestions as to the exact license agreement wording that
 > you would recommend?
 >

 Any Free license that's compatible with the GPL would be just fine.  I
 have been recommending the BSD license to hardware vendors.  For
 example:
 ...

 David then responded, saying he'd forward my input to his boss.

smctr (drivers/net/tokenring)

 * The firmware this driver downloads into the tokenring card is a
 * separate program and is not GPL'd source code, even though the Linux
 * side driver and the routine that loads this data into the card are.
 *
 * This firmware is licensed to you strictly for use in conjunction
 * with the use of SMC TokenRing adapters. There is no waranty
 * expressed or implied about its fitness for any purpose.
 *  - This is an 8K binary image. (MCT.BIN v6.3C1 03/01/95)
 *  - Jay Schulist <jschlst@samba.org>

Bad license since redistribution is not explicitly permitted.. plus it rescricts usage of the firmware on any box without smctr hardware.

tg3 (drivers/net)

 * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com)
 * Copyright (C) 2001 Jeff Garzik (jgarzik@pobox.com)
 * Copyright (C) 2004 Sun Microsystems Inc.
 * Firmware is:
 *      Copyright (C) 2000-2003 Broadcom Corporation.

downloading the driver now, but don't know what their relationship to the mainline kernel version is.

Also, Jeff Garzik was the one doing the initial checkin, but didn't respond to a direct question asking where the firmware came from, and under which licence.

Mail sent to broadcom driver support channel, and response received:

Response from Broadcom:

 . I have forwarded this request to our development team as well as our line product manager. I will inform you, once a decision is made

> So, where is the source for it ?

The GPL'd driver that broadcom distributes. The history of tg3.c is that broadcom's bcm57xx driver drove the hardware correctly but not linux so it was rewritten from scratch.

The ball is definitively in Broadcom's camp.

* 2005.05.25: Broadcom made a licencing proposal, shown below :

   /* xxx.h: Broadcom tg3 network driver.
    *
    * Copyright (c) 2004, 2005 Broadcom Corporation
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, except as noted below.
    *
    * This file contains firmware data derived from proprietary unpublished
    * source code, Copyright (c) 2004, 2005 Broadcom Corporation.
    *
    * Permission is hereby granted for the distribution of this firmware data
    * in hexadecimal or equivalent format, provided this copyright notice is
    * accompanying it.
    */

This is rather encouraging, and sounds ok to me to make the driver distributable in non-free. I have posted to debian-legal, so let's see what will come of it

Case information:

 > Below is a response to your case number ["CS00003271"] submitted to
   Broadcom NIC Technology Support.
 >
 > Case Title: ["GPLed"] driver and binary-only firmware blobs.

The ball may be in Broadcom's court, but if we want this resolved in a timely fashion, we'll probably need to pester them regularly.

This has been resolved, and the new license has been included in 2.6.12.

Here's the commit: http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=49cabf49abd7676d026a61baabf5aae9337a82be;hp=9beb1d587f690d5b2f9087f8f10c0ff9f6b66886

advansys (drivers/scsi)

 * Copyright (c) 1995-2000 Advanced System Products, Inc.
 * Copyright (c) 2000-2001 ConnectCom Solutions, Inc.
 * All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that redistributions of source
 * code retain the above copyright notice and this comment without
 * modification.
 *
 * As of March 8, 2000 Advanced System Products, Inc. (AdvanSys)
 * changed its name to ConnectCom Solutions, Inc.

not contacted yet

This looks fine; the driver and firmware appears to be BSD-licensed.

ip2main.c (drivers/char)

 *   (c) 1999 by Computone Corporation

loads ip2/fip_firm.h

no license information anywhere

 COMPUTONE INTELLIPORT MULTIPORT CARD
 P:      Michael H. Warfield
 M:      Michael H. Warfield <mhw@wittsend.com>
 W:      http://www.wittsend.com/computone.html
 L:      linux-computone@lazuli.wittsend.com
 S:      Orphaned

dsp56k.c (drivers/char)

 * The ["DSP56001"] Device Driver, saviour of the Free World(tm)
 *
 * Authors: Fredrik Noring   <noring@nocrew.org>
 *          lars brinkhoff   <lars@nocrew.org>
 *          Tomas Berndtsson <tomas@nocrew.org>
 *
 * First version May 1996
 *
 * History:
 *  97-01-29   Tomas Berndtsson,
 *               Integrated with Linux 2.1.21 kernel sources.
 *  97-02-15   Tomas Berndtsson,
 *               Fixed for kernel 2.1.26
 *
 * Copyright (C) 1996,1997 Fredrik Noring, lars brinkhoff & Tomas Berndtsson
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file COPYING in the main directory of this archive
 * for more details.

Source is now available; see [javascript:void(0);/*1223839421065*/ http://git.infradead.org/users/dwmw2/firmware-2.6.git?a=commitdiff;h=7f127d5ed0da66053482a3e18014c439da3c41d1]

mga (drivers/char/drm)

 /''' mga_ucode.h -- Matrox G200/G400 WARP engine microcode -'''- linux-c -*-
 * Created: Thu Jan 11 21:20:43 2001 by gareth@valinux.com
 *
 * Copyright 1999 Matrox Graphics Inc.
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * MATROX GRAPHICS INC., OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Kernel-based WARP engine management:
 *    Gareth Hughes <gareth@valinux.com>

Not contacted yet

Another BSD licensed driver; is this not ok?

X11, not BSD, but about as permissive.

Looks distributable, since the microcode does appear to be subject to the same copyright and license as the driver (contrast r128 and radeon)

pcxx (drivers/char)

 *  linux/drivers/char/pcxx.c
 *
 *  Written by Troy De Jongh, November, 1994
 *
 *  Copyright (C) 1994,1995 Troy De Jongh
 *  This software may be used and distributed according to the terms
 *  of the GNU General Public License.
 *
 *  This driver is for the DigiBoard PC/Xe and PC/Xi line of products.
 *
 *  This driver does NOT support DigiBoard's fastcook FEP option and
 *  does not support the transparent print (i.e. digiprint) option.
 *
 * This Driver is currently maintained by Christoph Lameter (christoph@lameter.com)
 *
 * Please contact digi for support issues at digilnux@dgii.com.
 * Some more information can be found at
 * http://lameter.com/digi.

includes digi_fep.h digi_bios.h wich just contain hexdumps, and no copyright header

Not contacted yet

r128 (drivers/char/drm)

 /''' r128_cce.c -- ATI Rage 128 driver -'''- linux-c -*-
 * Created: Wed Apr  5 19:24:19 2000 by kevin@precisioninsight.com
 *
 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 * Authors:
 *    Gareth Hughes <gareth@valinux.com>

contains "CCE microcode (from ATI)"

Not contacted yet

BSD licensed, firmware ok?

s/BSD/X11/

The problem here is that we don't have a copyright notice or license from ATI to go with the microcode "from ATI". (If ATI has transferred the copyright to Precision Insight or VA Linux, all would be well, but there's no reason to believe that they did, and plenty of reason to believe that they didn't.)

Dave Airlie told me "the original table was just released under NDA, with permission to reuse in open source". So the code is copyright ATI/AMD but under a permissive licence. I think labelling it with the licence from this file should be fine.

radeon (drivers/char/drm)

 /''' radeon_cp.c -- CP support for Radeon -'''- linux-c -*-
 *
 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
 * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 * Authors:
 *    Kevin E. Martin <martin@valinux.com>
 *    Gareth Hughes <gareth@valinux.com>

contains "CP microcode (from ATI)"

not contacted yet

Another BSD license?

Exactly like r128

The microcode is now separated out into radeon_firmware.h, which is copyright ATI and has the same BSD-ish licence. So this should be separately distributable now.

s/BSD/X11/

ser_a2232 (drivers/char)

 * Copyright (c) 1995 Jukka Marin <jmarin@jmp.fi>.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, and the entire permission notice in its entirety,
 *    including the disclaimer of warranties.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote
 *    products derived from this software without specific prior
 *    written permission.
 *
 * ALTERNATIVELY, this product may be distributed under the terms of
 * the GNU Public License, in which case the provisions of the GPL are
 * required INSTEAD OF the above restrictions.  (This clause is
 * necessary due to a potential bad interaction between the GPL and
 * the restrictions contained in a BSD-style copyright.)

copyright from included file ser_a2232fw.h

Not yet contacted

Dual licensed BSD/GPL, we can choose BSD for the firmware. If there's some sort of bad interaction between the GPL and BSD license (as the above seems to imply), we've got larger problems. :p

Definitely distributable

pca200e.data, pca200e_ecd.data, sba200e_ecd.data (drivers/atm)

Firmware files accompanying the FORE Systems 200E-series driver for ATM on Linux (fore200e.c). Distributed under the terms presented in drivers/atm/fore200e_firmware_copyright:

 These microcode data are placed under the terms of the GNU General Public License.
 We would prefer you not to distribute modified versions of it and not to ask
 for assembly or other microcode source.
 Copyright (c) 1995-2000 FORE Systems, Inc., as an unpublished work.  This
 notice does not imply unrestricted or public access to these materials which
 are a trade secret of FORE Systems, Inc. or its subsidiaries or affiliates
 (together referred to as "FORE"), and which may not be reproduced, used, sold
 or transferred to any third party without FORE's prior written consent.  All
 rights reserved.
 U.S. Government Restricted Rights.  If you are licensing the Software on
 behalf of the U.S. Government ("Government"), the following provisions apply
 to you.  If the software is supplied to the Department of Defense ("DoD"), it
 is classified as "Commercial Computer Software" under paragraph 252.227-7014
 of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any
 successor regulations) and the Government is acquiring only the license
 rights granted herein (the license rights customarily provided to non-Government
 users).  If the Software is supplied to any unit or agency of the Government
 other than the DoD, it is classified as "Restricted Computer Software" and
 the Government's rights in the Software are defined in paragraph 52.227-19 of
 the Federal Acquisition Regulations ("FAR") (or any successor regulations) or,
 in the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR
 (or any successor regulations).
 FORE Systems is a registered trademark, and ForeRunner, ["ForeRunnerLE"], and
 ForeThought are trademarks of FORE Systems, Inc.  All other brands or product
 names are trademarks or registered trademarks of their respective holders.

cs46xx_image.h (sound/pci/cs46xx)

This file, as of 2.6.24, contains no license or copyright information. Research about the history of this file can be found in #464197. DannFrazier sent a request for a free redistribution license to ?CirrusLogic on 2008.04.10 (via the Design Support Request form on their web page).


References

Bill Allombert's study of the problem in the 2.4.25 kernel : http://lists.debian.org/debian-legal/2004/04/msg00074.html

A more formal analysis of the steps to take, from Humberto Massa : http://lists.debian.org/debian-legal/2005/04/msg00192.html

Some links to bugs (past & present) relating to this issue: 183557 RFP for stripped out non-free kernel "bits" (fimware and anything else) 150052 requested (by manoj), and got non-free kernel bits removed (by Herbert Xu) (triggering 183557 by DrewDaniels) TODO: there are at least three other bugs relating to "non-free" related kernel stuff

Kernel team position statement

This statement applied to the 'etch' and 'lenny' releases.

Debian kernel team identifies the following three types of firmware, currently
found in the Linux kernel:
1. Sourceless binary blobs with no license, no explicit permission to redistribute, or
   an explicit prohibition to redistribute.
   This category currently includes the emi62, keyspan, smctr,
   cops, emi26, and 3c359 drivers. Removal of these drivers will have minimal
   impact on the users, as they are believed to be unpopular and not likely to
   be required during the installation.
2. Sourceless binary blobs distributed under GPL.
   This situation has been interpreted as a violation of the terms of GPL, which
   requires the distribution to be accompanied by the source code. Removal of
   firmware in this category will cause effective removal of a large number of
   important drivers, resulting in a severe negative impact on our users.
3. Binary blobs violating DFSG for other reasons.
   This category includes firmware which contains obfuscated source, or is not
   allowed to be modified. While less numerous than category 2, removal of
   drivers in this category will also have a significant negative
   impact on our users.
It has been agreed within Debian kernel team, that the firmware in category 1
is not acceptable in Debian. It is the intention of the kernel team to prune the
affected drivers from the upstream tarball.
While we continuosly strive to improve the situation with DFSG-compliance of kernel
packages, and there has been progress on it since Sarge release, we recognize that
fixing all the problems with drivers falling into categories 2 and 3 is not feasible
in the etch release time frame. Alternative solutions, like removal of the affected
drivers would have a severe negative impact on our users, and would be detrimentary
to the Debian's goal of advancement of free software. Therefore, we propose to accept
the drivers from categories 2 and 3 in the kernel packages for etch, given that an
agreement can be achieved with release and ftp-master teams, or the issue is
resolved by way of General Resolution.