Newer
Older
mbed-os / features / FEATURE_EXPERIMENTAL_API / TARGET_PSA / TARGET_MBED_PSA_SRV / services / inc / mbed_spm_partitions.h
/* Copyright (c) 2017-2019 ARM Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*******************************************************************************
 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * THIS FILE IS AN AUTO-GENERATED FILE - DO NOT MODIFY IT.
 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * Template Version 1.0
 * Generated by tools/psa/generate_partition_code.py Version 1.1
 ******************************************************************************/

#ifndef __MBED_SPM_PARTITIONS_H___
#define __MBED_SPM_PARTITIONS_H___


/****************** Common definitions ****************************************/

/* PSA reserved event flags */
#define PSA_RESERVED1_POS (1UL)
#define PSA_RESERVED1_MSK (1UL << PSA_RESERVED1_POS)

#define PSA_RESERVED2_POS (2UL)
#define PSA_RESERVED2_MSK (1UL << PSA_RESERVED2_POS)

/****************** Service Partitions ****************************************/

/* -----------------------------------------------------------------------------
 * ATTEST_SRV defines
 * -------------------------------------------------------------------------- */
#define ATTEST_SRV_ID 37

#define ATTEST_SRV_ROT_SRV_COUNT (3UL)
#define ATTEST_SRV_EXT_ROT_SRV_COUNT (7UL)


#define ATTEST_SRV_WAIT_ANY_IRQ_MSK (0)

#define PSA_ATTEST_GET_TOKEN_POS (4UL)
#define PSA_ATTEST_GET_TOKEN (1UL << PSA_ATTEST_GET_TOKEN_POS)
#define PSA_ATTEST_GET_TOKEN_SIZE_POS (5UL)
#define PSA_ATTEST_GET_TOKEN_SIZE (1UL << PSA_ATTEST_GET_TOKEN_SIZE_POS)
#define PSA_ATTEST_INJECT_KEY_POS (6UL)
#define PSA_ATTEST_INJECT_KEY (1UL << PSA_ATTEST_INJECT_KEY_POS)

#define ATTEST_SRV_WAIT_ANY_SID_MSK (\
    PSA_ATTEST_GET_TOKEN | \
    PSA_ATTEST_GET_TOKEN_SIZE | \
    PSA_ATTEST_INJECT_KEY)


/* -----------------------------------------------------------------------------
 * CRYPTO_SRV defines
 * -------------------------------------------------------------------------- */
#define CRYPTO_SRV_ID 35

#define CRYPTO_SRV_ROT_SRV_COUNT (11UL)
#define CRYPTO_SRV_EXT_ROT_SRV_COUNT (4UL)


#define CRYPTO_SRV_WAIT_ANY_IRQ_MSK (0)

#define PSA_CRYPTO_INIT_POS (4UL)
#define PSA_CRYPTO_INIT (1UL << PSA_CRYPTO_INIT_POS)
#define PSA_MAC_POS (5UL)
#define PSA_MAC (1UL << PSA_MAC_POS)
#define PSA_HASH_POS (6UL)
#define PSA_HASH (1UL << PSA_HASH_POS)
#define PSA_ASYMMETRIC_POS (7UL)
#define PSA_ASYMMETRIC (1UL << PSA_ASYMMETRIC_POS)
#define PSA_SYMMETRIC_POS (8UL)
#define PSA_SYMMETRIC (1UL << PSA_SYMMETRIC_POS)
#define PSA_AEAD_POS (9UL)
#define PSA_AEAD (1UL << PSA_AEAD_POS)
#define PSA_KEY_MNG_POS (10UL)
#define PSA_KEY_MNG (1UL << PSA_KEY_MNG_POS)
#define PSA_RNG_POS (11UL)
#define PSA_RNG (1UL << PSA_RNG_POS)
#define PSA_CRYPTO_FREE_POS (12UL)
#define PSA_CRYPTO_FREE (1UL << PSA_CRYPTO_FREE_POS)
#define PSA_KEY_DERIVATION_POS (13UL)
#define PSA_KEY_DERIVATION (1UL << PSA_KEY_DERIVATION_POS)
#define PSA_ENTROPY_INJECT_POS (14UL)
#define PSA_ENTROPY_INJECT (1UL << PSA_ENTROPY_INJECT_POS)

#define CRYPTO_SRV_WAIT_ANY_SID_MSK (\
    PSA_CRYPTO_INIT | \
    PSA_MAC | \
    PSA_HASH | \
    PSA_ASYMMETRIC | \
    PSA_SYMMETRIC | \
    PSA_AEAD | \
    PSA_KEY_MNG | \
    PSA_RNG | \
    PSA_CRYPTO_FREE | \
    PSA_KEY_DERIVATION | \
    PSA_ENTROPY_INJECT)


/* -----------------------------------------------------------------------------
 * PLATFORM defines
 * -------------------------------------------------------------------------- */
#define PLATFORM_ID 8

#define PLATFORM_ROT_SRV_COUNT (4UL)
#define PLATFORM_EXT_ROT_SRV_COUNT (1UL)


#define PLATFORM_WAIT_ANY_IRQ_MSK (0)

#define PSA_PLATFORM_LC_GET_MSK_POS (4UL)
#define PSA_PLATFORM_LC_GET_MSK (1UL << PSA_PLATFORM_LC_GET_MSK_POS)
#define PSA_PLATFORM_LC_SET_MSK_POS (5UL)
#define PSA_PLATFORM_LC_SET_MSK (1UL << PSA_PLATFORM_LC_SET_MSK_POS)
#define PSA_PLATFORM_SYSTEM_RESET_MSK_POS (6UL)
#define PSA_PLATFORM_SYSTEM_RESET_MSK (1UL << PSA_PLATFORM_SYSTEM_RESET_MSK_POS)
#define PSA_PLATFORM_IOCTL_MSK_POS (7UL)
#define PSA_PLATFORM_IOCTL_MSK (1UL << PSA_PLATFORM_IOCTL_MSK_POS)

#define PLATFORM_WAIT_ANY_SID_MSK (\
    PSA_PLATFORM_LC_GET_MSK | \
    PSA_PLATFORM_LC_SET_MSK | \
    PSA_PLATFORM_SYSTEM_RESET_MSK | \
    PSA_PLATFORM_IOCTL_MSK)


/* -----------------------------------------------------------------------------
 * ITS defines
 * -------------------------------------------------------------------------- */
#define ITS_ID 10

#define ITS_ROT_SRV_COUNT (5UL)
#define ITS_EXT_ROT_SRV_COUNT (0UL)


#define ITS_WAIT_ANY_IRQ_MSK (0)

#define PSA_ITS_GET_MSK_POS (4UL)
#define PSA_ITS_GET_MSK (1UL << PSA_ITS_GET_MSK_POS)
#define PSA_ITS_SET_MSK_POS (5UL)
#define PSA_ITS_SET_MSK (1UL << PSA_ITS_SET_MSK_POS)
#define PSA_ITS_INFO_MSK_POS (6UL)
#define PSA_ITS_INFO_MSK (1UL << PSA_ITS_INFO_MSK_POS)
#define PSA_ITS_REMOVE_MSK_POS (7UL)
#define PSA_ITS_REMOVE_MSK (1UL << PSA_ITS_REMOVE_MSK_POS)
#define PSA_ITS_RESET_MSK_POS (8UL)
#define PSA_ITS_RESET_MSK (1UL << PSA_ITS_RESET_MSK_POS)

#define ITS_WAIT_ANY_SID_MSK (\
    PSA_ITS_GET_MSK | \
    PSA_ITS_SET_MSK | \
    PSA_ITS_INFO_MSK | \
    PSA_ITS_REMOVE_MSK | \
    PSA_ITS_RESET_MSK)



/****************** Test Partitions *******************************************/

#ifdef USE_PSA_TEST_PARTITIONS

#ifdef USE_CRYPTO_ACL_TEST
/* -----------------------------------------------------------------------------
 * CRYPTO_ACL_TEST defines
 * -------------------------------------------------------------------------- */
#define CRYPTO_ACL_TEST_ID 128

#define CRYPTO_ACL_TEST_ROT_SRV_COUNT (6UL)
#define CRYPTO_ACL_TEST_EXT_ROT_SRV_COUNT (1UL)


#define CRYPTO_ACL_TEST_WAIT_ANY_IRQ_MSK (0)

#define CRYPTO_GENERATE_KEY_MSK_POS (4UL)
#define CRYPTO_GENERATE_KEY_MSK (1UL << CRYPTO_GENERATE_KEY_MSK_POS)
#define CRYPTO_OPEN_KEY_MSK_POS (5UL)
#define CRYPTO_OPEN_KEY_MSK (1UL << CRYPTO_OPEN_KEY_MSK_POS)
#define CRYPTO_CLOSE_KEY_MSK_POS (6UL)
#define CRYPTO_CLOSE_KEY_MSK (1UL << CRYPTO_CLOSE_KEY_MSK_POS)
#define CRYPTO_DESTROY_KEY_MSK_POS (7UL)
#define CRYPTO_DESTROY_KEY_MSK (1UL << CRYPTO_DESTROY_KEY_MSK_POS)
#define CRYPTO_GET_KEY_ATTRIBUTES_MSK_POS (8UL)
#define CRYPTO_GET_KEY_ATTRIBUTES_MSK (1UL << CRYPTO_GET_KEY_ATTRIBUTES_MSK_POS)
#define CRYPTO_IMPORT_KEY_MSK_POS (9UL)
#define CRYPTO_IMPORT_KEY_MSK (1UL << CRYPTO_IMPORT_KEY_MSK_POS)

#define CRYPTO_ACL_TEST_WAIT_ANY_SID_MSK (\
    CRYPTO_GENERATE_KEY_MSK | \
    CRYPTO_OPEN_KEY_MSK | \
    CRYPTO_CLOSE_KEY_MSK | \
    CRYPTO_DESTROY_KEY_MSK | \
    CRYPTO_GET_KEY_ATTRIBUTES_MSK | \
    CRYPTO_IMPORT_KEY_MSK)


#endif  // USE_CRYPTO_ACL_TEST

#ifdef USE_CLIENT_TESTS_PART1
/* -----------------------------------------------------------------------------
 * CLIENT_TESTS_PART1 defines
 * -------------------------------------------------------------------------- */
#define CLIENT_TESTS_PART1_ID 1

#define CLIENT_TESTS_PART1_ROT_SRV_COUNT (3UL)
#define CLIENT_TESTS_PART1_EXT_ROT_SRV_COUNT (0UL)


#define CLIENT_TESTS_PART1_WAIT_ANY_IRQ_MSK (0)

#define PART1_ROT_SRV1_MSK_POS (4UL)
#define PART1_ROT_SRV1_MSK (1UL << PART1_ROT_SRV1_MSK_POS)
#define DROP_CONN_MSK_POS (5UL)
#define DROP_CONN_MSK (1UL << DROP_CONN_MSK_POS)
#define SECURE_CLIENTS_ONLY_MSK_POS (6UL)
#define SECURE_CLIENTS_ONLY_MSK (1UL << SECURE_CLIENTS_ONLY_MSK_POS)

#define CLIENT_TESTS_PART1_WAIT_ANY_SID_MSK (\
    PART1_ROT_SRV1_MSK | \
    DROP_CONN_MSK | \
    SECURE_CLIENTS_ONLY_MSK)


#endif  // USE_CLIENT_TESTS_PART1

#ifdef USE_SERVER_TESTS_PART1
/* -----------------------------------------------------------------------------
 * SERVER_TESTS_PART1 defines
 * -------------------------------------------------------------------------- */
#define SERVER_TESTS_PART1_ID 2

#define SERVER_TESTS_PART1_ROT_SRV_COUNT (2UL)
#define SERVER_TESTS_PART1_EXT_ROT_SRV_COUNT (2UL)


#define SERVER_TESTS_PART1_WAIT_ANY_IRQ_MSK (0)

#define CONTROL_MSK_POS (4UL)
#define CONTROL_MSK (1UL << CONTROL_MSK_POS)
#define TEST_MSK_POS (5UL)
#define TEST_MSK (1UL << TEST_MSK_POS)

#define SERVER_TESTS_PART1_WAIT_ANY_SID_MSK (\
    CONTROL_MSK | \
    TEST_MSK)


#endif  // USE_SERVER_TESTS_PART1

#ifdef USE_SERVER_TESTS_PART2
/* -----------------------------------------------------------------------------
 * SERVER_TESTS_PART2 defines
 * -------------------------------------------------------------------------- */
#define SERVER_TESTS_PART2_ID 3

#define SERVER_TESTS_PART2_ROT_SRV_COUNT (2UL)
#define SERVER_TESTS_PART2_EXT_ROT_SRV_COUNT (0UL)


#define SERVER_TESTS_PART2_WAIT_ANY_IRQ_MSK (0)

#define ROT_SRV_REVERSE_MSK_POS (4UL)
#define ROT_SRV_REVERSE_MSK (1UL << ROT_SRV_REVERSE_MSK_POS)
#define ROT_SRV_DB_TST_MSK_POS (5UL)
#define ROT_SRV_DB_TST_MSK (1UL << ROT_SRV_DB_TST_MSK_POS)

#define SERVER_TESTS_PART2_WAIT_ANY_SID_MSK (\
    ROT_SRV_REVERSE_MSK | \
    ROT_SRV_DB_TST_MSK)


#endif  // USE_SERVER_TESTS_PART2

#ifdef USE_SMOKE_TESTS_PART1
/* -----------------------------------------------------------------------------
 * SMOKE_TESTS_PART1 defines
 * -------------------------------------------------------------------------- */
#define SMOKE_TESTS_PART1_ID 4

#define SMOKE_TESTS_PART1_ROT_SRV_COUNT (1UL)
#define SMOKE_TESTS_PART1_EXT_ROT_SRV_COUNT (0UL)


#define SMOKE_TESTS_PART1_WAIT_ANY_IRQ_MSK (0)

#define ROT_SRV1_MSK_POS (4UL)
#define ROT_SRV1_MSK (1UL << ROT_SRV1_MSK_POS)

#define SMOKE_TESTS_PART1_WAIT_ANY_SID_MSK (\
    ROT_SRV1_MSK)


#endif  // USE_SMOKE_TESTS_PART1


#endif  // USE_PSA_TEST_PARTITIONS

#endif // __MBED_SPM_PARTITIONS_H___