Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EngB support #2171

Closed
wants to merge 12 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20-ipc_conf.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
cpusec_cpuapp_ipc: ipc-1-2 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpusec_bellboard 12>,
<&cpuapp_bellboard 0>;
};

cpusec_cpurad_ipc: ipc-1-3 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpusec_bellboard 18>,
<&cpurad_bellboard 0>;
};
Expand All @@ -30,27 +32,31 @@
cpuapp_cpusys_ipc: ipc-2-12 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpuapp_bellboard 6>,
<&cpusys_vevif 12>;
};

cpuapp_cpuppr_ipc: ipc-2-13 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpuapp_bellboard 13>,
<&cpuppr_vevif 12>;
};

cpuapp_cpuflpr_ipc: ipc-2-14 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpuapp_bellboard 14>,
<&cpuflpr_vevif 16>;
};

cpurad_cpusys_ipc: ipc-3-12 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpurad_bellboard 6>,
<&cpusys_vevif 18>;
};
Expand Down
15 changes: 15 additions & 0 deletions boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_0_8_0.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

/delete-node/ &suit_storage_partition;

/ {
reserved-memory {
suit_storage_partition: memory@e1eb000 {
reg = <0xe1eb000 DT_SIZE_K(24)>;
};
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#include "nrf54h20dk_nrf54h20_0_8_0.dtsi"
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#include "nrf54h20dk_nrf54h20_0_8_0.dtsi"
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#include "nrf54h20dk_nrf54h20_0_8_0.dtsi"
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#include "nrf54h20dk_nrf54h20_0_8_0.dtsi"
5 changes: 5 additions & 0 deletions boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280-ipc_conf.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
cpusec_cpuapp_ipc: ipc-1-2 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpusec_bellboard 12>,
<&cpuapp_bellboard 0>;
};

cpusec_cpurad_ipc: ipc-1-3 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpusec_bellboard 18>,
<&cpurad_bellboard 0>;
};
Expand All @@ -30,20 +32,23 @@
cpuapp_cpusys_ipc: ipc-2-12 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpuapp_bellboard 6>,
<&cpusys_vevif 12>;
};

cpuapp_cpuppr_ipc: ipc-2-13 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpuapp_bellboard 13>,
<&cpuppr_vevif 12>;
};

cpurad_cpusys_ipc: ipc-3-12 {
compatible = "zephyr,ipc-icmsg";
status = "disabled";
dcache-alignment = <32>;
mboxes = <&cpurad_bellboard 6>,
<&cpusys_vevif 18>;
};
Expand Down
8 changes: 4 additions & 4 deletions drivers/adc/adc_nrfx_saadc.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@
"Definitions from nrf-adc.h do not match those from nrf_saadc.h");
#endif

#if defined(CONFIG_SOC_NRF54H20) || defined(CONFIG_SOC_NRF9280)
#if defined(CONFIG_NRF_PLATFORM_HALTIUM)

/* nRF54H20 and nRF9280 always use bounce buffers in RAM */
/* Haltium devices always use bounce buffers in RAM */

#define SAADC_MEMORY_SECTION \
COND_CODE_1(DT_NODE_HAS_PROP(DT_NODELABEL(adc), memory_regions), \
Expand All @@ -80,7 +80,7 @@

#define ADC_BUFFER_IN_RAM

#endif /* defined(CONFIG_SOC_NRF54H20) || defined(CONFIG_SOC_NRF9280) */
#endif /* defined(CONFIG_NRF_PLATFORM_HALTIUM) */

struct driver_data {
struct adc_context ctx;
Expand Down Expand Up @@ -669,9 +669,9 @@
#endif
#if defined(CONFIG_SOC_NRF54L15)
.ref_internal = 900,
#elif defined(CONFIG_SOC_NRF54H20) || defined(CONFIG_SOC_NRF9280)
#elif defined(CONFIG_NRF_PLATFORM_HALTIUM)
.ref_internal = 1024,
#else

Check notice on line 674 in drivers/adc/adc_nrfx_saadc.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

drivers/adc/adc_nrfx_saadc.c:674 - .ref_internal = 1024, + .ref_internal = 1024,
.ref_internal = 600,
#endif
};
Expand Down
2 changes: 1 addition & 1 deletion drivers/cache/Kconfig.nrf
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ config CACHE_NRF_CACHE

config CACHE_NRF_PATCH_LINEADDR
bool "Patch lineaddr"
default y if SOC_NRF54H20
default y if SOC_NRF54H20 || SOC_NRF54H20_ENGB
help
Manually set 28th bit in the LINEADDR in Trustzone Secure build.
7 changes: 0 additions & 7 deletions dts/bindings/arm/nordic,nrf-uicr-v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,3 @@ properties:
description: |
Domain ID of the domain associated with this UICR instance. Must be unique
across all UICR instances in the system.

ptr-ext-uicr:
type: phandle
required: true
description: |
Handle of a memory region reserved to contain an Extended UICR instance.
The address of that node will be stored in the UICR.PTREXTUICR register.
14 changes: 2 additions & 12 deletions dts/common/nordic/nrf54h20.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -148,16 +148,8 @@
#address-cells = <1>;
#size-cells = <1>;

suit_storage_partition: memory@e1eb000 {
reg = <0xe1eb000 DT_SIZE_K(24)>;
};

cpurad_uicr_ext: memory@e1ff000 {
reg = <0xe1ff000 DT_SIZE_K(2)>;
};

cpuapp_uicr_ext: memory@e1ff800 {
reg = <0xe1ff800 DT_SIZE_K(2)>;
suit_storage_partition: memory@e1ed000 {
reg = <0xe1ed000 DT_SIZE_K(20)>;
};
};

Expand Down Expand Up @@ -220,14 +212,12 @@
compatible = "nordic,nrf-uicr-v2";
reg = <0xfff8000 DT_SIZE_K(2)>;
domain = <2>;
ptr-ext-uicr = <&cpuapp_uicr_ext>;
};

cpurad_uicr: uicr@fffa000 {
compatible = "nordic,nrf-uicr-v2";
reg = <0xfffa000 DT_SIZE_K(2)>;
domain = <3>;
ptr-ext-uicr = <&cpurad_uicr_ext>;
};

ficr: ficr@fffe000 {
Expand Down
10 changes: 0 additions & 10 deletions dts/common/nordic/nrf9280.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,6 @@
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;

cpurad_uicr_ext: memory@e401000 {
reg = <0xe401000 DT_SIZE_K(2)>;
};

cpuapp_uicr_ext: memory@e401800 {
reg = <0xe401800 DT_SIZE_K(2)>;
};
};

clocks {
Expand Down Expand Up @@ -113,14 +105,12 @@
compatible = "nordic,nrf-uicr-v2";
reg = <0xfff8000 DT_SIZE_K(2)>;
domain = <2>;
ptr-ext-uicr = <&cpuapp_uicr_ext>;
};

cpurad_uicr: uicr@fffa000 {
compatible = "nordic,nrf-uicr-v2";
reg = <0xfffa000 DT_SIZE_K(2)>;
domain = <3>;
ptr-ext-uicr = <&cpurad_uicr_ext>;
};

ficr: ficr@fffe000 {
Expand Down
2 changes: 1 addition & 1 deletion modules/hal_nordic/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if(CONFIG_NRF_REGTOOL_GENERATE_BICR)
list(APPEND nrf_regtool_components GENERATE:BICR)
endif()
if(DEFINED nrf_regtool_components)
find_package(nrf-regtool 5.6.0 REQUIRED
find_package(nrf-regtool 7.0.0 REQUIRED
COMPONENTS ${nrf_regtool_components}
PATHS ${CMAKE_CURRENT_LIST_DIR}/nrf-regtool
NO_CMAKE_PATH
Expand Down
2 changes: 1 addition & 1 deletion modules/hal_nordic/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ endchoice

config NRF_802154_TEMPERATURE_UPDATE
bool "nRF 802.15.4 temperature update"
default y if !SOC_NRF54H20
default y if !SOC_NRF54H20 && !SOC_NRF54H20_ENGB
help
Enable temperature update for nRF 802.15.4 driver

Expand Down
2 changes: 1 addition & 1 deletion modules/hal_nordic/nrfs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ config NRFS_PMIC_SERVICE_ENABLED
config NRFS_DVFS_SERVICE_ENABLED
bool "DVFS service"
depends on NRFS_HAS_DVFS_SERVICE
default y if SOC_NRF54H20_CPUAPP || SOC_NRF9280_CPUAPP
default y if SOC_NRF54H20_CPUAPP || SOC_NRF54H20_ENGB_CPUAPP || SOC_NRF9280_CPUAPP

config NRFS_DIAG_SERVICE_ENABLED
bool "System Diagnostics service (only for development purposes)"
Expand Down
2 changes: 1 addition & 1 deletion modules/hal_nordic/nrfs/dvfs/ld_dvfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ int32_t ld_dvfs_configure_hsfll(enum dvfs_frequency_setting oppoint)
freq_trim = 2;
}

#if defined(CONFIG_SOC_NRF54H20_CPUAPP) || defined(CONFIG_SOC_NRF9280_CPUAPP)
#if defined(NRF_APPLICATION)
hsfll_trim.vsup = NRF_FICR->TRIM.APPLICATION.HSFLL.TRIM.VSUP;
hsfll_trim.coarse = NRF_FICR->TRIM.APPLICATION.HSFLL.TRIM.COARSE[freq_trim];
hsfll_trim.fine = NRF_FICR->TRIM.APPLICATION.HSFLL.TRIM.FINE[freq_trim];
Expand Down
13 changes: 5 additions & 8 deletions scripts/west_commands/runners/nrf_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,11 @@ def program_hex(self):
if self.erase:
self.exec_op('erase', core='NRFDL_DEVICE_CORE_APPLICATION')
self.exec_op('erase', core='NRFDL_DEVICE_CORE_NETWORK')
# A reset is needed if repartitioning the device memory
self.reset_target()
else:
# Ensure that firmware is not executing while erasing/programming
self.exec_op("reset", option="RESET_VIA_SECDOM")

# Manage SUIT artifacts.
# This logic should be executed only once per build.
Expand All @@ -298,16 +303,8 @@ def program_hex(self):
self.op_program(app_root_envelope_hex_file, 'ERASE_NONE', None, defer=True, core='NRFDL_DEVICE_CORE_APPLICATION')

if cpuapp:
if not self.erase and self.build_conf.getboolean('CONFIG_NRF_REGTOOL_GENERATE_UICR'):
self.exec_op('erase', core='NRFDL_DEVICE_CORE_APPLICATION',
option={'chip_erase_mode': 'ERASE_UICR',
'qspi_erase_mode': 'ERASE_NONE'})
core = 'NRFDL_DEVICE_CORE_APPLICATION'
elif cpurad:
if not self.erase and self.build_conf.getboolean('CONFIG_NRF_REGTOOL_GENERATE_UICR'):
self.exec_op('erase', core='NRFDL_DEVICE_CORE_NETWORK',
option={'chip_erase_mode': 'ERASE_UICR',
'qspi_erase_mode': 'ERASE_NONE'})
core = 'NRFDL_DEVICE_CORE_NETWORK'
else:
if self.erase:
Expand Down
2 changes: 1 addition & 1 deletion soc/nordic/common/vpr/Kconfig.sysbuild
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
config VPR_LAUNCHER
bool "VPR launcher"
default y
depends on (SOC_NRF54H20_CPUPPR || SOC_NRF54H20_CPUFLPR || SOC_NRF54L15_ENGA_CPUFLPR || SOC_NRF54L15_CPUFLPR || SOC_NRF9280_CPUPPR)
depends on (SOC_NRF54H20_CPUPPR || SOC_NRF54H20_ENGB_CPUPPR || SOC_NRF54H20_CPUFLPR || SOC_NRF54H20_ENGB_CPUFLPR || SOC_NRF54L15_ENGA_CPUFLPR || SOC_NRF54L15_CPUFLPR || SOC_NRF9280_CPUPPR)
help
Include VPR launcher in build.
VPR launcher is a minimal sample built for an ARM core that starts given VPR core.
Expand Down
10 changes: 5 additions & 5 deletions soc/nordic/nrf54h/power.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ void nrf_poweroff(void)
nrf_resetinfo_resetreas_local_set(NRF_RESETINFO, 0);
nrf_resetinfo_restore_valid_set(NRF_RESETINFO, false);

#if !defined(CONFIG_SOC_NRF54H20_CPURAD)
#if !defined(NRF_RADIOCORE)
/* Disable retention */
nrf_lrcconf_retain_set(NRF_LRCCONF010, NRF_LRCCONF_POWER_MAIN, false);
nrf_lrcconf_retain_set(NRF_LRCCONF010, NRF_LRCCONF_POWER_DOMAIN_0, false);
Expand Down Expand Up @@ -98,7 +98,7 @@ static void s2idle_enter(uint8_t substate_id)
case 1: /* Substate for idle with cache retained - not implemented yet. */
break;
case 2: /* Substate for idle with cache disabled. */
#if !defined(CONFIG_SOC_NRF54H20_CPURAD)
#if !defined(NRF_RADIOCORE)
soc_lrcconf_poweron_request(node, NRF_LRCCONF_POWER_MAIN);
#endif
common_suspend();
Expand Down Expand Up @@ -127,7 +127,7 @@ static void s2idle_exit(uint8_t substate_id)
break;
case 2: /* Substate for idle with cache disabled. */
common_resume();
#if !defined(CONFIG_SOC_NRF54H20_CPURAD)
#if !defined(NRF_RADIOCORE)
soc_lrcconf_poweron_release(node, NRF_LRCCONF_POWER_MAIN);
#endif
default: /* Unknown substate. */
Expand All @@ -140,7 +140,7 @@ static void s2idle_exit(uint8_t substate_id)
static void s2ram_exit(void)
{
common_resume();
#if !defined(CONFIG_SOC_NRF54H20_CPURAD)
#if !defined(NRF_RADIOCORE)
/* Re-enable domain retention. */
nrf_lrcconf_retain_set(NRF_LRCCONF010, NRF_LRCCONF_POWER_DOMAIN_0, true);
#endif
Expand All @@ -156,7 +156,7 @@ static int sys_suspend_to_ram(void)
NRF_RESETINFO_RESETREAS_LOCAL_UNRETAINED_MASK);
nrf_resetinfo_restore_valid_set(NRF_RESETINFO, true);

#if !defined(CONFIG_SOC_NRF54H20_CPURAD)
#if !defined(NRF_RADIOCORE)
/* Disable retention */
nrf_lrcconf_retain_set(NRF_LRCCONF010, NRF_LRCCONF_POWER_DOMAIN_0, false);
#endif
Expand Down
5 changes: 3 additions & 2 deletions subsys/logging/frontends/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@ config LOG_FRONTEND_STMESP_DICT

config LOG_FRONTEND_STMESP_FSC
bool "Send fully self-contained messages"
select LOG_MSG_APPEND_RO_STRING_LOC if (!NRF_ETR && !SOC_NRF54H20_CPUPPR && \
!SOC_NRF54H20_CPUFLPR)
select LOG_MSG_APPEND_RO_STRING_LOC if !(NRF_ETR || \
SOC_NRF54H20_CPUPPR || SOC_NRF54H20_ENGB_CPUPPR || \
SOC_NRF54H20_CPUFLPR || SOC_NRF54H20_ENGB_CPUFLPR)

config LOG_FRONTEND_STMESP_FLUSH_COUNT
int "Number of flushing words"
Expand Down
Loading