Merge tag 'nfsd-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
[linux-2.6-block.git] / include / linux / papr_scm.h
CommitLineData
dbc8fc9d
SB
1/* SPDX-License-Identifier: GPL-2.0-only */
2#ifndef __LINUX_PAPR_SCM_H
3#define __LINUX_PAPR_SCM_H
4
5/* DIMM health bitmap indicators */
6/* SCM device is unable to persist memory contents */
7#define PAPR_PMEM_UNARMED (1ULL << (63 - 0))
8/* SCM device failed to persist memory contents */
9#define PAPR_PMEM_SHUTDOWN_DIRTY (1ULL << (63 - 1))
10/* SCM device contents are persisted from previous IPL */
11#define PAPR_PMEM_SHUTDOWN_CLEAN (1ULL << (63 - 2))
12/* SCM device contents are not persisted from previous IPL */
13#define PAPR_PMEM_EMPTY (1ULL << (63 - 3))
14/* SCM device memory life remaining is critically low */
15#define PAPR_PMEM_HEALTH_CRITICAL (1ULL << (63 - 4))
16/* SCM device will be garded off next IPL due to failure */
17#define PAPR_PMEM_HEALTH_FATAL (1ULL << (63 - 5))
18/* SCM contents cannot persist due to current platform health status */
19#define PAPR_PMEM_HEALTH_UNHEALTHY (1ULL << (63 - 6))
20/* SCM device is unable to persist memory contents in certain conditions */
21#define PAPR_PMEM_HEALTH_NON_CRITICAL (1ULL << (63 - 7))
22/* SCM device is encrypted */
23#define PAPR_PMEM_ENCRYPTED (1ULL << (63 - 8))
24/* SCM device has been scrubbed and locked */
25#define PAPR_PMEM_SCRUBBED_AND_LOCKED (1ULL << (63 - 9))
26
27#define PAPR_PMEM_SAVE_FAILED (1ULL << (63 - 10))
28
29/* Bits status indicators for health bitmap indicating unarmed dimm */
30#define PAPR_PMEM_UNARMED_MASK (PAPR_PMEM_UNARMED | \
31 PAPR_PMEM_HEALTH_UNHEALTHY)
32
33/* Bits status indicators for health bitmap indicating unflushed dimm */
34#define PAPR_PMEM_BAD_SHUTDOWN_MASK (PAPR_PMEM_SHUTDOWN_DIRTY)
35
36/* Bits status indicators for health bitmap indicating unrestored dimm */
37#define PAPR_PMEM_BAD_RESTORE_MASK (PAPR_PMEM_EMPTY)
38
39/* Bit status indicators for smart event notification */
40#define PAPR_PMEM_SMART_EVENT_MASK (PAPR_PMEM_HEALTH_CRITICAL | \
41 PAPR_PMEM_HEALTH_FATAL | \
42 PAPR_PMEM_HEALTH_UNHEALTHY)
43
44#define PAPR_PMEM_SAVE_MASK (PAPR_PMEM_SAVE_FAILED)
45
46#define PAPR_SCM_PERF_STATS_EYECATCHER __stringify(SCMSTATS)
47#define PAPR_SCM_PERF_STATS_VERSION 0x1
48
49#endif /* __LINUX_PAPR_SCM_H */