4 * Copyright (c) 2020 Intel
6 * This work is licensed under the terms of the GNU GPL, version 2. See the
7 * COPYING file in the top-level directory.
14 #include "qapi/qapi-types-machine.h"
15 #include "hw/pci/pci_bridge.h"
16 #include "hw/pci/pci_host.h"
18 #include "cxl_component.h"
19 #include "cxl_device.h"
21 #define CXL_COMPONENT_REG_BAR_IDX 0
22 #define CXL_DEVICE_REG_BAR_IDX 2
24 #define CXL_WINDOW_MAX 10
26 typedef struct CXLFixedWindow
{
29 struct PXBDev
*target_hbs
[8];
33 /* Todo: XOR based interleaving */
38 typedef struct CXLState
{
41 unsigned int next_mr_idx
;
46 PCIHostState parent_obj
;
48 CXLComponentState cxl_cstate
;
51 #define TYPE_PXB_CXL_HOST "pxb-cxl-host"
52 OBJECT_DECLARE_SIMPLE_TYPE(CXLHost
, PXB_CXL_HOST
)
54 void cxl_fixed_memory_window_config(MachineState
*ms
,
55 CXLFixedMemoryWindowOptions
*object
,
57 void cxl_fixed_memory_window_link_targets(Error
**errp
);
59 extern const MemoryRegionOps cfmws_ops
;