aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/octeon-sdk/cvmx-hfa.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/octeon-sdk/cvmx-hfa.h')
-rw-r--r--sys/contrib/octeon-sdk/cvmx-hfa.h437
1 files changed, 0 insertions, 437 deletions
diff --git a/sys/contrib/octeon-sdk/cvmx-hfa.h b/sys/contrib/octeon-sdk/cvmx-hfa.h
deleted file mode 100644
index 0dd86561416d..000000000000
--- a/sys/contrib/octeon-sdk/cvmx-hfa.h
+++ /dev/null
@@ -1,437 +0,0 @@
-/***********************license start***************
- * Copyright (c) 2011 Cavium Inc. (support@cavium.com). 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 Cavium Inc. 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, including technical data, may be subject to U.S. export control
- * laws, including the U.S. Export Administration Act and its associated
- * regulations, and may be subject to export or import regulations in other
- * countries.
-
- * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
- * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR
- * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
- * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
- * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
- * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
- * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
- * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
- * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR
- * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
- ***********************license end**************************************/
-
-
-
-
-
-
-
-/**
- * @file
- *
- * Interface to the CN63XX, CN68XX hardware HFA engine.
- *
- * <hr>$Revision: 49448 $<hr>
- */
-
-#ifndef __CVMX_HFA_H__
-#define __CVMX_HFA_H__
-
-#ifndef CVMX_BUILD_FOR_LINUX_USER
-#include "cvmx-llm.h"
-#include "cvmx-wqe.h"
-#include "cvmx-fpa.h"
-#include "cvmx-bootmem.h"
-
-#ifdef CVMX_BUILD_FOR_LINUX_KERNEL
-#include <asm/octeon/cvmx.h>
-#include <asm/octeon/cvmx-config.h>
-
-#ifdef CVMX_ENABLE_DFA_FUNCTIONS
-/* DFA queue cmd buffers */
-
-#define CVMX_FPA_DFA_POOL (4) /**< DFA command buffers */
-#define CVMX_FPA_DFA_POOL_SIZE (2 * CVMX_CACHE_LINE_SIZE)
-#endif
-
-#else
-#include "executive-config.h"
-#ifdef CVMX_ENABLE_DFA_FUNCTIONS
-#include "cvmx-config.h"
-#endif
-#endif
-#endif
-
-#define ENABLE_DEPRECATED /* Set to enable the old 18/36 bit names */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CVMX_DFA_ITYPE_MEMLOAD 0x0
-#define CVMX_DFA_ITYPE_CACHELOAD 0x1
-#define CVMX_DFA_ITYPE_GRAPHFREE 0x3
-#define CVMX_DFA_ITYPE_GRAPHWALK 0x4
-
-typedef union {
- uint64_t u64;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t size:24;
- uint64_t addr:40;
-#else
- uint64_t addr:40;
- uint64_t size:24;
-#endif
- } s;
-} cvmx_dfa_gather_entry_t;
-
-typedef union {
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t f1:3;
- uint64_t unused1:2;
- uint64_t snode:27;
- uint64_t gather_mode:1;
- uint64_t little_endian:1;
- uint64_t store_full:1;
- uint64_t load_through:1;
- uint64_t small:1;
- uint64_t itype:3;
- uint64_t unused0:2;
- uint64_t mbase:22;
-#else
- uint64_t mbase:22;
- uint64_t unused0:2;
- uint64_t itype:3;
- uint64_t small:1;
- uint64_t load_through:1;
- uint64_t store_full:1;
- uint64_t little_endian:1;
- uint64_t gather_mode:1;
- uint64_t snode:27;
- uint64_t unused1:2;
- uint64_t f1:3;
-#endif
- } walk;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused4:7;
- uint64_t dbase:9;
- uint64_t unused3:2;
- uint64_t cbase:14;
- uint64_t gather_mode:1;
- uint64_t little_endian:1;
- uint64_t store_full:1;
- uint64_t load_through:1;
- uint64_t unused2:1;
- uint64_t itype:3;
- uint64_t unused1:6;
- uint64_t dsize:10;
- uint64_t unused0:2;
- uint64_t pgid:6;
-#else
- uint64_t pgid:6;
- uint64_t unused0:2;
- uint64_t dsize:10;
- uint64_t unused1:6;
- uint64_t itype:3;
- uint64_t unused2:1;
- uint64_t load_through:1;
- uint64_t store_full:1;
- uint64_t little_endian:1;
- uint64_t gather_mode:1;
- uint64_t cbase:14;
- uint64_t unused3:2;
- uint64_t dbase:9;
- uint64_t unused4:7;
-#endif
- } cload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused2:32;
- uint64_t gather_mode:1;
- uint64_t little_endian:1;
- uint64_t store_full:1;
- uint64_t load_through:1;
- uint64_t unused1:1;
- uint64_t itype:3;
- uint64_t unused0:2;
- uint64_t mbase:22;
-#else
- uint64_t mbase:22;
- uint64_t unused0:2;
- uint64_t itype:3;
- uint64_t unused1:1;
- uint64_t load_through:1;
- uint64_t store_full:1;
- uint64_t little_endian:1;
- uint64_t gather_mode:1;
- uint64_t unused2:32;
-#endif
- } mload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused2:34;
- uint64_t store_full:1;
- uint64_t unused1:2;
- uint64_t itype:3;
- uint64_t unused0:24;
-#else
- uint64_t unused0:24;
- uint64_t itype:3;
- uint64_t unused1:2;
- uint64_t store_full:1;
- uint64_t unused2:34;
-#endif
- } free;
-} cvmx_dfa_word0_t;
-
-typedef union {
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t rmax:16;
- uint64_t f2:8;
- uint64_t rptr:40;
-#else
- uint64_t rptr:40;
- uint64_t f2:8;
- uint64_t rmax:16;
-#endif
- } walk;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:13;
- uint64_t rmax:3;
- uint64_t unused0:8;
- uint64_t rptr:40;
-#else
- uint64_t rptr:40;
- uint64_t unused0:8;
- uint64_t rmax:3;
- uint64_t unused1:13;
-#endif
- } cload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:4;
- uint64_t rmax:12;
- uint64_t unused0:8;
- uint64_t rptr:40;
-#else
- uint64_t rptr:40;
- uint64_t unused0:8;
- uint64_t rmax:12;
- uint64_t unused1:4;
-#endif
- } mload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused:24;
- uint64_t rptr:40;
-#else
- uint64_t rptr:40;
- uint64_t unused:24;
-#endif
- } free;
-} cvmx_dfa_word1_t;
-
-typedef union {
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t dlen:16;
- uint64_t srepl:2;
- uint64_t unused:2;
- uint64_t clmsk:4;
- uint64_t dptr:40;
-#else
- uint64_t dptr:40;
- uint64_t clmsk:4;
- uint64_t unused:2;
- uint64_t srepl:2;
- uint64_t dlen:16;
-#endif
- } walk;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t dlen:16;
- uint64_t unused:4;
- uint64_t clmsk:4;
- uint64_t dptr:40;
-#else
- uint64_t dptr:40;
- uint64_t clmsk:4;
- uint64_t unused:4;
- uint64_t dlen:16;
-#endif
- } cload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t dlen:16;
- uint64_t repl:2;
- uint64_t unused:2;
- uint64_t clmsk:4;
- uint64_t dptr:40;
-#else
- uint64_t dptr:40;
- uint64_t clmsk:4;
- uint64_t unused:2;
- uint64_t repl:2;
- uint64_t dlen:16;
-#endif
- } mload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:20;
- uint64_t clmsk:4;
- uint64_t unused0:40;
-#else
- uint64_t unused0:40;
- uint64_t clmsk:4;
- uint64_t unused1:20;
-#endif
- } free;
-} cvmx_dfa_word2_t;
-
-typedef union {
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:2;
- uint64_t vgid:8;
- uint64_t unused0:5;
- uint64_t f3:9;
- uint64_t wqptr:40;
-#else
- uint64_t wqptr:40;
- uint64_t f3:9;
- uint64_t unused0:5;
- uint64_t vgid:8;
- uint64_t unused1:2;
-#endif
- } walk;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:2;
- uint64_t vgid:8;
- uint64_t unused0:7;
- uint64_t f4:7;
- uint64_t wqptr:40;
-#else
- uint64_t wqptr:40;
- uint64_t f4:7;
- uint64_t unused0:7;
- uint64_t vgid:8;
- uint64_t unused1:2;
-#endif
- } cload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:2;
- uint64_t vgid:8;
- uint64_t unused0:7;
- uint64_t f4:7;
- uint64_t wqptr:40;
-#else
- uint64_t wqptr:40;
- uint64_t f4:7;
- uint64_t unused0:7;
- uint64_t vgid:8;
- uint64_t unused1:2;
-#endif
- } mload;
- struct {
-#ifdef __BIG_ENDIAN_BITFIELD
- uint64_t unused1:2;
- uint64_t vgid:8;
- uint64_t unused0:14;
- uint64_t wqptr:40;
-#else
- uint64_t wqptr:40;
- uint64_t unused0:14;
- uint64_t vgid:8;
- uint64_t unused1:2;
-#endif
- } free;
-} cvmx_dfa_word3_t;
-
-typedef union {
- uint64_t u64[4];
- struct {
- cvmx_dfa_word0_t word0;
- cvmx_dfa_word1_t word1;
- cvmx_dfa_word2_t word2;
- cvmx_dfa_word3_t word3;
- };
-} cvmx_dfa_command_t;
-
-#ifdef CVMX_ENABLE_DFA_FUNCTIONS
-/**
- * Initialize the DFA hardware before use
- * Returns 0 on success, -1 on failure
- */
-int cvmx_hfa_initialize(void);
-
-
-/**
- * Shutdown and cleanup resources used by the DFA
- */
-int cvmx_hfa_shutdown(void);
-
-/**
- * Submit a command to the HFA block
- *
- * @param command HFA command to submit
- *
- * @return Zero on success, negative on failure
- */
-int cvmx_hfa_submit(cvmx_dfa_command_t *command);
-
-/**
- * Allocate a block of memory from the free list that was passed
- * to the application by the bootloader.
- *
- * @param size Size in bytes of block to allocate
- * @param alignment Alignment required - must be power of 2
- *
- * @return pointer to block of memory, NULL on error
- */
-
-void *hfa_bootmem_alloc (uint64_t size, uint64_t alignment);
-
-/**
- * Frees a block to the bootmem allocator list.
- *
- * @param ptr address of block (memory pointer (void*))
- * @param size size of block in bytes.
- *
- * @return 1 on success,
- * 0 on failure
- *
- */
-
-int hfa_bootmem_free (void *ptr, uint64_t size);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CVMX_HFA_H__ */