mirror of
https://github.com/qemu/qemu.git
synced 2025-10-24 19:01:24 +00:00
Paolo Bonzini requested this change to simplify the ongoing effort to allow machine setup entirely via RPC. Includes shortening the command line form cxl-fixed-memory-window to cxl-fmw as the command lines are extremely long even with this change. The json change is needed to ensure that there is a CXLFixedMemoryWindowOptionsList even though the actual element in the json is never used. Similar to existing SgxEpcProperties. Update qemu-options.hx to reflect that this is now a -machine parameter. The bulk of -M / -machine parameters are documented under machine, so use that in preference to M. Update cxl-test and bios-tables-test to reflect new parameters. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Davidlohr Bueso <dave@stgolabs.net> Message-Id: <20220608145440.26106-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
/*
|
|
* QEMU CXL Support
|
|
*
|
|
* Copyright (c) 2020 Intel
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2. See the
|
|
* COPYING file in the top-level directory.
|
|
*/
|
|
|
|
#ifndef CXL_H
|
|
#define CXL_H
|
|
|
|
|
|
#include "qapi/qapi-types-machine.h"
|
|
#include "qapi/qapi-visit-machine.h"
|
|
#include "hw/pci/pci_bridge.h"
|
|
#include "hw/pci/pci_host.h"
|
|
#include "cxl_pci.h"
|
|
#include "cxl_component.h"
|
|
#include "cxl_device.h"
|
|
|
|
#define CXL_COMPONENT_REG_BAR_IDX 0
|
|
#define CXL_DEVICE_REG_BAR_IDX 2
|
|
|
|
#define CXL_WINDOW_MAX 10
|
|
|
|
typedef struct CXLFixedWindow {
|
|
uint64_t size;
|
|
char **targets;
|
|
struct PXBDev *target_hbs[8];
|
|
uint8_t num_targets;
|
|
uint8_t enc_int_ways;
|
|
uint8_t enc_int_gran;
|
|
/* Todo: XOR based interleaving */
|
|
MemoryRegion mr;
|
|
hwaddr base;
|
|
} CXLFixedWindow;
|
|
|
|
typedef struct CXLState {
|
|
bool is_enabled;
|
|
MemoryRegion host_mr;
|
|
unsigned int next_mr_idx;
|
|
GList *fixed_windows;
|
|
CXLFixedMemoryWindowOptionsList *cfmw_list;
|
|
} CXLState;
|
|
|
|
struct CXLHost {
|
|
PCIHostState parent_obj;
|
|
|
|
CXLComponentState cxl_cstate;
|
|
};
|
|
|
|
#define TYPE_PXB_CXL_HOST "pxb-cxl-host"
|
|
OBJECT_DECLARE_SIMPLE_TYPE(CXLHost, PXB_CXL_HOST)
|
|
|
|
void cxl_fixed_memory_window_link_targets(Error **errp);
|
|
|
|
#endif
|