linux/arch/tile/include/gxio/iorpc_trio.h
<<
>>
Prefs
   1/*
   2 * Copyright 2012 Tilera Corporation. All Rights Reserved.
   3 *
   4 *   This program is free software; you can redistribute it and/or
   5 *   modify it under the terms of the GNU General Public License
   6 *   as published by the Free Software Foundation, version 2.
   7 *
   8 *   This program is distributed in the hope that it will be useful, but
   9 *   WITHOUT ANY WARRANTY; without even the implied warranty of
  10 *   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
  11 *   NON INFRINGEMENT.  See the GNU General Public License for
  12 *   more details.
  13 */
  14
  15/* This file is machine-generated; DO NOT EDIT! */
  16#ifndef __GXIO_TRIO_LINUX_RPC_H__
  17#define __GXIO_TRIO_LINUX_RPC_H__
  18
  19#include <hv/iorpc.h>
  20
  21#include <hv/drv_trio_intf.h>
  22#include <gxio/trio.h>
  23#include <gxio/kiorpc.h>
  24#include <linux/string.h>
  25#include <linux/module.h>
  26#include <asm/pgtable.h>
  27
  28#define GXIO_TRIO_OP_DEALLOC_ASID      IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1400)
  29#define GXIO_TRIO_OP_ALLOC_ASIDS       IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1401)
  30
  31#define GXIO_TRIO_OP_ALLOC_MEMORY_MAPS IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1404)
  32
  33#define GXIO_TRIO_OP_ALLOC_PIO_REGIONS IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1412)
  34
  35#define GXIO_TRIO_OP_INIT_PIO_REGION_AUX IORPC_OPCODE(IORPC_FORMAT_NONE, 0x1414)
  36
  37#define GXIO_TRIO_OP_INIT_MEMORY_MAP_MMU_AUX IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x141e)
  38#define GXIO_TRIO_OP_GET_PORT_PROPERTY IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x141f)
  39#define GXIO_TRIO_OP_CONFIG_LEGACY_INTR IORPC_OPCODE(IORPC_FORMAT_KERNEL_INTERRUPT, 0x1420)
  40#define GXIO_TRIO_OP_CONFIG_MSI_INTR   IORPC_OPCODE(IORPC_FORMAT_KERNEL_INTERRUPT, 0x1421)
  41
  42#define GXIO_TRIO_OP_SET_MPS_MRS       IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x1423)
  43#define GXIO_TRIO_OP_FORCE_RC_LINK_UP  IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x1424)
  44#define GXIO_TRIO_OP_FORCE_EP_LINK_UP  IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x1425)
  45#define GXIO_TRIO_OP_GET_MMIO_BASE     IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x8000)
  46#define GXIO_TRIO_OP_CHECK_MMIO_OFFSET IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x8001)
  47
  48int gxio_trio_alloc_asids(gxio_trio_context_t * context, unsigned int count,
  49                          unsigned int first, unsigned int flags);
  50
  51
  52int gxio_trio_alloc_memory_maps(gxio_trio_context_t * context,
  53                                unsigned int count, unsigned int first,
  54                                unsigned int flags);
  55
  56
  57int gxio_trio_alloc_pio_regions(gxio_trio_context_t * context,
  58                                unsigned int count, unsigned int first,
  59                                unsigned int flags);
  60
  61int gxio_trio_init_pio_region_aux(gxio_trio_context_t * context,
  62                                  unsigned int pio_region, unsigned int mac,
  63                                  uint32_t bus_address_hi, unsigned int flags);
  64
  65
  66int gxio_trio_init_memory_map_mmu_aux(gxio_trio_context_t * context,
  67                                      unsigned int map, unsigned long va,
  68                                      uint64_t size, unsigned int asid,
  69                                      unsigned int mac, uint64_t bus_address,
  70                                      unsigned int node,
  71                                      unsigned int order_mode);
  72
  73int gxio_trio_get_port_property(gxio_trio_context_t * context,
  74                                struct pcie_trio_ports_property *trio_ports);
  75
  76int gxio_trio_config_legacy_intr(gxio_trio_context_t * context, int inter_x,
  77                                 int inter_y, int inter_ipi, int inter_event,
  78                                 unsigned int mac, unsigned int intx);
  79
  80int gxio_trio_config_msi_intr(gxio_trio_context_t * context, int inter_x,
  81                              int inter_y, int inter_ipi, int inter_event,
  82                              unsigned int mac, unsigned int mem_map,
  83                              uint64_t mem_map_base, uint64_t mem_map_limit,
  84                              unsigned int asid);
  85
  86
  87int gxio_trio_set_mps_mrs(gxio_trio_context_t * context, uint16_t mps,
  88                          uint16_t mrs, unsigned int mac);
  89
  90int gxio_trio_force_rc_link_up(gxio_trio_context_t * context, unsigned int mac);
  91
  92int gxio_trio_force_ep_link_up(gxio_trio_context_t * context, unsigned int mac);
  93
  94int gxio_trio_get_mmio_base(gxio_trio_context_t * context, HV_PTE *base);
  95
  96int gxio_trio_check_mmio_offset(gxio_trio_context_t * context,
  97                                unsigned long offset, unsigned long size);
  98
  99#endif /* !__GXIO_TRIO_LINUX_RPC_H__ */
 100