eal/tile: add initial TILE-Gx support
This commit adds support for the TILE-Gx platform, as well as the TILE CPU architecture. This architecture port is fairly simple due to its reliance on generics for most arch stuff. Signed-off-by: Cyril Chemparathy <cchemparathy@ezchip.com> Signed-off-by: Zhigang Lu <zlu@ezchip.com>
This commit is contained in:
parent
ea7196decf
commit
89e0d6f3c6
@ -105,6 +105,10 @@ F: app/test/test_mp_secondary.c
|
||||
F: examples/multi_process/
|
||||
F: doc/guides/sample_app_ug/multi_process.rst
|
||||
|
||||
EZchip TILE-Gx
|
||||
M: Zhigang Lu <zlu@ezchip.com>
|
||||
F: lib/librte_eal/common/include/arch/tile/
|
||||
|
||||
IBM POWER
|
||||
M: Chao Zhu <chaozhu@linux.vnet.ibm.com>
|
||||
F: lib/librte_eal/common/include/arch/ppc_64/
|
||||
|
68
config/defconfig_tile-tilegx-linuxapp-gcc
Normal file
68
config/defconfig_tile-tilegx-linuxapp-gcc
Normal file
@ -0,0 +1,68 @@
|
||||
# BSD LICENSE
|
||||
#
|
||||
# Copyright (C) EZchip Semiconductor 2015.
|
||||
#
|
||||
# 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 EZchip Semiconductor 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.
|
||||
|
||||
#include "common_linuxapp"
|
||||
|
||||
CONFIG_RTE_MACHINE="tilegx"
|
||||
|
||||
CONFIG_RTE_ARCH="tile"
|
||||
CONFIG_RTE_ARCH_TILE=y
|
||||
CONFIG_RTE_ARCH_64=y
|
||||
CONFIG_RTE_ARCH_STRICT_ALIGN=y
|
||||
CONFIG_RTE_FORCE_INTRINSICS=y
|
||||
|
||||
CONFIG_RTE_TOOLCHAIN="gcc"
|
||||
CONFIG_RTE_TOOLCHAIN_GCC=y
|
||||
|
||||
CONFIG_RTE_MEMPOOL_ALIGN=128
|
||||
|
||||
# Disable things that we don't support or need
|
||||
CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
|
||||
CONFIG_RTE_EAL_IGB_UIO=n
|
||||
CONFIG_RTE_EAL_VFIO=n
|
||||
CONFIG_RTE_LIBRTE_KNI=n
|
||||
CONFIG_RTE_LIBRTE_XEN_DOM0=n
|
||||
CONFIG_RTE_LIBRTE_IGB_PMD=n
|
||||
CONFIG_RTE_LIBRTE_EM_PMD=n
|
||||
CONFIG_RTE_LIBRTE_IXGBE_PMD=n
|
||||
CONFIG_RTE_LIBRTE_I40E_PMD=n
|
||||
CONFIG_RTE_LIBRTE_FM10K_PMD=n
|
||||
CONFIG_RTE_LIBRTE_VIRTIO_PMD=n
|
||||
CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
|
||||
CONFIG_RTE_LIBRTE_ENIC_PMD=n
|
||||
|
||||
# This following libraries are not available on the tile architecture.
|
||||
# So they're turned off.
|
||||
CONFIG_RTE_LIBRTE_LPM=n
|
||||
CONFIG_RTE_LIBRTE_ACL=n
|
||||
CONFIG_RTE_LIBRTE_SCHED=n
|
||||
CONFIG_RTE_LIBRTE_PORT=n
|
||||
CONFIG_RTE_LIBRTE_TABLE=n
|
||||
CONFIG_RTE_LIBRTE_PIPELINE=n
|
86
lib/librte_eal/common/include/arch/tile/rte_atomic.h
Normal file
86
lib/librte_eal/common/include/arch/tile/rte_atomic.h
Normal file
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_ATOMIC_TILE_H_
|
||||
#define _RTE_ATOMIC_TILE_H_
|
||||
|
||||
#ifndef RTE_FORCE_INTRINSICS
|
||||
# error Platform must be built with CONFIG_RTE_FORCE_INTRINSICS
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "generic/rte_atomic.h"
|
||||
|
||||
/**
|
||||
* General memory barrier.
|
||||
*
|
||||
* Guarantees that the LOAD and STORE operations generated before the
|
||||
* barrier occur before the LOAD and STORE operations generated after.
|
||||
* This function is architecture dependent.
|
||||
*/
|
||||
static inline void rte_mb(void)
|
||||
{
|
||||
__sync_synchronize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Write memory barrier.
|
||||
*
|
||||
* Guarantees that the STORE operations generated before the barrier
|
||||
* occur before the STORE operations generated after.
|
||||
* This function is architecture dependent.
|
||||
*/
|
||||
static inline void rte_wmb(void)
|
||||
{
|
||||
__sync_synchronize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Read memory barrier.
|
||||
*
|
||||
* Guarantees that the LOAD operations generated before the barrier
|
||||
* occur before the LOAD operations generated after.
|
||||
* This function is architecture dependent.
|
||||
*/
|
||||
static inline void rte_rmb(void)
|
||||
{
|
||||
__sync_synchronize();
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_ATOMIC_TILE_H_ */
|
91
lib/librte_eal/common/include/arch/tile/rte_byteorder.h
Normal file
91
lib/librte_eal/common/include/arch/tile/rte_byteorder.h
Normal file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_BYTEORDER_TILE_H_
|
||||
#define _RTE_BYTEORDER_TILE_H_
|
||||
|
||||
#ifndef RTE_FORCE_INTRINSICS
|
||||
# error Platform must be built with CONFIG_RTE_FORCE_INTRINSICS
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "generic/rte_byteorder.h"
|
||||
|
||||
#if !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))
|
||||
#define rte_bswap16(x) rte_constant_bswap16(x)
|
||||
#endif
|
||||
|
||||
#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
|
||||
|
||||
#define rte_cpu_to_le_16(x) (x)
|
||||
#define rte_cpu_to_le_32(x) (x)
|
||||
#define rte_cpu_to_le_64(x) (x)
|
||||
|
||||
#define rte_cpu_to_be_16(x) rte_bswap16(x)
|
||||
#define rte_cpu_to_be_32(x) rte_bswap32(x)
|
||||
#define rte_cpu_to_be_64(x) rte_bswap64(x)
|
||||
|
||||
#define rte_le_to_cpu_16(x) (x)
|
||||
#define rte_le_to_cpu_32(x) (x)
|
||||
#define rte_le_to_cpu_64(x) (x)
|
||||
|
||||
#define rte_be_to_cpu_16(x) rte_bswap16(x)
|
||||
#define rte_be_to_cpu_32(x) rte_bswap32(x)
|
||||
#define rte_be_to_cpu_64(x) rte_bswap64(x)
|
||||
|
||||
#else /* RTE_BIG_ENDIAN */
|
||||
|
||||
#define rte_cpu_to_le_16(x) rte_bswap16(x)
|
||||
#define rte_cpu_to_le_32(x) rte_bswap32(x)
|
||||
#define rte_cpu_to_le_64(x) rte_bswap64(x)
|
||||
|
||||
#define rte_cpu_to_be_16(x) (x)
|
||||
#define rte_cpu_to_be_32(x) (x)
|
||||
#define rte_cpu_to_be_64(x) (x)
|
||||
|
||||
#define rte_le_to_cpu_16(x) rte_bswap16(x)
|
||||
#define rte_le_to_cpu_32(x) rte_bswap32(x)
|
||||
#define rte_le_to_cpu_64(x) rte_bswap64(x)
|
||||
|
||||
#define rte_be_to_cpu_16(x) (x)
|
||||
#define rte_be_to_cpu_32(x) (x)
|
||||
#define rte_be_to_cpu_64(x) (x)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_BYTEORDER_TILE_H_ */
|
85
lib/librte_eal/common/include/arch/tile/rte_cpuflags.h
Normal file
85
lib/librte_eal/common/include/arch/tile/rte_cpuflags.h
Normal file
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_CPUFLAGS_TILE_H_
|
||||
#define _RTE_CPUFLAGS_TILE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <elf.h>
|
||||
#include <fcntl.h>
|
||||
#include <assert.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "generic/rte_cpuflags.h"
|
||||
|
||||
/* software based registers */
|
||||
enum cpu_register_t {
|
||||
REG_DUMMY = 0
|
||||
};
|
||||
|
||||
/**
|
||||
* Enumeration of all CPU features supported
|
||||
*/
|
||||
enum rte_cpu_flag_t {
|
||||
RTE_CPUFLAG_NUMFLAGS /**< This should always be the last! */
|
||||
};
|
||||
|
||||
static const struct feature_entry cpu_feature_table[] = {
|
||||
};
|
||||
|
||||
/*
|
||||
* Read AUXV software register and get cpu features for Power
|
||||
*/
|
||||
static inline void
|
||||
rte_cpu_get_features(__attribute__((unused)) uint32_t leaf,
|
||||
__attribute__((unused)) uint32_t subleaf,
|
||||
__attribute__((unused)) cpuid_registers_t out)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if a particular flag is available on current machine.
|
||||
*/
|
||||
static inline int
|
||||
rte_cpu_get_flag_enabled(__attribute__((unused)) enum rte_cpu_flag_t feature)
|
||||
{
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_CPUFLAGS_TILE_H_ */
|
70
lib/librte_eal/common/include/arch/tile/rte_cycles.h
Normal file
70
lib/librte_eal/common/include/arch/tile/rte_cycles.h
Normal file
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_CYCLES_TILE_H_
|
||||
#define _RTE_CYCLES_TILE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <arch/cycle.h>
|
||||
|
||||
#include "generic/rte_cycles.h"
|
||||
|
||||
/**
|
||||
* Read the time base register.
|
||||
*
|
||||
* @return
|
||||
* The time base for this lcore.
|
||||
*/
|
||||
static inline uint64_t
|
||||
rte_rdtsc(void)
|
||||
{
|
||||
return get_cycle_count();
|
||||
}
|
||||
|
||||
static inline uint64_t
|
||||
rte_rdtsc_precise(void)
|
||||
{
|
||||
rte_mb();
|
||||
return rte_rdtsc();
|
||||
}
|
||||
|
||||
static inline uint64_t
|
||||
rte_get_tsc_cycles(void) { return rte_rdtsc(); }
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_CYCLES_TILE_H_ */
|
93
lib/librte_eal/common/include/arch/tile/rte_memcpy.h
Normal file
93
lib/librte_eal/common/include/arch/tile/rte_memcpy.h
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_MEMCPY_TILE_H_
|
||||
#define _RTE_MEMCPY_TILE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "generic/rte_memcpy.h"
|
||||
|
||||
static inline void
|
||||
rte_mov16(uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
memcpy(dst, src, 16);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_mov32(uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
memcpy(dst, src, 32);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_mov48(uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
memcpy(dst, src, 48);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_mov64(uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
memcpy(dst, src, 64);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_mov128(uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
memcpy(dst, src, 128);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_mov256(uint8_t *dst, const uint8_t *src)
|
||||
{
|
||||
memcpy(dst, src, 256);
|
||||
}
|
||||
|
||||
#define rte_memcpy(d, s, n) memcpy((d), (s), (n))
|
||||
|
||||
static inline void *
|
||||
rte_memcpy_func(void *dst, const void *src, size_t n)
|
||||
{
|
||||
return memcpy(dst, src, n);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_MEMCPY_TILE_H_ */
|
61
lib/librte_eal/common/include/arch/tile/rte_prefetch.h
Normal file
61
lib/librte_eal/common/include/arch/tile/rte_prefetch.h
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_PREFETCH_TILE_H_
|
||||
#define _RTE_PREFETCH_TILE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "generic/rte_prefetch.h"
|
||||
|
||||
static inline void rte_prefetch0(volatile void *p)
|
||||
{
|
||||
__builtin_prefetch((const void *)(uintptr_t)p, 0, 3);
|
||||
}
|
||||
|
||||
static inline void rte_prefetch1(volatile void *p)
|
||||
{
|
||||
__builtin_prefetch((const void *)(uintptr_t)p, 0, 2);
|
||||
}
|
||||
|
||||
static inline void rte_prefetch2(volatile void *p)
|
||||
{
|
||||
__builtin_prefetch((const void *)(uintptr_t)p, 0, 1);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_PREFETCH_TILE_H_ */
|
70
lib/librte_eal/common/include/arch/tile/rte_rwlock.h
Normal file
70
lib/librte_eal/common/include/arch/tile/rte_rwlock.h
Normal file
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_RWLOCK_TILE_H_
|
||||
#define _RTE_RWLOCK_TILE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "generic/rte_rwlock.h"
|
||||
|
||||
static inline void
|
||||
rte_rwlock_read_lock_tm(rte_rwlock_t *rwl)
|
||||
{
|
||||
rte_rwlock_read_lock(rwl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_rwlock_read_unlock_tm(rte_rwlock_t *rwl)
|
||||
{
|
||||
rte_rwlock_read_unlock(rwl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_rwlock_write_lock_tm(rte_rwlock_t *rwl)
|
||||
{
|
||||
rte_rwlock_write_lock(rwl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_rwlock_write_unlock_tm(rte_rwlock_t *rwl)
|
||||
{
|
||||
rte_rwlock_write_unlock(rwl);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_RWLOCK_TILE_H_ */
|
92
lib/librte_eal/common/include/arch/tile/rte_spinlock.h
Normal file
92
lib/librte_eal/common/include/arch/tile/rte_spinlock.h
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
*
|
||||
* 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 EZchip Semiconductor 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.
|
||||
*/
|
||||
|
||||
#ifndef _RTE_SPINLOCK_TILE_H_
|
||||
#define _RTE_SPINLOCK_TILE_H_
|
||||
|
||||
#ifndef RTE_FORCE_INTRINSICS
|
||||
# error Platform must be built with CONFIG_RTE_FORCE_INTRINSICS
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rte_common.h>
|
||||
#include "generic/rte_spinlock.h"
|
||||
|
||||
static inline int rte_tm_supported(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_spinlock_lock_tm(rte_spinlock_t *sl)
|
||||
{
|
||||
rte_spinlock_lock(sl); /* fall-back */
|
||||
}
|
||||
|
||||
static inline int
|
||||
rte_spinlock_trylock_tm(rte_spinlock_t *sl)
|
||||
{
|
||||
return rte_spinlock_trylock(sl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_spinlock_unlock_tm(rte_spinlock_t *sl)
|
||||
{
|
||||
rte_spinlock_unlock(sl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_spinlock_recursive_lock_tm(rte_spinlock_recursive_t *slr)
|
||||
{
|
||||
rte_spinlock_recursive_lock(slr); /* fall-back */
|
||||
}
|
||||
|
||||
static inline void
|
||||
rte_spinlock_recursive_unlock_tm(rte_spinlock_recursive_t *slr)
|
||||
{
|
||||
rte_spinlock_recursive_unlock(slr);
|
||||
}
|
||||
|
||||
static inline int
|
||||
rte_spinlock_recursive_trylock_tm(rte_spinlock_recursive_t *slr)
|
||||
{
|
||||
return rte_spinlock_recursive_trylock(slr);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _RTE_SPINLOCK_TILE_H_ */
|
39
mk/arch/tile/rte.vars.mk
Normal file
39
mk/arch/tile/rte.vars.mk
Normal file
@ -0,0 +1,39 @@
|
||||
# BSD LICENSE
|
||||
#
|
||||
# Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
#
|
||||
# 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 EZchip Semiconductor 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.
|
||||
|
||||
|
||||
ARCH ?= tile
|
||||
CROSS ?= tile-
|
||||
|
||||
CPU_CFLAGS ?=
|
||||
CPU_LDFLAGS ?=
|
||||
CPU_ASFLAGS ?=
|
||||
|
||||
export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
|
57
mk/machine/tilegx/rte.vars.mk
Normal file
57
mk/machine/tilegx/rte.vars.mk
Normal file
@ -0,0 +1,57 @@
|
||||
# BSD LICENSE
|
||||
#
|
||||
# Copyright (C) EZchip Semiconductor Ltd. 2015.
|
||||
#
|
||||
# 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 EZchip Semiconductor 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.
|
||||
|
||||
#
|
||||
# machine:
|
||||
#
|
||||
# - can define ARCH variable (overridden by cmdline value)
|
||||
# - can define CROSS variable (overridden by cmdline value)
|
||||
# - define MACHINE_CFLAGS variable (overridden by cmdline value)
|
||||
# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
|
||||
# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
|
||||
# - can define CPU_CFLAGS variable (overridden by cmdline value) that
|
||||
# overrides the one defined in arch.
|
||||
# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
|
||||
# overrides the one defined in arch.
|
||||
# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
|
||||
# overrides the one defined in arch.
|
||||
# - may override any previously defined variable
|
||||
#
|
||||
|
||||
# ARCH =
|
||||
# CROSS =
|
||||
# MACHINE_CFLAGS =
|
||||
# MACHINE_LDFLAGS =
|
||||
# MACHINE_ASFLAGS =
|
||||
# CPU_CFLAGS =
|
||||
# CPU_LDFLAGS =
|
||||
# CPU_ASFLAGS =
|
||||
|
||||
MACHINE_CFLAGS =
|
Loading…
Reference in New Issue
Block a user