xref: /freebsd/sys/dev/qlnx/qlnxe/pcics_reg_driver.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
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