blob: 7d3e4bf06b45afb8380a4343184adacce6fe607c [file] [log] [blame]
Dan Williams4cdadfd2021-02-16 20:09:50 -08001/* SPDX-License-Identifier: GPL-2.0-only */
2/* Copyright(c) 2020 Intel Corporation. All rights reserved. */
3#ifndef __CXL_PCI_H__
4#define __CXL_PCI_H__
5
6#define CXL_MEMORY_PROGIF 0x10
7
8/*
9 * See section 8.1 Configuration Space Registers in the CXL 2.0
10 * Specification
11 */
Ben Widawsky8adaf742021-02-16 20:09:51 -080012#define PCI_DVSEC_HEADER1_LENGTH_MASK GENMASK(31, 20)
Dan Williams4cdadfd2021-02-16 20:09:50 -080013#define PCI_DVSEC_VENDOR_ID_CXL 0x1E98
14#define PCI_DVSEC_ID_CXL 0x0
15
Ben Widawsky4ad61812021-06-17 17:30:09 -070016#define PCI_DVSEC_ID_CXL_REGLOC_DVSEC_ID 0x8
Ben Widawsky8adaf742021-02-16 20:09:51 -080017#define PCI_DVSEC_ID_CXL_REGLOC_BLOCK1_OFFSET 0xC
18
19/* BAR Indicator Register (BIR) */
20#define CXL_REGLOC_BIR_MASK GENMASK(2, 0)
21
22/* Register Block Identifier (RBI) */
Ben Widawskycdcce472021-10-09 09:44:02 -070023enum cxl_regloc_type {
24 CXL_REGLOC_RBI_EMPTY = 0,
25 CXL_REGLOC_RBI_COMPONENT,
26 CXL_REGLOC_RBI_VIRT,
27 CXL_REGLOC_RBI_MEMDEV,
28 CXL_REGLOC_RBI_TYPES
29};
Ben Widawsky8adaf742021-02-16 20:09:51 -080030
Ben Widawskycdcce472021-10-09 09:44:02 -070031#define CXL_REGLOC_RBI_MASK GENMASK(15, 8)
Ben Widawsky8adaf742021-02-16 20:09:51 -080032#define CXL_REGLOC_ADDR_MASK GENMASK(31, 16)
Dan Williams4cdadfd2021-02-16 20:09:50 -080033
34#endif /* __CXL_PCI_H__ */