uboot/arch/arm/include/asm/arch-imx8/sci/rpc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier:     GPL-2.0+ */
   2/*
   3 * Copyright 2017-2018 NXP
   4 *
   5 */
   6
   7#ifndef SC_RPC_H
   8#define SC_RPC_H
   9
  10/* Note: Check SCFW API Released DOC before you want to modify something */
  11#define SC_RPC_VERSION          1U
  12
  13#define SC_RPC_MAX_MSG          8U
  14
  15#define RPC_VER(MSG)            ((MSG)->version)
  16#define RPC_SIZE(MSG)           ((MSG)->size)
  17#define RPC_SVC(MSG)            ((MSG)->svc)
  18#define RPC_FUNC(MSG)           ((MSG)->func)
  19#define RPC_R8(MSG)             ((MSG)->func)
  20#define RPC_I32(MSG, IDX)       ((MSG)->DATA.i32[(IDX) / 4U])
  21#define RPC_I16(MSG, IDX)       ((MSG)->DATA.i16[(IDX) / 2U])
  22#define RPC_I8(MSG, IDX)        ((MSG)->DATA.i8[(IDX)])
  23#define RPC_U32(MSG, IDX)       ((MSG)->DATA.u32[(IDX) / 4U])
  24#define RPC_U16(MSG, IDX)       ((MSG)->DATA.u16[(IDX) / 2U])
  25#define RPC_U8(MSG, IDX)        ((MSG)->DATA.u8[(IDX)])
  26
  27#define SC_RPC_SVC_UNKNOWN      0U
  28#define SC_RPC_SVC_RETURN       1U
  29#define SC_RPC_SVC_PM           2U
  30#define SC_RPC_SVC_RM           3U
  31#define SC_RPC_SVC_TIMER        5U
  32#define SC_RPC_SVC_PAD          6U
  33#define SC_RPC_SVC_MISC         7U
  34#define SC_RPC_SVC_IRQ          8U
  35#define SC_RPC_SVC_ABORT        9U
  36
  37/* Types */
  38
  39struct sc_rpc_msg_s {
  40        u8 version;
  41        u8 size;
  42        u8 svc;
  43        u8 func;
  44        union {
  45                s32 i32[(SC_RPC_MAX_MSG - 1U)];
  46                s16 i16[(SC_RPC_MAX_MSG - 1U) * 2U];
  47                s8 i8[(SC_RPC_MAX_MSG - 1U) * 4U];
  48                u32 u32[(SC_RPC_MAX_MSG - 1U)];
  49                u16 u16[(SC_RPC_MAX_MSG - 1U) * 2U];
  50                u8 u8[(SC_RPC_MAX_MSG - 1U) * 4U];
  51        } DATA;
  52};
  53
  54/* PM RPC */
  55#define PM_FUNC_UNKNOWN                         0
  56#define PM_FUNC_SET_SYS_POWER_MODE              19U
  57#define PM_FUNC_SET_PARTITION_POWER_MODE        1U
  58#define PM_FUNC_GET_SYS_POWER_MODE              2U
  59#define PM_FUNC_SET_RESOURCE_POWER_MODE         3U
  60#define PM_FUNC_GET_RESOURCE_POWER_MODE         4U
  61#define PM_FUNC_REQ_LOW_POWER_MODE              16U
  62#define PM_FUNC_REQ_CPU_LOW_POWER_MODE          20U
  63#define PM_FUNC_SET_CPU_RESUME_ADDR             17U
  64#define PM_FUNC_SET_CPU_RESUME                  21U
  65#define PM_FUNC_REQ_SYS_IF_POWER_MODE           18U
  66#define PM_FUNC_SET_CLOCK_RATE                  5U
  67#define PM_FUNC_GET_CLOCK_RATE                  6U
  68#define PM_FUNC_CLOCK_ENABLE                    7U
  69#define PM_FUNC_SET_CLOCK_PARENT                14U
  70#define PM_FUNC_GET_CLOCK_PARENT                15U
  71#define PM_FUNC_RESET                           13U
  72#define PM_FUNC_RESET_REASON                    10U
  73#define PM_FUNC_BOOT                            8U
  74#define PM_FUNC_REBOOT                          9U
  75#define PM_FUNC_REBOOT_PARTITION                12U
  76#define PM_FUNC_CPU_START                       11U
  77
  78/* MISC RPC */
  79#define MISC_FUNC_UNKNOWN                       0
  80#define MISC_FUNC_SET_CONTROL                   1U
  81#define MISC_FUNC_GET_CONTROL                   2U
  82#define MISC_FUNC_SET_MAX_DMA_GROUP             4U
  83#define MISC_FUNC_SET_DMA_GROUP                 5U
  84#define MISC_FUNC_SECO_IMAGE_LOAD               8U
  85#define MISC_FUNC_SECO_AUTHENTICATE             9U
  86#define MISC_FUNC_SECO_FUSE_WRITE               20U
  87#define MISC_FUNC_SECO_ENABLE_DEBUG             21U
  88#define MISC_FUNC_SECO_FORWARD_LIFECYCLE        22U
  89#define MISC_FUNC_SECO_RETURN_LIFECYCLE         23U
  90#define MISC_FUNC_SECO_BUILD_INFO               24U
  91#define MISC_FUNC_DEBUG_OUT                     10U
  92#define MISC_FUNC_WAVEFORM_CAPTURE              6U
  93#define MISC_FUNC_BUILD_INFO                    15U
  94#define MISC_FUNC_UNIQUE_ID                     19U
  95#define MISC_FUNC_SET_ARI                       3U
  96#define MISC_FUNC_BOOT_STATUS                   7U
  97#define MISC_FUNC_BOOT_DONE                     14U
  98#define MISC_FUNC_OTP_FUSE_READ                 11U
  99#define MISC_FUNC_OTP_FUSE_WRITE                17U
 100#define MISC_FUNC_SET_TEMP                      12U
 101#define MISC_FUNC_GET_TEMP                      13U
 102#define MISC_FUNC_GET_BOOT_DEV                  16U
 103#define MISC_FUNC_GET_BUTTON_STATUS             18U
 104
 105/* PAD RPC */
 106#define PAD_FUNC_UNKNOWN                        0
 107#define PAD_FUNC_SET_MUX                        1U
 108#define PAD_FUNC_GET_MUX                        6U
 109#define PAD_FUNC_SET_GP                         2U
 110#define PAD_FUNC_GET_GP                         7U
 111#define PAD_FUNC_SET_WAKEUP                     4U
 112#define PAD_FUNC_GET_WAKEUP                     9U
 113#define PAD_FUNC_SET_ALL                        5U
 114#define PAD_FUNC_GET_ALL                        10U
 115#define PAD_FUNC_SET                            15U
 116#define PAD_FUNC_GET                            16U
 117#define PAD_FUNC_SET_GP_28FDSOI                 11U
 118#define PAD_FUNC_GET_GP_28FDSOI                 12U
 119#define PAD_FUNC_SET_GP_28FDSOI_HSIC            3U
 120#define PAD_FUNC_GET_GP_28FDSOI_HSIC            8U
 121#define PAD_FUNC_SET_GP_28FDSOI_COMP            13U
 122#define PAD_FUNC_GET_GP_28FDSOI_COMP            14U
 123
 124/* RM RPC */
 125#define RM_FUNC_UNKNOWN                         0
 126#define RM_FUNC_PARTITION_ALLOC                 1U
 127#define RM_FUNC_SET_CONFIDENTIAL                31U
 128#define RM_FUNC_PARTITION_FREE                  2U
 129#define RM_FUNC_GET_DID                         26U
 130#define RM_FUNC_PARTITION_STATIC                3U
 131#define RM_FUNC_PARTITION_LOCK                  4U
 132#define RM_FUNC_GET_PARTITION                   5U
 133#define RM_FUNC_SET_PARENT                      6U
 134#define RM_FUNC_MOVE_ALL                        7U
 135#define RM_FUNC_ASSIGN_RESOURCE                 8U
 136#define RM_FUNC_SET_RESOURCE_MOVABLE            9U
 137#define RM_FUNC_SET_SUBSYS_RSRC_MOVABLE         28U
 138#define RM_FUNC_SET_MASTER_ATTRIBUTES           10U
 139#define RM_FUNC_SET_MASTER_SID                  11U
 140#define RM_FUNC_SET_PERIPHERAL_PERMISSIONS      12U
 141#define RM_FUNC_IS_RESOURCE_OWNED               13U
 142#define RM_FUNC_IS_RESOURCE_MASTER              14U
 143#define RM_FUNC_IS_RESOURCE_PERIPHERAL          15U
 144#define RM_FUNC_GET_RESOURCE_INFO               16U
 145#define RM_FUNC_MEMREG_ALLOC                    17U
 146#define RM_FUNC_MEMREG_SPLIT                    29U
 147#define RM_FUNC_MEMREG_FREE                     18U
 148#define RM_FUNC_FIND_MEMREG                     30U
 149#define RM_FUNC_ASSIGN_MEMREG                   19U
 150#define RM_FUNC_SET_MEMREG_PERMISSIONS          20U
 151#define RM_FUNC_IS_MEMREG_OWNED                 21U
 152#define RM_FUNC_GET_MEMREG_INFO                 22U
 153#define RM_FUNC_ASSIGN_PAD                      23U
 154#define RM_FUNC_SET_PAD_MOVABLE                 24U
 155#define RM_FUNC_IS_PAD_OWNED                    25U
 156#define RM_FUNC_DUMP                            27U
 157
 158#endif /* SC_RPC_H */
 159