Move AVRCP SDP record registration and AVCTP server register from
bt_avrcp_init() to callback registration functions to align with
other Bluetooth Classic profiles.
Signed-off-by: Make Shi <make.shi@nxp.com>
Updated EEPROM dts for PCR and GIRQ property.
Updated pinctrl to access internal EEPROM for MEC5 part.
Signed-off-by: Manimaran A <manimaran.a@microchip.com>
Commit 65c641dffe ("tests: arch: arm: Add Cortex-R5 support to
arm_interrupt test") accidentally moved the barrier.h include inside
the CONFIG_ARMV7_R guard and wrapped all DSB+ISB barrier calls in
Without barriers after NVIC_SetPendingIRQ(), the Cortex-M pipeline
can execute past the pending write before the interrupt fires, causing
the spurious IRQ assertion to fail on real hardware (nRF52, nRF54,
nRF9160).
Restore barrier.h as an unconditional include and remove the
CONFIG_ARMV7_R guards around all three barrier call sites so they
apply to all ARM architectures as originally intended.
Fixes: #104940
(https://github.com/zephyrproject-rtos/zephyr/issues/104940)
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
Align samples in hal_nordic to the cleanup in nrfx GPIOTE Kconfig
options. Instance specific Kconfigs have been removed and they
should not be used.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
After introducing nrfx4.0 GPIOTE driver instances shall not be created
in each module that is using the driver but reference shall be used.
Reference is retrieved using gpiote_nrfx.h API.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
Remove instance specific Kconfigs (CONFIG_NRFX_GPIOTEx) as they are no
longer used. Cleanup in all places.
Add prompt to CONFIG_NRFX_GPIOTE to allow enabling the driver.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
If CONFIG_GPIO_NRFX_INTERRUPT is disabled then nrfx_gpiote driver API
shall no be accessed at all (driver can be disabled).
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
For drivers.flash.common.test_storage_partition
lm20 require fixture which selects board with ext flash enabled.
Signed-off-by: Piotr Kosycarz <piotr.kosycarz@nordicsemi.no>
mention new option CONFIG_NET_CHECKSUM_OFFLOAD and
CONFIG_NET_CHECKSUM_OFFLOAD_SUPPORTED and their
effects to the ethernet drivers.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Adds a Kconfig option to detect if checksum offloading
is supported by any driver and one to activate it.
Main benefit is that `net_if_need_calc_rx_checksum()` and
`net_if_need_calc_tx_checksum()` are now inline and therefore the
compiler can optimize more, when checksum offloading is not supported.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
The new IPC design between APP and Wi-Fi doesn't use ACKs, so, we only
need a single IPC channel for (cmd, event) pairs, the ACKs are replaced
with a direct-memory write based rings.
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
When `-z nostackexec` or `-z stackexec` option is specified, GNU ld adds a
segment of type `PT_GNU_STACK` with zero VMA/LMA and size to the output ELF
file.
Since the sole purpose of `PT_GNU_STACK` segment is to mark whether the
stack should be executable and it has no loadable details, this commit
updates the gen_image_info script to omit it from the image information
header file.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Binutils 2.39 and above print out a warning when `.note.GNU-stack` section
is missing from an object file.
ld.bfd: warning: _thumb1_case_uqi.o: missing .note.GNU-stack section
implies executable stack
ld.bfd: NOTE: This behaviour is deprecated and will be removed in a
future version of the linker
This commit adds `-znoexecstack` when linking bare metal executables to
mark that stack is not executable when `.note.GNU-stack` section is
missing, effectively suppressing the above warning.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Add calls to sys_trace_idle_exit before leaving idle state
to track CPU load.
Extend CPU_LOAD to CPU_AARCH32_CORTEX_R and CPU_AARCH32_CORTEX_A, thus
we can support CPU_LOAD for all CPU_CORTEX.
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
ASM is notoriously harder to maintain than C and requires core specific
adaptation which impairs even more the readability of the code.
As for performance concern, there's no difference of generated code
between ASM and C version.
ASM version:
<arch_cpu_idle>:
f57ff04f dsb sy
e320f003 wfi
f1080080 cpsie i
f57ff06f isb sy
e12fff1e bx lr
<arch_cpu_atomic_idle>:
f10c0080 cpsid i
f57ff04f dsb sy
e320f002 wfe
e3500000 cmp r0, #0
1a000000 bne 102ca8 <_irq_disabled>
f1080080 cpsie i
<_irq_disabled>:
e12fff1e bx lr
C version:
<arch_cpu_idle>:
f57ff04f dsb sy
e320f003 wfi
f1080080 cpsie i
f57ff06f isb sy
e12fff1e bx lr
<arch_cpu_atomic_idle>:
f10c0080 cpsid i
f57ff04f dsb sy
e320f002 wfe
e3500000 cmp r0, #0
112fff1e bxne lr
f1080080 cpsie i
e12fff1e bx lr
As can be seen, the C version use 'bxne lx' to return directly for irq
disabled case, cost one less instruction than asm version. So from this
PoV, C version not only improves the readability and maintainability
but also generates better code.
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
ASM is notoriously harder to maintain than C and requires core specific
adaptation which impairs even more the readability of the code.
There's a bug in current arch_cpu_atomic_idle asm version:
tst x0, #(DAIF_IRQ_BIT) //here Z := (DAIF_IRQ_BIT == 0)
beq _irq_disabled //jump to _irq_disabled when Z is set
msr daifclr, #(DAIFCLR_IRQ_BIT)
_irq_disabled:
ret
As can be seen, the asm code jumps to _irq_disabled when Z is set, but
per aarch64 architecture reference, DAIF_IRQ == 0 means the IRQ is
unmasked, I.E enabled. So the asm logic here is wrong. I fixed this bug
in C version. This shows the benefit of ASM -> C
As for performance concern, except the bug fix above, there's no
difference of generated code between ASM and C version.
ASM version:
<arch_cpu_idle>:
d5033f9f dsb sy
d503207f wfi
d50342ff msr daifclr, #0x2
d65f03c0 ret
arch_cpu_atomic_idle>:
d50342df msr daifset, #0x2
d5033fdf isb
d503205f wfe
f279001f tst x0, #0x80
54000040 b.eq 1001d10 <_irq_disabled> // b.none
d50342ff msr daifclr, #0x2
_irq_disabled>:
d65f03c0 ret
C version:
<arch_cpu_idle>:
d5033f9f dsb sy
d503207f wfi
d50342ff msr daifclr, #0x2
d65f03c0 ret
<arch_cpu_atomic_idle>:
d50342df msr daifset, #0x2
d5033fdf isb
d503205f wfe
37380040 tbnz w0, #7, 1001d0c <arch_cpu_atomic_idle+0x14>
d50342ff msr daifclr, #0x2
d65f03c0 ret
And as can be seen, C version use the tbnz instruction to test bit and
branch. Unlike TST, TBNZ does not affect the Z, N, C, or V flags in the
processor state. So except the bug fix, C version looks a bit better
than asm version.
Other architectures such as x86, riscv, rx, xtensa, mips and even arm
cortex_m also use c version for cpu_idle, it's safe for ASM -> C.
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
The tests use f16 arithmetic operations, so it should only be built
if CONFIG_CMSIS_DSP_FLOAT16 is enabled. The previously used more
generic CONFIG_FP16 only ensures f16 storage support.
Signed-off-by: Martin Jäger <martin.jaeger@a-labs.io>
CMSIS-DSP f16 sources use _Float16 arithmetic, which requires MVE float
on Cortex-M processors. So far, CONFIG_CMSIS_DSP_FLOAT16 only depended
on CONFIG_FP16, which controls the storage format and is enabled on
all ARM targets. This caused build failures on Cortex-M55 without MVE
when -mfpu=fpv5-sp-d16 is used.
Making CONFIG_CMSIS_DSP_FLOAT16 depend on the newly introduced
CONFIG_FP16_ARITHMETIC ensures that the hardware instructions for
arithmetic operations used by the DSP library are present.
Signed-off-by: Martin Jäger <martin.jaeger@a-labs.io>
This allows to distinguish between f16 storage format support
(CONFIG_FP16) and actual f16 arithmetic capability.
CONFIG_FP16_ARITHMETIC requires either MVE float (ARMV8_1_M_MVEF) or a
Cortex-A core (CPU_CORTEX_A).
Signed-off-by: Martin Jäger <martin.jaeger@a-labs.io>
Remove the unconditional `conn_mgr_if_used` call on data reception.
Receiving data ends up being a poor metric for "interface in use" in
many situations. This is especially the case when connected to networks
with broadcast packets that are not necessarily relevant for us, such as
ARP discovery requests.
Signed-off-by: Jordan Yates <jordan@embeint.com>
SOC_NRF7120_CPUAPP does not exist; the correct Kconfig symbol
for the nRF7120 engineering A application core is
SOC_NRF7120_ENGA_CPUAPP.
Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
Add ranges, #address-cells and #size-cells to cpuflpr_mram to
match the cpuapp_mram pattern. Without these the fixed-partitions
child node causes dtc warnings about mismatched address-cells and
default addr/size reliance.
Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
The nRF7120 FLPR core uses uart30, not uart00. Fix the
chosen console/shell-uart nodes and the uart status accordingly.
Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
The nRF7120 FLPR snippet should reserve uart30, not uart00,
to match the UART used by the FLPR core.
Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
Add run_once groupings for --erase, --recover and --reset so that
when flashing a multi-image sysbuild, --erase and --recover are
only run on the first flash and --reset only on the last.
Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
Use micro-units when converting readings to struct sensor_value.
The previous implementation used 100000-based scaling for fractional
values, while sensor_value expects 10^-6 units. As a result, converted
magnetic field values were reported as 10x the expected gauss value
instead of gauss, and the incorrect scaling caused apparent jumps in
the reported sensor readings.
Fix the conversions by using 1000000-based scaling and
sensor_value_from_micro().
Signed-off-by: Bernhard Reiter <bernhard.reiter@swarovskioptik.com>
Commit adds checking that the PB-ADV bearer has been
closed before opening the PB-Remote link for NPPI
interface. NPPI interface callbacks are NULL if
PB-ADV server bearer is still open.
Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
The memory_layout test uses the ztest framework with zassert macros,
so the harness should be ztest instead of console with custom regex
patterns.
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
counter_stop() is not required to succeed on all hardware.
Free-running counters (e.g. OS Timer) correctly return -ENOTSUP.
Update the three call sites in the unit test to accept -ENOTSUP
as a valid outcome.
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
Add Kconfig symbols that were introduced to improve the testsuite,
allowing tests to pass on RZ/G3S, V2L.
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
I have a strong interest in this field, and my daily work
involves MCU power management. I am already quite familiar
with Zephyr's PM subsystem and have made several contributions
to it. I am applying to become a collaborator for this domain
to assist the maintainer with domain maintenance work, and to
contribute insights from my experience with MCU power
architectures/features to help improve and optimize Zephyr's PM.
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
Document that pm_device_driver_init returns 0 on success
and propagates errors from the PM action callback.
Clarify that when the callback fails during initialization
(e.g., on PM_DEVICE_ACTION_RESUME), the device is not marked
ACTIVE and remains in its previous state (typically SUSPENDED
or OFF for devices supporting PM).
Update documentation to reflect that the device is moved
to the "expected initial state" rather than specifically
to "ACTIVE" state, as the actual state depends on the
success of the initialization sequence.
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
The registered_services bitmap was incorrectly sized using
BTP_SERVICE_ID_MAX, which is the last valid service ID (starting
from 0). This caused the bitmap to be one element too small.
Fix by defining BTP_SERVICE_ID_COUNT as (BTP_SERVICE_ID_MAX + 1)
and using it for the ATOMIC_DEFINE size to properly accommodate
all service IDs from 0 to BTP_SERVICE_ID_MAX inclusive.
Add comment explaining the service ID indexing and count calculation.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Inside the init function, it was only checked if the
entropy device is ready and if it is not ready a error code
is returned. This is useless as the return codes of SYS_INIT()
functions are not used or saved, in difference to device inits.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
- Disable option CONFIG_I2S_HAS_PLL_SETTING.
- Set CONFIG_I2C_TCA954X_CHANNEL_INIT_PRIO as 51 for
system to initialize i2c devices properly.
Signed-off-by: Biwen Li <biwen.li@nxp.com>
Extend the PWM API with optional API functions for enabling DMA requests
Possible solution for #88670
Signed-off-by: Vincent Surkijn <vincent.surkijn@siemens.com>
1. Remove DerekSnell from Collaborators list
2. Make axelnxp the Maintainer for NXP Wireless section
3. Make zejiang0jason the co-maintainer for NXP Drivers
4. Make iuliana-prodan the co-maintainer for NXP MCU Platforms
5. Make ZhaoxiangJin the primary maintainer for hal_nxp
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
When comparing time sources for `CONFIG_SNTP_UNCERTAINTY` to validate
the server responses, `dest_ts_us` and `orig_ts_us` need to be
constructed from the same time sources and have the same offsets applied
in order for math operations to be valid.
Fixes#105101
Signed-off-by: Jordan Yates <jordan@embeint.com>
Handy in figuring on the crypto feature deprecation/removal and also to
see which are legacy and PSA.
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Update the dwmac_stm32h7x ethernet driver to use the same default
MAC address as the STM32 HAL driver.
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>