/* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright(c) 2020 Intel Corporation. All rights reserved. */ #ifndef __CXL_PCI_H__ #define __CXL_PCI_H__ #include <linux/pci.h> #include"cxl.h"
#define CXL_MEMORY_PROGIF 0x10
/* * See section 8.1 Configuration Space Registers in the CXL 2.0 * Specification. Names are taken straight from the specification with "CXL" and * "DVSEC" redundancies removed. When obvious, abbreviations may be used.
*/ #define PCI_DVSEC_HEADER1_LENGTH_MASK GENMASK(31, 20)
/* * NOTE: Currently all the functions which are enabled for CXL require their * vectors to be in the first 16. Use this as the default max.
*/ #define CXL_PCI_DEFAULT_MAX_VECTORS 16
/* * The DOE CDAT read response contains a CDAT read entry (either the * CDAT header or a structure).
*/ union cdat_data { struct cdat_header header; struct cdat_entry_header entry;
} __packed;
/* There is an additional CDAT response header of 4 bytes. */ struct cdat_doe_rsp {
__le32 doe_header;
u8 data[];
} __packed;
/* * CXL v3.0 6.2.3 Table 6-4 * The table indicates that if PCIe Flit Mode is set, then CXL is in 256B flits * mode, otherwise it's 68B flits mode.
*/ staticinlinebool cxl_pci_flit_256(struct pci_dev *pdev)
{
u16 lnksta2;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.