aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2008-05-23 08:58:12 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2008-07-10 09:30:39 -0400
commit4d2acfbfdf68257e846aaa355edd10fc35ba0feb (patch)
tree6ab49a7d46036fffb0f4588595ede7abca11a51a /drivers
parent5658c769443d543728b6c5c673dffc2df8676317 (diff)
firmware: Add CONFIG_EXTRA_FIRMWARE option
This allows arbitrary firmware files to be included in the static kernel where the firmware loader can find them without requiring userspace to be alive. (Updated and CONFIG_EXTRA_FIRMWARE_DIR added with lots of help from Johannes Berg). Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/base/Kconfig39
1 files changed, 39 insertions, 0 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index d7da109c24fd..13cfcb435f7d 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -34,6 +34,45 @@ 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 EXTRA_FIRMWARE
38 string "External firmware blobs to build into the kernel binary"
39 depends on FW_LOADER
40 help
41 This option allows firmware to be built into the kernel, for the
42 cases where the user either cannot or doesn't want to provide it from
43 userspace at runtime (for example, when the firmware in question is
44 required for accessing the boot device, and the user doesn't want to
45 use an initrd).
46
47 This option is a string, and takes the (space-separated) names of the
48 firmware files -- the same names which appear in MODULE_FIRMWARE()
49 and request_firmware() in the source. These files should exist under
50 the directory specified by the EXTRA_FIRMWARE_DIR option, which is
51 by default the firmware/ subdirectory of the kernel source tree.
52
53 So, for example, you might set CONFIG_EXTRA_FIRMWARE="usb8388.bin",
54 copy the usb8388.bin file into the firmware/ directory, and build the
55 kernel. Then any request_firmware("usb8388.bin") will be
56 satisfied internally without needing to call out to userspace.
57
58 WARNING: If you include additional firmware files into your binary
59 kernel image which are not available under the terms of the GPL,
60 then it may be a violation of the GPL to distribute the resulting
61 image -- since it combines both GPL and non-GPL work. You should
62 consult a lawyer of your own before distributing such an image.
63
64config EXTRA_FIRMWARE_DIR
65 string "Firmware blobs root directory"
66 depends on EXTRA_FIRMWARE != ""
67 default "firmware"
68 help
69 This option controls the directory in which the kernel build system
70 looks for the firmware files listed in the EXTRA_FIRMWARE option.
71 The default is the firmware/ directory in the kernel source tree,
72 but by changing this option you can point it elsewhere, such as
73 the /lib/firmware/ directory or another separate directory
74 containing firmware files.
75
37config DEBUG_DRIVER 76config DEBUG_DRIVER
38 bool "Driver Core verbose debug messages" 77 bool "Driver Core verbose debug messages"
39 depends on DEBUG_KERNEL 78 depends on DEBUG_KERNEL