Zephyr Project API 4.1.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
update.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef ZEPHYR_INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_NRF_IRONSIDE_UPDATE_H_
7#define ZEPHYR_INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_NRF_IRONSIDE_UPDATE_H_
8
9#include <stdint.h>
10#include <stddef.h>
11
18#define IRONSIDE_UPDATE_ERROR_NOT_PERMITTED (1)
20#define IRONSIDE_UPDATE_ERROR_SICR_WRITE_FAILED (2)
21
27#define IRONSIDE_UPDATE_MANIFEST_LENGTH (256)
29#define IRONSIDE_UPDATE_PUBKEY_LENGTH (32)
31#define IRONSIDE_UPDATE_SIGNATURE_LENGTH (64)
32
33/* IRONside call identifiers with implicit versions.
34 *
35 * With the initial "version 0", the service ABI is allowed to break until the
36 * first production release of IRONside SE.
37 */
38#define IRONSIDE_CALL_ID_UPDATE_SERVICE_V0 1
39
40/* Index of the update blob pointer within the service buffer. */
41#define IRONSIDE_UPDATE_SERVICE_UPDATE_PTR_IDX (0)
42/* Index of the return code within the service buffer. */
43#define IRONSIDE_UPDATE_SERVICE_RETCODE_IDX (0)
44
54
70int ironside_update(const struct ironside_update_blob *update);
71
72#endif /* ZEPHYR_INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_NRF_IRONSIDE_UPDATE_H_ */
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
IRONside update blob.
Definition update.h:48
uint8_t pubkey[(32)]
Definition update.h:50
uint8_t signature[(64)]
Definition update.h:51
uint32_t firmware[]
Definition update.h:52
uint8_t manifest[(256)]
Definition update.h:49
#define IRONSIDE_UPDATE_PUBKEY_LENGTH
Length of the update public key in bytes.
Definition update.h:29
#define IRONSIDE_UPDATE_MANIFEST_LENGTH
Length of the update manifest in bytes.
Definition update.h:27
#define IRONSIDE_UPDATE_SIGNATURE_LENGTH
Length of the update signature in bytes.
Definition update.h:31
int ironside_update(const struct ironside_update_blob *update)
Request a firmware upgrade of the IRONside SE.