111e25f0dSDavid C Somayajulu /* 211e25f0dSDavid C Somayajulu * Copyright (c) 2017-2018 Cavium, Inc. 311e25f0dSDavid C Somayajulu * All rights reserved. 411e25f0dSDavid C Somayajulu * 511e25f0dSDavid C Somayajulu * Redistribution and use in source and binary forms, with or without 611e25f0dSDavid C Somayajulu * modification, are permitted provided that the following conditions 711e25f0dSDavid C Somayajulu * are met: 811e25f0dSDavid C Somayajulu * 911e25f0dSDavid C Somayajulu * 1. Redistributions of source code must retain the above copyright 1011e25f0dSDavid C Somayajulu * notice, this list of conditions and the following disclaimer. 1111e25f0dSDavid C Somayajulu * 2. Redistributions in binary form must reproduce the above copyright 1211e25f0dSDavid C Somayajulu * notice, this list of conditions and the following disclaimer in the 1311e25f0dSDavid C Somayajulu * documentation and/or other materials provided with the distribution. 1411e25f0dSDavid C Somayajulu * 1511e25f0dSDavid C Somayajulu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1611e25f0dSDavid C Somayajulu * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1711e25f0dSDavid C Somayajulu * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1811e25f0dSDavid C Somayajulu * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 1911e25f0dSDavid C Somayajulu * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2011e25f0dSDavid C Somayajulu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2111e25f0dSDavid C Somayajulu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2211e25f0dSDavid C Somayajulu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2311e25f0dSDavid C Somayajulu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2411e25f0dSDavid C Somayajulu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2511e25f0dSDavid C Somayajulu * POSSIBILITY OF SUCH DAMAGE. 2611e25f0dSDavid C Somayajulu * 2711e25f0dSDavid C Somayajulu */ 2811e25f0dSDavid C Somayajulu 2911e25f0dSDavid C Somayajulu #ifndef _PCICS_REG_DRIVER_H 3011e25f0dSDavid C Somayajulu #define _PCICS_REG_DRIVER_H 3111e25f0dSDavid C Somayajulu 3211e25f0dSDavid C Somayajulu /* offset of configuration space in the pci core register */ 33*9efd0ba7SDavid C Somayajulu #ifndef __EXTRACT__LINUX__ 3411e25f0dSDavid C Somayajulu #define PCICFG_OFFSET 0x2000 35*9efd0ba7SDavid C Somayajulu #endif 3611e25f0dSDavid C Somayajulu #define PCICFG_VENDOR_ID_OFFSET 0x00 3711e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_ID_OFFSET 0x02 3811e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_OFFSET 0x04 3911e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_IO_SPACE (1<<0) 4011e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_MEM_SPACE (1<<1) 4111e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_BUS_MASTER (1<<2) 4211e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_SPECIAL_CYCLES (1<<3) 4311e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_MWI_CYCLES (1<<4) 4411e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_VGA_SNOOP (1<<5) 4511e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_PERR_ENA (1<<6) 4611e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_STEPPING (1<<7) 4711e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_SERR_ENA (1<<8) 4811e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_FAST_B2B (1<<9) 4911e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_INT_DISABLE (1<<10) 5011e25f0dSDavid C Somayajulu #define PCICFG_COMMAND_RESERVED (0x1f<<11) 5111e25f0dSDavid C Somayajulu #define PCICFG_STATUS_OFFSET 0x06 5211e25f0dSDavid C Somayajulu #define PCICFG_REVISION_ID_OFFSET 0x08 5311e25f0dSDavid C Somayajulu #define PCICFG_REVESION_ID_MASK 0xff 5411e25f0dSDavid C Somayajulu #define PCICFG_REVESION_ID_ERROR_VAL 0xff 5511e25f0dSDavid C Somayajulu #define PCICFG_CACHE_LINE_SIZE 0x0c 5611e25f0dSDavid C Somayajulu #define PCICFG_LATENCY_TIMER 0x0d 5711e25f0dSDavid C Somayajulu #define PCICFG_HEADER_TYPE 0x0e 5811e25f0dSDavid C Somayajulu #define PCICFG_HEADER_TYPE_NORMAL 0 5911e25f0dSDavid C Somayajulu #define PCICFG_HEADER_TYPE_BRIDGE 1 6011e25f0dSDavid C Somayajulu #define PCICFG_HEADER_TYPE_CARDBUS 2 6111e25f0dSDavid C Somayajulu #define PCICFG_BAR_1_LOW 0x10 6211e25f0dSDavid C Somayajulu #define PCICFG_BAR_1_HIGH 0x14 6311e25f0dSDavid C Somayajulu #define PCICFG_BAR_2_LOW 0x18 6411e25f0dSDavid C Somayajulu #define PCICFG_BAR_2_HIGH 0x1c 6511e25f0dSDavid C Somayajulu #define PCICFG_BAR_3_LOW 0x20 6611e25f0dSDavid C Somayajulu #define PCICFG_BAR_3_HIGH 0x24 6711e25f0dSDavid C Somayajulu #define PCICFG_SUBSYSTEM_VENDOR_ID_OFFSET 0x2c 6811e25f0dSDavid C Somayajulu #define PCICFG_SUBSYSTEM_ID_OFFSET 0x2e 6911e25f0dSDavid C Somayajulu #define PCICFG_INT_LINE 0x3c 7011e25f0dSDavid C Somayajulu #define PCICFG_INT_PIN 0x3d 7111e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY 0x48 7211e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_VERSION (0x3<<16) 7311e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_CLOCK (1<<19) 7411e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_RESERVED (1<<20) 7511e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_DSI (1<<21) 7611e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_AUX_CURRENT (0x7<<22) 7711e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_D1_SUPPORT (1<<25) 7811e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_D2_SUPPORT (1<<26) 7911e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_PME_IN_D0 (1<<27) 8011e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_PME_IN_D1 (1<<28) 8111e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_PME_IN_D2 (1<<29) 8211e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_PME_IN_D3_HOT (1<<30) 8311e25f0dSDavid C Somayajulu #define PCICFG_PM_CAPABILITY_PME_IN_D3_COLD (1<<31) 8411e25f0dSDavid C Somayajulu #define PCICFG_PM_CSR_OFFSET 0x4c 8511e25f0dSDavid C Somayajulu #define PCICFG_PM_CSR_STATE (0x3<<0) 8611e25f0dSDavid C Somayajulu #define PCICFG_PM_CSR_PME_ENABLE (1<<8) 8711e25f0dSDavid C Somayajulu #define PCICFG_PM_CSR_PME_STATUS (1<<15) 8811e25f0dSDavid C Somayajulu #define PCICFG_MSI_CAP_ID_OFFSET 0x58 8911e25f0dSDavid C Somayajulu #define PCICFG_MSI_CONTROL_ENABLE (0x1<<16) 9011e25f0dSDavid C Somayajulu #define PCICFG_MSI_CONTROL_MCAP (0x7<<17) 9111e25f0dSDavid C Somayajulu #define PCICFG_MSI_CONTROL_MENA (0x7<<20) 9211e25f0dSDavid C Somayajulu #define PCICFG_MSI_CONTROL_64_BIT_ADDR_CAP (0x1<<23) 9311e25f0dSDavid C Somayajulu #define PCICFG_MSI_CONTROL_MSI_PVMASK_CAPABLE (0x1<<24) 9411e25f0dSDavid C Somayajulu #define PCICFG_GRC_ADDRESS 0x78 9511e25f0dSDavid C Somayajulu #define PCICFG_GRC_DATA 0x80 9611e25f0dSDavid C Somayajulu #define PCICFG_ME_REGISTER 0x98 9711e25f0dSDavid C Somayajulu #define PCICFG_MSIX_CAP_ID_OFFSET 0xa0 9811e25f0dSDavid C Somayajulu #define PCICFG_MSIX_CONTROL_TABLE_SIZE (0x7ff<<16) 9911e25f0dSDavid C Somayajulu #define PCICFG_MSIX_CONTROL_RESERVED (0x7<<27) 10011e25f0dSDavid C Somayajulu #define PCICFG_MSIX_CONTROL_FUNC_MASK (0x1<<30) 10111e25f0dSDavid C Somayajulu #define PCICFG_MSIX_CONTROL_MSIX_ENABLE (0x1<<31) 10211e25f0dSDavid C Somayajulu 10311e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_CONTROL 0xb4 10411e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_CONTROL_NP_TRANSACTION_PEND (1<<21) 10511e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS 0xb6 10611e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_CORR_ERR_DET (1<<0) 10711e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_NON_FATAL_ERR_DET (1<<1) 10811e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_FATAL_ERR_DET (1<<2) 10911e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_UNSUP_REQ_DET (1<<3) 11011e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_AUX_PWR_DET (1<<4) 11111e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_NO_PEND (1<<5) 11211e25f0dSDavid C Somayajulu #define PCICFG_LINK_CONTROL 0xbc 11311e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_CONTROL_2 (0xd4) 11411e25f0dSDavid C Somayajulu #define PCICFG_DEVICE_STATUS_CONTROL_2_ATOMIC_REQ_ENABLE (1<<6) 11511e25f0dSDavid C Somayajulu 11611e25f0dSDavid C Somayajulu /* config_2 offset */ 11711e25f0dSDavid C Somayajulu #define GRC_CONFIG_2_SIZE_REG 0x408 11811e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE (0xfL<<0) 11911e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_DISABLED (0L<<0) 12011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_64K (1L<<0) 12111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_128K (2L<<0) 12211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_256K (3L<<0) 12311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_512K (4L<<0) 12411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_1M (5L<<0) 12511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_2M (6L<<0) 12611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_4M (7L<<0) 12711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_8M (8L<<0) 12811e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_16M (9L<<0) 12911e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_32M (10L<<0) 13011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_64M (11L<<0) 13111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_128M (12L<<0) 13211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_256M (13L<<0) 13311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_512M (14L<<0) 13411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_SIZE_1G (15L<<0) 13511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR1_64ENA (1L<<4) 13611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_RETRY (1L<<5) 13711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_CFG_CYCLE_RETRY (1L<<6) 13811e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_FIRST_CFG_DONE (1L<<7) 13911e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE (0xffL<<8) 14011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_DISABLED (0L<<8) 14111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_2K (1L<<8) 14211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_4K (2L<<8) 14311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_8K (3L<<8) 14411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_16K (4L<<8) 14511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_32K (5L<<8) 14611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_64K (6L<<8) 14711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_128K (7L<<8) 14811e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_256K (8L<<8) 14911e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_512K (9L<<8) 15011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_1M (10L<<8) 15111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_2M (11L<<8) 15211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_4M (12L<<8) 15311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_8M (13L<<8) 15411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_16M (14L<<8) 15511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_EXP_ROM_SIZE_32M (15L<<8) 15611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR_PREFETCH (1L<<16) 15711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_RESERVED0 (0x7fffL<<17) 15811e25f0dSDavid C Somayajulu 15911e25f0dSDavid C Somayajulu /* config_3 offset */ 16011e25f0dSDavid C Somayajulu #define GRC_CONFIG_3_SIZE_REG 0x40c 16111e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_STICKY_BYTE (0xffL<<0) 16211e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_FORCE_PME (1L<<24) 16311e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_PME_STATUS (1L<<25) 16411e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_PME_ENABLE (1L<<26) 16511e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_PM_STATE (0x3L<<27) 16611e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_VAUX_PRESET (1L<<30) 16711e25f0dSDavid C Somayajulu #define PCI_CONFIG_3_PCI_POWER (1L<<31) 16811e25f0dSDavid C Somayajulu 16911e25f0dSDavid C Somayajulu #define GRC_REG_DEVICE_CONTROL 0x4d8 17011e25f0dSDavid C Somayajulu 17111e25f0dSDavid C Somayajulu /* When VF Enable is cleared(after it was previously set), 17211e25f0dSDavid C Somayajulu * this register will read a value of 1, indicating that all the 17311e25f0dSDavid C Somayajulu * VFs that belong to this PF should be flushed. 17411e25f0dSDavid C Somayajulu * Software should clear this bit within 1 second of VF Enable 17511e25f0dSDavid C Somayajulu * being set by writing a 1 to it, so that VFs are visible to the system 17611e25f0dSDavid C Somayajulu * again.WC 17711e25f0dSDavid C Somayajulu */ 17811e25f0dSDavid C Somayajulu #define PCIE_SRIOV_DISABLE_IN_PROGRESS (1 << 29) 17911e25f0dSDavid C Somayajulu 18011e25f0dSDavid C Somayajulu /* When FLR is initiated, this register will read a value of 1 indicating 18111e25f0dSDavid C Somayajulu * that the Function is in FLR state. Func can be brought out of FLR state 18211e25f0dSDavid C Somayajulu * either bywriting 1 to this register (at least 50 ms after FLR was 18311e25f0dSDavid C Somayajulu * initiated),or it can also be cleared automatically after 55 ms if 18411e25f0dSDavid C Somayajulu * auto_clear bit in private reg space is set. This bit also exists in 18511e25f0dSDavid C Somayajulu * VF register space WC 18611e25f0dSDavid C Somayajulu */ 18711e25f0dSDavid C Somayajulu #define PCIE_FLR_IN_PROGRESS (1 << 27) 18811e25f0dSDavid C Somayajulu 18911e25f0dSDavid C Somayajulu #define GRC_BAR2_CONFIG 0x4e0 19011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE (0xfL<<0) 19111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_DISABLED (0L<<0) 19211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_64K (1L<<0) 19311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_128K (2L<<0) 19411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_256K (3L<<0) 19511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_512K (4L<<0) 19611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_1M (5L<<0) 19711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_2M (6L<<0) 19811e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_4M (7L<<0) 19911e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_8M (8L<<0) 20011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_16M (9L<<0) 20111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_32M (10L<<0) 20211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_64M (11L<<0) 20311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_128M (12L<<0) 20411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_256M (13L<<0) 20511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_512M (14L<<0) 20611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_SIZE_1G (15L<<0) 20711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR2_64ENA (1L<<4) 20811e25f0dSDavid C Somayajulu 20911e25f0dSDavid C Somayajulu #define GRC_BAR3_CONFIG 0x4f4 21011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE (0xfL<<0) 21111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_DISABLED (0L<<0) 21211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_64K (1L<<0) 21311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_128K (2L<<0) 21411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_256K (3L<<0) 21511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_512K (4L<<0) 21611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_1M (5L<<0) 21711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_2M (6L<<0) 21811e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_4M (7L<<0) 21911e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_8M (8L<<0) 22011e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_16M (9L<<0) 22111e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_32M (10L<<0) 22211e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_64M (11L<<0) 22311e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_128M (12L<<0) 22411e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_256M (13L<<0) 22511e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_512M (14L<<0) 22611e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_SIZE_1G (15L<<0) 22711e25f0dSDavid C Somayajulu #define PCI_CONFIG_2_BAR3_64ENA (1L<<4) 22811e25f0dSDavid C Somayajulu #define PCI_PM_DATA_A 0x410 22911e25f0dSDavid C Somayajulu #define PCI_PM_DATA_B 0x414 23011e25f0dSDavid C Somayajulu #define PCI_ID_VAL1 0x434 23111e25f0dSDavid C Somayajulu #define PCI_ID_VAL2 0x438 23211e25f0dSDavid C Somayajulu #define PCI_ID_VAL3 0x43c 23311e25f0dSDavid C Somayajulu #define PCI_ID_VAL3_REVISION_ID_ERROR (0xffL<<24) 23411e25f0dSDavid C Somayajulu #define GRC_CONFIG_REG_VF_BAR_REG_1 0x608 23511e25f0dSDavid C Somayajulu #define GRC_CONFIG_REG_VF_BAR_REG_BAR0_SIZE 0xf 23611e25f0dSDavid C Somayajulu #define GRC_CONFIG_REG_VF_MSIX_CONTROL 0x61C 23711e25f0dSDavid C Somayajulu 23811e25f0dSDavid C Somayajulu /* This field resides in VF only and does not exist in PF. 23911e25f0dSDavid C Somayajulu * This register controls the read value of the MSIX_CONTROL[10:0] register 24011e25f0dSDavid C Somayajulu * in the VF configuration space. A value of "00000000011" indicates 24111e25f0dSDavid C Somayajulu * a table size of 4. The value is controlled by IOV_MSIX_TBL_SIZ 24211e25f0dSDavid C Somayajulu * define in version.v 24311e25f0dSDavid C Somayajulu */ 24411e25f0dSDavid C Somayajulu #define GRC_CR_VF_MSIX_CTRL_VF_MSIX_TBL_SIZE_MASK 0x3F 245*9efd0ba7SDavid C Somayajulu #ifndef __EXTRACT__LINUX__ 24611e25f0dSDavid C Somayajulu #define GRC_CONFIG_REG_PF_INIT_VF 0x624 24711e25f0dSDavid C Somayajulu 24811e25f0dSDavid C Somayajulu /* First VF_NUM for PF is encoded in this register. 24911e25f0dSDavid C Somayajulu * The number of VFs assigned to a PF is assumed to be a multiple of 8. 25011e25f0dSDavid C Somayajulu * Software should program these bits based on Total Number of VFs programmed 25111e25f0dSDavid C Somayajulu * for each PF. 25211e25f0dSDavid C Somayajulu * Since registers from 0x000-0x7ff are spilt across functions, each PF will 25311e25f0dSDavid C Somayajulu * have the same location for the same 4 bits 25411e25f0dSDavid C Somayajulu */ 25511e25f0dSDavid C Somayajulu #define GRC_CR_PF_INIT_VF_PF_FIRST_VF_NUM_MASK 0xff 256*9efd0ba7SDavid C Somayajulu #endif 25711e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5 0x814 25811e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_UNKNOWNTYPE_ERR_ATTN (1 << 29) /*WC*/ 25911e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_BOUNDARY4K_ERR_ATTN (1 << 28) /*WC*/ 26011e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_MRRS_ERR_ATTN (1 << 27) /*WC*/ 26111e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_MPS_ERR_ATTN (1 << 26) /*WC*/ 26211e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_TTX_BRIDGE_FORWARD_ERR (1 << 25) /*WC*/ 26311e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_TTX_TXINTF_OVERFLOW (1 << 24) /*WC*/ 26411e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_PHY_ERR_ATTN (1 << 23) /*RO*/ 26511e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_DL_ERR_ATTN (1 << 22) /*RO*/ 26611e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_TTX_ERR_NP_TAG_IN_USE (1 << 21) /*WC*/ 26711e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_TRX_ERR_UNEXP_RTAG (1 << 20) /*WC*/ 26811e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_PRI_SIG_TARGET_ABORT1 (1 << 19) /*WC*/ 26911e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_UNSPPORT1 (1 << 18) /*WC*/ 27011e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_ECRC1 (1 << 17) /*WC*/ 27111e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_MALF_TLP1 (1 << 16) /*WC*/ 27211e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_RX_OFLOW1 (1 << 15) /*WC*/ 27311e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_UNEXP_CPL1 (1 << 14) /*WC*/ 27411e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_MASTER_ABRT1 (1 << 13) /*WC*/ 27511e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_CPL_TIMEOUT1 (1 << 12) /*WC*/ 27611e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_FC_PRTL1 (1 << 11) /*WC*/ 27711e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_PSND_TLP1 (1 << 10) /*WC*/ 27811e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_PRI_SIG_TARGET_ABORT (1 << 9) /*WC*/ 27911e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_UNSPPORT (1 << 8) /*WC*/ 28011e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_ECRC (1 << 7) /*WC*/ 28111e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_MALF_TLP (1 << 6) /*WC*/ 28211e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_RX_OFLOW (1 << 5) /*WC*/ 28311e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_UNEXP_CPL (1 << 4) /*WC*/ 28411e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_MASTER_ABRT (1 << 3) /*WC*/ 28511e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_CPL_TIMEOUT (1 << 2) /*WC*/ 28611e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_FC_PRTL (1 << 1) /*WC*/ 28711e25f0dSDavid C Somayajulu #define PXPCS_TL_CONTROL_5_ERR_PSND_TLP (1 << 0) /*WC*/ 28811e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT 0x854 28911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_PRI_SIG_TARGET_ABORT4 (1 << 29) /* WC */ 29011e25f0dSDavid C Somayajulu 29111e25f0dSDavid C Somayajulu /*Unsupported Request Error Status in function4, if set, generate 29211e25f0dSDavid C Somayajulu *pcie_err_attn output when this error is seen. WC 29311e25f0dSDavid C Somayajulu */ 29411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_UNSPPORT4 (1 << 28) 29511e25f0dSDavid C Somayajulu 29611e25f0dSDavid C Somayajulu /*ECRC Error TLP Status Status in function 4, if set, 29711e25f0dSDavid C Somayajulu *generate pcie_err_attn output when this error is seen..WC 29811e25f0dSDavid C Somayajulu */ 29911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_ECRC4 (1 << 27) 30011e25f0dSDavid C Somayajulu 30111e25f0dSDavid C Somayajulu /*Malformed TLP Status Status in function 4, if set, 30211e25f0dSDavid C Somayajulu *generate pcie_err_attn output when this error is seen..WC 30311e25f0dSDavid C Somayajulu */ 30411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_MALF_TLP4 (1 << 26) 30511e25f0dSDavid C Somayajulu 30611e25f0dSDavid C Somayajulu /*Receiver Overflow Status Status in function 4, if set, 30711e25f0dSDavid C Somayajulu *generate pcie_err_attn output when this error is seen..WC 30811e25f0dSDavid C Somayajulu */ 30911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_RX_OFLOW4 (1 << 25) 31011e25f0dSDavid C Somayajulu 31111e25f0dSDavid C Somayajulu /*Unexpected Completion Status Status in function 4, if set, 31211e25f0dSDavid C Somayajulu *generate pcie_err_attn output when this error is seen..WC 31311e25f0dSDavid C Somayajulu */ 31411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_UNEXP_CPL4 (1 << 24) 31511e25f0dSDavid C Somayajulu 31611e25f0dSDavid C Somayajulu /* Receive UR Statusin function 4. If set, generate pcie_err_attn output 31711e25f0dSDavid C Somayajulu * when this error is seen. WC 31811e25f0dSDavid C Somayajulu */ 31911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_MASTER_ABRT4 (1 << 23) 32011e25f0dSDavid C Somayajulu 32111e25f0dSDavid C Somayajulu /* Completer Timeout Status Status in function 4, if set, 32211e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen..WC 32311e25f0dSDavid C Somayajulu */ 32411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_CPL_TIMEOUT4 (1 << 22) 32511e25f0dSDavid C Somayajulu 32611e25f0dSDavid C Somayajulu /* Flow Control Protocol Error Status Status in function 4, 32711e25f0dSDavid C Somayajulu * if set, generate pcie_err_attn output when this error is seen. 32811e25f0dSDavid C Somayajulu * WC 32911e25f0dSDavid C Somayajulu */ 33011e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_FC_PRTL4 (1 << 21) 33111e25f0dSDavid C Somayajulu 33211e25f0dSDavid C Somayajulu /* Poisoned Error Status Status in function 4, if set, generate 33311e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 33411e25f0dSDavid C Somayajulu */ 33511e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_PSND_TLP4 (1 << 20) 33611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_PRI_SIG_TARGET_ABORT3 (1 << 19) /* WC */ 33711e25f0dSDavid C Somayajulu 33811e25f0dSDavid C Somayajulu /* Unsupported Request Error Status in function3, if set, generate 33911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 34011e25f0dSDavid C Somayajulu */ 34111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_UNSPPORT3 (1 << 18) 34211e25f0dSDavid C Somayajulu 34311e25f0dSDavid C Somayajulu /* ECRC Error TLP Status Status in function 3, if set, generate 34411e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 34511e25f0dSDavid C Somayajulu */ 34611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_ECRC3 (1 << 17) 34711e25f0dSDavid C Somayajulu 34811e25f0dSDavid C Somayajulu /* Malformed TLP Status Status in function 3, if set, generate 34911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 35011e25f0dSDavid C Somayajulu */ 35111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_MALF_TLP3 (1 << 16) 35211e25f0dSDavid C Somayajulu 35311e25f0dSDavid C Somayajulu /* Receiver Overflow Status Status in function 3, if set, generate 35411e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 35511e25f0dSDavid C Somayajulu */ 35611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_RX_OFLOW3 (1 << 15) 35711e25f0dSDavid C Somayajulu 35811e25f0dSDavid C Somayajulu /* Unexpected Completion Status Status in function 3, if set, generate 35911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 36011e25f0dSDavid C Somayajulu */ 36111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_UNEXP_CPL3 (1 << 14) 36211e25f0dSDavid C Somayajulu 36311e25f0dSDavid C Somayajulu /* Receive UR Statusin function 3. If set, generate pcie_err_attn output 36411e25f0dSDavid C Somayajulu * when this error is seen. WC 36511e25f0dSDavid C Somayajulu */ 36611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_MASTER_ABRT3 (1 << 13) 36711e25f0dSDavid C Somayajulu 36811e25f0dSDavid C Somayajulu /* Completer Timeout Status Status in function 3, if set, generate 36911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 37011e25f0dSDavid C Somayajulu */ 37111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_CPL_TIMEOUT3 (1 << 12) 37211e25f0dSDavid C Somayajulu 37311e25f0dSDavid C Somayajulu /* Flow Control Protocol Error Status Status in function 3, if set, 37411e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen..WC 37511e25f0dSDavid C Somayajulu */ 37611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_FC_PRTL3 (1 << 11) 37711e25f0dSDavid C Somayajulu 37811e25f0dSDavid C Somayajulu /* Poisoned Error Status Status in function 3, if set, generate 37911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 38011e25f0dSDavid C Somayajulu */ 38111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_PSND_TLP3 (1 << 10) 38211e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_PRI_SIG_TARGET_ABORT2 (1 << 9) /* WC */ 38311e25f0dSDavid C Somayajulu 38411e25f0dSDavid C Somayajulu /* Unsupported Request Error Status for Function 2, if set, 38511e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 38611e25f0dSDavid C Somayajulu */ 38711e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_UNSPPORT2 (1 << 8) 38811e25f0dSDavid C Somayajulu 38911e25f0dSDavid C Somayajulu /* ECRC Error TLP Status Status for Function 2, if set, generate 39011e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen..WC 39111e25f0dSDavid C Somayajulu */ 39211e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_ECRC2 (1 << 7) 39311e25f0dSDavid C Somayajulu 39411e25f0dSDavid C Somayajulu /* Malformed TLP Status Status for Function 2, if set, generate 39511e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 39611e25f0dSDavid C Somayajulu */ 39711e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_MALF_TLP2 (1 << 6) 39811e25f0dSDavid C Somayajulu 39911e25f0dSDavid C Somayajulu /* Receiver Overflow Status Status for Function 2, if set, generate 40011e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 40111e25f0dSDavid C Somayajulu */ 40211e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_RX_OFLOW2 (1 << 5) 40311e25f0dSDavid C Somayajulu 40411e25f0dSDavid C Somayajulu /* Unexpected Completion Status Status for Function 2, if set, generate 40511e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 40611e25f0dSDavid C Somayajulu */ 40711e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_UNEXP_CPL2 (1 << 4) 40811e25f0dSDavid C Somayajulu 40911e25f0dSDavid C Somayajulu /* Receive UR Statusfor Function 2. If set, generate pcie_err_attn output 41011e25f0dSDavid C Somayajulu * when this error is seen. WC 41111e25f0dSDavid C Somayajulu */ 41211e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_MASTER_ABRT2 (1 << 3) 41311e25f0dSDavid C Somayajulu 41411e25f0dSDavid C Somayajulu /* Completer Timeout Status Status for Function 2, if set, generate 41511e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 41611e25f0dSDavid C Somayajulu */ 41711e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_CPL_TIMEOUT2 (1 << 2) 41811e25f0dSDavid C Somayajulu 41911e25f0dSDavid C Somayajulu /* Flow Control Protocol Error Status Status for Function 2, if set, 42011e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 42111e25f0dSDavid C Somayajulu */ 42211e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_FC_PRTL2 (1 << 1) 42311e25f0dSDavid C Somayajulu 42411e25f0dSDavid C Somayajulu /* Poisoned Error Status Status for Function 2, if set, generate 42511e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 42611e25f0dSDavid C Somayajulu */ 42711e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC345_STAT_ERR_PSND_TLP2 (1 << 0) 42811e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT 0x85C 42911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_PRI_SIG_TARGET_ABORT7 (1 << 29) /* WC */ 43011e25f0dSDavid C Somayajulu 43111e25f0dSDavid C Somayajulu /* Unsupported Request Error Status in function7, if set, generate 43211e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 43311e25f0dSDavid C Somayajulu */ 43411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_UNSPPORT7 (1 << 28) 43511e25f0dSDavid C Somayajulu 43611e25f0dSDavid C Somayajulu /* ECRC Error TLP Status Status in function 7, if set, generate 43711e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 43811e25f0dSDavid C Somayajulu */ 43911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_ECRC7 (1 << 27) 44011e25f0dSDavid C Somayajulu 44111e25f0dSDavid C Somayajulu /* Malformed TLP Status Status in function 7, if set, generate 44211e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 44311e25f0dSDavid C Somayajulu */ 44411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_MALF_TLP7 (1 << 26) 44511e25f0dSDavid C Somayajulu 44611e25f0dSDavid C Somayajulu /* Receiver Overflow Status Status in function 7, if set, generate 44711e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 44811e25f0dSDavid C Somayajulu */ 44911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_RX_OFLOW7 (1 << 25) 45011e25f0dSDavid C Somayajulu 45111e25f0dSDavid C Somayajulu /* Unexpected Completion Status Status in function 7, if set, generate 45211e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 45311e25f0dSDavid C Somayajulu */ 45411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_UNEXP_CPL7 (1 << 24) 45511e25f0dSDavid C Somayajulu 45611e25f0dSDavid C Somayajulu /* Receive UR Statusin function 7. If set, generate pcie_err_attn 45711e25f0dSDavid C Somayajulu * output when this error is seen. WC 45811e25f0dSDavid C Somayajulu */ 45911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_MASTER_ABRT7 (1 << 23) 46011e25f0dSDavid C Somayajulu 46111e25f0dSDavid C Somayajulu /* Completer Timeout Status Status in function 7, if set, generate 46211e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 46311e25f0dSDavid C Somayajulu */ 46411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_CPL_TIMEOUT7 (1 << 22) 46511e25f0dSDavid C Somayajulu 46611e25f0dSDavid C Somayajulu /* Flow Control Protocol Error Status Status in function 7, if set, 46711e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 46811e25f0dSDavid C Somayajulu */ 46911e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_FC_PRTL7 (1 << 21) 47011e25f0dSDavid C Somayajulu 47111e25f0dSDavid C Somayajulu /* Poisoned Error Status Status in function 7, if set, 47211e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen.. WC 47311e25f0dSDavid C Somayajulu */ 47411e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_PSND_TLP7 (1 << 20) 47511e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_PRI_SIG_TARGET_ABORT6 (1 << 19) /* WC */ 47611e25f0dSDavid C Somayajulu 47711e25f0dSDavid C Somayajulu /* Unsupported Request Error Status in function6, if set, generate 47811e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 47911e25f0dSDavid C Somayajulu */ 48011e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_UNSPPORT6 (1 << 18) 48111e25f0dSDavid C Somayajulu 48211e25f0dSDavid C Somayajulu /* ECRC Error TLP Status Status in function 6, if set, generate 48311e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 48411e25f0dSDavid C Somayajulu */ 48511e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_ECRC6 (1 << 17) 48611e25f0dSDavid C Somayajulu 48711e25f0dSDavid C Somayajulu /* Malformed TLP Status Status in function 6, if set, generate 48811e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 48911e25f0dSDavid C Somayajulu */ 49011e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_MALF_TLP6 (1 << 16) 49111e25f0dSDavid C Somayajulu 49211e25f0dSDavid C Somayajulu /* Receiver Overflow Status Status in function 6, if set, generate 49311e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 49411e25f0dSDavid C Somayajulu */ 49511e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_RX_OFLOW6 (1 << 15) 49611e25f0dSDavid C Somayajulu 49711e25f0dSDavid C Somayajulu /* Unexpected Completion Status Status in function 6, if set, 49811e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 49911e25f0dSDavid C Somayajulu */ 50011e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_UNEXP_CPL6 (1 << 14) 50111e25f0dSDavid C Somayajulu 50211e25f0dSDavid C Somayajulu /* Receive UR Statusin function 6. If set, generate pcie_err_attn 50311e25f0dSDavid C Somayajulu * output when this error is seen. WC 50411e25f0dSDavid C Somayajulu */ 50511e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_MASTER_ABRT6 (1 << 13) 50611e25f0dSDavid C Somayajulu 50711e25f0dSDavid C Somayajulu /* Completer Timeout Status Status in function 6, if set, generate 50811e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 50911e25f0dSDavid C Somayajulu */ 51011e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_CPL_TIMEOUT6 (1 << 12) 51111e25f0dSDavid C Somayajulu 51211e25f0dSDavid C Somayajulu /* Flow Control Protocol Error Status Status in function 6, if set, 51311e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 51411e25f0dSDavid C Somayajulu */ 51511e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_FC_PRTL6 (1 << 11) 51611e25f0dSDavid C Somayajulu 51711e25f0dSDavid C Somayajulu /* Poisoned Error Status Status in function 6, if set, generate 51811e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 51911e25f0dSDavid C Somayajulu */ 52011e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_PSND_TLP6 (1 << 10) 52111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_PRI_SIG_TARGET_ABORT5 (1 << 9) /* WC */ 52211e25f0dSDavid C Somayajulu 52311e25f0dSDavid C Somayajulu /* Unsupported Request Error Status for Function 5, if set, 52411e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 52511e25f0dSDavid C Somayajulu */ 52611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_UNSPPORT5 (1 << 8) 52711e25f0dSDavid C Somayajulu 52811e25f0dSDavid C Somayajulu /* ECRC Error TLP Status Status for Function 5, if set, generate 52911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 53011e25f0dSDavid C Somayajulu */ 53111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_ECRC5 (1 << 7) 53211e25f0dSDavid C Somayajulu 53311e25f0dSDavid C Somayajulu /* Malformed TLP Status Status for Function 5, if set, generate 53411e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 53511e25f0dSDavid C Somayajulu */ 53611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_MALF_TLP5 (1 << 6) 53711e25f0dSDavid C Somayajulu 53811e25f0dSDavid C Somayajulu /* Receiver Overflow Status Status for Function 5, if set, generate 53911e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen.. WC 54011e25f0dSDavid C Somayajulu */ 54111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_RX_OFLOW5 (1 << 5) 54211e25f0dSDavid C Somayajulu 54311e25f0dSDavid C Somayajulu /* Unexpected Completion Status Status for Function 5, if set, generate 54411e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 54511e25f0dSDavid C Somayajulu */ 54611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_UNEXP_CPL5 (1 << 4) 54711e25f0dSDavid C Somayajulu 54811e25f0dSDavid C Somayajulu /* Receive UR Statusfor Function 5. If set, generate pcie_err_attn output 54911e25f0dSDavid C Somayajulu * when this error is seen. WC 55011e25f0dSDavid C Somayajulu */ 55111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_MASTER_ABRT5 (1 << 3) 55211e25f0dSDavid C Somayajulu 55311e25f0dSDavid C Somayajulu /* Completer Timeout Status Status for Function 5, if set, generate 55411e25f0dSDavid C Somayajulu * pcie_err_attn output when this error is seen. WC 55511e25f0dSDavid C Somayajulu */ 55611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_CPL_TIMEOUT5 (1 << 2) 55711e25f0dSDavid C Somayajulu 55811e25f0dSDavid C Somayajulu /* Flow Control Protocol Error Status Status for Function 5, if set, 55911e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen. WC 56011e25f0dSDavid C Somayajulu */ 56111e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_FC_PRTL5 (1 << 1) 56211e25f0dSDavid C Somayajulu 56311e25f0dSDavid C Somayajulu /* Poisoned Error Status Status for Function 5, if set, 56411e25f0dSDavid C Somayajulu * generate pcie_err_attn output when this error is seen.. WC 56511e25f0dSDavid C Somayajulu */ 56611e25f0dSDavid C Somayajulu #define PXPCS_TL_FUNC678_STAT_ERR_PSND_TLP5 (1 << 0) 56711e25f0dSDavid C Somayajulu 56811e25f0dSDavid C Somayajulu /* PCI CAPABILITIES 56911e25f0dSDavid C Somayajulu */ 57011e25f0dSDavid C Somayajulu 57111e25f0dSDavid C Somayajulu #define PCI_CAP_PCIE 0x10 /*PCIe capability ID*/ 57211e25f0dSDavid C Somayajulu 57311e25f0dSDavid C Somayajulu #define PCIE_DEV_CAPS 0x04 57411e25f0dSDavid C Somayajulu #ifndef PCIE_DEV_CAPS_FLR_CAPABILITY 57511e25f0dSDavid C Somayajulu #define PCIE_DEV_CAPS_FLR_CAPABILITY (1 << 28) 57611e25f0dSDavid C Somayajulu #endif 57711e25f0dSDavid C Somayajulu 57811e25f0dSDavid C Somayajulu #define PCIE_DEV_CTRL 0x08 57911e25f0dSDavid C Somayajulu #define PCIE_DEV_CTRL_FLR 0x8000 58011e25f0dSDavid C Somayajulu 58111e25f0dSDavid C Somayajulu #define PCIE_DEV_STATUS 0x0A 58211e25f0dSDavid C Somayajulu #ifndef PCIE_DEV_STATUS_PENDING_TRANSACTION 58311e25f0dSDavid C Somayajulu #define PCIE_DEV_STATUS_PENDING_TRANSACTION (1 << 5) 58411e25f0dSDavid C Somayajulu #endif 58511e25f0dSDavid C Somayajulu 58611e25f0dSDavid C Somayajulu #ifndef PCI_CAPABILITY_LIST 58711e25f0dSDavid C Somayajulu /* Ofset of first capability list entry */ 58811e25f0dSDavid C Somayajulu #define PCI_CAPABILITY_LIST 0x34 58911e25f0dSDavid C Somayajulu #endif 59011e25f0dSDavid C Somayajulu 59111e25f0dSDavid C Somayajulu #define PCI_CAPABILITY_LIST_MASK 0xff 59211e25f0dSDavid C Somayajulu 59311e25f0dSDavid C Somayajulu #ifndef PCI_CB_CAPABILITY_LIST 59411e25f0dSDavid C Somayajulu #define PCI_CB_CAPABILITY_LIST 0x14 59511e25f0dSDavid C Somayajulu #endif 59611e25f0dSDavid C Somayajulu 59711e25f0dSDavid C Somayajulu #if (defined(__LINUX)) || (defined(PCI_CAP_LIST_ID)) 59811e25f0dSDavid C Somayajulu #define PCI_CAP_LIST_ID_DEF 59911e25f0dSDavid C Somayajulu #endif 60011e25f0dSDavid C Somayajulu #if (defined(__LINUX)) || (defined(PCI_CAP_LIST_NEXT)) 60111e25f0dSDavid C Somayajulu #define PCI_CAP_LIST_NEXT_DEF 60211e25f0dSDavid C Somayajulu #endif 60311e25f0dSDavid C Somayajulu #if (defined(__LINUX)) || (defined(PCI_STATUS)) 60411e25f0dSDavid C Somayajulu #define PCI_STATUS_DEF 60511e25f0dSDavid C Somayajulu #endif 60611e25f0dSDavid C Somayajulu #if (defined(__LINUX)) || (defined(PCI_STATUS_CAP_LIST)) 60711e25f0dSDavid C Somayajulu #define PCI_STATUS_CAP_LIST_DEF 60811e25f0dSDavid C Somayajulu #endif 60911e25f0dSDavid C Somayajulu 61011e25f0dSDavid C Somayajulu #ifndef PCI_CAP_LIST_ID_DEF 61111e25f0dSDavid C Somayajulu #define PCI_CAP_LIST_ID 0x0 /* Capability ID */ 61211e25f0dSDavid C Somayajulu #endif 61311e25f0dSDavid C Somayajulu 61411e25f0dSDavid C Somayajulu #define PCI_CAP_LIST_ID_MASK 0xff 61511e25f0dSDavid C Somayajulu 61611e25f0dSDavid C Somayajulu #ifndef PCI_CAP_LIST_NEXT_DEF 61711e25f0dSDavid C Somayajulu /* Next capability in the list */ 61811e25f0dSDavid C Somayajulu #define PCI_CAP_LIST_NEXT 0x1 61911e25f0dSDavid C Somayajulu #endif 62011e25f0dSDavid C Somayajulu 62111e25f0dSDavid C Somayajulu #define PCI_CAP_LIST_NEXT_MASK 0xff 62211e25f0dSDavid C Somayajulu 62311e25f0dSDavid C Somayajulu #ifndef PCI_STATUS_DEF 62411e25f0dSDavid C Somayajulu #define PCI_STATUS 0x6 /* 16 bits */ 62511e25f0dSDavid C Somayajulu #endif 62611e25f0dSDavid C Somayajulu #ifndef PCI_STATUS_CAP_LIST_DEF 62711e25f0dSDavid C Somayajulu /* Support Capability List */ 62811e25f0dSDavid C Somayajulu #define PCI_STATUS_CAP_LIST 0x10 62911e25f0dSDavid C Somayajulu #endif 63011e25f0dSDavid C Somayajulu 63111e25f0dSDavid C Somayajulu #ifndef PCI_SRIOV_CAP 63211e25f0dSDavid C Somayajulu 63311e25f0dSDavid C Somayajulu /* Some PCI Config defines... need to put this in a better location... */ 63411e25f0dSDavid C Somayajulu #define PCI_SRIOV_CAP 0x04 /* SR-IOV Capabilities */ 63511e25f0dSDavid C Somayajulu #define PCI_SRIOV_CAP_VFM 0x01 /* VF Migration Capable */ 63611e25f0dSDavid C Somayajulu #define PCI_SRIOV_CAP_INTR(x) ((x) >> 21) /* Interrupt Message Number */ 63711e25f0dSDavid C Somayajulu #define PCI_EXT_CAP_ID_SRIOV 0x10 /* Single Root I/O Virtualization */ 63811e25f0dSDavid C Somayajulu #define PCI_SRIOV_CTRL 0x08 /* SR-IOV Control */ 63911e25f0dSDavid C Somayajulu #define PCI_SRIOV_CTRL_VFE 0x01 /* VF Enable */ 64011e25f0dSDavid C Somayajulu #define PCI_SRIOV_CTRL_VFM 0x02 /* VF Migration Enable */ 64111e25f0dSDavid C Somayajulu #define PCI_SRIOV_CTRL_INTR 0x04 /* VF Migration Interrupt Enable */ 64211e25f0dSDavid C Somayajulu #define PCI_SRIOV_CTRL_MSE 0x08 /* VF Memory Space Enable */ 64311e25f0dSDavid C Somayajulu #define PCI_SRIOV_CTRL_ARI 0x10 /* ARI Capable Hierarchy */ 64411e25f0dSDavid C Somayajulu #define PCI_SRIOV_STATUS 0x0a /* SR-IOV Status */ 64511e25f0dSDavid C Somayajulu #define PCI_SRIOV_STATUS_VFM 0x01 /* VF Migration Status */ 64611e25f0dSDavid C Somayajulu #define PCI_SRIOV_INITIAL_VF 0x0c /* Initial VFs */ 64711e25f0dSDavid C Somayajulu #define PCI_SRIOV_TOTAL_VF 0x0e /* Total VFs */ 64811e25f0dSDavid C Somayajulu #define PCI_SRIOV_NUM_VF 0x10 /* Number of VFs */ 64911e25f0dSDavid C Somayajulu #define PCI_SRIOV_FUNC_LINK 0x12 /* Function Dependency Link */ 65011e25f0dSDavid C Somayajulu #define PCI_SRIOV_VF_OFFSET 0x14 /* First VF Offset */ 65111e25f0dSDavid C Somayajulu #define PCI_SRIOV_VF_STRIDE 0x16 /* Following VF Stride */ 65211e25f0dSDavid C Somayajulu #define PCI_SRIOV_VF_DID 0x1a /* VF Device ID */ 65311e25f0dSDavid C Somayajulu #define PCI_SRIOV_SUP_PGSIZE 0x1c /* Supported Page Sizes */ 65411e25f0dSDavid C Somayajulu #define PCI_SRIOV_SYS_PGSIZE 0x20 /* System Page Size */ 65511e25f0dSDavid C Somayajulu 65611e25f0dSDavid C Somayajulu #endif 65711e25f0dSDavid C Somayajulu 65811e25f0dSDavid C Somayajulu #ifndef PCI_CAP_ID_EXP 65911e25f0dSDavid C Somayajulu #define PCI_CAP_ID_EXP 0x10 /* PCI Express */ 66011e25f0dSDavid C Somayajulu #endif 66111e25f0dSDavid C Somayajulu #ifndef PCI_EXP_DEVCTL 66211e25f0dSDavid C Somayajulu #define PCI_EXP_DEVCTL 8 /* Device Control */ 66311e25f0dSDavid C Somayajulu #endif 66411e25f0dSDavid C Somayajulu #ifndef PCI_EXP_DEVCTL_RELAX_EN 66511e25f0dSDavid C Somayajulu #define PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */ 66611e25f0dSDavid C Somayajulu #endif 66711e25f0dSDavid C Somayajulu 66811e25f0dSDavid C Somayajulu #endif 669