summaryrefslogtreecommitdiff
path: root/drivers/scsi/cxlflash/ocxl_hw.h
blob: f41ba0ba23c6257f107cd529b89c72464ebd95c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
 * CXL Flash Device Driver
 *
 * Written by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>, IBM Corporation
 *	       Uma Krishnan <ukrishn@linux.vnet.ibm.com>, IBM Corporation
 *
 * Copyright (C) 2018 IBM Corporation
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */

/* OCXL hardware AFU associated with the host */
struct ocxl_hw_afu {
	struct ocxlflash_context *ocxl_ctx; /* Host context */
	struct pci_dev *pdev;		/* PCI device */
	struct device *dev;		/* Generic device */

	struct ocxl_fn_config fcfg;	/* DVSEC config of the function */
	struct ocxl_afu_config acfg;	/* AFU configuration data */

	int fn_actag_base;		/* Function acTag base */
	int fn_actag_enabled;		/* Function acTag number enabled */
	int afu_actag_base;		/* AFU acTag base */
	int afu_actag_enabled;		/* AFU acTag number enabled */

	int max_pasid;			/* Maximum number of contexts */
	bool is_present;		/* Function has AFUs defined */
};

struct ocxlflash_context {
	struct ocxl_hw_afu *hw_afu;	/* HW AFU back pointer */
	bool master;			/* Whether this is a master context */
};