Linux Audio

Check our new training course

Loading...
v6.13.7
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2#ifndef NDTEST_H
 3#define NDTEST_H
 4
 5#include <linux/platform_device.h>
 6#include <linux/libnvdimm.h>
 7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 8struct ndtest_config;
 9
10struct ndtest_priv {
11	struct platform_device pdev;
12	struct device_node *dn;
13	struct list_head resources;
14	struct nvdimm_bus_descriptor bus_desc;
15	struct nvdimm_bus *bus;
16	struct ndtest_config *config;
17
18	dma_addr_t *dcr_dma;
19	dma_addr_t *label_dma;
20	dma_addr_t *dimm_dma;
21};
22
23struct ndtest_blk_mmio {
24	void __iomem *base;
25	u64 size;
26	u64 base_offset;
27	u32 line_size;
28	u32 num_lines;
29	u32 table_size;
30};
31
32struct ndtest_dimm {
33	struct device *dev;
34	struct nvdimm *nvdimm;
35	struct ndtest_blk_mmio *mmio;
36	struct nd_region *blk_region;
37
38	dma_addr_t address;
39	unsigned long long flags;
40	unsigned long config_size;
41	void *label_area;
42	char *uuid_str;
43
44	unsigned int size;
45	unsigned int handle;
46	unsigned int fail_cmd;
47	unsigned int physical_id;
48	unsigned int num_formats;
49	int id;
50	int fail_cmd_code;
51	u8 no_alias;
52};
53
54struct ndtest_mapping {
55	u64 start;
56	u64 size;
57	u8 position;
58	u8 dimm;
59};
60
61struct ndtest_region {
62	struct nd_region *region;
63	struct ndtest_mapping *mapping;
64	u64 size;
65	u8 type;
66	u8 num_mappings;
67	u8 range_index;
68};
69
70struct ndtest_config {
71	struct ndtest_dimm *dimms;
72	struct ndtest_region *regions;
73	unsigned int dimm_count;
74	unsigned int dimm_start;
75	u8 num_regions;
76};
77
78#endif /* NDTEST_H */
v6.2
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2#ifndef NDTEST_H
  3#define NDTEST_H
  4
  5#include <linux/platform_device.h>
  6#include <linux/libnvdimm.h>
  7
  8/* SCM device is unable to persist memory contents */
  9#define PAPR_PMEM_UNARMED                   (1ULL << (63 - 0))
 10/* SCM device failed to persist memory contents */
 11#define PAPR_PMEM_SHUTDOWN_DIRTY            (1ULL << (63 - 1))
 12/* SCM device contents are not persisted from previous IPL */
 13#define PAPR_PMEM_EMPTY                     (1ULL << (63 - 3))
 14#define PAPR_PMEM_HEALTH_CRITICAL           (1ULL << (63 - 4))
 15/* SCM device will be garded off next IPL due to failure */
 16#define PAPR_PMEM_HEALTH_FATAL              (1ULL << (63 - 5))
 17/* SCM contents cannot persist due to current platform health status */
 18#define PAPR_PMEM_HEALTH_UNHEALTHY          (1ULL << (63 - 6))
 19
 20/* Bits status indicators for health bitmap indicating unarmed dimm */
 21#define PAPR_PMEM_UNARMED_MASK (PAPR_PMEM_UNARMED |		\
 22				PAPR_PMEM_HEALTH_UNHEALTHY)
 23
 24#define PAPR_PMEM_SAVE_FAILED                (1ULL << (63 - 10))
 25
 26/* Bits status indicators for health bitmap indicating unflushed dimm */
 27#define PAPR_PMEM_BAD_SHUTDOWN_MASK (PAPR_PMEM_SHUTDOWN_DIRTY)
 28
 29/* Bits status indicators for health bitmap indicating unrestored dimm */
 30#define PAPR_PMEM_BAD_RESTORE_MASK  (PAPR_PMEM_EMPTY)
 31
 32/* Bit status indicators for smart event notification */
 33#define PAPR_PMEM_SMART_EVENT_MASK (PAPR_PMEM_HEALTH_CRITICAL | \
 34				    PAPR_PMEM_HEALTH_FATAL |	\
 35				    PAPR_PMEM_HEALTH_UNHEALTHY)
 36
 37#define PAPR_PMEM_SAVE_MASK                (PAPR_PMEM_SAVE_FAILED)
 38
 39struct ndtest_config;
 40
 41struct ndtest_priv {
 42	struct platform_device pdev;
 43	struct device_node *dn;
 44	struct list_head resources;
 45	struct nvdimm_bus_descriptor bus_desc;
 46	struct nvdimm_bus *bus;
 47	struct ndtest_config *config;
 48
 49	dma_addr_t *dcr_dma;
 50	dma_addr_t *label_dma;
 51	dma_addr_t *dimm_dma;
 52};
 53
 54struct ndtest_blk_mmio {
 55	void __iomem *base;
 56	u64 size;
 57	u64 base_offset;
 58	u32 line_size;
 59	u32 num_lines;
 60	u32 table_size;
 61};
 62
 63struct ndtest_dimm {
 64	struct device *dev;
 65	struct nvdimm *nvdimm;
 66	struct ndtest_blk_mmio *mmio;
 67	struct nd_region *blk_region;
 68
 69	dma_addr_t address;
 70	unsigned long long flags;
 71	unsigned long config_size;
 72	void *label_area;
 73	char *uuid_str;
 74
 75	unsigned int size;
 76	unsigned int handle;
 77	unsigned int fail_cmd;
 78	unsigned int physical_id;
 79	unsigned int num_formats;
 80	int id;
 81	int fail_cmd_code;
 82	u8 no_alias;
 83};
 84
 85struct ndtest_mapping {
 86	u64 start;
 87	u64 size;
 88	u8 position;
 89	u8 dimm;
 90};
 91
 92struct ndtest_region {
 93	struct nd_region *region;
 94	struct ndtest_mapping *mapping;
 95	u64 size;
 96	u8 type;
 97	u8 num_mappings;
 98	u8 range_index;
 99};
100
101struct ndtest_config {
102	struct ndtest_dimm *dimms;
103	struct ndtest_region *regions;
104	unsigned int dimm_count;
105	unsigned int dimm_start;
106	u8 num_regions;
107};
108
109#endif /* NDTEST_H */