diff options
-rw-r--r-- | drivers/base/Kconfig | 25 | ||||
-rw-r--r-- | firmware/Makefile | 5 |
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 | ||
37 | config 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 | |||
37 | config EXTRA_FIRMWARE | 62 | config 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 | ||
10 | fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) | 10 | fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) |
11 | 11 | ||
12 | # If CONFIG_FIRMWARE_IN_KERNEL is not set, then don't include any firmware | ||
13 | ifneq ($(CONFIG_FIRMWARE_IN_KERNEL),y) | ||
14 | fw-shipped-y := | ||
15 | endif | ||
16 | |||
12 | firmware-y := $(fw-external-y) $(fw-shipped-y) | 17 | firmware-y := $(fw-external-y) $(fw-shipped-y) |
13 | firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-)))) | 18 | firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-)))) |
14 | 19 | ||