diff options
| author | David Woodhouse <dwmw2@infradead.org> | 2008-05-23 08:58:12 -0400 |
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-10 09:30:39 -0400 |
| commit | 4d2acfbfdf68257e846aaa355edd10fc35ba0feb (patch) | |
| tree | 6ab49a7d46036fffb0f4588595ede7abca11a51a /drivers/base/Kconfig | |
| parent | 5658c769443d543728b6c5c673dffc2df8676317 (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/base/Kconfig')
| -rw-r--r-- | drivers/base/Kconfig | 39 |
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 | ||
| 37 | config 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 | |||
| 64 | config 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 | |||
| 37 | config DEBUG_DRIVER | 76 | config 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 |
