Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/mips/cavium-octeon/executive/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  cvmx-helper-npi.c   Sprache: C

 
/***********************license start***************
 * Author: Cavium Networks
 *
 * Contact: support@caviumnetworks.com
 * This file is part of the OCTEON SDK
 *
 * Copyright (c) 2003-2008 Cavium Networks
 *
 * This file is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License, Version 2, as
 * published by the Free Software Foundation.
 *
 * This file is distributed in the hope that it will be useful, but
 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
 * NONINFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this file; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 * or visit http://www.gnu.org/licenses/.
 *
 * This file may also be available under a different license from Cavium.
 * Contact Cavium Networks for more information
 ***********************license end**************************************/


/*
 * Functions for NPI initialization, configuration,
 * and monitoring.
 */

#include <asm/octeon/octeon.h>

#include <asm/octeon/cvmx-config.h>

#include <asm/octeon/cvmx-helper.h>

#include <asm/octeon/cvmx-pip-defs.h>

/**
 * Probe a NPI interface and determine the number of ports
 * connected to it. The NPI interface should still be down
 * after this call.
 *
 * @interface: Interface to probe
 *
 * Returns Number of ports on the interface. Zero to disable.
 */

int __cvmx_helper_npi_probe(int interface)
{
#if CVMX_PKO_QUEUES_PER_PORT_PCI > 0
 if (OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN58XX))
  return 4;
 else if (OCTEON_IS_MODEL(OCTEON_CN56XX)
   && !OCTEON_IS_MODEL(OCTEON_CN56XX_PASS1_X))
  /* The packet engines didn't exist before pass 2 */
  return 4;
 else if (OCTEON_IS_MODEL(OCTEON_CN52XX)
   && !OCTEON_IS_MODEL(OCTEON_CN52XX_PASS1_X))
  /* The packet engines didn't exist before pass 2 */
  return 4;
#endif
 return 0;
}

/**
 * Bringup and enable a NPI interface. After this call packet
 * I/O should be fully functional. This is called with IPD
 * enabled but PKO disabled.
 *
 * @interface: Interface to bring up
 *
 * Returns Zero on success, negative on failure
 */

int __cvmx_helper_npi_enable(int interface)
{
 /*
 * On CN50XX, CN52XX, and CN56XX we need to disable length
 * checking so packet < 64 bytes and jumbo frames don't get
 * errors.
 */

 if (!OCTEON_IS_MODEL(OCTEON_CN3XXX) &&
     !OCTEON_IS_MODEL(OCTEON_CN58XX)) {
  int num_ports = cvmx_helper_ports_on_interface(interface);
  int port;
  for (port = 0; port < num_ports; port++) {
   union cvmx_pip_prt_cfgx port_cfg;
   int ipd_port =
       cvmx_helper_get_ipd_port(interface, port);
   port_cfg.u64 =
       cvmx_read_csr(CVMX_PIP_PRT_CFGX(ipd_port));
   port_cfg.s.maxerr_en = 0;
   port_cfg.s.minerr_en = 0;
   cvmx_write_csr(CVMX_PIP_PRT_CFGX(ipd_port),
           port_cfg.u64);
  }
 }

 /* Enables are controlled by the remote host, so nothing to do here */
 return 0;
}

Messung V0.5
C=96 H=95 G=95

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.