kernel-module-atheros: allow to build from objects
https://jira.digi.com/browse/DEL-134 Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
parent
9e336798c7
commit
a9767aa5ff
|
|
@ -0,0 +1,79 @@
|
||||||
|
ATH_DRV_BASEDIR := Ath6kl_LinuxRelease/Generic_Packages/compat-wireless
|
||||||
|
ATH_FIR_BASEDIR := Ath6kl_LinuxRelease/Firmware_Package/target/AR6003/hw2.1.1
|
||||||
|
|
||||||
|
ifneq ($(KERNELRELEASE),)
|
||||||
|
|
||||||
|
ATH_DEFINES += \
|
||||||
|
-DCOMPAT_BASE_TREE="\"$(shell cat $(src)/$(ATH_DRV_BASEDIR)/compat_base_tree)\"" \
|
||||||
|
-DCOMPAT_BASE_TREE_VERSION="\"$(shell cat $(src)/$(ATH_DRV_BASEDIR)/compat_base_tree_version)\"" \
|
||||||
|
-DCOMPAT_PROJECT="\"Compat-wireless\"" \
|
||||||
|
-DCOMPAT_VERSION="\"$(shell cat $(src)/$(ATH_DRV_BASEDIR)/compat_version)\""
|
||||||
|
|
||||||
|
NOSTDINC_FLAGS := -I$(M)/$(ATH_DRV_BASEDIR)/include/ \
|
||||||
|
-include $(M)/$(ATH_DRV_BASEDIR)/include/linux/compat-2.6.h \
|
||||||
|
$(ATH_DEFINES)
|
||||||
|
|
||||||
|
include $(src)/$(ATH_DRV_BASEDIR)/config.mk
|
||||||
|
|
||||||
|
SHELL_EXPORT := PATH=$(src)/$(ATH_DRV_BASEDIR)/scripts:$${PATH} \
|
||||||
|
COMPAT_CONFIG=$(src)/$(ATH_DRV_BASEDIR)/config.mk \
|
||||||
|
CONFIG_CHECK=.$(COMPAT_CONFIG)_md5sum.txt \
|
||||||
|
COMPAT_AUTOCONF=$(src)/$(ATH_DRV_BASEDIR)/include/linux/compat_autoconf.h
|
||||||
|
|
||||||
|
dummy := $(shell $(SHELL_EXPORT) bash -c "cd $(src)/$(ATH_DRV_BASEDIR) && ./scripts/check_config.sh || true")
|
||||||
|
|
||||||
|
obj-y := $(ATH_DRV_BASEDIR)/compat/
|
||||||
|
obj-y += $(ATH_DRV_BASEDIR)/net/wireless/
|
||||||
|
obj-y += $(ATH_DRV_BASEDIR)/drivers/net/wireless/ath/ath6kl/
|
||||||
|
|
||||||
|
else #ifneq ($(KERNELRELEASE),)
|
||||||
|
|
||||||
|
## Firmware files
|
||||||
|
FIRMWARE := $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/athtcmd_ram.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/athwlan.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/Digi_6203-6233-US.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/Digi_6203-6233-World.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/fw-4.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/nullTestFlow.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/utf.bin
|
||||||
|
ifeq ("$(DEL_PLATFORM)","cpx2")
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/calData_AR6103_Digi_X2e_B.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/calData_AR6103_Digi_X2e_B_world.bin
|
||||||
|
endif
|
||||||
|
|
||||||
|
COPYRIGHT := $(ATH_DRV_BASEDIR)/COPYRIGHT
|
||||||
|
|
||||||
|
COMPAT_OBJS = $(filter-out $(addprefix $(ATH_DRV_BASEDIR)/compat/,built-in.o compat.mod.o compat.o), $(wildcard $(ATH_DRV_BASEDIR)/compat/*.o))
|
||||||
|
CFG802_OBJS = $(filter-out $(addprefix $(ATH_DRV_BASEDIR)/net/wireless/,built-in.o cfg80211.mod.o cfg80211.o), $(wildcard $(ATH_DRV_BASEDIR)/net/wireless/*.o))
|
||||||
|
ATH6KL_OBJS = $(filter-out $(addprefix $(ATH_DRV_BASEDIR)/drivers/net/wireless/ath/ath6kl/,built-in.o ath6kl_sdio.mod.o ath6kl_sdio.o), $(wildcard $(ATH_DRV_BASEDIR)/drivers/net/wireless/ath/ath6kl/*.o))
|
||||||
|
|
||||||
|
SRC := $(shell pwd)
|
||||||
|
|
||||||
|
all:
|
||||||
|
$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
|
||||||
|
|
||||||
|
modules_install:
|
||||||
|
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
|
||||||
|
# Fix installation directory of the modules.
|
||||||
|
find $(INSTALL_MOD_PATH)/lib/modules/$(KERNEL_VERSION)/extra/Ath6kl_LinuxRelease -type f -name '*.ko' | \
|
||||||
|
xargs -I modfile mv -f modfile $(INSTALL_MOD_PATH)/lib/modules/$(KERNEL_VERSION)/extra/
|
||||||
|
rm -rf $(INSTALL_MOD_PATH)/lib/modules/*/extra/Ath6kl_LinuxRelease
|
||||||
|
# Install firmware
|
||||||
|
mkdir -p $(INSTALL_MOD_PATH)/lib/firmware/ath6k/AR6003/hw2.1.1/
|
||||||
|
install -m 0644 $(FIRMWARE) $(INSTALL_MOD_PATH)/lib/firmware/ath6k/AR6003/hw2.1.1/
|
||||||
|
|
||||||
|
tarball: TAR_DIR = $(SRC)/_tarball
|
||||||
|
tarball:
|
||||||
|
for i in $(COMPAT_OBJS) $(CFG802_OBJS) $(ATH6KL_OBJS); do \
|
||||||
|
mkdir -p $(TAR_DIR)/$$(dirname $${i}); \
|
||||||
|
install -m 0644 $${i} $(TAR_DIR)/$$(dirname $${i})/$$(basename $${i})_shipped; \
|
||||||
|
done
|
||||||
|
for i in $(FIRMWARE) $(COPYRIGHT); do \
|
||||||
|
mkdir -p $(TAR_DIR)/$$(dirname $${i}); \
|
||||||
|
install -m 0644 $${i} $(TAR_DIR)/$$(dirname $${i})/; \
|
||||||
|
done
|
||||||
|
rm -f atheros-$(DEL_PLATFORM).tar.gz && tar cz --transform 's,\(^[^/]\+/\),\1$(DEL_PLATFORM)/,' \
|
||||||
|
--numeric-owner --owner 0 --group 0 -f atheros-$(DEL_PLATFORM).tar.gz -C $(TAR_DIR) .
|
||||||
|
-rm -rf $(TAR_DIR)
|
||||||
|
|
||||||
|
endif #ifneq ($(KERNELRELEASE),)
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
ATH_DRV_BASEDIR := Ath6kl_LinuxRelease/Generic_Packages/compat-wireless
|
||||||
|
ATH_FIR_BASEDIR := Ath6kl_LinuxRelease/Firmware_Package/target/AR6003/hw2.1.1
|
||||||
|
|
||||||
|
ifneq ($(KERNELRELEASE),)
|
||||||
|
|
||||||
|
COMPAT_OBJS_SHIPPED := $(wildcard $(src)/$(ATH_DRV_BASEDIR)/compat/*.o_shipped)
|
||||||
|
CFG802_OBJS_SHIPPED := $(wildcard $(src)/$(ATH_DRV_BASEDIR)/net/wireless/*.o_shipped)
|
||||||
|
ATH6KL_OBJS_SHIPPED := $(wildcard $(src)/$(ATH_DRV_BASEDIR)/drivers/net/wireless/ath/ath6kl/*.o_shipped)
|
||||||
|
|
||||||
|
COMPAT_OBJS := $(subst $(src)/,,$(COMPAT_OBJS_SHIPPED:.o_shipped=.o))
|
||||||
|
CFG802_OBJS := $(subst $(src)/,,$(CFG802_OBJS_SHIPPED:.o_shipped=.o))
|
||||||
|
ATH6KL_OBJS := $(subst $(src)/,,$(ATH6KL_OBJS_SHIPPED:.o_shipped=.o))
|
||||||
|
|
||||||
|
obj-m := compat.o cfg80211.o ath6kl_sdio.o
|
||||||
|
compat-y := $(COMPAT_OBJS)
|
||||||
|
cfg80211-y := $(CFG802_OBJS)
|
||||||
|
ath6kl_sdio-y := $(ATH6KL_OBJS)
|
||||||
|
|
||||||
|
else #ifneq ($(KERNELRELEASE),)
|
||||||
|
|
||||||
|
## Firmware files
|
||||||
|
FIRMWARE := $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/athtcmd_ram.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/athwlan.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/Digi_6203-6233-US.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/Digi_6203-6233-World.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/fw-4.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/nullTestFlow.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/ath6kl_fw_concurrency/utf.bin
|
||||||
|
ifeq ("$(DEL_PLATFORM)","cpx2")
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/calData_AR6103_Digi_X2e_B.bin
|
||||||
|
FIRMWARE += $(ATH_FIR_BASEDIR)/calData_AR6103_Digi_X2e_B_world.bin
|
||||||
|
endif
|
||||||
|
|
||||||
|
SRC := $(shell pwd)
|
||||||
|
|
||||||
|
all:
|
||||||
|
$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
|
||||||
|
|
||||||
|
modules_install:
|
||||||
|
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
|
||||||
|
# Install firmware
|
||||||
|
mkdir -p $(INSTALL_MOD_PATH)/lib/firmware/ath6k/AR6003/hw2.1.1/
|
||||||
|
install -m 0644 $(FIRMWARE) $(INSTALL_MOD_PATH)/lib/firmware/ath6k/AR6003/hw2.1.1/
|
||||||
|
|
||||||
|
endif #ifneq ($(KERNELRELEASE),)
|
||||||
|
|
@ -6,58 +6,60 @@ inherit module
|
||||||
|
|
||||||
PR = "r0"
|
PR = "r0"
|
||||||
|
|
||||||
|
ATHEROS_BUILD_SRC ?= "1"
|
||||||
|
|
||||||
SRCREV = "${AUTOREV}"
|
SRCREV = "${AUTOREV}"
|
||||||
SRC_URI = "${DIGI_LOG_GIT}linux-modules/atheros.git;protocol=git;branch=refs/heads/master \
|
SRC_URI_git = " \
|
||||||
file://atheros \
|
${DIGI_LOG_GIT}linux-modules/atheros.git;protocol=git;branch=refs/heads/master \
|
||||||
file://atheros.conf \
|
file://Makefile.git \
|
||||||
"
|
"
|
||||||
|
SRC_URI_obj = " \
|
||||||
|
file://atheros-${MACHINE}.tar.gz \
|
||||||
|
file://Makefile.obj \
|
||||||
|
"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
SRC_URI = "${@base_conditional('ATHEROS_BUILD_SRC', '1' , '${SRC_URI_git}', '${SRC_URI_obj}', d)}"
|
||||||
FIRMWARE_S = "${S}/Ath6kl_LinuxRelease/Firmware_Package/target/AR6003/hw2.1.1"
|
SRC_URI += " \
|
||||||
|
file://atheros \
|
||||||
|
file://atheros.conf \
|
||||||
|
"
|
||||||
|
|
||||||
EXTRA_OEMAKE = "-C ${STAGING_KERNEL_DIR}"
|
S = "${@base_conditional('ATHEROS_BUILD_SRC', '1' , '${WORKDIR}/git', '${WORKDIR}/${MACHINE}', d)}"
|
||||||
EXTRAMAKEFLAGS = "M=${S} CONFIG_DEL_KMOD_ATHEROS=y KLIB_BUILD=${STAGING_KERNEL_DIR}"
|
|
||||||
|
|
||||||
module_do_compile() {
|
EXTRA_OEMAKE = "DEL_PLATFORM=${MACHINE} KLIB_BUILD=${STAGING_KERNEL_DIR}"
|
||||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
|
||||||
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
|
|
||||||
KERNEL_SRC=${STAGING_KERNEL_DIR} \
|
|
||||||
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
|
|
||||||
AR="${KERNEL_AR}" \
|
|
||||||
${EXTRAMAKEFLAGS} \
|
|
||||||
${MAKE_TARGETS}
|
|
||||||
}
|
|
||||||
|
|
||||||
module_do_install() {
|
do_configure_prepend() {
|
||||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
[ "${ATHEROS_BUILD_SRC}" = "1" ] && MK_SUFFIX=".git" || MK_SUFFIX=".obj"
|
||||||
oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" \
|
cp ${WORKDIR}/Makefile${MK_SUFFIX} ${S}/Makefile
|
||||||
KERNEL_SRC=${STAGING_KERNEL_DIR} \
|
|
||||||
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
|
|
||||||
${EXTRAMAKEFLAGS} \
|
|
||||||
modules_install
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install_append() {
|
do_install_append() {
|
||||||
install -d ${D}${sysconfdir}/network/if-pre-up.d
|
install -d ${D}${sysconfdir}/network/if-pre-up.d
|
||||||
install -m 0755 ${WORKDIR}/atheros ${D}${sysconfdir}/network/if-pre-up.d/
|
install -m 0755 ${WORKDIR}/atheros ${D}${sysconfdir}/network/if-pre-up.d/
|
||||||
install -d ${D}/etc/modprobe.d
|
install -d ${D}${sysconfdir}/modprobe.d
|
||||||
install -m 0755 ${WORKDIR}/atheros.conf ${D}${sysconfdir}/modprobe.d/
|
install -m 0644 ${WORKDIR}/atheros.conf ${D}${sysconfdir}/modprobe.d/
|
||||||
install -d ${D}/lib/firmware/ath6k/AR6003/hw2.1.1
|
|
||||||
install -m 0755 ${FIRMWARE_S}/ath6kl_fw_concurrency/athtcmd_ram.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
install -m 0755 ${FIRMWARE_S}/ath6kl_fw_concurrency/athwlan.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
install -m 0755 ${FIRMWARE_S}/ath6kl_fw_concurrency/fw-4.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
install -m 0755 ${FIRMWARE_S}/ath6kl_fw_concurrency/nullTestFlow.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
install -m 0755 ${FIRMWARE_S}/ath6kl_fw_concurrency/utf.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
install -m 0755 ${FIRMWARE_S}/Digi_6203-6233-US.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
install -m 0755 ${FIRMWARE_S}/Digi_6203-6233-World.bin ${D}/lib/firmware/ath6k/AR6003/hw2.1.1/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FILES_${PN} += " /lib/firmware/ath6k/AR6003/hw2.1.1/athtcmd_ram.bin \
|
FILES_${PN} += " \
|
||||||
/lib/firmware/ath6k/AR6003/hw2.1.1/athwlan.bin \
|
/lib/firmware/ath6k/AR6003/hw2.1.1/athtcmd_ram.bin \
|
||||||
/lib/firmware/ath6k/AR6003/hw2.1.1/fw-4.bin \
|
/lib/firmware/ath6k/AR6003/hw2.1.1/athwlan.bin \
|
||||||
/lib/firmware/ath6k/AR6003/hw2.1.1/nullTestFlow.bin \
|
/lib/firmware/ath6k/AR6003/hw2.1.1/Digi_6203-6233-US.bin \
|
||||||
/lib/firmware/ath6k/AR6003/hw2.1.1/utf.bin \
|
/lib/firmware/ath6k/AR6003/hw2.1.1/Digi_6203-6233-World.bin \
|
||||||
/lib/firmware/ath6k/AR6003/hw2.1.1/Digi_6203-6233-US.bin \
|
/lib/firmware/ath6k/AR6003/hw2.1.1/fw-4.bin \
|
||||||
/lib/firmware/ath6k/AR6003/hw2.1.1/Digi_6203-6233-World.bin "
|
/lib/firmware/ath6k/AR6003/hw2.1.1/nullTestFlow.bin \
|
||||||
|
/lib/firmware/ath6k/AR6003/hw2.1.1/utf.bin \
|
||||||
|
"
|
||||||
|
|
||||||
|
# Deploy objects tarball if building from sources
|
||||||
|
do_deploy() {
|
||||||
|
if [ "${ATHEROS_BUILD_SRC}" = "1" ]; then
|
||||||
|
oe_runmake tarball
|
||||||
|
install -d ${DEPLOY_DIR_IMAGE}
|
||||||
|
cp ${S}/atheros-${MACHINE}.tar.gz ${DEPLOY_DIR_IMAGE}/
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
addtask deploy before do_build after do_install
|
||||||
|
|
||||||
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||||
COMPATIBLE_MACHINE = "(ccardimx28js|cpx2)"
|
COMPATIBLE_MACHINE = "(ccardimx28js|cpx2)"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue