Skip to content

Commit 499746a

Browse files
authored
Tiiqm omi firmware dual cores boot (#2459)
* feat: enable simultaneous multi-core DFU with external flash * build: Enable SPI NOR flash driver * refactor: Use devicetree overlays for PM external flash * Add support dual core boot * Clean up and simplify the dts
1 parent 0a22add commit 499746a

File tree

8 files changed

+100
-57
lines changed

8 files changed

+100
-57
lines changed

omi/firmware/boards/omi/omi_nrf5340_cpuapp.dts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,13 @@
127127
};
128128

129129
&gpio1 {
130-
status = "okay";
130+
status = "okay";
131+
sdcard_power_default_on: sdcard_power_default_on {
132+
gpio-hog;
133+
gpios = <10 GPIO_ACTIVE_HIGH>; /* Corresponds to sdcard_en_pin P1.10 */
134+
output-high; /* Set pin high as it's GPIO_ACTIVE_HIGH */
135+
line-name = "sdcard-power-enable";
136+
};
131137
};
132138

133139
&gpiote {
@@ -204,6 +210,7 @@
204210

205211
spi_flash: p25q16h@1 {
206212
compatible = "jedec,spi-nor";
213+
status = "okay";
207214
reg = <1>;
208215
spi-max-frequency = <125000>;
209216
quad-enable-requirements = "S2B1v1";

omi/firmware/boards/omi/omi_nrf5340_cpunet_defconfig

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,3 @@ CONFIG_HW_STACK_PROTECTION=y
33
CONFIG_BT_CTLR=y
44
CONFIG_BT_CTLR_TX_PWR_PLUS_3=y
55
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
6-
7-
CONFIG_HEAP_MEM_POOL_SIZE=8192
8-
CONFIG_MAIN_STACK_SIZE=2048
9-
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
10-
11-
CONFIG_MBOX=y
12-
CONFIG_IPC_SERVICE=y
13-
14-
CONFIG_BT=y
15-
CONFIG_BT_HCI_RAW=y
16-
#CONFIG_BT_CTLR_ASSERT_HANDLER=y
17-
#CONFIG_BT_MAX_CONN=16
18-
19-
# Enable and adjust the below value as necessary
20-
# CONFIG_BT_BUF_EVT_RX_COUNT=16
21-
# CONFIG_BT_BUF_EVT_RX_SIZE=255
22-
# CONFIG_BT_BUF_ACL_RX_SIZE=255
23-
# CONFIG_BT_BUF_ACL_TX_SIZE=251
24-
# CONFIG_BT_BUF_CMD_TX_SIZE=255
25-
26-
CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=400000
27-
28-
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
29-
#CONFIG_BT_BUF_ACL_RX_SIZE=502
30-
CONFIG_BT_BUF_ACL_RX_SIZE=1024
31-
#CONFIG_BT_BUF_ACL_TX_SIZE=502
32-
CONFIG_BT_BUF_ACL_TX_SIZE=2048
33-
34-
CONFIG_BT_MAX_CONN=1
35-
36-
#CONFIG_ASSERT=y
37-
#CONFIG_DEBUG_INFO=y
38-
#CONFIG_EXCEPTION_STACK_TRACE=y
39-
40-
CONFIG_IPC_RADIO_BT=y
41-
CONFIG_IPC_RADIO_BT_HCI_IPC=y
42-
43-
# Set preferred connection parameters
44-
# 7.5ms
45-
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=24
46-
# 15ms
47-
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=24
48-
CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
49-
# 4 seconds
50-
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
51-
52-
CONFIG_MPSL_CX=y
53-
54-
#Added to fix BLE crash in coex enable cases.
55-
CONFIG_NRF_RPC=n
56-
CONFIG_NRF_RPC_CBOR=n
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
# Example of sample specific Kconfig changes when building sample with MCUboot
22
# when using sysbuild.
3-
CONFIG_SPI_NOR=n
3+
CONFIG_SPI_NOR=y
44
CONFIG_MCUBOOT_LOG_LEVEL_WRN=y
55
CONFIG_BOOT_UPGRADE_ONLY=y
66
CONFIG_MCUBOOT_DOWNGRADE_PREVENTION=y
7-
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
7+
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
8+
9+
CONFIG_NORDIC_QSPI_NOR=y
10+
CONFIG_BOOT_MAX_IMG_SECTORS=256
11+
CONFIG_GPIO=y
12+
CONFIG_SPI=y
13+
CONFIG_FLASH=y
14+
CONFIG_FLASH_JESD216_API=y
15+
CONFIG_MULTITHREADING=y
16+
17+
CONFIG_FLASH_LOG_LEVEL_DBG=n

omi/firmware/omi/app.overlay

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/*
2+
* Copyright (c) 2024 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/ {
8+
chosen {
9+
nordic,pm-ext-flash = &spi_flash;
10+
};
11+
};

omi/firmware/omi/omi.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ CONFIG_INPUT=y
99
CONFIG_I2C=y
1010
# CONFIG_I2C_SHELL=y
1111
CONFIG_SPI=y
12-
# CONFIG_SPI_NOR=y
12+
CONFIG_SPI_NOR=y
1313
# CONFIG_SPI_SHELL=y
1414

1515
CONFIG_PM_DEVICE=y
@@ -226,7 +226,7 @@ CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
226226
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
227227

228228
CONFIG_FPU=y
229-
CONFIG_NORDIC_QSPI_NOR=n
229+
CONFIG_NORDIC_QSPI_NOR=y
230230
# CONFIG_BOARD_ENABLE_DCDC=y
231231
#
232232

omi/firmware/omi/sysbuild.conf

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,13 @@ SB_CONFIG_WIFI_NRF70=y
88
SB_CONFIG_WIFI_NRF70_SCAN_ONLY=y
99

1010
SB_CONFIG_BOOTLOADER_MCUBOOT=y
11-
SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="\${APP_DIR}/../bootloader/mcuboot/root-rsa-2048.pem"
11+
SB_CONFIG_BOOT_SIGNATURE_KEY_FILE="${APP_DIR}/../bootloader/mcuboot/root-rsa-2048.pem"
12+
13+
# Dual Cores Boot
14+
SB_CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y
15+
SB_CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
16+
SB_CONFIG_SECURE_BOOT_NETCORE=y
17+
SB_CONFIG_MCUBOOT_UPDATEABLE_IMAGES=2
18+
SB_CONFIG_MCUBOOT_NRF53_MULTI_IMAGE_UPDATE=y
19+
SB_CONFIG_NETCORE_APP_UPDATE=y
20+
SB_CONFIG_MCUBOOT_MODE_OVERWRITE_ONLY=y
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
CONFIG_HEAP_MEM_POOL_SIZE=8192
3+
CONFIG_MAIN_STACK_SIZE=2048
4+
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
5+
6+
CONFIG_MBOX=y
7+
CONFIG_IPC_SERVICE=y
8+
9+
CONFIG_BT=y
10+
CONFIG_BT_HCI_RAW=y
11+
#CONFIG_BT_CTLR_ASSERT_HANDLER=y
12+
#CONFIG_BT_MAX_CONN=16
13+
14+
# Enable and adjust the below value as necessary
15+
# CONFIG_BT_BUF_EVT_RX_COUNT=16
16+
# CONFIG_BT_BUF_EVT_RX_SIZE=255
17+
# CONFIG_BT_BUF_ACL_RX_SIZE=255
18+
# CONFIG_BT_BUF_ACL_TX_SIZE=251
19+
# CONFIG_BT_BUF_CMD_TX_SIZE=255
20+
21+
CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=400000
22+
23+
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
24+
#CONFIG_BT_BUF_ACL_RX_SIZE=502
25+
CONFIG_BT_BUF_ACL_RX_SIZE=1024
26+
#CONFIG_BT_BUF_ACL_TX_SIZE=502
27+
CONFIG_BT_BUF_ACL_TX_SIZE=2048
28+
29+
CONFIG_BT_MAX_CONN=1
30+
31+
#CONFIG_ASSERT=y
32+
#CONFIG_DEBUG_INFO=y
33+
#CONFIG_EXCEPTION_STACK_TRACE=y
34+
35+
CONFIG_IPC_RADIO_BT=y
36+
CONFIG_IPC_RADIO_BT_HCI_IPC=y
37+
38+
# Set preferred connection parameters
39+
# 7.5ms
40+
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=24
41+
# 15ms
42+
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=24
43+
CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
44+
# 4 seconds
45+
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
46+
47+
CONFIG_MPSL_CX=y
48+
49+
#Added to fix BLE crash in coex enable cases.
50+
CONFIG_NRF_RPC=n
51+
CONFIG_NRF_RPC_CBOR=n
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/ {
2+
chosen {
3+
nordic,pm-ext-flash = &spi_flash;
4+
};
5+
};
6+

0 commit comments

Comments
 (0)