| /* Copyright 2019,2020 NXP |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** @file */ |
| |
| #ifndef se05x_perso_CNST_H |
| #define se05x_perso_CNST_H |
| |
| /** Constants for the Config Applet */ |
| |
| /* + Machine Generated */ |
| |
| #define se05x_perso_APPLET_AID \ |
| { \ |
| 0xA0, 0x00, 0x00, 0x03, 0x96, 0x54, 0x53, 0x00, 0x00, 0x00, 0x01, 0x03, 0x40, 0x00, 0x00 \ |
| } |
| |
| typedef enum |
| { |
| |
| #if 0 |
| /** 1-byte value: SAK in case of incomplete UID, only used for CIU. */ |
| kSE05x_Cfg_TCL_SAK_COMPLETE_P1P2 = 0x8002, |
| |
| /** 1-byte value: L3 Activation Control Parameter. */ |
| kSE05x_Cfg_TCL_L3_ACTIVATION_CONTROL_P1P2 = 0x8003, |
| |
| /** Byte array (max 5 bytes): TCL Interface Bytes used for CIU. This |
| * are the first bytes in the ATS before the Historical |
| * Characters. (T0, [TA1], [TB1], [TC1]) The first byte defines the |
| * length (excl. length byte). The IF-Length and T0 are always |
| * present, all others are optional and depend on the content of |
| * T0. */ |
| kSE05x_Cfg_TCL_ATS_IF_P1P2 = 0x8004, |
| #endif |
| |
| /** Length(1 bytes): Defines the actually used length of the |
| historical characters in configuration item TCL_ATS_HISTCHARS */ |
| kSE05x_Cfg_TCL_ATS_CURRENT_HISTLEN_CHARS_P1P2 = 0x8005, |
| |
| /** Byte array (max 20 bytes): Historical characters used for T=CL. */ |
| kSE05x_Cfg_TCL_ATS_HISTCHARS_P1P2 = 0x8006, |
| |
| #if 0 |
| /** 1-byte value: ATQA MSB byte only used for CIU */ |
| kSE05x_Cfg_TCL_ATQA_MSB_P1P2 = 0x8007, |
| |
| /** 1-byte value: ATQA LSB byte only used for CIU */ |
| kSE05x_Cfg_TCL_ATQA_LSB_P1P2 = 0x8008, |
| #endif |
| |
| /** Length(1 bytes): */ |
| kSE05x_Cfg_7816_ATR_COLD_HIST_LEN_CHARS_P1P2 = 0x8009, |
| |
| /** Byte array (max 15 bytes): Histchars for Cold Reset ISO7816 protocol */ |
| kSE05x_Cfg_7816_ATR_COLD_HIST_P1P2 = 0x800A, |
| |
| /** Length(1 bytes): */ |
| kSE05x_Cfg_7816_ATR_WARM_HIST_LEN_CHARS_P1P2 = 0x800B, |
| |
| /** Byte array (max 15 bytes): Histchars for Warm Reset ISO7816 protocol. */ |
| kSE05x_Cfg_7816_ATR_WARM_HIST_P1P2 = 0x800C, |
| |
| /** 1-byte value: I2C slave address of product. */ |
| kSE05x_Cfg_I2C_SLAVE_ADDRESS_P1P2 = 0x800D, |
| |
| /** 1-byte value: Bitmask to configure the I2C protocol Each bit |
| * of the bitmask switches the feature: */ |
| kSE05x_Cfg_I2C_PARAMS_P1P2 = 0x800E, |
| |
| /** Byte array: ATR definition for I2C interface. See Table 15. */ |
| kSE05x_Cfg_ATR_I2C_IF_BYTES_P1P2 = 0x800F, |
| |
| #if 0 |
| /** 2-byte value: values to initialize system timer A: b15 RFU */ |
| kSE05x_Cfg_OS_TIMER_INIT_P1P2 = 0x8010, |
| |
| /** 2-byte value: The counter timer interval between interrupts. The |
| * resolution is defined by the chosen divider value in |
| * NXCONF_OS_TIMER_INIT. */ |
| kSE05x_Cfg_OS_TIMER_UPDATE_THRESHOLD_P1P2 = 0x8011, |
| |
| /** 2-byte value: Bit mask stating GlobalPlatform features supported, |
| see table 17. */ |
| kSE05x_Cfg_GP_CONFIG_P1P2 = 0x8012, |
| |
| /** 1-byte value: Configuration to enable/disable periodic Static |
| * Wear Leveling - 0x00: Periodic static wear leveling is |
| * disabled. Enable periodic Static Wear Leveling: */ |
| kSE05x_Cfg_PRSWL_ENABLED_P1P2 = 0x8013, |
| #endif |
| |
| /** 1-byte value: 0x00 = FIPS disabled; 0x01 = FIPS enabled. */ |
| kSE05x_Cfg_FIPS_MODE_ENABLED_P1P2 = 0x8014, |
| |
| /** Byte array: ATR definition for I2C interface. See Table 15. */ |
| kSE05x_Cfg_CIP_I2C_IF_BYTES_P1P2 = 0x8015, |
| |
| /** Byte array (max 25 bytes): ATR Historical Character definition |
| * for I2C interface. See Table 16. */ |
| kSE05x_Cfg_ATR_CIP_I2C_HIST_CHARS_P1P2 = 0x8016, |
| |
| /** Byte array: AID of module to be deleted . */ |
| kSE05x_Cfg_DELETE_OS_MODULE_P1P2 = 0x8017, |
| } SE05x_Cfg_P1P2_t; |
| |
| /* |
| * Convention for I2C Params APIs |
| * |
| * - (1) Read full 8 bits from Applet |
| * - (2.a) If it's a 'set' value |= set_bit |
| * - (2.b) If it's a 'msk' value &= set_bit |
| * - (4) Set value to Applet |
| * |
| */ |
| |
| /* |
| *-bit 0 : Slave clock stretching(0 = clock stretching disabled, 1 = clock |
| * stretching enabled) |
| */ |
| #define SE05X_PERSO_I2C_PARAMS_SET_CLK_STRCH_ENABLED (1u << 0) |
| #define SE05X_PERSO_I2C_PARAMS_MSK_CLK_STRCH_DISABLED (~(SE05X_PERSO_I2C_PARAMS_SET_CLK_STRCH_ENABLED)) |
| /* |
| * -bit 1 : Enable power saving mode after sending End of APDU Session |
| * response(0 = power save mode disabled, 1 = power save mode enabled) |
| */ |
| #define SE05X_PERSO_I2C_PARAMS_SET_PWR_SAVE_ENABLED (1u << 1) |
| #define SE05X_PERSO_I2C_PARAMS_MSK_PWR_SAVE_DISABLED (~(SE05X_PERSO_I2C_PARAMS_SET_PWR_SAVE_ENABLED)) |
| |
| /* |
| * -bit 2 : Select flavour of T1I2C protocol(0 = NXP flavour, 1 = GP flavour) |
| */ |
| #define SE05X_PERSO_I2C_PARAMS_SET_I2C_GP (1u << 2) |
| #define SE05X_PERSO_I2C_PARAMS_MSK_I2C_UM (~(SE05X_PERSO_I2C_PARAMS_SET_I2C_GP)) |
| /* |
| * -bit 3 : Select the T1I2C protocol communication mode(0 = Semi Non - |
| * Blocking Communication, 1 = Blocking Communication) |
| */ |
| #define SE05X_PERSO_I2C_PARAMS_SET_I2C_SEMI_BLOCKING (1u << 3) |
| #define SE05X_PERSO_I2C_PARAMS_MSK_I2C_NON_BLOCKING (~(SE05X_PERSO_I2C_PARAMS_SET_I2C_SEMI_BLOCKING)) |
| |
| /* |
| * -bit 4 : |
| * Select the protocol detection mode: |
| * 0: Auto protocol detection: Either NXP legacy UM11225 protocol |
| * or GP v1.0 protocol can be used (Bit2 is obsolete). |
| * 1: Manual mode: Use the protocol, which is set with Bit2. |
| */ |
| #define SE05X_PERSO_I2C_PARAMS_SET_PROTO_SEL_MANUAL (1u << 4) |
| #define SE05X_PERSO_I2C_PARAMS_MSK_PROTO_DETECT_AUTO (~(SE05X_PERSO_I2C_PARAMS_SET_PROTO_SEL_MANUAL)) |
| |
| #endif /* se05x_perso_CNST_h */ |