move kernel modules directories
This patch moves the kernel modules code from EAL to a common place. - Separate the kernel module code from user space code. Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
48595b8d55
commit
acaa9ee991
@ -12,7 +12,7 @@ export RTE_SDK
|
||||
# directory list
|
||||
#
|
||||
|
||||
ROOTDIRS-y := buildtools lib drivers app
|
||||
ROOTDIRS-y := buildtools lib kernel drivers app
|
||||
ROOTDIRS- := test
|
||||
|
||||
include $(RTE_SDK)/mk/rte.sdkroot.mk
|
||||
|
@ -209,7 +209,7 @@ F: doc/guides/linux_gsg/
|
||||
|
||||
Linux UIO
|
||||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
F: lib/librte_eal/linuxapp/igb_uio/
|
||||
F: kernel/linux/igb_uio/
|
||||
F: drivers/bus/pci/linux/*uio*
|
||||
|
||||
Linux VFIO
|
||||
@ -225,11 +225,11 @@ F: doc/guides/freebsd_gsg/
|
||||
|
||||
FreeBSD contigmem
|
||||
M: Bruce Richardson <bruce.richardson@intel.com>
|
||||
F: lib/librte_eal/bsdapp/contigmem/
|
||||
F: kernel/freebsd/contigmem/
|
||||
|
||||
FreeBSD UIO
|
||||
M: Bruce Richardson <bruce.richardson@intel.com>
|
||||
F: lib/librte_eal/bsdapp/nic_uio/
|
||||
F: kernel/freebsd/nic_uio/
|
||||
|
||||
|
||||
Core Libraries
|
||||
@ -359,7 +359,7 @@ F: doc/guides/nics/features/bonding.ini
|
||||
|
||||
Linux KNI
|
||||
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
||||
F: lib/librte_eal/linuxapp/kni/
|
||||
F: kernel/linux/kni/
|
||||
F: lib/librte_kni/
|
||||
F: doc/guides/prog_guide/kernel_nic_interface.rst
|
||||
F: test/test/test_kni.c
|
||||
|
9
kernel/Makefile
Normal file
9
kernel/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
|
||||
# Copyright 2017 NXP
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += linux
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += freebsd
|
||||
|
||||
include $(RTE_SDK)/mk/rte.subdir.mk
|
43
kernel/freebsd/BSDmakefile.meson
Normal file
43
kernel/freebsd/BSDmakefile.meson
Normal file
@ -0,0 +1,43 @@
|
||||
# BSD LICENSE
|
||||
#
|
||||
# Copyright(c) 2017 Intel Corporation. All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# makefile for building kernel modules using meson
|
||||
# takes parameters from the environment
|
||||
|
||||
# source file is passed via KMOD_SRC as full path, we only use final
|
||||
# component of it, as VPATH is used to find actual file, so as to
|
||||
# have the .o files placed in the build, not source directory
|
||||
VPATH = ${KMOD_SRC:H}
|
||||
SRCS = ${KMOD_SRC:T} device_if.h bus_if.h pci_if.h
|
||||
CFLAGS += $(KMOD_CFLAGS)
|
||||
|
||||
.include <bsd.kmod.mk>
|
9
kernel/freebsd/Makefile
Normal file
9
kernel/freebsd/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright 2017 NXP
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += contigmem
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += nic_uio
|
||||
|
||||
include $(RTE_SDK)/mk/rte.subdir.mk
|
9
kernel/linux/Makefile
Normal file
9
kernel/linux/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright 2017 NXP
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
|
||||
DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
|
||||
|
||||
include $(RTE_SDK)/mk/rte.subdir.mk
|
@ -18,7 +18,7 @@ custom_target('igb_uio',
|
||||
'M=' + meson.current_build_dir(),
|
||||
'src=' + meson.current_source_dir(),
|
||||
'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
|
||||
'/../../common/include',
|
||||
'/../../../lib/librte_eal/common/include',
|
||||
'modules'],
|
||||
depends: mkfile,
|
||||
build_by_default: get_option('enable_kmods'))
|
46
kernel/meson.build
Normal file
46
kernel/meson.build
Normal file
@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
# Initially pull in common settings
|
||||
#eal_inc = [global_inc]
|
||||
#subdir('common') # defines common_sources, common_objs, etc.
|
||||
|
||||
# Now do OS/exec-env specific settings, including building kernel modules
|
||||
# The <exec-env>/eal/meson.build file should define env_sources, etc.
|
||||
if host_machine.system() == 'linux'
|
||||
dpdk_conf.set('RTE_EXEC_ENV_LINUXAPP', 1)
|
||||
subdir('linux/igb_uio')
|
||||
|
||||
elif host_machine.system() == 'freebsd'
|
||||
dpdk_conf.set('RTE_EXEC_ENV_BSDAPP', 1)
|
||||
kmods = ['contigmem', 'nic_uio']
|
||||
|
||||
# for building kernel modules, we use kernel build system using make, as
|
||||
# with Linux. We have a skeleton BSDmakefile, which pulls many of its
|
||||
# values from the environment. Each module only has a single source file
|
||||
# right now, which allows us to simplify things. We pull in the sourcer
|
||||
# files from the individual meson.build files, and then use a custom
|
||||
# target to call make, passing in the values as env parameters.
|
||||
kmod_cflags = ['-I' + meson.build_root(),
|
||||
'-I' + join_paths(meson.source_root(), 'config'),
|
||||
'-include rte_config.h']
|
||||
foreach k:kmods
|
||||
subdir(join_paths('freebsd', k))
|
||||
custom_target(k,
|
||||
input: [files('freebsd/BSDmakefile.meson'), sources],
|
||||
output: k + '.ko',
|
||||
command: ['make', '-f', '@INPUT0@',
|
||||
'KMOD_SRC=@INPUT1@',
|
||||
'KMOD=' + k,
|
||||
'KMOD_CFLAGS=' + ' '.join(kmod_cflags)],
|
||||
build_by_default: get_option('enable_kmods'))
|
||||
endforeach
|
||||
else
|
||||
error('unsupported system type @0@'.format(hostmachine.system()))
|
||||
endif
|
||||
|
||||
cflags += '-D_GNU_SOURCE'
|
||||
sources = common_sources + env_sources
|
||||
objs = common_objs + env_objs
|
||||
headers = common_headers + env_headers
|
||||
includes = eal_inc
|
@ -4,7 +4,5 @@
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += contigmem
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += nic_uio
|
||||
|
||||
include $(RTE_SDK)/mk/rte.subdir.mk
|
||||
|
@ -4,8 +4,6 @@
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal
|
||||
DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
|
||||
DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
|
||||
DEPDIRS-kni := eal
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
@ -12,33 +12,11 @@ subdir('common') # defines common_sources, common_objs, etc.
|
||||
if host_machine.system() == 'linux'
|
||||
dpdk_conf.set('RTE_EXEC_ENV_LINUXAPP', 1)
|
||||
subdir('linuxapp/eal')
|
||||
subdir('linuxapp/igb_uio')
|
||||
|
||||
elif host_machine.system() == 'freebsd'
|
||||
dpdk_conf.set('RTE_EXEC_ENV_BSDAPP', 1)
|
||||
subdir('bsdapp/eal')
|
||||
kmods = ['contigmem', 'nic_uio']
|
||||
|
||||
# for building kernel modules, we use kernel build system using make, as
|
||||
# with Linux. We have a skeleton BSDmakefile, which pulls many of its
|
||||
# values from the environment. Each module only has a single source file
|
||||
# right now, which allows us to simplify things. We pull in the sourcer
|
||||
# files from the individual meson.build files, and then use a custom
|
||||
# target to call make, passing in the values as env parameters.
|
||||
kmod_cflags = ['-I' + meson.build_root(),
|
||||
'-I' + join_paths(meson.source_root(), 'config'),
|
||||
'-include rte_config.h']
|
||||
foreach k:kmods
|
||||
subdir(join_paths('bsdapp', k))
|
||||
custom_target(k,
|
||||
input: [files('bsdapp/BSDmakefile.meson'), sources],
|
||||
output: k + '.ko',
|
||||
command: ['make', '-f', '@INPUT0@',
|
||||
'KMOD_SRC=@INPUT1@',
|
||||
'KMOD=' + k,
|
||||
'KMOD_CFLAGS=' + ' '.join(kmod_cflags)],
|
||||
build_by_default: get_option('enable_kmods'))
|
||||
endforeach
|
||||
else
|
||||
error('unsupported system type @0@'.format(hostmachine.system()))
|
||||
endif
|
||||
|
@ -26,6 +26,7 @@ subdir('config')
|
||||
|
||||
# build libs and drivers
|
||||
subdir('lib')
|
||||
subdir('kernel')
|
||||
subdir('buildtools')
|
||||
subdir('drivers')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user