Skip to content
Merged
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
5 changes: 4 additions & 1 deletion boards/nordic/nrf7120pdk/Kconfig.nrf7120pdk
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
config BOARD_NRF7120PDK
select SOC_NRF7120_ENGA_CPUAPP if BOARD_NRF7120PDK_NRF7120_CPUAPP || \
BOARD_NRF7120PDK_NRF7120_CPUAPP_NS || \
BOARD_NRF7120PDK_NRF7120_CPUAPP_EMU
BOARD_NRF7120PDK_NRF7120_CPUAPP_EMU || \
BOARD_NRF7120PDK_NRF7120_CPUAPP_FPGA
select SOC_NRF7120_PREENG if BOARD_NRF7120PDK_NRF7120_CPUAPP_EMU || \
BOARD_NRF7120PDK_NRF7120_CPUAPP_FPGA
select SOC_NRF7120_ENGA_CPUFLPR if BOARD_NRF7120PDK_NRF7120_CPUFLPR || \
BOARD_NRF7120PDK_NRF7120_CPUFLPR_XIP
2 changes: 2 additions & 0 deletions boards/nordic/nrf7120pdk/board.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ board:
cpucluster: cpuapp
- name: emu
cpucluster: cpuapp
- name: fpga
cpucluster: cpuapp
29 changes: 29 additions & 0 deletions boards/nordic/nrf7120pdk/nrf7120pdk_nrf7120-fpga-pinctrl.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright (c) 2025 Nordic Semiconductor
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

&pinctrl {
/omit-if-no-ref/ uart00_default: uart00_default {
group1 {
psels = <NRF_PSEL(UART_TX, 2, 2)>,
<NRF_PSEL(UART_RTS, 2, 5)>;
};

group2 {
psels = <NRF_PSEL(UART_RX, 2, 0)>,
<NRF_PSEL(UART_CTS, 2, 4)>;
bias-pull-up;
};
};

/omit-if-no-ref/ uart00_sleep: uart00_sleep {
group1 {
psels = <NRF_PSEL(UART_TX, 2, 2)>,
<NRF_PSEL(UART_RX, 2, 0)>,
<NRF_PSEL(UART_RTS, 2, 5)>,
<NRF_PSEL(UART_CTS, 2, 4)>;
low-power-enable;
};
};
};
49 changes: 49 additions & 0 deletions boards/nordic/nrf7120pdk/nrf7120pdk_nrf7120_cpuapp_fpga.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
* Copyright (c) 2025 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

/dts-v1/;

#include "nrf7120_cpuapp_common.dtsi"
#include "nrf7120pdk_nrf7120-fpga-pinctrl.dtsi"

/ {
compatible = "nordic,nrf7120pdk_nrf7120-cpuapp";
model = "Nordic nRF7120 PDK nRF7120 Application MCU";

chosen {
zephyr,sram = &cpuapp_sram;
zephyr,console = &uart00;
zephyr,shell-uart = &uart00;
};
};

&uart00 {
status = "okay";
};

&grtc {
status = "okay";
};

&systick {
status = "disabled";
};

&psa_rng {
status = "okay";
};

&uicr {
status = "disabled";
};

&clock {
status = "okay";
};

&cpuapp_sram {
status = "okay";
};
23 changes: 23 additions & 0 deletions boards/nordic/nrf7120pdk/nrf7120pdk_nrf7120_cpuapp_fpga.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

identifier: nrf7120pdk/nrf7120/cpuapp/fpga
name: nRF7120-PDK-nRF7120-Application
type: mcu
arch: arm
toolchain:
- gnuarmemb
- xtools
- zephyr
sysbuild: true
ram: 512
flash: 960
supported:
- adc
- counter
- gpio
- i2c
- pwm
- spi
- watchdog
- i2s
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

# Enable UART driver
CONFIG_SERIAL=y

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable GPIO
CONFIG_GPIO=y

# Enable MPU
CONFIG_ARM_MPU=y

# Enable hardware stack protection
CONFIG_HW_STACK_PROTECTION=y

# MPU-based null-pointer dereferencing detection cannot
# be applied as the (0x0 - 0x400) is unmapped for this target.
CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y

# Start SYSCOUNTER on driver init
CONFIG_NRF_GRTC_TIMER_APP_DEFINED_INIT=n
CONFIG_NRF_GRTC_START_SYSCOUNTER=y

# LFRC is not working in EMU at the moment
# CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

# CRACEN not available on emulator
CONFIG_CRACEN_LIB_KMU=n

# Enable Debugging when working with emulator
CONFIG_OUTPUT_DISASSEMBLY=y
CONFIG_DEBUG=y
CONFIG_LOG=y
5 changes: 5 additions & 0 deletions samples/wifi/shell/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(nrf_wifi_shell)

target_sources_ifdef(CONFIG_SOC_NRF7120_PREENG
app
PRIVATE
src/wifi_pocap_shell.c)

target_sources_ifdef(CONFIG_NRF70_RAW_DATA_TX
app
PRIVATE
Expand Down
69 changes: 69 additions & 0 deletions samples/wifi/shell/src/wifi_pocap_shell.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Copyright (c) 2025 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

/**
* @file
* @brief WiFi pre-silicon testing shell
*/

#include <zephyr/sys/printk.h>
#include <zephyr/kernel.h>
#include <zephyr/shell/shell.h>
#include <zephyr/posix/unistd.h>
#include <zephyr/logging/log.h>
#include <soc.h>

LOG_MODULE_REGISTER(pocap_mode, CONFIG_LOG_DEFAULT_LEVEL);

static int cmd_wifi_pocap(const struct shell *sh, size_t argc, char *argv[])
{
uint32_t rx_mode = 0, tx_mode = 0, rx_holdoff = 0, rx_wrap = 0, b2b_mode = 0;
int opt;

optind = 1;

while ((opt = getopt(argc, argv, "r:t:h:w:b:")) != -1) {
switch (opt) {
case 'r':
rx_mode = (uint32_t)atoi(optarg);
break;
case 't':
tx_mode = (uint32_t)atoi(optarg);
break;
case 'h':
rx_holdoff = (uint32_t)atoi(optarg);
break;
case 'w':
rx_wrap = (uint32_t)atoi(optarg);
break;
case 'b':
b2b_mode = (uint32_t)atoi(optarg);
break;
default:
shell_print(
sh,
"Usage: wifi_pocap [-b b2b_mode] [other opts]\n"
"b2b_mode=0: -r rx_mode -t tx_mode -h rx_holdoff_len -w "
"rx_wrap_len\n"
"Defaults: rx_mode=0 tx_mode=0 rx_holdoff=0 rx_wrap=0 b2b_mode=0");
return -EINVAL;
}
}

if (b2b_mode) {
shell_print(sh, "Config: back_to_back_mode=%u (others ignored in B2B mode)",
b2b_mode);
configure_playout_capture(0, 0, 0, 0, b2b_mode);
} else {
shell_print(sh, "Config: rx=%u tx=%u holdoff=%u wrap=%u b2b=%u", rx_mode, tx_mode,
rx_holdoff, rx_wrap, b2b_mode);
configure_playout_capture(rx_mode, tx_mode, rx_holdoff, rx_wrap, 0);
}

return 0;
}

SHELL_CMD_REGISTER(wifi_pocap, NULL, "Configure RF Playout Capture", cmd_wifi_pocap);
3 changes: 3 additions & 0 deletions soc/nordic/nrf71/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
zephyr_library_sources(
soc.c
)
zephyr_library_sources_ifdef(CONFIG_SOC_NRF7120_PREENG
soc_preeng.c
)
zephyr_include_directories(.)
add_subdirectory(${ZEPHYR_BASE}/soc/nordic/common ${CMAKE_BINARY_DIR}/common)

Expand Down
5 changes: 5 additions & 0 deletions soc/nordic/nrf71/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,9 @@ config NRF_TRUSTZONE_RAM_REGION_SIZE
This abstraction allows us to configure TRUSTZONE without depending
on peripheral specific symbols.

# TODO: Remove this option once all pre-ENG variants support AMBIX03
config SOC_NRF7120_HAS_AMBIX03
bool "AMBIX03 available"
depends on SOC_NRF7120_PREENG
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: this is added before the symbol is actually added and is wrong, since it would need to go through a whole other CI run to do this, fix this if other changes are needed otherwise it can stay but please remember to order commits correctly in future where commits are added which do not have dependencies upon later commits

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missed it during rebase, will take care of it next time, thanks.


endif # SOC_SERIES_NRF71X
6 changes: 6 additions & 0 deletions soc/nordic/nrf71/Kconfig.soc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ config SOC_NRF7120_ENGA
help
NRF7120 ENGA

config SOC_NRF7120_PREENG
bool
select SOC_NRF7120
help
NRF7120 PRE-ENG

config SOC_NRF7120_ENGA_CPUAPP
bool
select SOC_NRF7120_ENGA
Expand Down
Loading