/*
 * =====================================================================================
 *
 *       Filename:  commandList.h
 *
 *    Description:  Common definitions.
 *
 *        Version:  1.0
 *        Created:  21/08/2019 03:42:11 AM
 *       Compiler:  arm
 *
 *        Company:  Samsung Electronics
 *        Copyright (c) 2017 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */

#ifndef __COMMAND_LIST_H__
#define __COMMAND_LIST_H__

/*******************************************
 *
 * NWD-SWD Command list.
 *
 *******************************************/
 
// TA Command.
#define CMD_PROV                           0x1000
#define CMD_SKM                            0x2000
#define CMD_MASK                           0xF000

// Operation Command
#define CMD_DEVICE_UNBOUND_KEY             0x0010
#define CMD_DEVICE_BOUND_KEY               0x0020
#define CMD_GENERATE_KEY                   0x0030
#define CMD_VERIFY_KEY                     0x0040
#define CMD_GET_INFO                       0x0050
#define CMD_REQUEST_HWVAULT                0x0060

// Prov commands.
#define CMD_UNWRAP_DRK_BLOB                CMD_PROV | CMD_DEVICE_UNBOUND_KEY | 0x0001
#if (defined USE_QSEE)
#define CMD_SHARE_DRK_KEY                  CMD_PROV | CMD_GET_INFO           | 0x0001
#endif	// End of USE_QSEE
#define CMD_VERIFY_SERVICE_KEY             CMD_PROV | CMD_VERIFY_KEY         | 0x0001
#define CMD_IS_SUPPORTED_DRK_V2            CMD_PROV | CMD_GET_INFO           | 0x0002

// Skm commands.
#if (defined USE_QSEE)
#define CMD_INSTALL_DRK_KEY                CMD_SKM | CMD_DEVICE_UNBOUND_KEY  | 0x0001
#endif // End of USE_QSEE
#define CMD_MAKE_DRK_CSR                   CMD_SKM | CMD_DEVICE_BOUND_KEY    | 0x0001
#define CMD_INSTALL_DRK_CERT               CMD_SKM | CMD_DEVICE_BOUND_KEY    | 0x0002
#define CMD_GENERATE_DRK_KEY               CMD_SKM | CMD_DEVICE_BOUND_KEY    | 0x0003

#define CMD_GENERATE_SERVICE_KEY           CMD_SKM | CMD_GENERATE_KEY        | 0x0001

#define CMD_VERIFY_DRK_KEY                 CMD_SKM | CMD_VERIFY_KEY          | 0x0001

#define CMD_GET_DRK_UID                    CMD_SKM | CMD_GET_INFO            | 0x0002
#define CMD_GET_DRK_CERT                   CMD_SKM | CMD_GET_INFO            | 0x0003

#define CMD_GET_DEV_INFO                   CMD_SKM | CMD_GET_INFO            | 0x0004

#define CMD_READ_DRK_FROM_HWVAULT          CMD_SKM | CMD_REQUEST_HWVAULT     | 0x0001

// Supported old skm commands for compatibility with DM-verity.
#define CMD_GENERATE_RSA_SERVICE_KEY_V1    0x110
#define CMD_GENERATE_EC_SERVICE_KEY_V1     0x111
#define CMD_GENERATE_RSA_SERVICE_KEY_V0    0x1B4
#define CMD_VERIFY_RSA_DRK_V1              0x120
#define CMD_GET_DRK_UID_V1                 0x130
// Only Qualcomm depened commands.
#if (defined USE_QSEE)
#define CMD_SHARE_SERVICE_KEY_V1           0x202
#define CMD_SHARE_SERVICE_KEY_V0           0xBB
#endif // End of USE_QSEE

#endif  // End of __COMMAND_LIST_H__
