lkml.org 
[lkml]   [2008]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 2/3] firmware: Add CONFIG_BUILTIN_FIRMWARE option
    From
    Date
    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.

    Signed-off-by: David Woodhouse <dwmw2@infradead.org>
    ---
    Makefile | 2 +-
    drivers/base/Kconfig | 12 ++++++++++++
    firmware/Makefile | 23 +++++++++++++++++++++++
    3 files changed, 36 insertions(+), 1 deletions(-)
    create mode 100644 firmware/Makefile

    diff --git a/Makefile b/Makefile
    index 20b3235..ac2ab7e 100644
    --- a/Makefile
    +++ b/Makefile
    @@ -450,7 +450,7 @@ scripts: scripts_basic include/config/auto.conf

    # Objects we will link into vmlinux / subdirs we need to visit
    init-y := init/
    -drivers-y := drivers/ sound/
    +drivers-y := drivers/ sound/ firmware/
    net-y := net/
    libs-y := lib/
    core-y := usr/
    diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
    index d7da109..687f097 100644
    --- a/drivers/base/Kconfig
    +++ b/drivers/base/Kconfig
    @@ -34,6 +34,18 @@ config FW_LOADER
    require userspace firmware loading support, but a module built outside
    the kernel tree does.

    +config BUILTIN_FIRMWARE
    + string "Firmware blobs to build into the kernel binary"
    + depends on FW_LOADER
    + help
    + This option allows firmware to be built into the kernel, for the cases
    + where the user either cannot or doesn't want to provide it from
    + userspace at runtime (for example, when the firmware in question is
    + required for accessing the boot device, and the user doesn't want to
    + use an initrd). Multiple files should be separated with spaces, and
    + the required files should exist under the firmware/ directory in
    + the source tree.
    +
    config DEBUG_DRIVER
    bool "Driver Core verbose debug messages"
    depends on DEBUG_KERNEL
    diff --git a/firmware/Makefile b/firmware/Makefile
    new file mode 100644
    index 0000000..184b8ef
    --- /dev/null
    +++ b/firmware/Makefile
    @@ -0,0 +1,23 @@
    +#
    +# kbuild file for firmware/
    +#
    +
    +FIRMWARE_BINS := $(subst ",,$(CONFIG_BUILTIN_FIRMWARE))
    +FIRMWARE_OBJS := $(patsubst %,%.o, $(FIRMWARE_BINS))
    +FIRMWARE_SRCS := $(patsubst %,$(obj)/%.c, $(FIRMWARE_BINS))
    +
    +
    +quiet_cmd_fwbin = MK_FW $@
    + cmd_fwbin = echo '/* File automatically generated */' > $@ ; \
    + echo '\#include <linux/firmware.h>' >> $@ ; \
    + echo 'static const unsigned char fw[] = {' >> $@ ; \
    + od -t x1 -A none -v $(srctree)/$(patsubst %.c,%,$@) | \
    + sed -e 's/ /, 0x/g' -e 's/^,//' -e 's/$$/,/' >> $@ ; \
    + echo '};' >> $@ ; \
    + echo 'DECLARE_BUILTIN_FIRMWARE("$(patsubst firmware/%.c,%,$@)",fw);' >> $@
    +
    +$(FIRMWARE_SRCS): $(obj)/%.c: $(srctree)/$(obj)/%
    + $(call cmd,fwbin)
    +
    +obj-y := $(FIRMWARE_OBJS)
    +
    --
    1.5.4.5

    --
    dwmw2



    \
     
     \ /
      Last update: 2008-05-23 15:51    [W:0.022 / U:0.196 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site