1 /* 2 * Copyright 2018 The Hafnium Authors. 3 * 4 * Use of this source code is governed by a BSD-style 5 * license that can be found in the LICENSE file or at 6 * https://opensource.org/licenses/BSD-3-Clause. 7 */ 8 9 #pragma once 10 11 #include "smc.h" 12 13 /* clang-format off */ 14 15 /* The following are PSCI version codes. */ 16 #define PSCI_VERSION_0_2 0x00000002 17 #define PSCI_VERSION_1_0 0x00010000 18 #define PSCI_VERSION_1_1 0x00010001 19 20 /* The following are function identifiers for PSCI. */ 21 #define PSCI_VERSION 0x84000000 22 #define PSCI_CPU_SUSPEND 0x84000001 23 #define PSCI_CPU_OFF 0x84000002 24 #define PSCI_CPU_ON 0x84000003 25 #define PSCI_AFFINITY_INFO 0x84000004 26 #define PSCI_MIGRATE 0x84000005 27 #define PSCI_MIGRATE_INFO_TYPE 0x84000006 28 #define PSCI_MIGRATE_INFO_UP_CPU 0x84000007 29 #define PSCI_SYSTEM_OFF 0x84000008 30 #define PSCI_SYSTEM_RESET 0x84000009 31 #define PSCI_FEATURES 0x8400000a 32 #define PSCI_CPU_FREEZE 0x8400000b 33 #define PSCI_CPU_DEFAULT_SUSPEND 0x8400000c 34 #define PSCI_NODE_HW_STATE 0x8400000d 35 #define PSCI_SYSTEM_SUSPEND 0x8400000e 36 #define PSCI_SET_SYSPEND_MODE 0x8400000f 37 #define PSCI_STAT_RESIDENCY 0x84000010 38 #define PSCI_STAT_COUNT 0x84000011 39 #define PSCI_SYSTEM_RESET2 0x84000012 40 #define PSCI_MEM_PROTECT 0x84000013 41 #define PSCI_MEM_PROTECT_CHECK_RANGE 0x84000014 42 43 /* The following are return codes for PSCI. */ 44 #define PSCI_RETURN_ON_PENDING 2 45 #define PSCI_RETURN_OFF 1 46 #define PSCI_RETURN_ON 0 47 #define PSCI_RETURN_SUCCESS 0 48 #define PSCI_ERROR_NOT_SUPPORTED SMCCC_ERROR_UNKNOWN 49 #define PSCI_ERROR_INVALID_PARAMETERS (-2) 50 #define PSCI_ERROR_DENIED (-3) 51 #define PSCI_ERROR_ALREADY_ON (-4) 52 #define PSCI_ERROR_ON_PENDING (-5) 53 #define PSCI_ERROR_INTERNAL_FAILURE (-6) 54 #define PSCI_ERROR_NOT_PRESENT (-7) 55 #define PSCI_ERROR_DISABLE (-8) 56 #define PSCI_ERROR_INVALID_ADDRESS (-9) 57 58 /* clang-format on */ 59