Skip to content

Commit fb1a301

Browse files
ironside: move to IronSide support package
Pull in the new IronSide support package which replaces the IronSide APIs that were previously in the zephyr repository. This includes a few naming changes and some changes to the headers, but should not introduce any functional changes. Update the code that interacts with IronSide to make use of the new APIs. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
1 parent cf8857a commit fb1a301

File tree

8 files changed

+29
-46
lines changed

8 files changed

+29
-46
lines changed

include/tfm/ironside/se/ipc_service.h

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,6 @@
77
#ifndef __SDFW_PSA_IPC_SERVICE_H__
88
#define __SDFW_PSA_IPC_SERVICE_H__
99

10-
/*
11-
* This header contains symbols that are used by both the IronSide SE client
12-
* and the IronSide SE service.
13-
*/
14-
enum {
15-
IRONSIDE_SE_IPC_INDEX_HANDLE,
16-
IRONSIDE_SE_IPC_INDEX_IN_VEC,
17-
IRONSIDE_SE_IPC_INDEX_IN_LEN,
18-
IRONSIDE_SE_IPC_INDEX_OUT_VEC,
19-
IRONSIDE_SE_IPC_INDEX_OUT_LEN,
20-
IRONSIDE_SE_IPC_INDEX_STATUS,
21-
IRONSIDE_SE_IPC_INDEX_TYPE,
22-
/* The last enum value is reserved for the size of the IPC buffer */
23-
IRONSIDE_SE_IPC_DATA_LEN
24-
};
25-
26-
/* IronSide call identifiers with implicit versions */
27-
#define IRONSIDE_CALL_ID_PSA_V1 0
28-
2910
/* We are adding the source files for the TF-M Crypto partition
3011
* and the TF-M Internal Trusted Storage partition to the build.
3112
*

lib/nrf_modem_lib/nrf_modem_os_rpc.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
#include <zephyr/drivers/mbox.h>
1818
#include <zephyr/ipc/icmsg.h>
1919
#include <zephyr/ipc/pbuf.h>
20-
#if defined(CONFIG_NRF_IRONSIDE)
21-
#include <nrf_ironside/cpuconf.h>
20+
#if defined(CONFIG_IRONSIDE_SE_CALL)
21+
#include <ironside/se/api.h>
2222
#endif
2323

2424
#define DCACHE_LINE_SIZE (CONFIG_DCACHE_LINE_SIZE)
@@ -119,7 +119,7 @@ uintptr_t nrf_modem_os_rpc_sigdev_modem_get(void)
119119

120120
int nrf_modem_os_rpc_cellcore_boot(void)
121121
{
122-
#if defined(CONFIG_NRF_IRONSIDE)
122+
#if defined(CONFIG_IRONSIDE_SE_CALL)
123123
struct boot_report_cellcore_ldc params;
124124

125125
params.ipc_buf_addr = DT_REG_ADDR(DT_NODELABEL(cpuapp_cpucell_ipc_shm_ctrl));
@@ -136,7 +136,7 @@ int nrf_modem_os_rpc_cellcore_boot(void)
136136
/* TODO: Replace hardcoded value with NRF_PROCESSOR_CELLCORE when it's available
137137
* in the MDK.
138138
*/
139-
return ironside_cpuconf(4, NULL, cpu_wait, msg, msg_size);
139+
return ironside_se_cpuconf(4, NULL, cpu_wait, msg, msg_size);
140140
#else
141141
/* Without IronSide SE, cellcore is booted by the SDFW. */
142142
return 0;

samples/dfu/ab_split/sysbuild/mcuboot/prj.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ CONFIG_BOOT_SHARE_DATA_BOOTINFO=y
3838
CONFIG_BOOT_SHARE_BACKEND_RETENTION=y
3939

4040
# Enable IronSide service
41-
CONFIG_NRF_IRONSIDE_COUNTER_SERVICE=y
41+
CONFIG_IRONSIDE_SE_CALL=y
4242
# Enable MCUboot counter implementation that uses IronSide counters
4343
CONFIG_NRF_MCUBOOT_IRONSIDE_COUNTERS=y

samples/ironside_se/secondary_boot_gen_uicr/prj.conf

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,3 @@ CONFIG_UART_CONSOLE=y
1010

1111
# Enable printk
1212
CONFIG_PRINTK=y
13-
14-
CONFIG_NRF_IRONSIDE_BOOTMODE_SERVICE=y

samples/ironside_se/secondary_boot_gen_uicr/src/main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include <zephyr/kernel.h>
88
#include <zephyr/sys/printk.h>
9-
#include <nrf_ironside/bootmode.h>
9+
#include <ironside/se/api.h>
1010
#include <string.h>
1111

1212
int main(void)
@@ -16,7 +16,7 @@ int main(void)
1616
printk("=== Hello World from Primary Image ===\n");
1717

1818
printk("Booting secondary image\n");
19-
err = ironside_bootmode_secondary_reboot(NULL, 0);
19+
err = ironside_se_bootmode_secondary_reboot(NULL, 0);
2020
if (err != 0) {
2121
printk("Secondary image boot failed: %d\n", err);
2222
return err;

subsys/nrf_security/src/ssf_secdom/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ config PSA_SSF_CRYPTO_CLIENT
99
prompt "PSA crypto provided through SSF"
1010
default y
1111
depends on SOC_NRF54H20 || SOC_SERIES_NRF92X
12-
select NRF_IRONSIDE_CALL
12+
select IRONSIDE_SE_CALL
1313

1414
if PSA_SSF_CRYPTO_CLIENT
1515

subsys/nrf_security/src/ssf_secdom/ironside_se_psa_ns_api.c

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99

1010
#include <zephyr/kernel.h>
1111
#include <zephyr/cache.h>
12-
#include <nrf_ironside/call.h>
12+
#include <ironside/se/glue.h>
13+
#include <ironside/se/internal/api_serialization.h>
1314

1415
#include <psa/client.h>
1516
#include <psa/error.h>
@@ -30,26 +31,26 @@ static psa_status_t psa_call_buffered_and_flushed(psa_handle_t handle, int32_t t
3031
const psa_invec *in_vec, size_t in_len,
3132
psa_outvec *out_vec, size_t out_len)
3233
{
33-
struct ironside_call_buf *const buf = ironside_call_alloc();
34+
struct ironside_se_call_buf *const buf = ironside_se_call_alloc();
3435

35-
buf->id = IRONSIDE_CALL_ID_PSA_V1;
36+
buf->id = IRONSIDE_SE_CALL_ID_PSA_V1;
3637

37-
buf->args[IRONSIDE_SE_IPC_INDEX_HANDLE] = handle;
38-
buf->args[IRONSIDE_SE_IPC_INDEX_IN_VEC] = (uint32_t)in_vec;
39-
buf->args[IRONSIDE_SE_IPC_INDEX_IN_LEN] = in_len;
40-
buf->args[IRONSIDE_SE_IPC_INDEX_OUT_VEC] = (uint32_t)out_vec;
41-
buf->args[IRONSIDE_SE_IPC_INDEX_OUT_LEN] = out_len;
42-
buf->args[IRONSIDE_SE_IPC_INDEX_TYPE] = type;
38+
buf->args[IRONSIDE_SE_PSA_REQ_IDX_HANDLE] = handle;
39+
buf->args[IRONSIDE_SE_PSA_REQ_IDX_IN_VEC] = (uint32_t)in_vec;
40+
buf->args[IRONSIDE_SE_PSA_REQ_IDX_IN_LEN] = in_len;
41+
buf->args[IRONSIDE_SE_PSA_REQ_IDX_OUT_VEC] = (uint32_t)out_vec;
42+
buf->args[IRONSIDE_SE_PSA_REQ_IDX_OUT_LEN] = out_len;
43+
buf->args[IRONSIDE_SE_PSA_REQ_IDX_TYPE] = type;
4344

44-
ironside_call_dispatch(buf);
45+
ironside_se_call_dispatch(buf);
4546

4647
psa_status_t status = PSA_ERROR_COMMUNICATION_FAILURE;
4748

48-
if (buf->status == IRONSIDE_CALL_STATUS_RSP_SUCCESS) {
49-
status = buf->args[IRONSIDE_SE_IPC_INDEX_STATUS];
49+
if (buf->status == IRONSIDE_SE_CALL_STATUS_RSP_SUCCESS) {
50+
status = buf->args[IRONSIDE_SE_PSA_RSP_IDX_STATUS];
5051
}
5152

52-
ironside_call_release(buf);
53+
ironside_se_call_release(buf);
5354

5455
return status;
5556
}

west.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ manifest:
6363
# https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/introduction/index.html
6464
# https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/modules.html
6565
- name: zephyr
66-
repo-path: sdk-zephyr
67-
revision: 796b28fa4b098a276322b31eca3516fc190af37a
66+
# repo-path: sdk-zephyr
67+
url: https://github.com/jonathannilsen/sdk-zephyr
68+
revision: ironside-support2-ncs
6869
import:
6970
# In addition to the zephyr repository itself, NCS also
7071
# imports the contents of zephyr/west.yml at the above
@@ -125,8 +126,10 @@ manifest:
125126
upstream-sha: 1225729e8d84075f03bf9fc51eee85d84dfb0091
126127
compare-by-default: true
127128
- name: mcuboot
128-
repo-path: sdk-mcuboot
129-
revision: 0d9411f5dda336b999c56c4eb13c502af8b59851
129+
url: https://github.com/jonathannilsen/sdk-mcuboot
130+
revision: ironside-support-ncs
131+
# repo-path: sdk-mcuboot
132+
# revision: 0d9411f5dda336b999c56c4eb13c502af8b59851
130133
path: bootloader/mcuboot
131134
- name: qcbor
132135
url: https://github.com/laurencelundblade/QCBOR

0 commit comments

Comments
 (0)