ADAC: Acknowledge LCS_CHANGE command
Acknowledge the life cycle state change command but since it is not
implemented, return status UNSUPPORTED.
Signed-off-by: Maulik Patel <maulik.patel@arm.com>
Change-Id: I5939dea78f90fe3912d99ffd40d330adff33b4a3
diff --git a/psa-adac/core/include/psa_adac.h b/psa-adac/core/include/psa_adac.h
index cb7b41b..b190992 100644
--- a/psa-adac/core/include/psa_adac.h
+++ b/psa-adac/core/include/psa_adac.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020-2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -54,9 +54,25 @@
*
*/
typedef enum {
- PSA_BINARY_TOKEN = 0x0200,
- PSA_BINARY_CRT = 0x0201,
- PSA_X509_CRT = 0x0202
+ NULL_TYPE = 0x0000,
+ ADAC_AUTH_VERSION = 0x0001,
+ VENDOR_ID = 0x0002,
+ SOC_CLASS = 0x0003,
+ SOC_ID = 0x0004,
+ TARGET_IDENTITY = 0x0005,
+ HW_PERMISSIONS_FIXED = 0x0006,
+ HW_PERMISSIONS_MASK = 0x0007,
+ PSA_LIFECYCLE = 0x0008,
+ SW_PARTITION_ID = 0x0009,
+ SDA_ID = 0x000A,
+ SDA_VERSION = 0x000B,
+ EFFECTIVE_PERMISSIONS = 0x000C,
+ TOKEN_FORMATS = 0x0100,
+ CERT_FORMATS = 0x0101,
+ CRYPTOSYSTEMS = 0x0102,
+ PSA_BINARY_TOKEN = 0x0200,
+ PSA_BINARY_CRT = 0x0201,
+ PSA_X509_CRT = 0x0202
} type_id_t;
/** \brief Version type
@@ -107,7 +123,7 @@
ADAC_RESUME_BOOT_CMD = 0x05, /**< `Resume Boot` command */
ADAC_LOCK_DEBUG_CMD = 0x06, /**< `Lock Debug` command */
ADAC_LCS_CHANGE_CMD = 0x07, /**< `Change Life-cycle State` command */
-} sdp_commands_t;
+} adac_commands_t;
/** \brief Status codes
*
@@ -120,7 +136,7 @@
ADAC_UNAUTHORIZED = 0x0004,
ADAC_INVALID_PARAMETERS = 0x0005,
ADAC_INVALID_COMMAND = 0x7FFF
-} sdp_status_t;
+} adac_status_t;
/** \brief Certification roles
*
diff --git a/psa-adac/core/src/adac_crypto.c b/psa-adac/core/src/adac_crypto.c
index d779d98..db7c01d 100644
--- a/psa-adac/core/src/adac_crypto.c
+++ b/psa-adac/core/src/adac_crypto.c
@@ -1,23 +1,23 @@
/*
- * Copyright (c) 2020-2022 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <psa_adac_config.h>
-
-#include <psa_adac.h>
-#include <psa_adac_crypto_api.h>
-#include <psa_adac_cryptosystems.h>
-#include <psa_adac_debug.h>
+#include <string.h>
+#include "psa_adac_config.h"
+#include "psa_adac.h"
+#include "psa_adac_crypto_api.h"
+#include "psa_adac_cryptosystems.h"
+#include "psa_adac_debug.h"
#include "platform/platform.h"
-#include <string.h>
-void psa_adac_platform_init();
+void psa_adac_platform_init(void);
-psa_status_t psa_adac_crypto_init();
+psa_status_t psa_adac_crypto_init(void);
-psa_status_t psa_adac_init() {
+psa_status_t psa_adac_init(void)
+{
static uint8_t psa_adac_init_done = 0;
psa_status_t ret = PSA_SUCCESS;
@@ -31,7 +31,8 @@
}
psa_status_t psa_adac_extract_public_key(uint8_t *crt, size_t crt_size, uint8_t *key_type,
- uint8_t **pubkey, size_t *pubkey_size) {
+ uint8_t **pubkey, size_t *pubkey_size)
+{
certificate_header_t *header = (certificate_header_t *) crt;
size_t ext_bytes = 0;
size_t body_size = 0;
@@ -40,7 +41,8 @@
if ((crt_size < sizeof(certificate_header_t)) || (key_type == NULL) ||
(pubkey == NULL) || (pubkey_size == NULL)) {
ret = PSA_ERROR_INVALID_ARGUMENT;
- } else if ((header->key_type == ECDSA_P256_SHA256) && (header->signature_type == ECDSA_P256_SHA256)) {
+ } else if ((header->key_type == ECDSA_P256_SHA256) &&
+ (header->signature_type == ECDSA_P256_SHA256)) {
#ifdef PSA_ADAC_EC_P256
certificate_p256_p256_t *certificate = (certificate_p256_p256_t *) crt;
body_size = sizeof(certificate_p256_p256_t);
@@ -50,7 +52,8 @@
#else
ret = PSA_ERROR_NOT_SUPPORTED;
#endif
- } else if ((header->key_type == ECDSA_P521_SHA512) && (header->signature_type == ECDSA_P521_SHA512)) {
+ } else if ((header->key_type == ECDSA_P521_SHA512) &&
+ (header->signature_type == ECDSA_P521_SHA512)) {
#ifdef PSA_ADAC_EC_P521
certificate_p521_p521_t *certificate = (certificate_p521_p521_t *) crt;
body_size = sizeof(certificate_p521_p521_t);
@@ -60,7 +63,8 @@
#else
ret = PSA_ERROR_NOT_SUPPORTED;
#endif
- } else if ((header->key_type == ED_25519_SHA512) && (header->signature_type == ED_25519_SHA512)) {
+ } else if ((header->key_type == ED_25519_SHA512) &&
+ (header->signature_type == ED_25519_SHA512)) {
#ifdef PSA_ADAC_ED25519
certificate_ed255_ed255_t *certificate = (certificate_ed255_ed255_t *) crt;
body_size = sizeof(certificate_ed255_ed255_t);
@@ -70,7 +74,8 @@
#else
ret = PSA_ERROR_NOT_SUPPORTED;
#endif
- } else if ((header->key_type == ED_448_SHAKE256) && (header->signature_type == ED_448_SHAKE256)) {
+ } else if ((header->key_type == ED_448_SHAKE256) &&
+ (header->signature_type == ED_448_SHAKE256)) {
#ifdef PSA_ADAC_ED448
certificate_ed448_ed448_t *certificate = (certificate_ed448_ed448_t *) crt;
body_size = sizeof(certificate_ed448_ed448_t);
@@ -80,7 +85,8 @@
#else
ret = PSA_ERROR_NOT_SUPPORTED;
#endif
- } else if ((header->key_type == RSA_3072_SHA256) && (header->signature_type == RSA_3072_SHA256)) {
+ } else if ((header->key_type == RSA_3072_SHA256) &&
+ (header->signature_type == RSA_3072_SHA256)) {
#ifdef PSA_ADAC_RSA3072
certificate_rsa3072_rsa3072_t *certificate = (certificate_rsa3072_rsa3072_t *) crt;
body_size = sizeof(certificate_rsa3072_rsa3072_t);
@@ -90,7 +96,8 @@
#else
ret = PSA_ERROR_NOT_SUPPORTED;
#endif
- } else if ((header->key_type == RSA_4096_SHA256) && (header->signature_type == RSA_4096_SHA256)) {
+ } else if ((header->key_type == RSA_4096_SHA256) &&
+ (header->signature_type == RSA_4096_SHA256)) {
#ifdef PSA_ADAC_RSA4096
certificate_rsa4096_rsa4096_t *certificate = (certificate_rsa4096_rsa4096_t *) crt;
body_size = sizeof(certificate_rsa4096_rsa4096_t);
@@ -118,14 +125,17 @@
}
psa_status_t psa_adac_verify_certificate_rotpk(uint8_t *crt, size_t crt_size, psa_algorithm_t alg,
- uint8_t **rotpk, size_t *rotpk_size, size_t rotpk_count) {
+ uint8_t **rotpk, size_t *rotpk_size,
+ size_t rotpk_count)
+{
size_t pubkey_size;
uint8_t key_type;
uint8_t *pubkey = NULL;
psa_status_t ret = psa_adac_extract_public_key(crt, crt_size, &key_type, &pubkey, &pubkey_size);
if (ret == PSA_SUCCESS) {
- ret = psa_adac_hash_verify_multiple(alg, pubkey, pubkey_size, rotpk, rotpk_size, rotpk_count);
+ ret = psa_adac_hash_verify_multiple(alg, pubkey, pubkey_size, rotpk, rotpk_size,
+ rotpk_count);
}
PSA_ADAC_LOG_TRACE("auth_rotpk", "ROTPK Certificate verification %s\n",
@@ -133,7 +143,9 @@
return ret;
}
-psa_status_t psa_adac_context_load_key(validation_context_t *context, uint8_t key_type, uint8_t *key, size_t key_size) {
+psa_status_t psa_adac_context_load_key(validation_context_t *context, uint8_t key_type,
+ uint8_t *key, size_t key_size)
+{
psa_status_t ret = PSA_ERROR_INSUFFICIENT_STORAGE;
if (context->max >= key_size) {
(void) memcpy(context->content, key, key_size);
@@ -144,7 +156,8 @@
return ret;
}
-psa_status_t psa_adac_update_context(uint8_t *crt, size_t crt_size, validation_context_t *ctx) {
+psa_status_t psa_adac_update_context(uint8_t *crt, size_t crt_size, validation_context_t *ctx)
+{
psa_status_t ret;
if ((ctx->key_type == CMAC_AES) || (ctx->key_type == HMAC_SHA256)) {
diff --git a/psa-adac/sda/src/psa_adac_sda.c b/psa-adac/sda/src/psa_adac_sda.c
index 3564e1d..996db70 100644
--- a/psa-adac/sda/src/psa_adac_sda.c
+++ b/psa-adac/sda/src/psa_adac_sda.c
@@ -1,17 +1,16 @@
/*
- * Copyright (c) 2020-2022 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <psa_adac_sda.h>
-#include <platform/msg_interface.h>
-
-#include <psa_adac.h>
-#include <psa_adac_crypto_api.h>
-#include <psa_adac_cryptosystems.h>
-#include <psa_adac_debug.h>
-
#include <string.h>
+#include "psa_adac_sda.h"
+#include "platform/msg_interface.h"
+#include "psa_adac.h"
+#include "psa_adac_crypto_api.h"
+#include "psa_adac_cryptosystems.h"
+#include "psa_adac_debug.h"
+
#ifdef PSA_ADAC_AUTHENTICATOR_IMPLICIT_TRANSPORT
@@ -333,6 +332,23 @@
auth_ctx->state = AUTH_INIT;
}
+static response_packet_t *authentication_change_lcs(authentication_context_t *auth_ctx, request_packet_t *request)
+{
+ adac_status_t status;
+ (void) authenticator_request_packet_release(auth_ctx, request);
+ psa_tlv_t *fragment = (psa_tlv_t *) &request->data;
+
+ if (((request->data_count * 4) < sizeof(psa_tlv_t))
+ || (((request->data_count * 4) - sizeof(psa_tlv_t)) < fragment->length_in_bytes)) {
+ auth_ctx->state = AUTH_FAILURE;
+ status = ADAC_INVALID_PARAMETERS;
+ } else {
+ status = psa_adac_change_life_cycle_state(fragment->value, fragment->length_in_bytes);
+ }
+
+ return authenticator_response_packet_build(auth_ctx, status, NULL, 0);
+}
+
int authentication_handle(authentication_context_t *auth_ctx) {
int done = 0;
request_packet_t *request;
@@ -382,6 +398,12 @@
done = 1;
break;
+ case ADAC_LCS_CHANGE_CMD:
+ PSA_ADAC_LOG_DEBUG("auth", "Change LCS \n");
+ response = authentication_change_lcs(auth_ctx, request);
+ ret = authenticator_send_response(auth_ctx, response);
+ break;
+
default:
PSA_ADAC_LOG_ERR("auth", "Unknown command: %04x\n", request->command);
(void) authenticator_request_packet_release(auth_ctx, request);
diff --git a/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c b/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c
index c0f5277..ea59f4c 100644
--- a/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c
+++ b/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c
@@ -1,25 +1,26 @@
/*
- * Copyright (c) 2020 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <psa_adac_config.h>
-#include <psa_adac_debug.h>
-#include <psa_adac_sda.h>
-#include <platform/platform.h>
-#include <platform/msg_interface.h>
-
+#include "psa_adac_config.h"
+#include "psa_adac_debug.h"
+#include "psa_adac_sda.h"
+#include "platform/platform.h"
+#include "platform/msg_interface.h"
#include "demo-anchors.h"
-
#include <string.h>
-void psa_adac_platform_init() {
-}
-
extern uint8_t discovery_template[];
extern size_t discovery_template_len;
-size_t psa_adac_platform_discovery(uint8_t *reply, size_t reply_size) {
+void psa_adac_platform_init(void)
+{
+ /* TODO: Code me */
+}
+
+size_t psa_adac_platform_discovery(uint8_t *reply, size_t reply_size)
+{
if (reply_size >= discovery_template_len) {
memcpy(reply, discovery_template, discovery_template_len);
return discovery_template_len;
@@ -27,17 +28,28 @@
return 0;
}
-void psa_adac_platform_lock() {
- // TODO: Code me
+void psa_adac_platform_lock(void)
+{
+ /* TODO: Code me */
}
-int psa_adac_platform_check_token(uint8_t *token, size_t token_size) {
- // TODO: Code me
+adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size)
+{
+ /* TODO: Code me */
+ /* LCS change is platform specific and is NOT implemented */
+ /* Ignore return value and send UNSUPPORTED status for now */
+ return ADAC_UNSUPPORTED;
+}
+
+int psa_adac_platform_check_token(uint8_t *token, size_t token_size)
+{
+ /* TODO: Code me */
return 0;
}
-int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size) {
- // TODO: Code me
+int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size)
+{
+ /* TODO: Code me */
return 0;
}
@@ -97,5 +109,7 @@
return ret;
}
-void platform_init() {
+void platform_init(void)
+{
+ /* TODO: Code me */
}
diff --git a/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h b/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h
index 6e072af..2f42e0b 100644
--- a/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h
+++ b/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h
@@ -1,36 +1,55 @@
/*
- * Copyright (c) 2020 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
-#ifndef PSA_ADAC_PLATFORM_H
-#define PSA_ADAC_PLATFORM_H
+#ifndef __PLATFORM_H__
+#define __PLATFORM_H__
#include <stdint.h>
#include <stddef.h>
+#include "psa_adac.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
#ifdef PSA_ADAC_PLATFORM_CONFIG_FILE
#include PSA_ADAC_PLATFORM_CONFIG_FILE
#else
-#include <psa_adac_platform.h>
+#include "psa_adac_platform.h"
#endif
#ifndef PSA_ADAC_PLATFORM_BANNER
#define PSA_ADAC_PLATFORM_BANNER "PSA ADAC "
#endif
-void platform_init();
+void platform_init(void);
+adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size);
+void psa_adac_platform_lock(void);
+void psa_adac_platform_init(void);
+int psa_adac_detect_debug_request(void);
+void psa_adac_acknowledge_debug_request(void);
-void psa_adac_platform_lock();
-void psa_adac_platform_init();
-int psa_adac_detect_debug_request();
-void psa_adac_acknowledge_debug_request();
-
+/**
+ * \brief This function is called on response to the discovery command from the
+ * debug host. It returns information about the target and set of all
+ * response fragments format supported by the debug target.
+ *
+ * \param[out] reply Pointer to \p reply buffer.
+ * \param[in] reply_size Size of the \p reply buffer in bytes.
+ *
+ * \retval Returns size of actual populated reply buffer.
+ */
size_t psa_adac_platform_discovery(uint8_t *reply, size_t reply_size);
int psa_adac_platform_check_token(uint8_t *token, size_t token_size);
int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size);
int psa_adac_apply_permissions(uint8_t permissions_mask[16]);
-#endif //PSA_ADAC_PLATFORM_H
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PLATFORM_H__ */
diff --git a/target/trusted-firmware-m/platform/arm/rss/common/include/platform/platform.h b/target/trusted-firmware-m/platform/arm/rss/common/include/platform/platform.h
index 394feea..3c7db83 100644
--- a/target/trusted-firmware-m/platform/arm/rss/common/include/platform/platform.h
+++ b/target/trusted-firmware-m/platform/arm/rss/common/include/platform/platform.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2022 Arm Limited. All rights reserved.
+ * Copyright (c) 2022-2023 Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -25,6 +25,7 @@
#endif
void platform_init(void);
+adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size);
void psa_adac_platform_lock(void);
int psa_adac_platform_check_token(uint8_t *token, size_t token_size);
int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size);
diff --git a/target/trusted-firmware-m/platform/arm/rss/common/psa_adac_platform.c b/target/trusted-firmware-m/platform/arm/rss/common/psa_adac_platform.c
index 1f8569b..c45edde 100644
--- a/target/trusted-firmware-m/platform/arm/rss/common/psa_adac_platform.c
+++ b/target/trusted-firmware-m/platform/arm/rss/common/psa_adac_platform.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2022-2023, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -40,6 +40,14 @@
return 0;
}
+adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size)
+{
+ /* TODO: Code me */
+ /* LCS change is platform specific and is NOT implemented */
+ /* Ignore return value and send UNSUPPORTED status for now */
+ return ADAC_UNSUPPORTED;
+}
+
void psa_adac_platform_lock(void)
{
/* TODO: Code me */
diff --git a/template_hal_files/target_name.c b/template_hal_files/target_name.c
index 0bc2ebc..3c15010 100644
--- a/template_hal_files/target_name.c
+++ b/template_hal_files/target_name.c
@@ -1,45 +1,50 @@
/*
- * Copyright (c) 2020 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <psa_adac_config.h>
-#include <psa_adac_debug.h>
-#include <psa_adac_sda.h>
-#include <platform/platform.h>
-#include <platform/msg_interface.h>
+#include "psa_adac_config.h"
+#include "psa_adac_debug.h"
+#include "psa_adac_sda.h"
+#include "platform/platform.h"
+#include "platform/msg_interface.h"
-void psa_adac_platform_init()
+void psa_adac_platform_init(void)
{
- // TODO: Code me
+ /* TODO: Code me */
}
size_t psa_adac_platform_discovery(uint8_t *reply, size_t reply_size)
{
- // TODO: Code me
+ /* TODO: Code me */
}
-void psa_adac_platform_lock()
+adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size)
{
- // TODO: Code me
+ /* TODO: Code me */
+}
+
+void psa_adac_platform_lock(void)
+{
+ /* TODO: Code me */
}
int psa_adac_platform_check_token(uint8_t *token, size_t token_size)
{
- // TODO: Code me
+ /* TODO: Code me */
}
int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size)
{
- // TODO: Code me
+ /* TODO: Code me */
}
int psa_adac_apply_permissions(uint8_t permissions_mask[16])
{
- // TODO: Code me
+ /* TODO: Code me */
}
-void platform_init()
+void platform_init(void)
{
- // TODO: Code me
+ /* TODO: Code me */
}
diff --git a/template_hal_files/trasport_layer.c b/template_hal_files/trasport_layer.c
index d5540b2..76c1d2f 100644
--- a/template_hal_files/trasport_layer.c
+++ b/template_hal_files/trasport_layer.c
@@ -1,49 +1,48 @@
/*
- * Copyright (c) 2020 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <psa_adac_debug.h>
-#include <platform/msg_interface.h>
+#include "psa_adac_debug.h"
+#include "platform/msg_interface.h"
+#include "platform/platform.h"
-#include <platform/platform.h>
-
-int psa_adac_detect_debug_request()
+int psa_adac_detect_debug_request(void)
{
- // Code me
+ /* Code me */
}
-void psa_adac_acknowledge_debug_request()
+void psa_adac_acknowledge_debug_request(void)
{
- // Code me
+ /* Code me */
}
int msg_interface_init(void *ctx, uint8_t buffer[], size_t buffer_size)
{
- // Code me
+ /* Code me */
}
int msg_interface_free(void *ctx)
{
- // Code me
+ /* Code me */
}
-int request_packet_send()
+int request_packet_send(void)
{
- // Code me
+ /* Code me */
}
request_packet_t *request_packet_receive(void *ctx)
{
- // Code me
+ /* Code me */
}
int response_packet_send(response_packet_t *p)
{
- // Code me
+ /* Code me */
}
-response_packet_t *response_packet_receive()
+response_packet_t *response_packet_receive(void)
{
- // Code me
+ /* Code me */
}
diff --git a/transport_layer/transports/sdc-600/sdc-600.c b/transport_layer/transports/sdc-600/sdc-600.c
index 4c0c644..781d499 100644
--- a/transport_layer/transports/sdc-600/sdc-600.c
+++ b/transport_layer/transports/sdc-600/sdc-600.c
@@ -1,17 +1,14 @@
/*
- * Copyright (c) 2020 Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2023 Arm Limited. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <psa_adac_debug.h>
-#include <platform/msg_interface.h>
-#include "static_buffer_msg.h"
-
-#include "int_com_port_driver.h"
-
#include <stdio.h>
-
-#include <platform/platform.h>
+#include "psa_adac_debug.h"
+#include "platform/msg_interface.h"
+#include "static_buffer_msg.h"
+#include "int_com_port_driver.h"
+#include "platform/platform.h"
#ifndef PSA_ADAC_AUTHENTICATOR_IMPLICIT_TRANSPORT
#error "Unsupported environment"
@@ -22,13 +19,14 @@
#endif
#define SDC600 ((SDC600_Type *)SDC600_BASE)
-//! PSA Debug Access Control protocol ID: 'PSADBG'
+/* ! PSA Debug Access Control protocol ID: 'PSADBG' */
static const char APBCOM_ID[6] = {0x50, 0x53, 0x41, 0x44, 0x42, 0x47};
-int psa_adac_detect_debug_request() {
+int psa_adac_detect_debug_request(void)
+{
int rc = 0;
- // Initialize the IComPort driver.
+ /* Initialize the IComPort driver. */
icpd_rc_t r = IComPortInit((uint8_t *) APBCOM_ID, sizeof(APBCOM_ID));
switch (r) {
@@ -48,23 +46,28 @@
return rc;
}
-void psa_adac_acknowledge_debug_request() {
- // Nothing
+void psa_adac_acknowledge_debug_request(void)
+{
+ /* Nothing */
}
-int msg_interface_init(void *ctx, uint8_t buffer[], size_t buffer_size) {
+int msg_interface_init(void *ctx, uint8_t buffer[], size_t buffer_size)
+{
return psa_adac_static_buffer_msg_init(buffer, buffer_size);
}
-int msg_interface_free(void *ctx) {
+int msg_interface_free(void *ctx)
+{
return psa_adac_static_buffer_msg_release();
}
-int request_packet_send() {
+int request_packet_send(void)
+{
return -1;
}
-request_packet_t *request_packet_receive(void *ctx) {
+request_packet_t *request_packet_receive(void *ctx)
+{
size_t max = 0, length = 0;
request_packet_t *r = request_packet_lock(&max);
if (r != NULL) {
@@ -80,13 +83,15 @@
return NULL;
}
-int response_packet_send(response_packet_t *p) {
+int response_packet_send(response_packet_t *p)
+{
response_packet_t *packet = psa_adac_static_buffer_msg_get_response();
return (IComPortTx((uint8_t *) packet,
sizeof(response_packet_t) + packet->data_count * sizeof(uint32_t),
NULL) == ICPD_TX_SUCCESS ? 0 : -1);
}
-response_packet_t *response_packet_receive() {
+response_packet_t *response_packet_receive()
+{
return NULL;
}