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 */ 50