1 /*
   2  * Copyright (c) 2015 Solarflare Communications Inc.
   3  * All rights reserved.
   4  *
   5  * Redistribution and use in source and binary forms, with or without
   6  * modification, are permitted provided that the following conditions are met:
   7  *
   8  * 1. Redistributions of source code must retain the above copyright notice,
   9  *    this list of conditions and the following disclaimer.
  10  * 2. Redistributions in binary form must reproduce the above copyright notice,
  11  *    this list of conditions and the following disclaimer in the documentation
  12  *    and/or other materials provided with the distribution.
  13  *
  14  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  15  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  16  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  17  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  21  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  22  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  23  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  24  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25  *
  26  * The views and conclusions contained in the software and documentation are
  27  * those of the authors and should not be interpreted as representing official
  28  * policies, either expressed or implied, of the FreeBSD Project.
  29  */
  30 
  31 #ifndef _SYS_MEDFORD_IMPL_H
  32 #define _SYS_MEDFORD_IMPL_H
  33 
  34 #ifdef  __cplusplus
  35 extern "C" {
  36 #endif
  37 
  38 /* Alignment requirement for value written to RX WPTR:
  39  *  the WPTR must be aligned to an 8 descriptor boundary
  40  *
  41  * FIXME: Is this the same on Medford as Huntington?
  42  */
  43 #define MEDFORD_RX_WPTR_ALIGN   8
  44 
  45 
  46 
  47 #ifndef ER_EZ_TX_PIOBUF_SIZE
  48 #define ER_EZ_TX_PIOBUF_SIZE    4096
  49 #endif
  50 
  51 
  52 #define MEDFORD_PIOBUF_NBUFS    (16)
  53 #define MEDFORD_PIOBUF_SIZE     (ER_EZ_TX_PIOBUF_SIZE)
  54 
  55 #define MEDFORD_MIN_PIO_ALLOC_SIZE      (MEDFORD_PIOBUF_SIZE / 32)
  56 
  57 
  58 extern  __checkReturn   efx_rc_t
  59 medford_board_cfg(
  60         __in            efx_nic_t *enp);
  61 
  62 
  63 #ifdef  __cplusplus
  64 }
  65 #endif
  66 
  67 #endif  /* _SYS_MEDFORD_IMPL_H */