Commit 5620a0d1 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

firmware: delete in-kernel firmware

The last firmware change for the in-kernel firmware source code was back
in 2013.  Everyone has been relying on the out-of-tree linux-firmware
package for a long long time.

So let's drop it, it's baggage we don't need to keep dragging around
(and having to fix random kbuild issues over time...)

Cc: Kyle McMartin <>
Cc: Andrew Morton <>
Cc: Michal Marek <>
Cc: Masahiro Yamada <>
Acked-by: David Woodhouse's avatarDavid Woodhouse <>
Signed-off-by: default avatarGreg Kroah-Hartman <>
parent 569dbb88
......@@ -562,7 +562,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf \
# Objects we will link into vmlinux / subdirs we need to visit
init-y := init/
drivers-y := drivers/ sound/ firmware/
drivers-y := drivers/ sound/
net-y := net/
libs-y := lib/
core-y := usr/
......@@ -1128,16 +1128,6 @@ headerdep:
$(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
$(srctree)/scripts/ -I$(srctree)/include
# ---------------------------------------------------------------------------
# Firmware install
PHONY += firmware_install
@mkdir -p $(objtree)/firmware
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_install
# ---------------------------------------------------------------------------
# Kernel headers
......@@ -1216,7 +1206,6 @@ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
$(Q)$(AWK) '!x[$$0]++' $^ > $(objtree)/modules.builtin
......@@ -1252,7 +1241,6 @@ _modinst_:
# boot script depmod is the master version.
PHONY += _modinst_post
_modinst_post: _modinst_
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modinst
$(call cmd,depmod)
ifeq ($(CONFIG_MODULE_SIG), y)
......@@ -1375,8 +1363,6 @@ help:
@echo '* vmlinux - Build the bare kernel'
@echo '* modules - Build all modules'
@echo ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)'
@echo ' firmware_install- Install all firmware to INSTALL_FW_PATH'
@echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
@echo ' dir/ - Build all files in dir and below'
@echo ' dir/file.[ois] - Build specified target only'
@echo ' dir/file.ll - Build the LLVM assembly file'
This source diff could not be displayed because it is too large. You can view the blob instead.
# kbuild file for firmware/
# Create $(fwabs) from $(CONFIG_EXTRA_FIRMWARE_DIR) -- if it doesn't have a
# leading /, it's relative to $(srctree).
fwdir := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE_DIR))
fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir))
fw-external-y := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE))
# There are three cases to care about:
# 1. Building kernel with CONFIG_FIRMWARE_IN_KERNEL=y -- $(fw-shipped-y) should
# include the firmware files to include, according to .config
# 2. 'make modules_install', which will install firmware for modules, and
# _also_ for the in-kernel drivers when CONFIG_FIRMWARE_IN_KERNEL=n
# 3. 'make firmware_install', which installs all firmware, unconditionally.
# For the former two cases we want $(fw-shipped-y) and $(fw-shipped-m) to be
# accurate. In the latter case it doesn't matter -- it'll use $(fw-shipped-all).
# But be aware that the config file might not be included at all.
acenic-objs := acenic/tg2.bin
fw-shipped- += acenic/tg1.bin
acenic-objs := acenic/tg1.bin acenic/tg2.bin
fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs)
fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \
fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin
fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw
fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1- \
bnx2x/bnx2x-e1h- \
fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
bnx2/bnx2-rv2p-09-6.0.17.fw \
bnx2/bnx2-rv2p-09ax-6.0.17.fw \
bnx2/bnx2-mips-06-6.2.1.fw \
fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
cxgb3/t3c_psram-1.1.0.bin \
cxgb3/ael2005_opt_edc.bin \
cxgb3/ael2005_twx_edc.bin \
fw-shipped-$(CONFIG_DRM_MGA) += matrox/g200_warp.fw matrox/g400_warp.fw
fw-shipped-$(CONFIG_DRM_R128) += r128/r128_cce.bin
fw-shipped-$(CONFIG_DRM_RADEON) += radeon/R100_cp.bin radeon/R200_cp.bin \
radeon/R300_cp.bin radeon/R420_cp.bin \
radeon/RS690_cp.bin radeon/RS600_cp.bin \
radeon/R520_cp.bin \
radeon/R600_pfp.bin radeon/R600_me.bin \
radeon/RV610_pfp.bin radeon/RV610_me.bin \
radeon/RV630_pfp.bin radeon/RV630_me.bin \
radeon/RV620_pfp.bin radeon/RV620_me.bin \
radeon/RV635_pfp.bin radeon/RV635_me.bin \
radeon/RV670_pfp.bin radeon/RV670_me.bin \
radeon/RS780_pfp.bin radeon/RS780_me.bin \
radeon/RV770_pfp.bin radeon/RV770_me.bin \
radeon/RV730_pfp.bin radeon/RV730_me.bin \
radeon/RV710_pfp.bin radeon/RV710_me.bin
fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin
fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin
fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \
cis/DP83903.cis cis/NE2K.cis \
cis/tamarack.cis cis/PE-200.cis \
fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis
fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis
fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \
cis/COMpad2.cis cis/COMpad4.cis \
cis/SW_555_SER.cis cis/SW_7xx_SER.cis \
fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin
fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \
advansys/3550.bin advansys/38C0800.bin
fw-shipped-$(CONFIG_SCSI_QLOGIC_1280) += qlogic/1040.bin qlogic/1280.bin \
fw-shipped-$(CONFIG_SCSI_QLOGICPTI) += qlogic/isp1000.bin
fw-shipped-$(CONFIG_INFINIBAND_QIB) += qlogic/sd7220.fw
fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp
fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \
fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \
sb16/ima_adpcm_init.csp \
sb16/ima_adpcm_playback.csp \
fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin
fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin
fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \
fw-shipped-$(CONFIG_TYPHOON) += 3com/typhoon.bin
fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \
fw-shipped-$(CONFIG_USB_EMI62) += emi62/loader.fw emi62/bitstream.fw \
emi62/spdif.fw emi62/midi.fw
fw-shipped-$(CONFIG_USB_KAWETH) += kaweth/new_code.bin kaweth/trigger_code.bin \
kaweth/new_code_fix.bin \
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_MPR) += keyspan/mpr.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA18X) += keyspan/usa18x.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19) += keyspan/usa19.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QI) += keyspan/usa19qi.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QW) += keyspan/usa19qw.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19W) += keyspan/usa19w.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28) += keyspan/usa28.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XA) += keyspan/usa28xa.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XB) += keyspan/usa28xb.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28X) += keyspan/usa28x.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49W) += keyspan/usa49w.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49WLC) += keyspan/usa49wlc.fw
fw-shipped- += keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \
keyspan/usa19qi.fw keyspan/usa19qw.fw keyspan/usa19w.fw \
keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \
keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw
fw-shipped-$(CONFIG_USB_SERIAL_TI) += ti_3410.fw ti_5052.fw \
mts_cdma.fw mts_gsm.fw mts_edge.fw
fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT) += edgeport/boot.fw edgeport/boot2.fw \
edgeport/down.fw edgeport/down2.fw
fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += edgeport/down3.bin
fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \
# whiteheat_loader_debug.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw
fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw
fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin
fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin
fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)
quiet_cmd_ihex = IHEX $@
cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@
quiet_cmd_ihex2fw = IHEX2FW $@
cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@
quiet_cmd_h16tofw = H16TOFW $@
cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@
quiet_cmd_fwbin = MK_FW $@
cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \
FWSTR="$(subst /,_,$(subst .,_,$(subst -,_,$(patsubst \
firmware/%.gen.S,%,$@))))"; \
ASM_WORD=$(if $(CONFIG_64BIT),.quad,.long); \
ASM_ALIGN=$(if $(CONFIG_64BIT),3,2); \
PROGBITS=$(if $(CONFIG_ARM),%,@)progbits; \
echo "/* Generated by firmware/Makefile */" > $@;\
echo " .section .rodata" >>$@;\
echo " .p2align $${ASM_ALIGN}" >>$@;\
echo "_fw_$${FWSTR}_bin:" >>$@;\
echo " .incbin \"$(2)\"" >>$@;\
echo "_fw_end:" >>$@;\
echo " .section .rodata.str,\"aMS\",$${PROGBITS},1" >>$@;\
echo " .p2align $${ASM_ALIGN}" >>$@;\
echo "_fw_$${FWSTR}_name:" >>$@;\
echo " .string \"$$FWNAME\"" >>$@;\
echo " .section .builtin_fw,\"a\",$${PROGBITS}" >>$@;\
echo " .p2align $${ASM_ALIGN}" >>$@;\
echo " $${ASM_WORD} _fw_$${FWSTR}_name" >>$@;\
echo " $${ASM_WORD} _fw_$${FWSTR}_bin" >>$@;\
echo " $${ASM_WORD} _fw_end - _fw_$${FWSTR}_bin" >>$@;
# One of these files will change, or come into existence, whenever
# the configuration changes between 32-bit and 64-bit. The .S files
# need to change when that happens.
wordsize_deps := $(wildcard include/config/64bit.h include/config/32bit.h \
include/config/ppc32.h include/config/ppc64.h \
include/config/superh32.h include/config/superh64.h \
include/config/x86_32.h include/config/x86_64.h \
$(patsubst %,$(obj)/%.gen.S, $(fw-shipped-y)): %: $(wordsize_deps)
$(call cmd,fwbin,$(patsubst %.gen.S,%,$@))
$(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) \
$(call cmd,fwbin,$(fwabs)/$(patsubst $(obj)/%.gen.S,%,$@))
# The .o files depend on the binaries directly; the .S files don't.
$(patsubst %,$(obj)/%.gen.o, $(fw-shipped-y)): %.gen.o: %
$(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/%
# .ihex is used just as a simple way to hold binary files in a source tree
# where binaries are frowned upon. They are directly converted with objcopy.
$(obj)/%: $(obj)/%.ihex
$(call cmd,ihex)
# Don't depend on ihex2fw if we're installing and it already exists.
# Putting it after | in the dependencies doesn't seem sufficient when
# we're installing after a cross-compile, because ihex2fw has dependencies
# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and
# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree
# is exported read-only for someone to run 'make install'.
ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw)
ihex2fw_dep :=
ihex2fw_dep := $(obj)/ihex2fw
# .HEX is also Intel HEX, but where the offset and length in each record
# is actually meaningful, because the firmware has to be loaded in a certain
# order rather than as a single binary blob. Thus, we convert them into our
# more compact binary representation of ihex records (<linux/ihex.h>)
$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep)
$(call cmd,ihex2fw)
# .H16 is our own modified form of Intel HEX, with 16-bit length for records.
$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep)
$(call cmd,h16tofw)
obj-y += $(patsubst %,%.gen.o, $(fw-external-y))
obj-$(CONFIG_FIRMWARE_IN_KERNEL) += $(patsubst %,%.gen.o, $(fw-shipped-y))
ifeq ($(KBUILD_SRC),)
# only creates subdirectories for O= builds, but external
# firmware might live outside the kernel source tree
_dummy := $(foreach d,$(addprefix $(obj)/,$(dir $(fw-external-y))), $(shell [ -d $(d) ] || mkdir -p $(d)))
# Remove .S files and binaries created from ihex
# (during 'make clean' .config isn't included so they're all in $(fw-shipped-))
targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \
$(shell find $(obj) -name \*.gen.S 2>/dev/null))
# Without this, built-in.o won't be created when it's empty, and the
# final vmlinux link will fail.
obj- := dummy
hostprogs-y := ihex2fw
This directory is only here to contain firmware images extracted from old
device drivers which predate the common use of request_firmware().
As we update those drivers to use request_firmware() and keep a clean
separation between code and firmware, we put the extracted firmware
This directory is _NOT_ for adding arbitrary new firmware images. The
place to add those is the separate linux-firmware repository:
That repository contains all these firmware images which have been
extracted from older drivers, as well various new firmware images which
we were never permitted to include in a GPL'd work, but which we _have_
been permitted to redistribute under separate cover.
To submit firmware to that repository, please send either a git binary
diff or preferably a git pull request to:
and also cc: to related mailing lists.
Your commit should include an update to the WHENCE file clearly
identifying the licence under which the firmware is available, and
that it is redistributable. If the licence is long and involved, it's
permitted to include it in a separate file and refer to it from the
WHENCE file.
And if it were possible, a changelog of the firmware itself.
Ideally, your commit should contain a Signed-Off-By: from someone
authoritative on the licensing of the firmware in question (i.e. from
within the company that owns the code).
Don't send any "CONFIDENTIALITY STATEMENT" in your e-mail, patch or
request. Otherwise your firmware _will never be accepted_.
Maintainers are really busy, so don't expect a prompt reply.
This file attempts to document the origin and licensing information,
if known, for each piece of firmware distributed for use with the Linux
Driver: ambassador -- Madge Ambassador (Collage PCI 155 Server) ATM NIC.
File: firmware/atmsar11.fw
Licence: Allegedly GPLv2+, but no source visible. Marked:
Madge Ambassador ATM Adapter microcode.
Copyright (C) 1995-1999 Madge Networks Ltd.
This microcode data is placed under the terms of the GNU General
Public License. The GPL is contained in /usr/doc/copyright/GPL on a
Debian system and in the file COPYING in the Linux kernel source.
We would prefer you not to distribute modified versions without
consultation and not to ask for assembly/other microcode source.
Driver: korg1212 -- Korg 1212 IO audio device
File: korg/k1212.dsp
Licence: Unknown
Found in alsa-firmware package in hex form; no licensing information.
Driver: maestro3 -- ESS Allegro Maestro3 audio device
File: ess/maestro3_assp_kernel.fw
File: ess/maestro3_assp_minisrc.fw
Licence: Unknown
Found in alsa-firmware package in hex form with a comment claiming to
be GPLv2+, but without source -- and with another comment saying "ESS
drops binary dsp code images on our heads, but we don't get to see
specs on the dsp."
Driver: ymfpci -- Yamaha YMF724/740/744/754 audio devices
File: yamaha/ds1_ctrl.fw
File: yamaha/ds1_dsp.fw
File: yamaha/ds1e_ctrl.fw
Licence: Unknown
Found alsa-firmware package in hex form, with the following comment:
Copyright (c) 1997-1999 Yamaha Corporation. All Rights Reserved.
File: advansys/mcode.bin
File: advansys/3550.bin
File: advansys/38C0800.bin
File: advansys/38C1600.bin
Licence: BSD, no source available.
Found in hex form in kernel source.
Driver: SCSI_QLOGIC_1280 - Qlogic QLA 1240/1x80/1x160 SCSI support
File: qlogic/1040.bin
File: qlogic/1280.bin
File: qlogic/12160.bin
Licence: Allegedly GPLv2+, but no source visible. Marked:
QLogic ISP1280/ device driver for Linux 2.2.x and 2.4.x
Copyright (C) 2001 Qlogic Corporation (
Driver: kaweth -- USB KLSI KL5USB101-based Ethernet device
File: kaweth/new_code.bin
File: kaweth/new_code_fix.bin
File: kaweth/trigger_code.bin
File: kaweth/trigger_code_fix.bin
Licence: Unknown
Found in hex form in the kernel source.
Driver: ttusb-budget -- Technotrend/Hauppauge Nova-USB devices
File: ttusb-budget/dspbootcode.bin
Licence: Unknown
Found in hex form in the kernel source.
Driver: keyspan -- USB Keyspan USA-xxx serial device
File: keyspan/mpr.fw
File: keyspan/usa18x.fw
File: keyspan/usa19.fw
File: keyspan/usa19qi.fw
File: keyspan/usa19qw.fw
File: keyspan/usa19w.fw
File: keyspan/usa28.fw
File: keyspan/usa28xa.fw
File: keyspan/usa28xb.fw
File: keyspan/usa28x.fw
File: keyspan/usa49w.fw
File: keyspan/usa49wlc.fw
Converted from Intel HEX files, used in our binary representation of ihex.
Original licence information:
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."
Driver: keyspan_pda -- USB Keyspan PDA single-port serial device
File: keyspan_pda/keyspan_pda.fw
Source: keyspan_pda/keyspan_pda.S
File: keyspan_pda/xircom_pgs.fw
Source: keyspan_pda/xircom_pgs.S
Licence: GPLv2+
Compiled from original 8051 source into Intel HEX, used in our binary ihex form.
Driver: emi26 -- EMI 2|6 USB Audio interface
File: emi26/bitstream.fw
Info: VERSION= DATE=2001dec06
File: emi26/firmware.fw
Info: VERSION= DATE=12.02.2002
File: emi26/loader.fw
Converted from Intel HEX files, used in our binary representation of ihex.
Original licence information:
* This firmware is for the Emagic EMI 2|6 Audio Interface
* The firmware contained herein is Copyright (c) 1999-2002 Emagic
* as an unpublished work. This notice does not imply unrestricted
* or public access to this firmware which is a trade secret of Emagic,
* and which may not be reproduced, used, sold or transferred to
* any third party without Emagic's 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 the
* Emagic EMI 2|6 Audio Interface. Distribution and/or Modification of
* any driver which includes this firmware, in whole or in part,
* requires the inclusion of this statement.
Driver: emi62 -- EMI 6|2m USB Audio interface
File: emi62/bitstream.fw
Info: VERSION= DATE= 2002oct28
File: emi62/loader.fw
Info: VERSION= DATE=10.01.2002
File: emi62/midi.fw
Source: EMI62MFW.HEX
Info: VERSION=1.04.062 DATE=16.10.2002
File: emi62/spdif.fw
Source: EMI62SFW.HEX
Info: VERSION=1.04.062 DATE=16.10.2002
Converted from Intel HEX files, used in our binary representation of ihex.
Original licence information: None
Driver: ti_usb_3410_5052 -- USB TI 3410/5052 serial device
File: ti_3410.fw
Info: firmware 9/10/04 FW3410_Special_StartWdogOnStartPort
File: ti_5052.fw
Info: firmware 9/18/04
Licence: Allegedly GPLv2+, but no source visible. Marked:
Copyright (C) 2004 Texas Instruments
Found in hex form in kernel source.
Driver: ti_usb_3410_5052 -- Multi-Tech USB cell modems
File: mts_cdma.fw
File: mts_gsm.fw
File: mts_edge.fw
Licence: "all firmware components are redistributable in binary form"
Copyright (C) 2005 Multi-Tech Systems, Inc.
Found in hex form in
Driver: whiteheat -- USB ConnectTech WhiteHEAT serial device
File: whiteheat.fw
Version: 4.06
File: whiteheat_loader.fw
File: whiteheat_loader_debug.fw
Licence: Allegedly GPLv2, but no source visible. Marked:
Copyright (C) 2000-2002 ConnectTech Inc
Debug loader claims the following behaviour:
Port 1 LED flashes when the vend_ax program is running
Port 2 LED flashes when any SETUP command arrives
Port 3 LED flashes when any valid VENDOR request occurs
Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs
Converted from Intel HEX files, used in our binary representation of ihex.
Driver: CPiA2 -- cameras based on Vision's CPiA2
File: cpia2/stv0672_vp4.bin
Licence: Allegedly GPLv2+, but no source visible. Marked:
Copyright (C) 2001 STMicroelectronics, Inc.
Description: This file contains patch data for the CPiA2 (stv0672) VP4.
Found in hex form in kernel source.
Driver: DABUSB -- Digital Audio Broadcasting (DAB) Receiver for USB and Linux
File: dabusb/firmware.fw
File: dabusb/bitstream.bin
Licence: Distributable
* Copyright (C) 1999 BayCom GmbH
* 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.
Driver: USB_VICAM -- USB 3com HomeConnect (aka vicam)
File: vicam/firmware.fw
Licence: Unknown
Found in hex form in kernel source.
Driver: USB_SERIAL_EDGEPORT - USB Inside Out Edgeport Serial Driver
File: edgeport/boot.fw
File: edgeport/boot2.fw
File: edgeport/down.fw
File: edgeport/down2.fw
Licence: Allegedly GPLv2+, but no source visible. Marked:
//* Edgeport/4 Binary Image
//* Generated by HEX2C v1.06
//* Copyright (C) 1998 Inside Out Networks, All rights reserved.
Found in hex form in kernel source.
Driver: USB_SERIAL_EDGEPORT_TI - USB Inside Out Edgeport Serial Driver
(TI Devices)
File: edgeport/down3.bin
//* Edgeport Binary Image (for TI based products)
//* Generated by TIBin2C v2.00 (watchport)
//* Copyright (C) 2001 Inside Out Networks, All rights reserved.
Found in hex form in kernel source.
Driver: ATARI_DSP56K - Atari DSP56k support
File: dsp56k/bootstrap.bin
Source: dsp56k/bootstrap.asm