aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/Kconfig25
-rw-r--r--firmware/Makefile5
2 files changed, 30 insertions, 0 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index 13cfcb435f7d..d47482fa1d21 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -34,6 +34,31 @@ config FW_LOADER
34 require userspace firmware loading support, but a module built outside 34 require userspace firmware loading support, but a module built outside
35 the kernel tree does. 35 the kernel tree does.
36 36
37config FIRMWARE_IN_KERNEL
38 bool "Include in-kernel firmware blobs in kernel binary"
39 depends on FW_LOADER
40 default y
41 help
42 The kernel source tree includes a number of firmware 'blobs'
43 which are used by various drivers. The recommended way to
44 use these is to run "make firmware_install" and to copy the
45 resulting binary files created in usr/lib/firmware directory
46 of the kernel tree to the /lib/firmware on your system so
47 that they can be loaded by userspace helpers on request.
48
49 Enabling this option will build each required firmware blob
50 into the kernel directly, where request_firmware() will find
51 them without having to call out to userspace. This may be
52 useful if your root file system requires a device which uses
53 such firmware, and do not wish to use an initrd.
54
55 This single option controls the inclusion of firmware for
56 every driver which usees request_firmare() and ships its
57 firmware in the kernel source tree, to avoid a proliferation
58 of 'Include firmware for xxx device' options.
59
60 Say 'N' and let firmware be loaded from userspace.
61
37config EXTRA_FIRMWARE 62config EXTRA_FIRMWARE
38 string "External firmware blobs to build into the kernel binary" 63 string "External firmware blobs to build into the kernel binary"
39 depends on FW_LOADER 64 depends on FW_LOADER
diff --git a/firmware/Makefile b/firmware/Makefile
index e69461f9362b..cc25f5600d5d 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -9,6 +9,11 @@ fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir))
9 9
10fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) 10fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE))
11 11
12# If CONFIG_FIRMWARE_IN_KERNEL is not set, then don't include any firmware
13ifneq ($(CONFIG_FIRMWARE_IN_KERNEL),y)
14fw-shipped-y :=
15endif
16
12firmware-y := $(fw-external-y) $(fw-shipped-y) 17firmware-y := $(fw-external-y) $(fw-shipped-y)
13firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-)))) 18firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-))))
14 19