diff --git a/.ruff-excludes.toml b/.ruff-excludes.toml index 0d9ed427516f..e6035e3b6bea 100644 --- a/.ruff-excludes.toml +++ b/.ruff-excludes.toml @@ -14,6 +14,21 @@ "./boards/microchip/mec172xevb_assy6906/support/mec172x_remote_flasher.py" = [ "I001", # https://docs.astral.sh/ruff/rules/unsorted-imports ] +"./doc/_extensions/moderncmakedomain/cmake.py" = [ + "B904", # https://docs.astral.sh/ruff/rules/raise-without-from-inside-except + "B905", # https://docs.astral.sh/ruff/rules/zip-without-explicit-strict + "I001", # https://docs.astral.sh/ruff/rules/unsorted-imports + "SIM115", # https://docs.astral.sh/ruff/rules/open-file-with-context-handler + "SIM201", # https://docs.astral.sh/ruff/rules/negate-equal-op + "UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation + "UP015", # https://docs.astral.sh/ruff/rules/redundant-open-modes + "UP024", # https://docs.astral.sh/ruff/rules/os-error-alias + "UP035", # https://docs.astral.sh/ruff/rules/deprecated-import +] +"./doc/_extensions/moderncmakedomain/colors.py" = [ + "I001", # https://docs.astral.sh/ruff/rules/unsorted-imports + "UP009", # https://docs.astral.sh/ruff/rules/utf8-encoding-declaration +] "./doc/_scripts/redirects.py" = [ "E501", # https://docs.astral.sh/ruff/rules/line-too-long ] @@ -719,6 +734,8 @@ exclude = [ "./arch/x86/zefi/zefi.py", "./boards/microchip/mec172xevb_assy6906/support/mec172x_remote_flasher.py", + "./doc/_extensions/moderncmakedomain/cmake.py", + "./doc/_extensions/moderncmakedomain/colors.py", "./doc/_scripts/gen_devicetree_rest.py", "./doc/_scripts/redirects.py", "./doc/conf.py", diff --git a/CMakeLists.txt b/CMakeLists.txt index eed6d3cca4f5..58d8bf7a9bac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1938,6 +1938,9 @@ endif() set(KERNEL_META_PATH ${PROJECT_BINARY_DIR}/${KERNEL_META_NAME} CACHE INTERNAL "") if(CONFIG_BUILD_OUTPUT_META) + # SBOM tooling reads CMake's object model alongside this metadata. + cmake_file_api(QUERY API_VERSION 1 CODEMODEL 2 TOOLCHAINS 1) + list(APPEND post_build_commands COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/scripts/zephyr_module.py @@ -2315,7 +2318,6 @@ if(HEX_FILES_TO_MERGE) ) add_custom_target(mergehex ALL DEPENDS ${MERGED_HEX_NAME}) - list(APPEND RUNNERS_DEPS mergehex) message(VERBOSE "Merging hex files: ${HEX_FILES_TO_MERGE}") endif() diff --git a/MAINTAINERS.yml b/MAINTAINERS.yml index c79397e76053..a0049f906c83 100644 --- a/MAINTAINERS.yml +++ b/MAINTAINERS.yml @@ -1358,12 +1358,13 @@ Device Driver Model: - init Devicetree: - status: odd fixes + status: maintained + maintainers: + - maass-hamburg collaborators: - mbolivar - rruuaanng - kylebonnici - - maass-hamburg files-regex: - ^dts/bindings/.*zephyr.* - ^dts/bindings/[^,]+$ @@ -3488,6 +3489,7 @@ Infineon Platforms: - MerinMGeorge - ifx-rmcs - parthitce + - stites-infineon files: - boards/cypress/ - boards/infineon/ @@ -3844,7 +3846,6 @@ LiteX Platforms: - maass-hamburg collaborators: - kgugala - - mateusz-holenko files: - boards/enjoydigital/litex_vexriscv/ - drivers/*/*litex* @@ -6218,6 +6219,21 @@ TI Stellaris Platforms: labels: - "platform: TI Stellaris" +TI Tiva C Platforms: + status: maintained + maintainers: + - srisurya1 + files: + - soc/ti/tiva_c/ + - boards/ti/tm4c123gxl/ + - dts/arm/ti/tm4c* + - dts/bindings/*/*tiva-c* + - drivers/*/*tiva_c* + - include/zephyr/dt-bindings/pinctrl/tiva-c* + - modules/Kconfig.tiva_c + labels: + - "platform: TI Tiva C" + Task Watchdog: status: maintained maintainers: @@ -6283,7 +6299,7 @@ Testing with Renode: # This area is to be converted to a subarea status: odd fixes collaborators: - - mateusz-holenko + - PiotrZierhoffer - fkokosinski files: - cmake/emu/renode.cmake @@ -6959,6 +6975,7 @@ West: - lauracarlesso - MerinMGeorge - ifx-rmcs + - stites-infineon files: - modules/Kconfig.infineon - modules/hal_infineon/ @@ -7739,7 +7756,6 @@ hawkBit: files: - subsys/mgmt/hawkbit/ - include/zephyr/mgmt/hawkbit/ - - include/zephyr/mgmt/hawkbit.h - samples/subsys/mgmt/hawkbit/ labels: - "area: hawkBit" diff --git a/arch/Kconfig b/arch/Kconfig index 46e0cb3193f1..9a9624ca0511 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -69,6 +69,8 @@ config ARM64 select ARCH_HAS_ISR_TABLES_LOCAL_DECLARATION select ARCH_SUPPORTS_ROM_OFFSET select ARCH_HAS_CPU_IDLE_HOOKS + # Backed by the GIC distributor ICPENDR/ISPENDR registers. + select ARCH_HAS_IRQ_PENDING_OPS if !ARM_CUSTOM_INTERRUPT_CONTROLLER help ARM64 (AArch64) architecture @@ -852,6 +854,23 @@ config ARCH_HAS_IRQ_OFFLOAD_NESTED synchronous nested interrupt on the current CPU. It gates the default value of CONFIG_IRQ_OFFLOAD_NESTED. +config ARCH_HAS_IRQ_PENDING_OPS + bool + help + Selected by architectures whose interrupt controller can set, clear + and query the latched pending state of an individual interrupt + line, providing arch_irq_set_pending(), arch_irq_clear_pending() + and arch_irq_is_pending() and therefore the k_irq_*_pending() API. + +config ARCH_HAS_IRQ_GET_ACTIVE + bool + help + Selected by architectures that can report the interrupt line being + serviced on the local CPU through arch_irq_get_active() and + therefore k_irq_get_active(). Some interrupt controllers expose + this in a register; others record it in the interrupt dispatch + path. + config ARCH_HAS_SEMIHOST bool help diff --git a/arch/arm/core/Kconfig b/arch/arm/core/Kconfig index 258484d0ad93..7f5c9c8d5108 100644 --- a/arch/arm/core/Kconfig +++ b/arch/arm/core/Kconfig @@ -27,6 +27,10 @@ config CPU_CORTEX_M select ARCH_HAS_RAMFUNC_SUPPORT select ARCH_HAS_VECTOR_TABLE_RELOCATION if CPU_CORTEX_M_HAS_VTOR select ARCH_HAS_NESTED_EXCEPTION_DETECTION + # The NVIC exposes per-line pending state via ISPR/ICPR. With a custom + # or multi-level controller these operations belong to the SoC layer. + select ARCH_HAS_IRQ_PENDING_OPS if !ARM_CUSTOM_INTERRUPT_CONTROLLER && \ + !MULTI_LEVEL_INTERRUPTS select SWAP_NONATOMIC select ARCH_HAS_EXTRA_EXCEPTION_INFO select ARCH_HAS_TIMING_FUNCTIONS if CPU_CORTEX_M_HAS_DWT @@ -48,6 +52,9 @@ config CPU_AARCH32_CORTEX_R select ARCH_HAS_USERSPACE if ARM_MPU && !USE_SWITCH select ARCH_HAS_EXTRA_EXCEPTION_INFO if !USE_SWITCH select ARCH_HAS_CODE_DATA_RELOCATION + # Backed by the GIC distributor ICPENDR/ISPENDR registers. + select ARCH_HAS_IRQ_PENDING_OPS if !ARM_CUSTOM_INTERRUPT_CONTROLLER && \ + !MULTI_LEVEL_INTERRUPTS select ARCH_HAS_NOCACHE_MEMORY_SUPPORT if ARM_MPU && CPU_HAS_ARM_MPU && CPU_HAS_DCACHE select ARCH_SUPPORTS_ROM_START select USE_SWITCH_SUPPORTED @@ -69,6 +76,9 @@ config CPU_AARCH32_CORTEX_A select ARCH_HAS_BIT_REV select ARCH_HAS_EXTRA_EXCEPTION_INFO if !USE_SWITCH select ARCH_HAS_NOCACHE_MEMORY_SUPPORT + # Backed by the GIC distributor ICPENDR/ISPENDR registers. + select ARCH_HAS_IRQ_PENDING_OPS if !ARM_CUSTOM_INTERRUPT_CONTROLLER && \ + !MULTI_LEVEL_INTERRUPTS select USE_SWITCH_SUPPORTED # GDBSTUB has not yet been tested on Cortex M or R SoCs select ARCH_HAS_GDBSTUB @@ -77,6 +87,17 @@ config CPU_AARCH32_CORTEX_A help This option signifies the use of a CPU of the Cortex-A family. +config ARM_TRACK_ACTIVE_IRQ + bool "Track the active IRQ in the ISR wrapper" + depends on CPU_AARCH32_CORTEX_A || CPU_AARCH32_CORTEX_R + select ARCH_HAS_IRQ_GET_ACTIVE + help + Provide k_irq_get_active() on Cortex-A/R. The GIC has no register + that reports the INTID being serviced after acknowledge, so the + ISR wrapper records it per CPU, at the cost of a few instructions + on every interrupt entry and exit. Works with both the GIC and a + custom interrupt controller. + config GDBSTUB_BUF_SZ # GDB for ARM expects up to 18 4-byte plus 8 12-byte # registers - 336 HEX letters diff --git a/arch/arm/core/cortex_a_r/irq_manage.c b/arch/arm/core/cortex_a_r/irq_manage.c index 34d3d3502f9d..4d082fff78dd 100644 --- a/arch/arm/core/cortex_a_r/irq_manage.c +++ b/arch/arm/core/cortex_a_r/irq_manage.c @@ -63,6 +63,29 @@ int arm_irq_is_enabled(unsigned int irq) return arm_gic_irq_is_enabled(irq); } +#if defined(CONFIG_ARCH_HAS_IRQ_PENDING_OPS) +void arm_irq_clear_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + arm_gic_irq_clear_pending(irq); +} + +void arm_irq_set_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + arm_gic_irq_set_pending(irq); +} + +bool arm_irq_is_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + return arm_gic_irq_is_pending(irq); +} +#endif + /** * @internal * @@ -80,6 +103,19 @@ void arm_irq_priority_set(unsigned int irq, unsigned int prio, uint32_t flags) #endif /* !CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER */ +#if defined(CONFIG_ARM_TRACK_ACTIVE_IRQ) +unsigned int arch_irq_get_active(void) +{ + /* + * The ISR wrapper stores the INTID biased by one so that the + * zero-initialized boot state reads as "none" on every CPU. + */ + uint32_t biased = _current_cpu->arch.active_irq; + + return (biased == 0U) ? K_IRQ_ACTIVE_NONE : (biased - 1U); +} +#endif + void z_arm_fatal_error(unsigned int reason, const struct arch_esf *esf); /** diff --git a/arch/arm/core/cortex_a_r/isr_wrapper.S b/arch/arm/core/cortex_a_r/isr_wrapper.S index 62f2aa8caf5e..78fe3060d591 100644 --- a/arch/arm/core/cortex_a_r/isr_wrapper.S +++ b/arch/arm/core/cortex_a_r/isr_wrapper.S @@ -183,6 +183,22 @@ _idle_state_cleared: #endif /* !CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER */ push {r0, r1} +#ifdef CONFIG_ARM_TRACK_ACTIVE_IRQ + /* + * Publish the acknowledged INTID for arch_irq_get_active(). The value + * is stored biased by one so that the zero-initialized boot state + * reads as "no interrupt active" on every CPU. The previous value + * and the CPU pointer are kept on the stack so the exit path + * unwinds a nested interrupt to the preempted INTID and the + * outermost exit back to "none". + */ + get_cpu r2 + ldr r1, [r2, #_cpu_offset_to_active_irq] + add r3, r0, #1 + str r3, [r2, #_cpu_offset_to_active_irq] + push {r1, r2} +#endif /* CONFIG_ARM_TRACK_ACTIVE_IRQ */ + #if CONFIG_GIC_VER >= 3 /* * Ignore GIC special INTIDs (1020-1023), which do not represent @@ -230,6 +246,12 @@ oob: cpsid i spurious_continue: +#ifdef CONFIG_ARM_TRACK_ACTIVE_IRQ + /* Unwind the published active INTID to the preempted context's */ + pop {r1, r2} + str r1, [r2, #_cpu_offset_to_active_irq] +#endif /* CONFIG_ARM_TRACK_ACTIVE_IRQ */ + /* Signal end-of-interrupt */ pop {r0, r1} #if !defined(CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER) @@ -314,6 +336,18 @@ _idle_state_cleared: push {r0, r1} +#ifdef CONFIG_ARM_TRACK_ACTIVE_IRQ + /* + * Publish the acknowledged INTID for arch_irq_get_active(). See the + * comment in the non-USE_SWITCH variant above. + */ + get_cpu r2 + ldr r1, [r2, #_cpu_offset_to_active_irq] + add r3, r0, #1 + str r3, [r2, #_cpu_offset_to_active_irq] + push {r1, r2} +#endif /* CONFIG_ARM_TRACK_ACTIVE_IRQ */ + #if CONFIG_GIC_VER >= 3 /* * Ignore Special INTIDs 1020..1023 see 2.2.1 of Arm Generic Interrupt Controller @@ -351,6 +385,12 @@ oob: cpsid i spurious_continue: +#ifdef CONFIG_ARM_TRACK_ACTIVE_IRQ + /* Unwind the published active INTID to the preempted context's */ + pop {r1, r2} + str r1, [r2, #_cpu_offset_to_active_irq] +#endif /* CONFIG_ARM_TRACK_ACTIVE_IRQ */ + /* Signal end-of-interrupt */ pop {r0, r1} #if !defined(CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER) diff --git a/arch/arm/core/cortex_m/Kconfig b/arch/arm/core/cortex_m/Kconfig index b7bf9e1b3a06..dd63b022d411 100644 --- a/arch/arm/core/cortex_m/Kconfig +++ b/arch/arm/core/cortex_m/Kconfig @@ -1,7 +1,7 @@ # ARM Cortex-M platform configuration options # Copyright (c) 2014-2015 Wind River Systems, Inc. -# Copyright 2025 Arm Limited and/or its affiliates +# Copyright 2025-2026 Arm Limited and/or its affiliates # SPDX-License-Identifier: Apache-2.0 # NOTE: We have the specific core implementations first and outside of the @@ -228,7 +228,7 @@ config ARMV7_M_ARMV8_M_MAINLINE select CPU_CORTEX_M_HAS_VTOR select CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS select CPU_CORTEX_M_HAS_SYSTICK - select USE_SWITCH_SUPPORTED + select USE_SWITCH_SUPPORTED if !TRUSTED_EXECUTION_NONSECURE select ARCH_HAS_LLEXT_VENEERS select ARCH_HAS_BIT_REV help diff --git a/arch/arm/core/cortex_m/irq_manage.c b/arch/arm/core/cortex_m/irq_manage.c index 80d2f1bc3d0c..249628da4ba6 100644 --- a/arch/arm/core/cortex_m/irq_manage.c +++ b/arch/arm/core/cortex_m/irq_manage.c @@ -68,6 +68,29 @@ int arm_irq_is_enabled(unsigned int irq) return NVIC->ISER[REG_FROM_IRQ(irq)] & BIT(BIT_FROM_IRQ(irq)); } +#if defined(CONFIG_ARCH_HAS_IRQ_PENDING_OPS) +void arm_irq_clear_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + NVIC_ClearPendingIRQ((IRQn_Type)irq); +} + +void arm_irq_set_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + NVIC_SetPendingIRQ((IRQn_Type)irq); +} + +bool arm_irq_is_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + return NVIC_GetPendingIRQ((IRQn_Type)irq) != 0U; +} +#endif + /** * @internal * diff --git a/arch/arm/core/offsets/offsets_aarch32.c b/arch/arm/core/offsets/offsets_aarch32.c index a407d17f839d..f26d0a65cc7e 100644 --- a/arch/arm/core/offsets/offsets_aarch32.c +++ b/arch/arm/core/offsets/offsets_aarch32.c @@ -42,6 +42,9 @@ GEN_OFFSET_SYM(_thread_arch_t, pac_keys); #if defined(CONFIG_CPU_AARCH32_CORTEX_A) || defined(CONFIG_CPU_AARCH32_CORTEX_R) GEN_OFFSET_SYM(_thread_arch_t, exception_depth); GEN_OFFSET_SYM(_cpu_arch_t, exc_depth); +#if defined(CONFIG_ARM_TRACK_ACTIVE_IRQ) +GEN_OFFSET_SYM(_cpu_arch_t, active_irq); +#endif #endif #if defined(CONFIG_ARM_STORE_EXC_RETURN) || defined(CONFIG_USERSPACE) diff --git a/arch/arm/include/offsets_short_arch.h b/arch/arm/include/offsets_short_arch.h index 43c7b4d433b5..c3975b58d3db 100644 --- a/arch/arm/include/offsets_short_arch.h +++ b/arch/arm/include/offsets_short_arch.h @@ -30,6 +30,11 @@ #define _cpu_offset_to_exc_depth \ (___cpu_t_arch_OFFSET + ___cpu_arch_t_exc_depth_OFFSET) + +#if defined(CONFIG_ARM_TRACK_ACTIVE_IRQ) +#define _cpu_offset_to_active_irq \ + (___cpu_t_arch_OFFSET + ___cpu_arch_t_active_irq_OFFSET) +#endif #endif #if defined(CONFIG_USERSPACE) || defined(CONFIG_FPU_SHARING) diff --git a/arch/arm64/core/irq_manage.c b/arch/arm64/core/irq_manage.c index 6344d1e3696c..306f71c31f95 100644 --- a/arch/arm64/core/irq_manage.c +++ b/arch/arm64/core/irq_manage.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -47,6 +48,29 @@ int arch_irq_is_enabled(unsigned int irq) return arm_gic_irq_is_enabled(irq); } +#if defined(CONFIG_ARCH_HAS_IRQ_PENDING_OPS) +void arch_irq_clear_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + arm_gic_irq_clear_pending(irq); +} + +void arch_irq_set_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + arm_gic_irq_set_pending(irq); +} + +bool arch_irq_is_pending(unsigned int irq) +{ + __ASSERT(irq < CONFIG_NUM_IRQS, "IRQ %u out of range", irq); + + return arm_gic_irq_is_pending(irq); +} +#endif + void z_arm64_irq_priority_set(unsigned int irq, unsigned int prio, uint32_t flags) { arm_gic_irq_set_priority(irq, prio, flags); diff --git a/arch/arm64/core/xen/Kconfig b/arch/arm64/core/xen/Kconfig index 26a86899922c..0b6412bcb56d 100644 --- a/arch/arm64/core/xen/Kconfig +++ b/arch/arm64/core/xen/Kconfig @@ -6,7 +6,7 @@ config XEN bool default y - depends on ARMV8_A + depends on ARMV8_A || ARMV9_A depends on DT_HAS_XEN_XEN_ENABLED select GNU_C_EXTENSIONS help diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index c92a79573ab5..70fe8829d995 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -360,12 +360,6 @@ config RISCV_HART_MASK i.e. 128, 129, ..(0x80, 8x81, ..), this can be configured to 63 (0x7f) such that we can extract the bits that start from 0. -config EXTRA_EXCEPTION_INFO - bool "Collect extra exception info [DEPRECATED]" - select DEPRECATED - help - This option is deprecated and should be replaced with CONFIG_EXCEPTION_DEBUG. - config RISCV_PMP bool "RISC-V PMP Support" depends on !RISCV_S_MODE @@ -679,22 +673,61 @@ config RISCV_S_MODE bool "Supervisor mode (S-mode)" depends on $(dt_compat_all_has_prop,riscv,$(RISCV_PRIV_MODES_PROP),s) help - Indicates that the kernel runs in Supervisor mode (S-mode). When - enabled, the boot code performs an M-mode to S-mode transition - before entering the C runtime, and a minimal SBI runtime is kept - resident in M-mode to service timer and ecall requests. + Indicates that the kernel runs in Supervisor mode (S-mode). endchoice # RISCV_PRIVILEGE_MODE +choice RISCV_S_MODE_SBI + prompt "RISC-V SBI Implementation" + depends on RISCV_S_MODE + default RISCV_S_MODE_INTERNAL_SBI + help + Select the Supervisor Binary Interface (SBI) implementation to use + when running in Supervisor mode (S-mode). + +config RISCV_S_MODE_INTERNAL_SBI + bool "Use built-in minimal SBI runtime" + help + Enable this to have the boot code handle the transition from + Machine mode (M-mode) to Supervisor mode (S-mode) internally. + A minimal SBI runtime will remain resident in M-mode to service + timer interrupts and ecall requests. + +config RISCV_S_MODE_EXTERNAL_SBI + bool "Enter S-mode directly, relying on an external SBI (e.g. OpenSBI)" + # TODO: Remove once SMP is fixed with this configuration + depends on !SMP + help + Skip the in-tree M-mode boot sequence (PMP/medeleg/mideleg/ + mcounteren/mtvec setup and the mret drop to S-mode). Use this when + Zephyr is launched as a payload by a bootloader (e.g. U-Boot) that + is already running in S-mode under an external M-mode SBI + implementation such as OpenSBI, which has already performed the + M-mode setup and delegation. + +endchoice # RISCV_S_MODE_SBI + config RISCV_M_MODE_STACK_SIZE int "M-mode SBI handler stack size (bytes)" default 256 - depends on RISCV_S_MODE + depends on RISCV_S_MODE_INTERNAL_SBI help Size in bytes of the dedicated stack used by the in-tree M-mode SBI runtime handler. Increase this if the handler is extended with functionality that requires more stack space. +config RISCV_FPU_INSN_VALIDATE + bool + depends on FPU_SHARING + depends on ASSERT + default y + help + Derived debug-only symbol. When enabled, the FPU trap handler will + explicitly decode the trapping instruction to ensure it is a valid + floating-point instruction. This catches edge cases where non-FPU + instructions (like Vector instructions) might accidentally trigger + an FP trap. + rsource "Kconfig.isa" rsource "custom/Kconfig" diff --git a/arch/riscv/core/CMakeLists.txt b/arch/riscv/core/CMakeLists.txt index 04a60a92e38f..f8319e198edc 100644 --- a/arch/riscv/core/CMakeLists.txt +++ b/arch/riscv/core/CMakeLists.txt @@ -2,6 +2,8 @@ zephyr_library() +zephyr_cc_option_ifdef(CONFIG_FRAME_POINTER -mno-omit-leaf-frame-pointer) + zephyr_library_sources( cpu_idle.c fatal.c @@ -28,7 +30,7 @@ zephyr_library_sources_ifdef(CONFIG_PM_S2RAM pm_s2ram.c pm_s2ram.S) zephyr_library_sources_ifdef(CONFIG_DEBUG_COREDUMP coredump.c) zephyr_library_sources_ifdef(CONFIG_IRQ_OFFLOAD irq_offload.c) zephyr_library_sources_ifdef(CONFIG_USE_ISR_WRAPPER isr.S) -zephyr_library_sources_ifdef(CONFIG_RISCV_S_MODE sbi.S) +zephyr_library_sources_ifdef(CONFIG_RISCV_S_MODE_INTERNAL_SBI sbi.S) zephyr_library_sources_ifdef(CONFIG_RISCV_PMP pmp.c pmp.S) zephyr_linker_sources_ifdef(CONFIG_RISCV_PMP ROM_SECTIONS pmp.ld) zephyr_library_sources_ifdef(CONFIG_THREAD_LOCAL_STORAGE tls.c) diff --git a/arch/riscv/core/fpu.c b/arch/riscv/core/fpu.c index 5c3f89c8df3d..b71164ba177e 100644 --- a/arch/riscv/core/fpu.c +++ b/arch/riscv/core/fpu.c @@ -187,6 +187,78 @@ void z_riscv_fpu_enter_exc(void) z_riscv_fpu_disable(); } +#ifdef CONFIG_RISCV_FPU_INSN_VALIDATE +/* + * Rigorous FP instruction validation used only during debug/assertion builds. + * It ensures the fast-path assembly hasn't accidentally trapped a non-FP + * instruction (like a Vector instruction) into the FPU context switch. + */ +static inline int debug_is_fp_insn(uint32_t instruction) +{ + /* 1. Check for Compressed (16-bit) Instructions */ + if ((instruction & 0x3) != 0x3) { +#ifdef CONFIG_RISCV_ISA_EXT_C + /* RVC Quadrants 00 and 10 are the only ones with FP loads/stores */ + if ((instruction & 0x1) != 0) { + return 0; + } + + uint32_t op = (instruction >> 13) & 0x7; +#ifdef CONFIG_64BIT + /* valid FP instructions */ + /* 00: C.FLD (001) C.FSD (101) */ + /* 10: C.FLDSP (001) C.FSDSP (101) */ + return (op & 3) == 0b01; +#else + /* valid FP instructions */ + /* 00: C.FLD (001) C.FSD (101) + * C.FLW (011) C.FSW (111) + */ + /* 10: C.FLDSP (001) C.FSDSP (101) + * C.FLWSP (011) C.FSWSP (111) + */ + return (op & 1) == 1; +#endif +#else + return 0; +#endif + } + + /* 2. Check Standard 32-bit Instructions */ + uint32_t opcode = instruction & 0x7F; + + switch (opcode) { + case 0b0000111: /* LOAD-FP */ + case 0b0100111: /* STORE-FP */ + { + /* Valid FP widths: + * Half (1), Single (2), Double (3), Quad (4) + */ + uint32_t funct3 = (instruction >> 12) & 7; + + return (funct3 >= 1 && funct3 <= 4); + } + case 0b1000011: /* FMADD */ + case 0b1000111: /* FMSUB */ + case 0b1001011: /* FNMSUB */ + case 0b1001111: /* FNMADD */ + case 0b1010011: /* FP-OP */ + return 1; + + case 0b1110011: /* SYSTEM (CSR accesses) */ + { + /* Accessing fflags (1), frm (2), or fcsr (3) traps if FPU is off */ + uint32_t funct3 = (instruction >> 12) & 0x7; + uint32_t csr = instruction >> 20; + + return ((funct3 & 3) != 0) && (csr >= 1 && csr <= 3); + } + default: + return 0; + } +} +#endif + /* * Process the FPU trap. * @@ -210,6 +282,34 @@ void z_riscv_fpu_trap(struct arch_esf *esf) (z_riscv_status_read() & MSTATUS_FS) == 0, "called despite FPU being accessible"); +#ifdef CONFIG_RISCV_FPU_INSN_VALIDATE + /* Safely fetch instruction to avoid unaligned access faults */ +#ifdef CONFIG_RISCV_NO_MTVAL_ON_FP_TRAP + uint32_t instruction = *(uint16_t *)(esf->mepc); + + if ((instruction & 3) == 3) { + /* It's a 32-bit instruction, fetch the upper 16 bits */ + instruction |= ((uint32_t)*(uint16_t *)(esf->mepc + 2)) << 16; + } +#else +#ifdef CONFIG_RISCV_S_MODE + uint32_t instruction = csr_read(stval); +#else + uint32_t instruction = csr_read(mtval); +#endif +#endif + + /* Force a fatal error if the trap was triggered by a non-FPU instruction */ + if (!debug_is_fp_insn(instruction)) { + __ASSERT(false, + "Fatal Error: Non-FPU instruction (0x%08x) incorrectly routed to FPU trap " + "handler.\n", + instruction); + + CODE_UNREACHABLE; + } +#endif + /* save current owner's content if any */ arch_flush_local_fpu(); diff --git a/arch/riscv/core/isr.S b/arch/riscv/core/isr.S index 111f24ab9049..334bd201057e 100644 --- a/arch/riscv/core/isr.S +++ b/arch/riscv/core/isr.S @@ -109,6 +109,7 @@ /* imports */ GDATA(_sw_isr_table) +GDATA(_kernel) GTEXT(__soc_handle_irq) GTEXT(z_riscv_fault) GTEXT(z_irq_spurious) @@ -286,25 +287,45 @@ SECTION_FUNC(exception.entry, _isr_wrapper) lw t2, 0(t0) /* t0 = RV_EPC */ 1: #endif - andi t0, t2, 0x7f /* keep only the opcode bits */ - /* + /* Move to RVC check if the instruction is not 32-bit encoded */ + andi t0, t2, 3 + xori t0, t0, 3 + bnez t0, 2f /* not a 32-bit encoding, RVC check below */ + + /* RISC-V base floating-point opcodes are 7 bits long. We map them + * into a 32-bit O(1) lookup table by shifting the opcode right by 2. + * + * Opcodes and their resulting lookup bit indices: * Major FP opcodes: - * 0000111 = LOAD-FP - * 0100111 = STORE-FP - * 1000011 = MADD - * 1000111 = MSUB - * 1001011 = NMSUB - * 1001111 = NMADD - * 1010011 = OP-FP + * 0000111 = LOAD-FP >> 2 -> 1 + * 0100111 = STORE-FP >> 2 -> 9 + * 1000011 = MADD >> 2 -> 16 + * 1000111 = MSUB >> 2 -> 17 + * 1001011 = NMSUB >> 2 -> 18 + * 1001111 = NMADD >> 2 -> 19 + * 1010011 = OP-FP >> 2 -> 20 + * + * Combined Bitmask: 0x001F0202 + * + * When funct3 is not 1, 2, 3 or 4, 0*00111 is not floating point + * Combined Bitmask in this case: 0x001F0000 */ - xori t1, t0, 0b1010011 /* OP-FP */ - beqz t1, is_fp - ori t1, t0, 0b0100000 - xori t1, t1, 0b0100111 /* LOAD-FP / STORE-FP */ - beqz t1, is_fp - ori t1, t0, 0b0001100 - xori t1, t1, 0b1001111 /* MADD / MSUB / NMSUB / NMADD */ - beqz t1, is_fp + /* 1. Preparing the Bitmask (Done first for efficient register usage) */ + /* Lower 12 bit masks should be 0 for vector instructions */ + li t0, 0x3c3c + srli t1, t2, 12 + andi t1, t1, 7 + srl t0, t0, t1 + andi t0, t0, 0x202 /* 0 for vector instructions with opcode 0b0*00111 */ + li t1, 0x001F0000 /* Load the pre-calculated O(1) upper 20 bits of FP opcode bitmask */ + or t1, t1, t0 /* Final bitmask which accounts for vector instructions */ + + /* 2. Perform the O(1) branchless lookup */ + srli t0, t2, 2 + andi t0, t0, 0x1f + srl t1, t1, t0 /* bit 0 set = FP major opcode */ + andi t1, t1, 1 + bnez t1, is_fp /* * The FRCSR, FSCSR, FRRM, FSRM, FSRMI, FRFLAGS, FSFLAGS and FSFLAGSI * are in fact CSR instructions targeting the fcsr, frm and fflags @@ -314,7 +335,8 @@ SECTION_FUNC(exception.entry, _isr_wrapper) * SYSTEM = 0b1110011, op = 0b.xx where xx is never 0 * The csr# of interest are: 1=fflags, 2=frm, 3=fcsr */ - xori t1, t0, 0b1110011 /* SYSTEM opcode */ + /* t0 holds t2[6:2]. Check for SYSTEM opcode (28) since its verified t2[1:0] == 0b11 */ + xori t1, t0, 0b11100 bnez t1, 2f /* not a CSR insn */ srli t0, t2, 12 andi t0, t0, 0x3 @@ -797,6 +819,20 @@ check_reschedule: /* Get pointer to current thread on this CPU */ lr a1, ___cpu_t_current_OFFSET(s0) +#if !defined(CONFIG_SMP) && !defined(CONFIG_SCHED_THREAD_USAGE) + /* + * Fast path: when the scheduler's ready queue cache still designates + * the current thread, no reschedule is needed. In that case all of + * the bookkeeping in z_get_next_switch_handle() reduces to no-ops on + * uniprocessor builds (and the stack sentinel, when enabled, was + * already checked above), so the call can be skipped altogether. + * This is the common case when returning from an interrupt. + */ + la t0, _kernel + lr t0, _kernel_offset_to_ready_q_cache(t0) + beq t0, a1, no_reschedule +#endif /* !CONFIG_SMP && !CONFIG_SCHED_THREAD_USAGE */ + /* * Get next thread to schedule with z_get_next_switch_handle(). * We pass it a NULL as we didn't save the whole thread context yet. diff --git a/arch/riscv/core/reset.S b/arch/riscv/core/reset.S index 43759a677a28..52ac53eaa35a 100644 --- a/arch/riscv/core/reset.S +++ b/arch/riscv/core/reset.S @@ -29,7 +29,7 @@ GTEXT(z_prep_c) GDATA(riscv_cpu_wake_flag) GDATA(riscv_cpu_sp) GTEXT(arch_secondary_cpu_init) -#ifdef CONFIG_RISCV_S_MODE +#ifdef CONFIG_RISCV_S_MODE_INTERNAL_SBI GTEXT(__m_mode_sbi_handler) #endif @@ -80,7 +80,14 @@ tls_skip\@: * the C domain */ SECTION_FUNC(TEXT, __initialize) +#ifndef CONFIG_RISCV_S_MODE_EXTERNAL_SBI + /* + * When entered directly in S-mode by an external bootloader/SBI, a0 + * already holds the hart id per the RISC-V S-mode boot protocol + * (a0=hartid, a1=dtb), and mhartid would trap, so only read it here. + */ csrr a0, mhartid +#endif /* CONFIG_RISCV_S_MODE_EXTERNAL_SBI */ li t0, CONFIG_RV_BOOT_HART beq a0, t0, boot_first_core j boot_secondary_core @@ -92,7 +99,11 @@ boot_first_core: * Enable floating-point. */ li t0, MSTATUS_FS_INIT +#ifdef CONFIG_RISCV_S_MODE_EXTERNAL_SBI + csrs sstatus, t0 +#else csrs mstatus, t0 +#endif /* CONFIG_RISCV_S_MODE_EXTERNAL_SBI */ /* * Floating-point rounding mode set to IEEE-754 default, and clear @@ -135,7 +146,7 @@ aa_loop: riscv_tls_init_early #endif -#ifdef CONFIG_RISCV_SMRNMI_ENABLE_NMI_DELIVERY +#if defined(CONFIG_RISCV_SMRNMI_ENABLE_NMI_DELIVERY) && !defined(CONFIG_RISCV_S_MODE_EXTERNAL_SBI) csrs CSR_MNSTATUS, MNSTATUS_NMIE #endif @@ -144,6 +155,7 @@ aa_loop: #endif #ifdef CONFIG_RISCV_S_MODE +#ifdef CONFIG_RISCV_S_MODE_INTERNAL_SBI /* Set M-mode trap vector to our SBI handler */ la t0, __m_mode_sbi_handler csrw mtvec, t0 @@ -188,6 +200,7 @@ aa_loop: la t0, s_mode_entry csrw mepc, t0 mret +#endif /* CONFIG_RISCV_S_MODE_INTERNAL_SBI */ s_mode_entry: #endif /* CONFIG_RISCV_S_MODE */ diff --git a/arch/riscv/core/sbi.S b/arch/riscv/core/sbi.S index cf4b49e1e217..26481b779039 100644 --- a/arch/riscv/core/sbi.S +++ b/arch/riscv/core/sbi.S @@ -13,8 +13,6 @@ #include #include "asm_macros.inc" -#ifdef CONFIG_RISCV_S_MODE - #ifdef CONFIG_64BIT #define REGBYTES 8 #else @@ -221,5 +219,3 @@ m_mode_return: csrrw sp, mscratch, sp mret - -#endif /* CONFIG_RISCV_S_MODE */ diff --git a/arch/riscv/core/stacktrace.c b/arch/riscv/core/stacktrace.c index 3171312e8f8a..fe120bd0ac43 100644 --- a/arch/riscv/core/stacktrace.c +++ b/arch/riscv/core/stacktrace.c @@ -134,40 +134,15 @@ static void walk_stackframe(riscv_stacktrace_cb cb, void *cookie, const struct k /* Unwind to the previous frame */ frame = (struct stackframe *)fp - 1; - if ((i == 0) && (esf != NULL)) { - /* Print `esf->ra` if we are at the top of the stack */ - if (in_text_region(esf->ra) && !cb(cookie, esf->ra, fp)) { - break; - } - /** - * For the first stack frame, the `ra` is not stored in the frame if the - * preempted function doesn't call any other function, we can observe: - * - * .-------------. - * frame[0]->fp ---> | frame[0] fp | - * :-------------: - * frame[0]->ra ---> | frame[1] fp | - * | frame[1] ra | - * :~~~~~~~~~~~~~: - * | frame[N] fp | - * - * Instead of: - * - * .-------------. - * frame[0]->fp ---> | frame[0] fp | - * frame[0]->ra ---> | frame[1] ra | - * :-------------: - * | frame[1] fp | - * | frame[1] ra | - * :~~~~~~~~~~~~~: - * | frame[N] fp | - * - * Check if `frame->ra` actually points to a `fp`, and adjust accordingly - */ - if (vrfy(frame->ra, thread, esf)) { - fp = frame->ra; - frame = (struct stackframe *)fp; - } + /* + * frame->ra is a return address in a regular frame. A compact + * leaf frame stores the caller's frame pointer there instead. + */ + if ((i == 0) && (esf != NULL) && (frame->ra > fp) && + vrfy(frame->ra, thread, esf)) { + fp = frame->ra; + ra = esf->ra; + continue; } fp = frame->fp; diff --git a/arch/x86/core/CMakeLists.txt b/arch/x86/core/CMakeLists.txt index 80200f4015b5..9245dc963871 100644 --- a/arch/x86/core/CMakeLists.txt +++ b/arch/x86/core/CMakeLists.txt @@ -4,6 +4,7 @@ zephyr_library() zephyr_library_sources(cpuhalt.c) +zephyr_library_sources_ifdef(CONFIG_LOAPIC irq_system_apic.c) zephyr_library_sources(prep_c.c) zephyr_library_sources(fatal.c) zephyr_library_sources(cpuid.c) diff --git a/drivers/interrupt_controller/intc_system_apic.c b/arch/x86/core/irq_system_apic.c similarity index 92% rename from drivers/interrupt_controller/intc_system_apic.c rename to arch/x86/core/irq_system_apic.c index 614a21719cf2..899ee4abf94c 100644 --- a/drivers/interrupt_controller/intc_system_apic.c +++ b/arch/x86/core/irq_system_apic.c @@ -10,6 +10,12 @@ * */ +/* + * This file is x86 platform glue, not an interrupt controller driver: + * it implements the architecture interrupt control functions and vector + * programming by dispatching between the IOAPIC and LOAPIC drivers. + */ + #include #include #include diff --git a/arch/x86/core/x86_mmu.c b/arch/x86/core/x86_mmu.c index c57a6fb9dd9f..1b41fb6f22e9 100644 --- a/arch/x86/core/x86_mmu.c +++ b/arch/x86/core/x86_mmu.c @@ -425,14 +425,10 @@ static inline void tlb_shootdown(void) } #endif /* CONFIG_SMP */ -static inline void assert_addr_aligned(uintptr_t addr) +static inline void assert_addr_aligned(uintptr_t addr __maybe_unused) { -#if __ASSERT_ON __ASSERT((addr & (CONFIG_MMU_PAGE_SIZE - 1)) == 0U, "unaligned address 0x%" PRIxPTR, addr); -#else - ARG_UNUSED(addr); -#endif } static inline bool is_addr_aligned(uintptr_t addr) @@ -454,14 +450,10 @@ static inline bool is_virt_addr_aligned(void *addr) return is_addr_aligned((uintptr_t)addr); } -static inline void assert_size_aligned(size_t size) +static inline void assert_size_aligned(size_t size __maybe_unused) { -#if __ASSERT_ON __ASSERT((size & (CONFIG_MMU_PAGE_SIZE - 1)) == 0U, "unaligned size %zu", size); -#else - ARG_UNUSED(size); -#endif } static inline bool is_size_aligned(size_t size) @@ -1738,18 +1730,17 @@ int arch_mem_domain_init(struct k_mem_domain *domain) k_spinlock_key_t key = k_spin_lock(&x86_mmu_lock); LOG_DBG("%s(%p)", __func__, domain); -#if __ASSERT_ON + sys_snode_t *node; /* Assert that we have not already initialized this domain */ SYS_SLIST_FOR_EACH_NODE(&x86_domain_list, node) { - struct arch_mem_domain *list_domain = + struct arch_mem_domain *list_domain __maybe_unused = CONTAINER_OF(node, struct arch_mem_domain, node); __ASSERT(list_domain != &domain->arch, "%s(%p) called multiple times", __func__, domain); } -#endif /* __ASSERT_ON */ #ifndef CONFIG_X86_KPTI /* If we're not using KPTI then we can use the build time page tables * (which are mutable) as the set of page tables for the default diff --git a/boards/96boards/avenger96/doc/index.rst b/boards/96boards/avenger96/doc/index.rst index 2b11a61a55c3..21740abae29a 100644 --- a/boards/96boards/avenger96/doc/index.rst +++ b/boards/96boards/avenger96/doc/index.rst @@ -234,13 +234,12 @@ install `stm32mp1 developer package`_. # On Linux cd $ZEPHYR_BASE/samples/hello_world - mkdir -p build && cd build - # Use cmake to configure a Ninja-based build system: - cmake -GNinja -DBOARD=96b_avenger96 .. + # Build the application: + west build -b 96b_avenger96 - # Now run ninja on the generated build system: - ninja debug + # Now start a debug session: + west debug .. _96Boards website: https://www.96boards.org/product/avenger96/ diff --git a/boards/96boards/carbon/96b_carbon_nrf51822.yaml b/boards/96boards/carbon/96b_carbon_nrf51822.yaml index daa4501a13f5..fe54913de7b6 100644 --- a/boards/96boards/carbon/96b_carbon_nrf51822.yaml +++ b/boards/96boards/carbon/96b_carbon_nrf51822.yaml @@ -8,5 +8,5 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth vendor: seeed diff --git a/boards/96boards/carbon/96b_carbon_stm32f401xe.yaml b/boards/96boards/carbon/96b_carbon_stm32f401xe.yaml index a0254053ca31..4641d6eff7f6 100644 --- a/boards/96boards/carbon/96b_carbon_stm32f401xe.yaml +++ b/boards/96boards/carbon/96b_carbon_stm32f401xe.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - gpio - - ble + - bluetooth - i2c - counter - spi diff --git a/boards/96boards/nitrogen/96b_nitrogen.yaml b/boards/96boards/nitrogen/96b_nitrogen.yaml index 43875e92ed92..6031ca936fdb 100644 --- a/boards/96boards/nitrogen/96b_nitrogen.yaml +++ b/boards/96boards/nitrogen/96b_nitrogen.yaml @@ -6,7 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - gpio - i2c - spi diff --git a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840.yaml b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840.yaml index 2f9551d9ae00..3bf3e5227c99 100644 --- a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840.yaml +++ b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - watchdog - counter - feather_serial diff --git a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense.yaml b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense.yaml index b1e358d8ce6d..386f42709de5 100644 --- a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense.yaml +++ b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - watchdog - counter - feather_serial diff --git a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense_uf2.yaml b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense_uf2.yaml index 8033b1a7c270..2e68eff06b73 100644 --- a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense_uf2.yaml +++ b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_sense_uf2.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - watchdog - counter - feather_serial diff --git a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_uf2.yaml b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_uf2.yaml index 968b30bd6d4f..17a1a653dcf7 100644 --- a/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_uf2.yaml +++ b/boards/adafruit/feather_nrf52840/adafruit_feather_nrf52840_nrf52840_uf2.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - watchdog - counter - feather_serial diff --git a/boards/adafruit/itsybitsy/adafruit_itsybitsy_nrf52840.yaml b/boards/adafruit/itsybitsy/adafruit_itsybitsy_nrf52840.yaml index f954fc16b41c..a05eb561a751 100644 --- a/boards/adafruit/itsybitsy/adafruit_itsybitsy_nrf52840.yaml +++ b/boards/adafruit/itsybitsy/adafruit_itsybitsy_nrf52840.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/adi/apard32690/Kconfig.defconfig b/boards/adi/apard32690/Kconfig.defconfig index 9b5a5b1736bb..79b5aec7430c 100644 --- a/boards/adi/apard32690/Kconfig.defconfig +++ b/boards/adi/apard32690/Kconfig.defconfig @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 if BOARD_APARD32690 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_APARD32690 diff --git a/boards/adi/eval_adin1110ebz/Kconfig.defconfig b/boards/adi/eval_adin1110ebz/Kconfig.defconfig index 7da5e531a1fe..d2a1c321c9c9 100644 --- a/boards/adi/eval_adin1110ebz/Kconfig.defconfig +++ b/boards/adi/eval_adin1110ebz/Kconfig.defconfig @@ -11,7 +11,7 @@ configdefault SPI_STM32_DMA config MEMC default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_ADI_EVAL_ADIN1110EBZ diff --git a/boards/adi/eval_adin2111d1z/Kconfig.defconfig b/boards/adi/eval_adin2111d1z/Kconfig.defconfig index ebde4839cda0..f73d0c808323 100644 --- a/boards/adi/eval_adin2111d1z/Kconfig.defconfig +++ b/boards/adi/eval_adin2111d1z/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_ADI_EVAL_ADIN2111D1Z -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if ETH_ADIN2111 diff --git a/boards/adi/eval_adin2111ebz/Kconfig.defconfig b/boards/adi/eval_adin2111ebz/Kconfig.defconfig index 0d8c28362c14..a706aba858ec 100644 --- a/boards/adi/eval_adin2111ebz/Kconfig.defconfig +++ b/boards/adi/eval_adin2111ebz/Kconfig.defconfig @@ -8,7 +8,7 @@ if BOARD_ADI_EVAL_ADIN2111EBZ configdefault SPI_STM32_DMA default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if ETH_ADIN2111 diff --git a/boards/adi/max32655evkit/max32655evkit.dtsi b/boards/adi/max32655evkit/max32655evkit.dtsi index 56f9c215e4ea..2c6a4bc7c0de 100644 --- a/boards/adi/max32655evkit/max32655evkit.dtsi +++ b/boards/adi/max32655evkit/max32655evkit.dtsi @@ -91,13 +91,13 @@ m4_partition: partition@0 { compatible = "zephyr,mapped-partition"; label = "image-m4"; - reg = <0x0 DT_SIZE_K(352)>; + reg = <0x0 DT_SIZE_K(320)>; }; - storage_partition: partition@58000 { + storage_partition: partition@50000 { compatible = "zephyr,mapped-partition"; label = "storage-m4"; - reg = <0x58000 DT_SIZE_K(32)>; + reg = <0x50000 DT_SIZE_K(64)>; }; rv32_partition: partition@60000 { diff --git a/boards/adi/max32655fthr/max32655fthr.dtsi b/boards/adi/max32655fthr/max32655fthr.dtsi index 914b8648bfac..f11ab9d9560b 100644 --- a/boards/adi/max32655fthr/max32655fthr.dtsi +++ b/boards/adi/max32655fthr/max32655fthr.dtsi @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023-2025 Analog Devices, Inc. + * Copyright (c) 2023-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -215,13 +215,13 @@ feather_spi: &spi1 { m4_partition: partition@0 { compatible = "zephyr,mapped-partition"; label = "image-m4"; - reg = <0x0 DT_SIZE_K(352)>; + reg = <0x0 DT_SIZE_K(320)>; }; - storage_partition: partition@58000 { + storage_partition: partition@50000 { compatible = "zephyr,mapped-partition"; label = "storage-m4"; - reg = <0x58000 DT_SIZE_K(32)>; + reg = <0x50000 DT_SIZE_K(64)>; }; rv32_partition: partition@60000 { diff --git a/boards/adi/max32662evkit/max32662evkit.dts b/boards/adi/max32662evkit/max32662evkit.dts index 44300b625b0e..761f298f19ff 100644 --- a/boards/adi/max32662evkit/max32662evkit.dts +++ b/boards/adi/max32662evkit/max32662evkit.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -17,6 +17,7 @@ compatible = "adi,max32662evkit"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram2; @@ -159,3 +160,23 @@ pinctrl-0 = <&can0b_tx_p0_16 &can0b_rx_p0_15>; pinctrl-names = "default"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(192)>; + read-only; + }; + + storage_partition: partition@30000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x30000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32662evkit/max32662evkit_defconfig b/boards/adi/max32662evkit/max32662evkit_defconfig index 38ffe5e0e7a2..98be802336b3 100644 --- a/boards/adi/max32662evkit/max32662evkit_defconfig +++ b/boards/adi/max32662evkit/max32662evkit_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts index 918c1718e07a..cc1fc71e3787 100644 --- a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -8,6 +8,7 @@ / { chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart1; zephyr,shell-uart = &uart1; zephyr,sram = &sram4; @@ -90,6 +91,26 @@ zephyr_udc0: &usbhs { status = "okay"; }; +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(448)>; + read-only; + }; + + storage_partition: partition@70000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x70000 DT_SIZE_K(64)>; + }; + }; +}; + /* Ensure we don't attempt to access flash instance used by CPU1 */ &flash1 { status = "disabled"; diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig index a97eac06f2a7..b52f14c25f77 100644 --- a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # enable uart driver CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu1.dts b/boards/adi/max32666evkit/max32666evkit_max32666_cpu1.dts index 88f19f08e662..e56019303dee 100644 --- a/boards/adi/max32666evkit/max32666evkit_max32666_cpu1.dts +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu1.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ }; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram5; @@ -40,3 +41,23 @@ parity = "none"; status = "okay"; }; + +&flash1 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(448)>; + read-only; + }; + + storage_partition: partition@70000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x70000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu1_defconfig b/boards/adi/max32666evkit/max32666evkit_max32666_cpu1_defconfig index 1a3a3add9049..7ee6c95d38a7 100644 --- a/boards/adi/max32666evkit/max32666evkit_max32666_cpu1_defconfig +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu1_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART driver CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32666fthr/max32666fthr_max32666_cpu0.dts b/boards/adi/max32666fthr/max32666fthr_max32666_cpu0.dts index 5e2ae221badc..ac694b407d74 100644 --- a/boards/adi/max32666fthr/max32666fthr_max32666_cpu0.dts +++ b/boards/adi/max32666fthr/max32666fthr_max32666_cpu0.dts @@ -16,6 +16,7 @@ compatible = "adi,max32666fthr"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart1; zephyr,shell-uart = &uart1; zephyr,sram = &sram4; @@ -201,3 +202,23 @@ feather_i2c: &i2c0 { zephyr_udc0: &usbhs { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(448)>; + read-only; + }; + + storage_partition: partition@70000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x70000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32666fthr/max32666fthr_max32666_cpu0_defconfig b/boards/adi/max32666fthr/max32666fthr_max32666_cpu0_defconfig index b118723e8403..cc4d15283ed1 100644 --- a/boards/adi/max32666fthr/max32666fthr_max32666_cpu0_defconfig +++ b/boards/adi/max32666fthr/max32666fthr_max32666_cpu0_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2023-2024 Analog Devices, Inc. +# Copyright (c) 2023-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # enable uart driver CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32670evkit/max32670evkit.dts b/boards/adi/max32670evkit/max32670evkit.dts index e6fa83a721bc..28dabe601615 100644 --- a/boards/adi/max32670evkit/max32670evkit.dts +++ b/boards/adi/max32670evkit/max32670evkit.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ compatible = "adi,max32670evkit"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram3; @@ -110,3 +111,23 @@ &rtc_counter { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(320)>; + read-only; + }; + + storage_partition: partition@50000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x50000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32670evkit/max32670evkit_defconfig b/boards/adi/max32670evkit/max32670evkit_defconfig index 38ffe5e0e7a2..98be802336b3 100644 --- a/boards/adi/max32670evkit/max32670evkit_defconfig +++ b/boards/adi/max32670evkit/max32670evkit_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32672evkit/max32672evkit.dts b/boards/adi/max32672evkit/max32672evkit.dts index 36a464bc5364..bd79a3da5ddb 100644 --- a/boards/adi/max32672evkit/max32672evkit.dts +++ b/boards/adi/max32672evkit/max32672evkit.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -17,6 +17,7 @@ compatible = "adi,max32672evkit"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram3; @@ -163,3 +164,23 @@ &rtc_counter { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(960)>; + read-only; + }; + + storage_partition: partition@f0000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0xf0000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32672evkit/max32672evkit_defconfig b/boards/adi/max32672evkit/max32672evkit_defconfig index 38ffe5e0e7a2..98be802336b3 100644 --- a/boards/adi/max32672evkit/max32672evkit_defconfig +++ b/boards/adi/max32672evkit/max32672evkit_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32672fthr/max32672fthr.dts b/boards/adi/max32672fthr/max32672fthr.dts index 0ed07af00a13..9137b42eca42 100644 --- a/boards/adi/max32672fthr/max32672fthr.dts +++ b/boards/adi/max32672fthr/max32672fthr.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ compatible = "adi,max32672fthr"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram3; @@ -163,3 +164,23 @@ &rtc_counter { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(960)>; + read-only; + }; + + storage_partition: partition@f0000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0xf0000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32672fthr/max32672fthr_defconfig b/boards/adi/max32672fthr/max32672fthr_defconfig index 38ffe5e0e7a2..98be802336b3 100644 --- a/boards/adi/max32672fthr/max32672fthr_defconfig +++ b/boards/adi/max32672fthr/max32672fthr_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32675evkit/max32675evkit.dts b/boards/adi/max32675evkit/max32675evkit.dts index c22b3cce2ea7..b1f29f70426b 100644 --- a/boards/adi/max32675evkit/max32675evkit.dts +++ b/boards/adi/max32675evkit/max32675evkit.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ compatible = "adi,max32675evkit"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram3; @@ -108,3 +109,23 @@ &wdt0 { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(320)>; + read-only; + }; + + storage_partition: partition@50000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x50000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32675evkit/max32675evkit_defconfig b/boards/adi/max32675evkit/max32675evkit_defconfig index 38ffe5e0e7a2..98be802336b3 100644 --- a/boards/adi/max32675evkit/max32675evkit_defconfig +++ b/boards/adi/max32675evkit/max32675evkit_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32680evkit/max32680evkit_max32680_m4.dts b/boards/adi/max32680evkit/max32680evkit_max32680_m4.dts index 7214a8f90ff2..257f73ec5e8c 100644 --- a/boards/adi/max32680evkit/max32680evkit_max32680_m4.dts +++ b/boards/adi/max32680evkit/max32680evkit_max32680_m4.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Analog Devices, Inc. + * Copyright (c) 2024-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -17,6 +17,7 @@ compatible = "adi,max32680evkit"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart1; zephyr,shell-uart = &uart1; zephyr,sram = &sram2; @@ -185,3 +186,23 @@ &rtc_counter { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + reg = <0x0 DT_SIZE_K(448)>; + read-only; + }; + + storage_partition: partition@70000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x70000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32680evkit/max32680evkit_max32680_m4_defconfig b/boards/adi/max32680evkit/max32680evkit_max32680_m4_defconfig index 38ffe5e0e7a2..98be802336b3 100644 --- a/boards/adi/max32680evkit/max32680evkit_max32680_m4_defconfig +++ b/boards/adi/max32680evkit/max32680evkit_max32680_m4_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Analog Devices, Inc. +# Copyright (c) 2024-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max32690evkit/max32690evkit.dtsi b/boards/adi/max32690evkit/max32690evkit.dtsi index cf0d3c8e59c5..07684d17a248 100644 --- a/boards/adi/max32690evkit/max32690evkit.dtsi +++ b/boards/adi/max32690evkit/max32690evkit.dtsi @@ -103,13 +103,13 @@ m4_partition: partition@0 { compatible = "zephyr,mapped-partition"; label = "image-m4"; - reg = <0x0 DT_SIZE_M(1)>; + reg = <0x0 DT_SIZE_K(3008)>; }; - storage_partition: partition@100000 { + storage_partition: partition@2f0000 { compatible = "zephyr,mapped-partition"; label = "storage"; - reg = <0x100000 DT_SIZE_K(64)>; + reg = <0x2f0000 DT_SIZE_K(64)>; }; }; }; diff --git a/boards/adi/max32690fthr/max32690fthr_max32690_m4.dts b/boards/adi/max32690fthr/max32690fthr_max32690_m4.dts index 3a49a149ec64..0389e47b490a 100644 --- a/boards/adi/max32690fthr/max32690fthr_max32690_m4.dts +++ b/boards/adi/max32690fthr/max32690fthr_max32690_m4.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023-2024 Analog Devices, Inc. + * Copyright (c) 2023-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ compatible = "adi,max32690fthr"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram0; @@ -149,3 +150,23 @@ feather_spi: &spi0 { zephyr_udc0: &usbhs { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + label = "image-m4"; + reg = <0x0 DT_SIZE_K(3008)>; + }; + + storage_partition: partition@2f0000 { + compatible = "zephyr,mapped-partition"; + label = "storage"; + reg = <0x2f0000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max32690fthr/max32690fthr_max32690_m4_defconfig b/boards/adi/max32690fthr/max32690fthr_max32690_m4_defconfig index 516300c7db0d..3ccf4b0d3762 100644 --- a/boards/adi/max32690fthr/max32690fthr_max32690_m4_defconfig +++ b/boards/adi/max32690fthr/max32690fthr_max32690_m4_defconfig @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max78000evkit/max78000evkit_max78000_m4.dts b/boards/adi/max78000evkit/max78000evkit_max78000_m4.dts index 8f8ec6f463d6..748fd925d727 100644 --- a/boards/adi/max78000evkit/max78000evkit_max78000_m4.dts +++ b/boards/adi/max78000evkit/max78000evkit_max78000_m4.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2025 Analog Devices, Inc. + * Copyright (c) 2025-2026 Analog Devices, Inc. * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ compatible = "adi,max78000evkit"; chosen { + zephyr,code-partition = &code_partition; zephyr,console = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram2; @@ -134,3 +135,23 @@ &rtc_counter { status = "okay"; }; + +&flash0 { + partitions { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + code_partition: partition@0 { + compatible = "zephyr,mapped-partition"; + label = "image-m4"; + reg = <0x0 DT_SIZE_K(448)>; + }; + + storage_partition: partition@70000 { + compatible = "zephyr,mapped-partition"; + label = "storage-m4"; + reg = <0x70000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/adi/max78000evkit/max78000evkit_max78000_m4_defconfig b/boards/adi/max78000evkit/max78000evkit_max78000_m4_defconfig index 9428e5334a08..c7bb5bebcf09 100644 --- a/boards/adi/max78000evkit/max78000evkit_max78000_m4_defconfig +++ b/boards/adi/max78000evkit/max78000evkit_max78000_m4_defconfig @@ -1,4 +1,4 @@ -# Copyright (c) 2025 Analog Devices, Inc. +# Copyright (c) 2025-2026 Analog Devices, Inc. # SPDX-License-Identifier: Apache-2.0 # Enable MPU @@ -14,3 +14,5 @@ CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y + +CONFIG_USE_DT_CODE_PARTITION=y diff --git a/boards/adi/max78000fthr/max78000fthr.dtsi b/boards/adi/max78000fthr/max78000fthr.dtsi index 55d08900ef99..73802b83cd85 100644 --- a/boards/adi/max78000fthr/max78000fthr.dtsi +++ b/boards/adi/max78000fthr/max78000fthr.dtsi @@ -139,25 +139,25 @@ feather_i2c: &i2c1 { m4_partition: partition@0 { compatible = "zephyr,mapped-partition"; label = "image-m4"; - reg = <0x0 DT_SIZE_K(224)>; + reg = <0x0 DT_SIZE_K(256)>; }; - m4_storage_partition: partition@38000 { + m4_storage_partition: partition@40000 { compatible = "zephyr,mapped-partition"; label = "storage-m4"; - reg = <0x38000 DT_SIZE_K(32)>; + reg = <0x40000 DT_SIZE_K(64)>; }; - rv32_partition: partition@40000 { + rv32_partition: partition@50000 { compatible = "zephyr,mapped-partition"; label = "image-rv32"; - reg = <0x40000 DT_SIZE_K(64)>; + reg = <0x50000 DT_SIZE_K(128)>; }; - rv32_storage_partition: partition@50000 { + rv32_storage_partition: partition@70000 { compatible = "zephyr,mapped-partition"; label = "storage-rv32"; - reg = <0x50000 DT_SIZE_K(32)>; + reg = <0x70000 DT_SIZE_K(64)>; }; }; }; diff --git a/boards/adi/max78002evkit/max78002evkit.dtsi b/boards/adi/max78002evkit/max78002evkit.dtsi index 548e6bde174c..42cf00759a9d 100644 --- a/boards/adi/max78002evkit/max78002evkit.dtsi +++ b/boards/adi/max78002evkit/max78002evkit.dtsi @@ -153,25 +153,25 @@ m4_uart: &uart0 {}; m4_partition: partition@0 { compatible = "zephyr,mapped-partition"; label = "image-m4"; - reg = <0x0 DT_SIZE_M(1)>; + reg = <0x0 DT_SIZE_K(1216)>; }; - m4_storage_partition: partition@100000 { + m4_storage_partition: partition@130000 { compatible = "zephyr,mapped-partition"; label = "storage-m4"; - reg = <0x100000 DT_SIZE_K(256)>; + reg = <0x130000 DT_SIZE_K(64)>; }; rv32_partition: partition@140000 { compatible = "zephyr,mapped-partition"; label = "image-rv32"; - reg = <0x140000 DT_SIZE_M(1)>; + reg = <0x140000 DT_SIZE_K(1216)>; }; - rv32_storage_partition: partition@240000 { + rv32_storage_partition: partition@270000 { compatible = "zephyr,mapped-partition"; label = "storage-rv32"; - reg = <0x240000 DT_SIZE_K(256)>; + reg = <0x270000 DT_SIZE_K(64)>; }; }; }; diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak-pinctrl.dtsi b/boards/alif/ensemble_e8_ak/ensemble_e8_ak-pinctrl.dtsi index 0058052b2cce..764a864e9c44 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak-pinctrl.dtsi +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak-pinctrl.dtsi @@ -27,4 +27,32 @@ pinmux = ; }; }; + + pinctrl_gpio7: pinctrl_gpio7 { + group0 { + /* Multicolor LED0: green on P7_4 */ + pinmux = ; + }; + }; + + pinctrl_gpio12: pinctrl_gpio12 { + group0 { + /* Multicolor LED0: blue on P12_0, red on P12_3 */ + pinmux = , + ; + }; + }; + + pinctrl_lpgpio: pinctrl_lpgpio { + group0 { + /* Navigation joystick JOY_SW1 to JOY_SW5 on SW2 */ + pinmux = , + , + , + , + ; + input-enable; + bias-pull-up; + }; + }; }; diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.dts b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.dts index d0e235c7a581..55215e138f51 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.dts +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.dts @@ -9,6 +9,7 @@ #include #include #include "ensemble_e8_ak-pinctrl.dtsi" +#include "ensemble_e8_ak_common.dtsi" / { compatible = "alif,ensemble-e8-ak-ae822fa0e5597bs0-apss"; diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.yaml b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.yaml index 29d2750d0eee..9ae19cc1f62e 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.yaml +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_apss.yaml @@ -8,3 +8,5 @@ arch: arm vendor: alif toolchain: - zephyr +supported: + - gpio diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.dts b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.dts index 72c2b7caa8a3..a4b3b45b5f77 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.dts +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.dts @@ -9,6 +9,7 @@ #include #include #include "ensemble_e8_ak-pinctrl.dtsi" +#include "ensemble_e8_ak_common.dtsi" / { compatible = "alif,ensemble-e8-ak-ae822fa0e5597bs0-rtss-he"; diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.yaml b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.yaml index e84199906a68..8687eca0d1e5 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.yaml +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_he.yaml @@ -8,3 +8,5 @@ arch: arm vendor: alif toolchain: - zephyr +supported: + - gpio diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.dts b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.dts index 5851d656fecd..8eb7461b02e5 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.dts +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.dts @@ -9,6 +9,7 @@ #include #include #include "ensemble_e8_ak-pinctrl.dtsi" +#include "ensemble_e8_ak_common.dtsi" / { compatible = "alif,ensemble-e8-ak-ae822fa0e5597bs0-rtss-hp"; diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.yaml b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.yaml index 1add8e50bfcc..4ea05e586a7a 100644 --- a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.yaml +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_ae822fa0e5597bs0_rtss_hp.yaml @@ -8,3 +8,5 @@ arch: arm vendor: alif toolchain: - zephyr +supported: + - gpio diff --git a/boards/alif/ensemble_e8_ak/ensemble_e8_ak_common.dtsi b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_common.dtsi new file mode 100644 index 000000000000..0f6b5e0cfee8 --- /dev/null +++ b/boards/alif/ensemble_e8_ak/ensemble_e8_ak_common.dtsi @@ -0,0 +1,99 @@ +/* + * SPDX-FileCopyrightText: Copyright Alif Semiconductor + * SPDX-License-Identifier: Apache-2.0 + */ + +/* + * On-board peripherals shared by every ensemble_e8_ak board target. Include + * this after the SoC dtsi, the cluster dtsi and the board pinctrl dtsi: every + * node referenced below comes from one of those. + */ + +#include +#include + +/ { + aliases { + led0 = &led_red; + led1 = &led_blue; + led2 = &led_green; + sw0 = &joy_center; + }; + + leds { + compatible = "gpio-leds"; + + led_red: led_0 { + gpios = <&gpio12 3 GPIO_ACTIVE_HIGH>; + label = "LED0_R"; + }; + + led_blue: led_1 { + gpios = <&gpio12 0 GPIO_ACTIVE_HIGH>; + label = "LED0_B"; + }; + + led_green: led_2 { + gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>; + label = "LED0_G"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + /* + * The DesignWare GPIO driver does not implement both + * edge triggering, which the interrupt driven mode of + * the GPIO keys driver needs. + */ + polling-mode; + + joy_left: joy_left { + gpios = <&lpgpio 0 GPIO_ACTIVE_LOW>; + label = "JOY_SW1"; + zephyr,code = ; + }; + + joy_up: joy_up { + gpios = <&lpgpio 1 GPIO_ACTIVE_LOW>; + label = "JOY_SW2"; + zephyr,code = ; + }; + + joy_down: joy_down { + gpios = <&lpgpio 2 GPIO_ACTIVE_LOW>; + label = "JOY_SW3"; + zephyr,code = ; + }; + + joy_right: joy_right { + gpios = <&lpgpio 3 GPIO_ACTIVE_LOW>; + label = "JOY_SW4"; + zephyr,code = ; + }; + + joy_center: joy_center { + gpios = <&lpgpio 4 GPIO_ACTIVE_LOW>; + label = "JOY_SW5"; + zephyr,code = ; + }; + }; +}; + +&gpio7 { + status = "okay"; + pinctrl-0 = <&pinctrl_gpio7>; + pinctrl-names = "default"; +}; + +&gpio12 { + status = "okay"; + pinctrl-0 = <&pinctrl_gpio12>; + pinctrl-names = "default"; +}; + +&lpgpio { + status = "okay"; + pinctrl-0 = <&pinctrl_lpgpio>; + pinctrl-names = "default"; +}; diff --git a/boards/ambiq/apollo4p_blue_kxr_evb/apollo4p_blue_kxr_evb.yaml b/boards/ambiq/apollo4p_blue_kxr_evb/apollo4p_blue_kxr_evb.yaml index 0f938a51b569..e89a19af3587 100644 --- a/boards/ambiq/apollo4p_blue_kxr_evb/apollo4p_blue_kxr_evb.yaml +++ b/boards/ambiq/apollo4p_blue_kxr_evb/apollo4p_blue_kxr_evb.yaml @@ -17,7 +17,7 @@ supported: - i2c - i2c_target - clock_control - - ble + - bluetooth - usbd testing: ignore_tags: diff --git a/boards/antmicro/stm32h7_hdmi_board/Kconfig.defconfig b/boards/antmicro/stm32h7_hdmi_board/Kconfig.defconfig index 86a385e176d7..e96f22f8aa94 100644 --- a/boards/antmicro/stm32h7_hdmi_board/Kconfig.defconfig +++ b/boards/antmicro/stm32h7_hdmi_board/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_STM32H7_HDMI_BOARD -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_STM32H7_HDMI_BOARD diff --git a/boards/antmicro/stm32h7_renode_reference_board/Kconfig.defconfig b/boards/antmicro/stm32h7_renode_reference_board/Kconfig.defconfig index f5616f40ed1e..fcb878979d85 100644 --- a/boards/antmicro/stm32h7_renode_reference_board/Kconfig.defconfig +++ b/boards/antmicro/stm32h7_renode_reference_board/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_STM32H7_RENODE_REFERENCE_BOARD -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_STM32H7_RENODE_REFERENCE_BOARD diff --git a/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev1.yaml b/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev1.yaml index 2169c8e5d234..db9940ab4307 100644 --- a/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev1.yaml +++ b/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev1.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - i2c - pwm - serial diff --git a/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev2.yaml b/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev2.yaml index d17ec02467c3..4a632cfb9550 100644 --- a/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev2.yaml +++ b/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_rev2.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - i2c - pwm - serial diff --git a/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev1.yaml b/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev1.yaml index 996932f0e4a4..71fb4c1474ec 100644 --- a/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev1.yaml +++ b/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev1.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - i2c - pwm - serial diff --git a/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev2.yaml b/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev2.yaml index 63d461c1a845..51c55792e86a 100644 --- a/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev2.yaml +++ b/boards/arduino/nano_33_ble/arduino_nano_33_ble_rev2.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - i2c - pwm - serial diff --git a/boards/arduino/opta/Kconfig.defconfig b/boards/arduino/opta/Kconfig.defconfig index 8d45e008238e..9d9b258231e3 100644 --- a/boards/arduino/opta/Kconfig.defconfig +++ b/boards/arduino/opta/Kconfig.defconfig @@ -4,7 +4,7 @@ if BOARD_ARDUINO_OPTA -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if BOARD_ARDUINO_OPTA_STM32H747XX_M7 diff --git a/boards/arduino/portenta_c33/Kconfig.defconfig b/boards/arduino/portenta_c33/Kconfig.defconfig index 93df7b9bd166..694f076e314c 100644 --- a/boards/arduino/portenta_c33/Kconfig.defconfig +++ b/boards/arduino/portenta_c33/Kconfig.defconfig @@ -6,7 +6,7 @@ if BOARD_ARDUINO_PORTENTA_C33 config USE_DT_CODE_PARTITION default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_ARDUINO_PORTENTA_C33 diff --git a/boards/arduino/portenta_c33/arduino_portenta_c33.dts b/boards/arduino/portenta_c33/arduino_portenta_c33.dts index 7eee4606845f..8a7f4ec42888 100644 --- a/boards/arduino/portenta_c33/arduino_portenta_c33.dts +++ b/boards/arduino/portenta_c33/arduino_portenta_c33.dts @@ -283,17 +283,19 @@ &flash0 { partitions { - compatible = "fixed-partitions"; + ranges; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { + compatible = "zephyr,mapped-partition"; label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(64)>; read-only; }; code_partition: partition@10000 { + compatible = "zephyr,mapped-partition"; label = "image-0"; reg = <0x00010000 (DT_SIZE_M(2) - DT_SIZE_K(64))>; }; diff --git a/boards/arduino/portenta_h7/Kconfig.defconfig b/boards/arduino/portenta_h7/Kconfig.defconfig index c08f0c5edd5c..da10a8d3a66b 100644 --- a/boards/arduino/portenta_h7/Kconfig.defconfig +++ b/boards/arduino/portenta_h7/Kconfig.defconfig @@ -6,7 +6,7 @@ if BOARD_ARDUINO_PORTENTA_H7 configdefault REGULATOR default y if NETWORKING -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if BOARD_ARDUINO_PORTENTA_H7_STM32H747XX_M7 diff --git a/boards/arduino/uno_r4/arduino_uno_r4.dts b/boards/arduino/uno_r4/arduino_uno_r4.dts index 4a08e744d45e..4f4cc46942dc 100644 --- a/boards/arduino/uno_r4/arduino_uno_r4.dts +++ b/boards/arduino/uno_r4/arduino_uno_r4.dts @@ -91,17 +91,19 @@ &flash0 { partitions { - compatible = "fixed-partitions"; + ranges; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { + compatible = "zephyr,mapped-partition"; label = "bootloader"; reg = <0x00000000 0x4000>; read-only; }; code_partition: partition@4000 { + compatible = "zephyr,mapped-partition"; label = "code"; reg = <0x4000 0x3c000>; read-only; diff --git a/boards/arm/v2m_musca_b1/v2m_musca_b1_musca_b1_ns.dts b/boards/arm/v2m_musca_b1/v2m_musca_b1_musca_b1_ns.dts index c8555c54f6ae..73c4a21b5737 100644 --- a/boards/arm/v2m_musca_b1/v2m_musca_b1_musca_b1_ns.dts +++ b/boards/arm/v2m_musca_b1/v2m_musca_b1_musca_b1_ns.dts @@ -45,24 +45,27 @@ /* Embedded flash */ compatible = "soc-nv-flash"; reg = <0x0a000000 DT_SIZE_M(2)>; + ranges = <0x0 0x0a000000 DT_SIZE_M(2)>; erase-block-size = ; write-block-size = <4>; #address-cells = <1>; #size-cells = <1>; partitions { - compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; + ranges; /* Please see the memory layout in: * https://git.trustedfirmware.org/plugins/gitiles/TF-M/trusted-firmware-m.git/+/refs/heads/main/platform/ext/target/arm/musca_b1/partition/flash_layout.h */ slot0_partition: partition@20000 { + compatible = "zephyr,mapped-partition"; reg = <0x20000 DT_SIZE_K(384)>; }; slot0_ns_partition: partition@80000 { + compatible = "zephyr,mapped-partition"; reg = <0x80000 DT_SIZE_K(512)>; }; }; diff --git a/boards/atmel/sam/sam4e_xpro/Kconfig.defconfig b/boards/atmel/sam/sam4e_xpro/Kconfig.defconfig index c12e248e31c3..91123360bcef 100644 --- a/boards/atmel/sam/sam4e_xpro/Kconfig.defconfig +++ b/boards/atmel/sam/sam4e_xpro/Kconfig.defconfig @@ -1,5 +1,5 @@ # Copyright (c) 2024 Gerson Fernando Budke # SPDX-License-Identifier: Apache-2.0 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/atmel/sam/sam_e70_xplained/Kconfig.defconfig b/boards/atmel/sam/sam_e70_xplained/Kconfig.defconfig index a1adf13aa6da..6134a902c58e 100644 --- a/boards/atmel/sam/sam_e70_xplained/Kconfig.defconfig +++ b/boards/atmel/sam/sam_e70_xplained/Kconfig.defconfig @@ -12,5 +12,5 @@ config EEPROM endif # ETH_SAM_GMAC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/atmel/sam/sam_v71_xult/Kconfig.defconfig b/boards/atmel/sam/sam_v71_xult/Kconfig.defconfig index b04317171b55..4e0d13ec6a60 100644 --- a/boards/atmel/sam/sam_v71_xult/Kconfig.defconfig +++ b/boards/atmel/sam/sam_v71_xult/Kconfig.defconfig @@ -13,5 +13,5 @@ config EEPROM endif # ETH_SAM_GMAC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/atmel/sam0/same54_xpro/Kconfig.defconfig b/boards/atmel/sam0/same54_xpro/Kconfig.defconfig index f1beb94d8963..382200a1c893 100644 --- a/boards/atmel/sam0/same54_xpro/Kconfig.defconfig +++ b/boards/atmel/sam0/same54_xpro/Kconfig.defconfig @@ -13,5 +13,5 @@ config EEPROM endif # ETH_SAM_GMAC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/bbc/microbit/bbc_microbit.yaml b/boards/bbc/microbit/bbc_microbit.yaml index 521c111f2b89..4df72153beb5 100644 --- a/boards/bbc/microbit/bbc_microbit.yaml +++ b/boards/bbc/microbit/bbc_microbit.yaml @@ -10,7 +10,7 @@ testing: ignore_tags: - net supported: - - ble + - bluetooth - i2c - gpio - pwm diff --git a/boards/bbc/microbit_v2/bbc_microbit_v2.yaml b/boards/bbc/microbit_v2/bbc_microbit_v2.yaml index 81928e2c1eda..2fd71788caaa 100644 --- a/boards/bbc/microbit_v2/bbc_microbit_v2.yaml +++ b/boards/bbc/microbit_v2/bbc_microbit_v2.yaml @@ -10,6 +10,6 @@ testing: ignore_tags: - net supported: - - ble + - bluetooth - i2c - gpio diff --git a/boards/bcdevices/plt_demo_v2/blueclover_plt_demo_v2_nrf52832.yaml b/boards/bcdevices/plt_demo_v2/blueclover_plt_demo_v2_nrf52832.yaml index 74fa69a1cba0..ec730d947462 100644 --- a/boards/bcdevices/plt_demo_v2/blueclover_plt_demo_v2_nrf52832.yaml +++ b/boards/bcdevices/plt_demo_v2/blueclover_plt_demo_v2_nrf52832.yaml @@ -9,7 +9,7 @@ toolchain: ram: 64 flash: 512 supported: - - ble + - bluetooth - counter - nvs - i2c diff --git a/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.dts b/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.dts index 6951f5072a1f..8ed83c4c166e 100644 --- a/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.dts +++ b/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.dts @@ -21,6 +21,7 @@ sw0 = &button0; watchdog0 = &wdt0; counter = &counterg0; + rtc = &rtc; }; chosen { @@ -28,6 +29,7 @@ zephyr,flash = &flash0; zephyr,console = &uart0; zephyr,entropy = &trng; + zephyr,rtc = &rtc; }; gpio_keys { @@ -93,3 +95,7 @@ &counterg0 { status = "okay"; }; + +&rtc { + status = "okay"; +}; diff --git a/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.yaml b/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.yaml index 554d936598fa..b5466832ee7f 100644 --- a/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.yaml +++ b/boards/beagle/beagleconnect_zepto/beagleconnect_zepto.yaml @@ -21,3 +21,4 @@ supported: - watchdog - counter - gpio + - rtc diff --git a/boards/bytesatwork/bytesensi_l/bytesensi_l.yaml b/boards/bytesatwork/bytesensi_l/bytesensi_l.yaml index 362508e67a2f..37fe2ace4791 100644 --- a/boards/bytesatwork/bytesensi_l/bytesensi_l.yaml +++ b/boards/bytesatwork/bytesensi_l/bytesensi_l.yaml @@ -10,7 +10,7 @@ toolchain: ram: 64 flash: 512 supported: - - ble + - bluetooth - gpio - i2c - lora diff --git a/boards/coredevices/p2d/p2d.yaml b/boards/coredevices/p2d/p2d.yaml index 3f530c506e67..f08e553265e9 100644 --- a/boards/coredevices/p2d/p2d.yaml +++ b/boards/coredevices/p2d/p2d.yaml @@ -11,7 +11,7 @@ toolchain: ram: 256 flash: 1024 supported: - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/croxel/croxel_cx1825/croxel_cx1825_nrf52840.yaml b/boards/croxel/croxel_cx1825/croxel_cx1825_nrf52840.yaml index 3eef0741d5af..57fae08e086e 100644 --- a/boards/croxel/croxel_cx1825/croxel_cx1825_nrf52840.yaml +++ b/boards/croxel/croxel_cx1825/croxel_cx1825_nrf52840.yaml @@ -8,7 +8,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/ct/ctcc/ctcc_nrf52840.yaml b/boards/ct/ctcc/ctcc_nrf52840.yaml index 6ca082d8d276..087b968ac7c4 100644 --- a/boards/ct/ctcc/ctcc_nrf52840.yaml +++ b/boards/ct/ctcc/ctcc_nrf52840.yaml @@ -6,7 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - gpio - usbd - watchdog diff --git a/boards/deprecated.cmake b/boards/deprecated.cmake index 22027e7133fb..60dad11d71a4 100644 --- a/boards/deprecated.cmake +++ b/boards/deprecated.cmake @@ -13,39 +13,6 @@ # https://docs.zephyrproject.org/latest/develop/api/api_lifecycle.html#deprecated, # so these aliases are eventually removed -set(arduino_uno_r4_minima_DEPRECATED - arduino_uno_r4@minima -) -set(arduino_uno_r4_wifi_DEPRECATED - arduino_uno_r4@wifi -) -set(esp32c6_devkitc_DEPRECATED - esp32c6_devkitc/esp32c6/hpcore -) -set(neorv32_DEPRECATED - neorv32/neorv32/up5kdemo -) -set(panb511evb_DEPRECATED - panb611evb -) -set(xiao_esp32c6_DEPRECATED - xiao_esp32c6/esp32c6/hpcore -) -set(esp32_devkitc_wroom/esp32/procpu_DEPRECATED - esp32_devkitc/esp32/procpu -) -set(esp32_devkitc_wrover/esp32/procpu_DEPRECATED - esp32_devkitc/esp32/procpu -) -set(esp32_devkitc_wroom/esp32/appcpu_DEPRECATED - esp32_devkitc/esp32/appcpu -) -set(esp32_devkitc_wrover/esp32/appcpu_DEPRECATED - esp32_devkitc/esp32/appcpu -) -set(scobc_module1_DEPRECATED - scobc_a1 -) set(fvp_base_revc_2xaemv8a_DEPRECATED fvp_base_revc_2xaem/v8a ) diff --git a/boards/electronut/nrf52840_blip/doc/index.rst b/boards/electronut/nrf52840_blip/doc/index.rst index 376412e4d407..d1bbad0c952a 100644 --- a/boards/electronut/nrf52840_blip/doc/index.rst +++ b/boards/electronut/nrf52840_blip/doc/index.rst @@ -120,10 +120,11 @@ Debugging ========= Debug and attach configurations are available using Black Magic Probe, and -``ninja debug``, or ``ninja attach`` (or with ``make``) are available. +``west debug`` and ``west attach`` are available. -NOTE: You may need to press the reset button once after using ``ninja flash`` -to start executing the code. (not required with ``debug`` or ``attach``) +NOTE: You may need to press the reset button once after using ``west flash`` +to start executing the code. (not required with ``west debug`` or +``west attach``) Testing the LEDs and buttons in the nRF52840 PDK diff --git a/boards/electronut/nrf52840_blip/nrf52840_blip.yaml b/boards/electronut/nrf52840_blip/nrf52840_blip.yaml index 975f1b831edf..17f2013cc3e7 100644 --- a/boards/electronut/nrf52840_blip/nrf52840_blip.yaml +++ b/boards/electronut/nrf52840_blip/nrf52840_blip.yaml @@ -9,5 +9,5 @@ supported: - adc - i2c - usb_device - - ble + - bluetooth vendor: electronutlabs diff --git a/boards/electronut/nrf52840_papyr/doc/nrf52840_papyr.rst b/boards/electronut/nrf52840_papyr/doc/nrf52840_papyr.rst index f674496b0218..806f1e1754d6 100644 --- a/boards/electronut/nrf52840_papyr/doc/nrf52840_papyr.rst +++ b/boards/electronut/nrf52840_papyr/doc/nrf52840_papyr.rst @@ -132,10 +132,11 @@ Debugging ========= Debug and attach configurations are available using Black Magic Probe, and -``ninja debug``, or ``ninja attach`` (or with ``make``) are available. +``west debug`` and ``west attach`` are available. -NOTE: You may need to press the reset button once after using ``ninja flash`` -to start executing the code. (not required with ``debug`` or ``attach``) +NOTE: You may need to press the reset button once after using ``west flash`` +to start executing the code. (not required with ``west debug`` or +``west attach``) References ********** diff --git a/boards/electronut/nrf52840_papyr/nrf52840_papyr.yaml b/boards/electronut/nrf52840_papyr/nrf52840_papyr.yaml index 1c743016802e..87d2707df7ec 100644 --- a/boards/electronut/nrf52840_papyr/nrf52840_papyr.yaml +++ b/boards/electronut/nrf52840_papyr/nrf52840_papyr.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usb_device - - ble + - bluetooth - pwm - watchdog vendor: electronutlabs diff --git a/boards/emtrion/emsbc_neon_cm7/Kconfig.defconfig b/boards/emtrion/emsbc_neon_cm7/Kconfig.defconfig index e8666955a8ec..f01cf72f10d3 100644 --- a/boards/emtrion/emsbc_neon_cm7/Kconfig.defconfig +++ b/boards/emtrion/emsbc_neon_cm7/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_EMSBC_NEON_CM7 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault EEPROM diff --git a/boards/enjoydigital/litex_vexriscv/Kconfig.defconfig b/boards/enjoydigital/litex_vexriscv/Kconfig.defconfig index bfee17812923..d4070b0db4bd 100644 --- a/boards/enjoydigital/litex_vexriscv/Kconfig.defconfig +++ b/boards/enjoydigital/litex_vexriscv/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_LITEX_VEXRISCV -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_LITEX_VEXRISCV diff --git a/boards/espressif/common/soc-esp32c61-features.rst b/boards/espressif/common/soc-esp32c61-features.rst new file mode 100644 index 000000000000..0b8a8015fd83 --- /dev/null +++ b/boards/espressif/common/soc-esp32c61-features.rst @@ -0,0 +1,60 @@ +:orphan: + +.. espressif-soc-esp32c61-features + +ESP32-C61 Features +================== + +ESP32-C61 is a low-cost SoC integrating 2.4 GHz Wi-Fi 6 and Bluetooth 5 (LE) +with reliable security features. It consists of a high-performance 32-bit +RISC-V processor, which can be clocked up to 160 MHz. It has a 256KB ROM, +a 320KB SRAM, and works with external flash. + +ESP32-C61 includes the following features: + +- 32-bit core RISC-V microcontroller with a clock speed of up to 160 MHz +- 320 KB of internal RAM +- Wi-Fi 802.11ax 2.4GHz +- Fully compatible with IEEE 802.11b/g/n protocol +- Bluetooth LE: Bluetooth 5 certified +- Internal co-existence mechanism between Wi-Fi and Bluetooth to share the same antenna + +Digital interfaces: + +- 30x GPIOs +- 3x UART +- 1x General purpose SPI +- 1x I2C +- 1x I2S +- 1x USB Serial/JTAG controller +- 1x SDIO 2.0 slave controller +- LED PWM controller, up to 6 channels +- General DMA controller (GDMA), with 2 transmit channels and 2 receive channels +- Event task matrix (ETM) + +Analog interfaces: + +- 1x 12-bit SAR ADC, up to 4 channels +- 1x temperature sensor + +Timers: + +- 1x 52-bit system timer +- 2x 54-bit general-purpose timers +- 3x Watchdog timers + +Low Power: + +- Four power modes designed for typical scenarios: Active, Modem-sleep, Light-sleep, Deep-sleep + +Security: + +- Secure boot +- Flash encryption +- Cryptographic hardware acceleration: (ECC, ECDSA, SHA) +- Random number generator (RNG) + +For more information, check the `ESP32-C61 Datasheet`_ or the `ESP32-C61 Technical Reference Manual`_. + +.. _`ESP32-C61 Datasheet`: https://www.espressif.com/sites/default/files/documentation/esp32-c61_datasheet_en.pdf +.. _`ESP32-C61 Technical Reference Manual`: https://espressif.com/sites/default/files/documentation/esp32-c61_technical_reference_manual_en.pdf diff --git a/boards/espressif/esp32_ethernet_kit/Kconfig.defconfig b/boards/espressif/esp32_ethernet_kit/Kconfig.defconfig index 84079f77ea5b..44a28744323c 100644 --- a/boards/espressif/esp32_ethernet_kit/Kconfig.defconfig +++ b/boards/espressif/esp32_ethernet_kit/Kconfig.defconfig @@ -12,7 +12,7 @@ choice SPIRAM_TYPE default SPIRAM_TYPE_ESPPSRAM64 endchoice -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_ESP32_ETHERNET_KIT_ESP32_PROCPU diff --git a/boards/espressif/esp32c61_devkitc/Kconfig b/boards/espressif/esp32c61_devkitc/Kconfig new file mode 100644 index 000000000000..c62a3277be50 --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/Kconfig @@ -0,0 +1,6 @@ +# Copyright (c) 2026 Espressif Systems (Shanghai) Co., Ltd. +# SPDX-License-Identifier: Apache-2.0 + +config HEAP_MEM_POOL_ADD_SIZE_BOARD + int + default 4096 if BOARD_ESP32C61_DEVKITC diff --git a/boards/espressif/esp32c61_devkitc/Kconfig.esp32c61_devkitc b/boards/espressif/esp32c61_devkitc/Kconfig.esp32c61_devkitc new file mode 100644 index 000000000000..e9ca81db8f28 --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/Kconfig.esp32c61_devkitc @@ -0,0 +1,8 @@ +# ESP32C61 devkitc board configuration + +# Copyright (c) 2026 Espressif Systems (Shanghai) Co., Ltd. +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_ESP32C61_DEVKITC + select SOC_ESP32C61 + select SOC_ESP32C61_REV_1_0 diff --git a/boards/espressif/esp32c61_devkitc/Kconfig.sysbuild b/boards/espressif/esp32c61_devkitc/Kconfig.sysbuild new file mode 100644 index 000000000000..dcadf5a982aa --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/Kconfig.sysbuild @@ -0,0 +1,10 @@ +# Copyright (c) 2026 Espressif Systems (Shanghai) Co., Ltd. +# SPDX-License-Identifier: Apache-2.0 + +choice BOOTLOADER + default BOOTLOADER_MCUBOOT +endchoice + +choice BOOT_SIGNATURE_TYPE + default BOOT_SIGNATURE_TYPE_NONE +endchoice diff --git a/boards/espressif/esp32c61_devkitc/board.cmake b/boards/espressif/esp32c61_devkitc/board.cmake new file mode 100644 index 000000000000..2f04d1fe8861 --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/board.cmake @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: Apache-2.0 + +if(NOT "${OPENOCD}" MATCHES "^${ESPRESSIF_TOOLCHAIN_PATH}/.*") + set(OPENOCD OPENOCD-NOTFOUND) +endif() +find_program(OPENOCD openocd PATHS ${ESPRESSIF_TOOLCHAIN_PATH}/openocd-esp32/bin NO_DEFAULT_PATH) + +include(${ZEPHYR_BASE}/boards/common/esp32.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/espressif/esp32c61_devkitc/board.yml b/boards/espressif/esp32c61_devkitc/board.yml new file mode 100644 index 000000000000..81fe4517c6ab --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/board.yml @@ -0,0 +1,6 @@ +board: + name: esp32c61_devkitc + full_name: ESP32-C61-DevKitC + vendor: espressif + socs: + - name: esp32c61 diff --git a/boards/espressif/esp32c61_devkitc/doc/img/esp32c61_devkitc.webp b/boards/espressif/esp32c61_devkitc/doc/img/esp32c61_devkitc.webp new file mode 100644 index 000000000000..069369ff2226 Binary files /dev/null and b/boards/espressif/esp32c61_devkitc/doc/img/esp32c61_devkitc.webp differ diff --git a/boards/espressif/esp32c61_devkitc/doc/index.rst b/boards/espressif/esp32c61_devkitc/doc/index.rst new file mode 100644 index 000000000000..c6108c9c67dd --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/doc/index.rst @@ -0,0 +1,54 @@ +.. zephyr:board:: esp32c61_devkitc + +Overview +******** + +ESP32-C61-DevKitC-1 is an entry-level development board based on ESP32-C61-WROOM-1, +a general-purpose module with an 8 MB SPI flash and 2 MB PSRAM. This board +integrates complete 2.4 GHz Wi-Fi 6 and Bluetooth LE functions. For more +information, check `ESP32-C61-DevKitC-1`_. + +Hardware +******** + +Most of the I/O pins are broken out to the pin headers on both sides for easy +interfacing. Developers can either connect peripherals with jumper wires or mount +ESP32-C61-DevKitC-1 on a breadboard. + +.. include:: ../../../espressif/common/soc-esp32c61-features.rst + :start-after: espressif-soc-esp32c61-features + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +System Requirements +******************* + +.. include:: ../../../espressif/common/system-requirements.rst + :start-after: espressif-system-requirements + +Programming and Debugging +************************* + +.. zephyr:board-supported-runners:: + +.. include:: ../../../espressif/common/building-flashing.rst + :start-after: espressif-building-flashing + +.. include:: ../../../espressif/common/board-variants.rst + :start-after: espressif-board-variants + +Debugging +========= + +.. include:: ../../../espressif/common/openocd-debugging.rst + :start-after: espressif-openocd-debugging + +References +********** + +.. target-notes:: + +.. _`ESP32-C61-DevKitC-1`: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c61/esp32-c61-devkitc-1/user_guide.html diff --git a/boards/espressif/esp32c61_devkitc/esp32c61_devkitc-pinctrl.dtsi b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc-pinctrl.dtsi new file mode 100644 index 000000000000..13801563bf7e --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc-pinctrl.dtsi @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2026 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + uart0_default: uart0_default { + group1 { + pinmux = ; + output-high; + }; + + group2 { + pinmux = ; + bias-pull-up; + }; + }; + + spim2_default: spim2_default { + group1 { + pinmux = , + , + ; + }; + + group2 { + pinmux = ; + output-low; + }; + }; + + i2c0_default: i2c0_default { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; +}; diff --git a/boards/espressif/esp32c61_devkitc/esp32c61_devkitc.dts b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc.dts new file mode 100644 index 000000000000..c0fb4db53980 --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc.dts @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2026 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "esp32c61_devkitc-pinctrl.dtsi" +#include +#include + +/ { + model = "esp32c61_devkitc"; + compatible = "espressif,esp32c61"; + + chosen { + zephyr,sram = &sramhp; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + }; + + aliases { + sw0 = &user_button1; + watchdog0 = &wdt0; + }; + + gpio_keys { + compatible = "gpio-keys"; + + user_button1: button_1 { + label = "User SW1"; + gpios = <&gpio0 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + }; +}; + +&uart0 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&uart0_default>; + pinctrl-names = "default"; +}; + +&trng0 { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + sda-gpios = <&gpio0 22 GPIO_OPEN_DRAIN>; + scl-gpios = <&gpio0 23 GPIO_OPEN_DRAIN>; + pinctrl-0 = <&i2c0_default>; + pinctrl-names = "default"; +}; + +&spi2 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + pinctrl-0 = <&spim2_default>; + pinctrl-names = "default"; +}; + +&gpio0 { + status = "okay"; +}; + +&wdt0 { + status = "okay"; +}; diff --git a/boards/espressif/esp32c61_devkitc/esp32c61_devkitc.yaml b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc.yaml new file mode 100644 index 000000000000..0a67ea42772b --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc.yaml @@ -0,0 +1,18 @@ +identifier: esp32c61_devkitc +name: ESP32-C61-DevKitC +vendor: espressif +type: mcu +arch: riscv +toolchain: + - zephyr +supported: + - adc + - counter + - gpio + - watchdog + - uart + - spi + - i2c + - dma + - entropy + - pwm diff --git a/boards/espressif/esp32c61_devkitc/esp32c61_devkitc_defconfig b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc_defconfig new file mode 100644 index 000000000000..187793c76e8c --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/esp32c61_devkitc_defconfig @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_UART_CONSOLE=y +CONFIG_GPIO=y diff --git a/boards/espressif/esp32c61_devkitc/support/openocd.cfg b/boards/espressif/esp32c61_devkitc/support/openocd.cfg new file mode 100644 index 000000000000..6de31c38471e --- /dev/null +++ b/boards/espressif/esp32c61_devkitc/support/openocd.cfg @@ -0,0 +1,4 @@ +# ESP32C61 has built-in JTAG interface over USB port. +set ESP_RTOS Zephyr + +source [find board/esp32c61-builtin.cfg] diff --git a/boards/espressif/esp32p4_function_ev_board/Kconfig.defconfig b/boards/espressif/esp32p4_function_ev_board/Kconfig.defconfig index 7174039f7038..7ec4b080c9df 100644 --- a/boards/espressif/esp32p4_function_ev_board/Kconfig.defconfig +++ b/boards/espressif/esp32p4_function_ev_board/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_ESP32P4_FUNCTION_EV_BOARD_ESP32P4_HPCORE -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_ESP32P4_FUNCTION_EV_BOARD_ESP32P4_HPCORE diff --git a/boards/espressif/esp32p4x_function_ev_board/Kconfig.defconfig b/boards/espressif/esp32p4x_function_ev_board/Kconfig.defconfig index 4a5d50b8cbd0..9ffc4c2721c4 100644 --- a/boards/espressif/esp32p4x_function_ev_board/Kconfig.defconfig +++ b/boards/espressif/esp32p4x_function_ev_board/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_ESP32P4X_FUNCTION_EV_BOARD_ESP32P4_HPCORE -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_ESP32P4X_FUNCTION_EV_BOARD_ESP32P4_HPCORE diff --git a/boards/ezurio/bl653_dvk/bl653_dvk.yaml b/boards/ezurio/bl653_dvk/bl653_dvk.yaml index 24a17bc8c777..a4f6faca0047 100644 --- a/boards/ezurio/bl653_dvk/bl653_dvk.yaml +++ b/boards/ezurio/bl653_dvk/bl653_dvk.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usb_device - - ble + - bluetooth - pwm - watchdog - gpio diff --git a/boards/ezurio/bl654_dvk/bl654_dvk.yaml b/boards/ezurio/bl654_dvk/bl654_dvk.yaml index c43d8f4328aa..7df5cc38245f 100644 --- a/boards/ezurio/bl654_dvk/bl654_dvk.yaml +++ b/boards/ezurio/bl654_dvk/bl654_dvk.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usb_device - - ble + - bluetooth - pwm - watchdog vendor: ezurio diff --git a/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.yaml b/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.yaml index d38960a6eedb..5f203cb4329c 100644 --- a/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.yaml +++ b/boards/ezurio/bl654_dvk/bl654_dvk_nrf52840_pa.yaml @@ -8,7 +8,7 @@ toolchain: supported: - adc - usb_device - - ble + - bluetooth - pwm - watchdog vendor: ezurio diff --git a/boards/ezurio/bl654_sensor_board/bl654_sensor_board.yaml b/boards/ezurio/bl654_sensor_board/bl654_sensor_board.yaml index 0dce5bbbe46c..19c82b0bfe49 100644 --- a/boards/ezurio/bl654_sensor_board/bl654_sensor_board.yaml +++ b/boards/ezurio/bl654_sensor_board/bl654_sensor_board.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/ezurio/bl654_usb/bl654_usb.yaml b/boards/ezurio/bl654_usb/bl654_usb.yaml index 4551f47dd61b..406b5036ca7b 100644 --- a/boards/ezurio/bl654_usb/bl654_usb.yaml +++ b/boards/ezurio/bl654_usb/bl654_usb.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - usbd - - ble + - bluetooth - pwm - watchdog - counter diff --git a/boards/ezurio/bl654_usb/bl654_usb_nrf52840_bare.yaml b/boards/ezurio/bl654_usb/bl654_usb_nrf52840_bare.yaml index e3bd3adcc9f6..74d61888d9c8 100644 --- a/boards/ezurio/bl654_usb/bl654_usb_nrf52840_bare.yaml +++ b/boards/ezurio/bl654_usb/bl654_usb_nrf52840_bare.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - usbd - - ble + - bluetooth - pwm - watchdog - counter diff --git a/boards/ezurio/bt510/bt510.yaml b/boards/ezurio/bt510/bt510.yaml index f13cd759f427..d3b260643814 100644 --- a/boards/ezurio/bt510/bt510.yaml +++ b/boards/ezurio/bt510/bt510.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - pwm - watchdog - i2c diff --git a/boards/ezurio/bt510/doc/bt510.rst b/boards/ezurio/bt510/doc/bt510.rst index 74b4c48703cf..bcbda798433f 100644 --- a/boards/ezurio/bt510/doc/bt510.rst +++ b/boards/ezurio/bt510/doc/bt510.rst @@ -146,7 +146,7 @@ Then build and flash applications as usual (see :ref:`build_an_application` and .. code-block:: console - $ ninja flash + $ west flash Here is an example for the :zephyr:code-sample:`hello_world` application. diff --git a/boards/ezurio/bt610/bt610.yaml b/boards/ezurio/bt610/bt610.yaml index c56ec7587361..44a7d4545923 100644 --- a/boards/ezurio/bt610/bt610.yaml +++ b/boards/ezurio/bt610/bt610.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - gpio - i2c - pwm diff --git a/boards/ezurio/mg100/mg100.yaml b/boards/ezurio/mg100/mg100.yaml index bbfd5f81bc71..6462d9a4c7fe 100644 --- a/boards/ezurio/mg100/mg100.yaml +++ b/boards/ezurio/mg100/mg100.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/ezurio/pinnacle_100_dvk/pinnacle_100_dvk.yaml b/boards/ezurio/pinnacle_100_dvk/pinnacle_100_dvk.yaml index 5888bc4febc6..ca4b3baecac8 100644 --- a/boards/ezurio/pinnacle_100_dvk/pinnacle_100_dvk.yaml +++ b/boards/ezurio/pinnacle_100_dvk/pinnacle_100_dvk.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/ezurio/rm1xx_dvk/rm1xx_dvk.yaml b/boards/ezurio/rm1xx_dvk/rm1xx_dvk.yaml index 2dd24375a5b7..1b32d0289df4 100644 --- a/boards/ezurio/rm1xx_dvk/rm1xx_dvk.yaml +++ b/boards/ezurio/rm1xx_dvk/rm1xx_dvk.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb ram: 32 supported: - - ble + - bluetooth - i2c - spi - lora diff --git a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml index 14823a53fcbd..f7418d1a2f3e 100644 --- a/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml +++ b/boards/fobe/quill_nrf52840_mesh/quill_nrf52840_mesh.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - lora diff --git a/boards/heimann/htpa_eval/Kconfig.defconfig b/boards/heimann/htpa_eval/Kconfig.defconfig index 0ab35b1011b6..088f3dabe6c1 100644 --- a/boards/heimann/htpa_eval/Kconfig.defconfig +++ b/boards/heimann/htpa_eval/Kconfig.defconfig @@ -12,7 +12,7 @@ config EEPROM endif # ETH_SAM_GMAC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault MEMC diff --git a/boards/heltec/heltec_t114_v2/heltec_t114_v2.yaml b/boards/heltec/heltec_t114_v2/heltec_t114_v2.yaml index 598971f7da4e..6094ed340600 100644 --- a/boards/heltec/heltec_t114_v2/heltec_t114_v2.yaml +++ b/boards/heltec/heltec_t114_v2/heltec_t114_v2.yaml @@ -10,7 +10,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - pwm - spi - watchdog diff --git a/boards/heltec/heltec_t114_v2/heltec_t114_v2_nrf52840_uf2.yaml b/boards/heltec/heltec_t114_v2/heltec_t114_v2_nrf52840_uf2.yaml index 2f4da84a19ed..abc716162aee 100644 --- a/boards/heltec/heltec_t114_v2/heltec_t114_v2_nrf52840_uf2.yaml +++ b/boards/heltec/heltec_t114_v2/heltec_t114_v2_nrf52840_uf2.yaml @@ -10,7 +10,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - pwm - spi - watchdog diff --git a/boards/holyiot/yj16019/holyiot_yj16019.yaml b/boards/holyiot/yj16019/holyiot_yj16019.yaml index f60d7b319a3e..79017a6b4617 100644 --- a/boards/holyiot/yj16019/holyiot_yj16019.yaml +++ b/boards/holyiot/yj16019/holyiot_yj16019.yaml @@ -6,7 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - pwm - watchdog ram: 64 diff --git a/boards/holyiot/yj17095/holyiot_yj17095.yaml b/boards/holyiot/yj17095/holyiot_yj17095.yaml index 6bd95752d5a1..18e97701ed6c 100644 --- a/boards/holyiot/yj17095/holyiot_yj17095.yaml +++ b/boards/holyiot/yj17095/holyiot_yj17095.yaml @@ -6,7 +6,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - pwm - watchdog ram: 64 diff --git a/boards/infineon/xmc45_relax_kit/Kconfig.defconfig b/boards/infineon/xmc45_relax_kit/Kconfig.defconfig index f74ddcbde10d..bd1a7ab7c439 100644 --- a/boards/infineon/xmc45_relax_kit/Kconfig.defconfig +++ b/boards/infineon/xmc45_relax_kit/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_XMC45_RELAX_KIT -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault TEST_RANDOM_GENERATOR diff --git a/boards/infineon/xmc47_relax_kit/Kconfig.defconfig b/boards/infineon/xmc47_relax_kit/Kconfig.defconfig index f0a2c8371498..bc85297caf3d 100644 --- a/boards/infineon/xmc47_relax_kit/Kconfig.defconfig +++ b/boards/infineon/xmc47_relax_kit/Kconfig.defconfig @@ -4,7 +4,7 @@ if BOARD_XMC47_RELAX_KIT -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y config TEST_RANDOM_GENERATOR diff --git a/boards/intel/socfpga_std/cyclonev_socdk/Kconfig.defconfig b/boards/intel/socfpga_std/cyclonev_socdk/Kconfig.defconfig index 381c3ff5e932..89c07cac5a5c 100644 --- a/boards/intel/socfpga_std/cyclonev_socdk/Kconfig.defconfig +++ b/boards/intel/socfpga_std/cyclonev_socdk/Kconfig.defconfig @@ -13,7 +13,7 @@ config USB_DEVICE_DRIVER default y endif # USB_DEVICE_STACK -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault TEST_RANDOM_GENERATOR diff --git a/boards/intel/socfpga_std/cyclonev_socdk/cyclonev_socdk.dts b/boards/intel/socfpga_std/cyclonev_socdk/cyclonev_socdk.dts index d2d9b65fabe7..1ca0bd903641 100644 --- a/boards/intel/socfpga_std/cyclonev_socdk/cyclonev_socdk.dts +++ b/boards/intel/socfpga_std/cyclonev_socdk/cyclonev_socdk.dts @@ -79,7 +79,7 @@ }; ds3231: rtc@68 { - compatible = "maxim,ds3231"; + compatible = "maxim,ds3231-mfd"; reg = <0x68>; }; }; diff --git a/boards/kws/pico2_spe/Kconfig.defconfig b/boards/kws/pico2_spe/Kconfig.defconfig index d0a2a93b67d9..b775e0b7ac59 100644 --- a/boards/kws/pico2_spe/Kconfig.defconfig +++ b/boards/kws/pico2_spe/Kconfig.defconfig @@ -13,7 +13,7 @@ endif # I2C_DW config USB_SELF_POWERED default n -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if ETH_LAN865X diff --git a/boards/kws/pico_spe/Kconfig.defconfig b/boards/kws/pico_spe/Kconfig.defconfig index 6dbcf53bc7e9..d0479ca1d834 100644 --- a/boards/kws/pico_spe/Kconfig.defconfig +++ b/boards/kws/pico_spe/Kconfig.defconfig @@ -13,7 +13,7 @@ endif # I2C_DW config USB_SELF_POWERED default n -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if ETH_LAN865X diff --git a/boards/makerdiary/nrf52840_mdk/nrf52840_mdk.yaml b/boards/makerdiary/nrf52840_mdk/nrf52840_mdk.yaml index 79d62b2bf329..c637f7476154 100644 --- a/boards/makerdiary/nrf52840_mdk/nrf52840_mdk.yaml +++ b/boards/makerdiary/nrf52840_mdk/nrf52840_mdk.yaml @@ -7,6 +7,6 @@ toolchain: - gnuarmemb supported: - usb_device - - ble + - bluetooth - pwm vendor: makerdiary diff --git a/boards/makerdiary/nrf52840_mdk_usb_dongle/nrf52840_mdk_usb_dongle.yaml b/boards/makerdiary/nrf52840_mdk_usb_dongle/nrf52840_mdk_usb_dongle.yaml index a26119160414..ff2eed97c7b6 100644 --- a/boards/makerdiary/nrf52840_mdk_usb_dongle/nrf52840_mdk_usb_dongle.yaml +++ b/boards/makerdiary/nrf52840_mdk_usb_dongle/nrf52840_mdk_usb_dongle.yaml @@ -9,6 +9,6 @@ toolchain: - gnuarmemb supported: - usbd - - ble + - bluetooth - watchdog - counter diff --git a/boards/microchip/mec_assy6941/doc/index.rst b/boards/microchip/mec_assy6941/doc/index.rst index 05c85ec232c3..6f004ab1d8d3 100644 --- a/boards/microchip/mec_assy6941/doc/index.rst +++ b/boards/microchip/mec_assy6941/doc/index.rst @@ -185,6 +185,15 @@ Configuration options are: 2. 2-pin SWD plus SWO. Connect JP12 jumpers for JTAG_TDO, JTAG_TMS, and JTAG_CLK. JTAG_TDI is available to use as GPIO145. 3. 2-pin SWD only. Connect JP12 jumpers for JTAG_TMS and JTAG_CLK. JTAG_TDI and JTAG_TDO are available as GPIO145 and GPIO146 respectively +User button and LED +------------------- + +The :zephyr:code-sample:`button` sample uses GPIO106 as a user button and GPIO156 +to drive an LED. Configure the following jumpers to route these signals: + + * ``JP19 1-2`` Mux GPIO106 to ``JP71.3`` (button input). + * ``JP149 1-2`` Connect GPIO156 to ``LED7`` (LED output). + Jumper settings for MEC174x/MEC175x 176WFBGA Socket DC Assy 6942 Rev A0p1 ========================================================================= diff --git a/boards/microchip/mec_assy6941/support/mec175x_spi_cfg.txt b/boards/microchip/mec_assy6941/support/mec175x_spi_cfg.txt index b7428492fc6b..a9cb3db1e12f 100644 --- a/boards/microchip/mec_assy6941/support/mec175x_spi_cfg.txt +++ b/boards/microchip/mec_assy6941/support/mec175x_spi_cfg.txt @@ -3,7 +3,7 @@ SPISizeMegabits = 128 [DEVICE] -DeviceSel = A +DeviceSel = B TagAddr0 = 0 TagAddr1 = 0 ; BoardID is used by a Boot-ROM feature named PlatformID. By default PlatformID diff --git a/boards/microchip/pic32c/pic32cz_ca80_cult/pic32cz_ca80_cult.yaml b/boards/microchip/pic32c/pic32cz_ca80_cult/pic32cz_ca80_cult.yaml index f425cf99f05b..daaaf5b46038 100644 --- a/boards/microchip/pic32c/pic32cz_ca80_cult/pic32cz_ca80_cult.yaml +++ b/boards/microchip/pic32c/pic32cz_ca80_cult/pic32cz_ca80_cult.yaml @@ -17,4 +17,5 @@ supported: - i2c - pinctrl - uart + - watchdog vendor: microchip diff --git a/boards/microchip/pic32c/pic32cz_ca90_cult/pic32cz_ca90_cult.yaml b/boards/microchip/pic32c/pic32cz_ca90_cult/pic32cz_ca90_cult.yaml index ba33b885bd89..65881b80770c 100644 --- a/boards/microchip/pic32c/pic32cz_ca90_cult/pic32cz_ca90_cult.yaml +++ b/boards/microchip/pic32c/pic32cz_ca90_cult/pic32cz_ca90_cult.yaml @@ -16,4 +16,5 @@ supported: - i2c - pinctrl - uart + - watchdog vendor: microchip diff --git a/boards/microchip/sam/sam_e54_xpro/Kconfig.defconfig b/boards/microchip/sam/sam_e54_xpro/Kconfig.defconfig index 7789f17deedc..8b9b520b060b 100644 --- a/boards/microchip/sam/sam_e54_xpro/Kconfig.defconfig +++ b/boards/microchip/sam/sam_e54_xpro/Kconfig.defconfig @@ -6,7 +6,7 @@ if BOARD_SAM_E54_XPRO config EEPROM default y if NVMEM -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_SAM_E54_XPRO diff --git a/boards/microchip/sam/sama7d65_curiosity/Kconfig.defconfig b/boards/microchip/sam/sama7d65_curiosity/Kconfig.defconfig index 15ab24fd563c..f973296e4dc1 100644 --- a/boards/microchip/sam/sama7d65_curiosity/Kconfig.defconfig +++ b/boards/microchip/sam/sama7d65_curiosity/Kconfig.defconfig @@ -6,5 +6,5 @@ configdefault EEPROM default y if NVMEM -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/microchip/sam/sama7g54_ek/Kconfig.defconfig b/boards/microchip/sam/sama7g54_ek/Kconfig.defconfig index 4d52258840dc..3782a30d0711 100644 --- a/boards/microchip/sam/sama7g54_ek/Kconfig.defconfig +++ b/boards/microchip/sam/sama7g54_ek/Kconfig.defconfig @@ -6,5 +6,5 @@ configdefault EEPROM default y if NVMEM -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if NETWORKING diff --git a/boards/mikroe/hexiwear/hexiwear_mk64f12.yaml b/boards/mikroe/hexiwear/hexiwear_mk64f12.yaml index 171032e915a7..5c34cdf5183f 100644 --- a/boards/mikroe/hexiwear/hexiwear_mk64f12.yaml +++ b/boards/mikroe/hexiwear/hexiwear_mk64f12.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - flash - gpio - i2c diff --git a/boards/muselab/nano_ch32v317/Kconfig.defconfig b/boards/muselab/nano_ch32v317/Kconfig.defconfig index 161fee80e60e..77ceb751b816 100644 --- a/boards/muselab/nano_ch32v317/Kconfig.defconfig +++ b/boards/muselab/nano_ch32v317/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_NANO_CH32V317 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_NANO_CH32V317 diff --git a/boards/native/native_sim/Kconfig.defconfig b/boards/native/native_sim/Kconfig.defconfig index 26f4480a2fec..9aa4e472ff3a 100644 --- a/boards/native/native_sim/Kconfig.defconfig +++ b/boards/native/native_sim/Kconfig.defconfig @@ -12,7 +12,7 @@ config BUILD_OUTPUT_EXE config OUTPUT_PRINT_MEMORY_USAGE default n -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !NET_LOOPBACK && !NET_TEST configdefault ETH_NATIVE_TAP diff --git a/boards/nordic/nrf21540dk/nrf21540dk_nrf52840.yaml b/boards/nordic/nrf21540dk/nrf21540dk_nrf52840.yaml index d097ead5541a..40ab137669aa 100644 --- a/boards/nordic/nrf21540dk/nrf21540dk_nrf52840.yaml +++ b/boards/nordic/nrf21540dk/nrf21540dk_nrf52840.yaml @@ -11,7 +11,7 @@ supported: - adc - arduino_gpio - arduino_i2c - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/nordic/nrf51dk/nrf51dk_nrf51822.yaml b/boards/nordic/nrf51dk/nrf51dk_nrf51822.yaml index 801aa256adcc..79613715e803 100644 --- a/boards/nordic/nrf51dk/nrf51dk_nrf51822.yaml +++ b/boards/nordic/nrf51dk/nrf51dk_nrf51822.yaml @@ -9,7 +9,7 @@ ram: 32 flash: 256 supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/nordic/nrf51dongle/nrf51dongle_nrf51822.yaml b/boards/nordic/nrf51dongle/nrf51dongle_nrf51822.yaml index 9f87b6282c7f..5c20078cb3a1 100644 --- a/boards/nordic/nrf51dongle/nrf51dongle_nrf51822.yaml +++ b/boards/nordic/nrf51dongle/nrf51dongle_nrf51822.yaml @@ -8,6 +8,6 @@ toolchain: ram: 32 flash: 256 supported: - - ble + - bluetooth - nvs vendor: nordic diff --git a/boards/nordic/nrf52833dk/nrf52833dk_nrf52820.yaml b/boards/nordic/nrf52833dk/nrf52833dk_nrf52820.yaml index 682b6a0c67c6..e0ba9192cf32 100644 --- a/boards/nordic/nrf52833dk/nrf52833dk_nrf52820.yaml +++ b/boards/nordic/nrf52833dk/nrf52833dk_nrf52820.yaml @@ -10,7 +10,7 @@ flash: 256 supported: - usb_device - usbd - - ble + - bluetooth - gpio - watchdog - counter diff --git a/boards/nordic/nrf52833dk/nrf52833dk_nrf52833.yaml b/boards/nordic/nrf52833dk/nrf52833dk_nrf52833.yaml index 93d3744e2fe1..faf9f3e97292 100644 --- a/boards/nordic/nrf52833dk/nrf52833dk_nrf52833.yaml +++ b/boards/nordic/nrf52833dk/nrf52833dk_nrf52833.yaml @@ -14,7 +14,7 @@ supported: - arduino_spi - usb_device - usbd - - ble + - bluetooth - gpio - pwm - watchdog diff --git a/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.yaml b/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.yaml index d257234e7396..e1346f5806f3 100644 --- a/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.yaml +++ b/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.yaml @@ -13,7 +13,7 @@ supported: - arduino_i2c - arduino_serial - arduino_spi - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.yaml b/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.yaml index d12aca5fc52f..dd0bf2b8cbde 100644 --- a/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.yaml +++ b/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.yaml @@ -10,7 +10,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - pwm - spi - watchdog diff --git a/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_bare.yaml b/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_bare.yaml index 7ab56a99e46b..6a5dd58b310e 100644 --- a/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_bare.yaml +++ b/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_bare.yaml @@ -10,7 +10,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - pwm - spi - watchdog diff --git a/boards/nordic/nrf54l15tag/nrf54l15tag_cpuapp_common.dtsi b/boards/nordic/nrf54l15tag/nrf54l15tag_cpuapp_common.dtsi index d33ac1848f79..ca1ca27db707 100644 --- a/boards/nordic/nrf54l15tag/nrf54l15tag_cpuapp_common.dtsi +++ b/boards/nordic/nrf54l15tag/nrf54l15tag_cpuapp_common.dtsi @@ -30,13 +30,13 @@ &lfxo { status = "okay"; load-capacitors = "internal"; - load-capacitance-femtofarad = <9000>; + load-capacitance-femtofarad = <17000>; }; &hfxo { status = "okay"; load-capacitors = "internal"; - load-capacitance-femtofarad = <8000>; + load-capacitance-femtofarad = <15000>; }; &radio { diff --git a/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_14_0.yaml b/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_14_0.yaml index 2219fa3b3a4c..a59bf326de0f 100644 --- a/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_14_0.yaml +++ b/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_14_0.yaml @@ -8,7 +8,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - netif:openthread - gpio vendor: nordic diff --git a/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_7_0.yaml b/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_7_0.yaml index 7613fabaed57..39026d227d03 100644 --- a/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_7_0.yaml +++ b/boards/nordic/nrf9160dk/nrf9160dk_nrf52840_0_7_0.yaml @@ -8,7 +8,7 @@ toolchain: - zephyr - gnuarmemb supported: - - ble + - bluetooth - netif:openthread - gpio vendor: nordic diff --git a/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp.yaml b/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp.yaml index ec7115e8a686..4f04dffc916c 100644 --- a/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp.yaml +++ b/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp.yaml @@ -8,7 +8,6 @@ arch: arm toolchain: - gnuarmemb - zephyr -sysbuild: true ram: 256 flash: 712 supported: @@ -22,3 +21,7 @@ supported: - spi - watchdog - i2s + - netif:modem + - ble +vendor: nordic +sysbuild: true diff --git a/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp_ns.yaml b/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp_ns.yaml index e0e7008b8468..0a300c260bef 100644 --- a/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp_ns.yaml +++ b/boards/nordic/nrf93m1dk/nrf93m1dk_nrf54l15_cpuapp_ns.yaml @@ -19,5 +19,7 @@ supported: - watchdog - adc - i2s + - netif:modem + - ble vendor: nordic sysbuild: true diff --git a/boards/nordic/thingy53/thingy53_nrf5340_cpuapp.yaml b/boards/nordic/thingy53/thingy53_nrf5340_cpuapp.yaml index ea3c467ee0de..3c30e875e8a2 100644 --- a/boards/nordic/thingy53/thingy53_nrf5340_cpuapp.yaml +++ b/boards/nordic/thingy53/thingy53_nrf5340_cpuapp.yaml @@ -8,7 +8,7 @@ toolchain: ram: 448 flash: 1024 supported: - - ble + - bluetooth - gpio - i2c - pwm diff --git a/boards/nucode/nucode_nu32/nucode_nu32_nrf52832.yaml b/boards/nucode/nucode_nu32/nucode_nu32_nrf52832.yaml index 6ab6b4b110c6..c9d1888808c5 100644 --- a/boards/nucode/nucode_nu32/nucode_nu32_nrf52832.yaml +++ b/boards/nucode/nucode_nu32/nucode_nu32_nrf52832.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - nfc diff --git a/boards/nucode/nucode_nu40/nucode_nu40_nrf52840.yaml b/boards/nucode/nucode_nu40/nucode_nu40_nrf52840.yaml index ed7171572822..38108593a28c 100644 --- a/boards/nucode/nucode_nu40/nucode_nu40_nrf52840.yaml +++ b/boards/nucode/nucode_nu40/nucode_nu40_nrf52840.yaml @@ -13,7 +13,7 @@ supported: - arduino_serial - arduino_spi - usbd - - ble + - bluetooth - i2c - pwm - spi diff --git a/boards/nucode/nucode_nu40/nucode_nu40_nrf52840_bare.yaml b/boards/nucode/nucode_nu40/nucode_nu40_nrf52840_bare.yaml index 535fc517f911..4abb9f225b82 100644 --- a/boards/nucode/nucode_nu40/nucode_nu40_nrf52840_bare.yaml +++ b/boards/nucode/nucode_nu40/nucode_nu40_nrf52840_bare.yaml @@ -13,7 +13,7 @@ supported: - arduino_serial - arduino_spi - usbd - - ble + - bluetooth - i2c - pwm - spi diff --git a/boards/nuvoton/numaker_m5531/Kconfig.defconfig b/boards/nuvoton/numaker_m5531/Kconfig.defconfig index 794e911526cf..9e7bfc957c1e 100644 --- a/boards/nuvoton/numaker_m5531/Kconfig.defconfig +++ b/boards/nuvoton/numaker_m5531/Kconfig.defconfig @@ -6,7 +6,7 @@ if BOARD_NUMAKER_M5531 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !MODEM endif # BOARD_NUMAKER_M5531 diff --git a/boards/nuvoton/numaker_m55m1/Kconfig.defconfig b/boards/nuvoton/numaker_m55m1/Kconfig.defconfig index 652b423120f3..a4152a110801 100644 --- a/boards/nuvoton/numaker_m55m1/Kconfig.defconfig +++ b/boards/nuvoton/numaker_m55m1/Kconfig.defconfig @@ -6,7 +6,7 @@ if BOARD_NUMAKER_M55M1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !MODEM endif # BOARD_NUMAKER_M55M1 diff --git a/boards/nuvoton/numaker_pfm_m467/Kconfig.defconfig b/boards/nuvoton/numaker_pfm_m467/Kconfig.defconfig index 514191f46d27..3a87dbf0d92d 100644 --- a/boards/nuvoton/numaker_pfm_m467/Kconfig.defconfig +++ b/boards/nuvoton/numaker_pfm_m467/Kconfig.defconfig @@ -6,7 +6,7 @@ if BOARD_NUMAKER_PFM_M467 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !MODEM endif # BOARD_NUMAKER_PFM_M467 diff --git a/boards/nxp/frdm_imx93/Kconfig.defconfig b/boards/nxp/frdm_imx93/Kconfig.defconfig index 04a10d3bedc7..034ddbae9c03 100644 --- a/boards/nxp/frdm_imx93/Kconfig.defconfig +++ b/boards/nxp/frdm_imx93/Kconfig.defconfig @@ -24,7 +24,7 @@ config CAN_TRANSCEIVER_INIT_PRIORITY endif # CAN -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/frdm_k64f/Kconfig.defconfig b/boards/nxp/frdm_k64f/Kconfig.defconfig index e00466a118c5..769bc9d5bcfd 100644 --- a/boards/nxp/frdm_k64f/Kconfig.defconfig +++ b/boards/nxp/frdm_k64f/Kconfig.defconfig @@ -20,7 +20,7 @@ config MCG_FCRDIV config TEST_EXTRA_STACK_SIZE default 128 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !MODEM endif # BOARD_FRDM_K64F diff --git a/boards/nxp/frdm_mcxe31b/Kconfig.defconfig b/boards/nxp/frdm_mcxe31b/Kconfig.defconfig new file mode 100644 index 000000000000..a098536a9b9a --- /dev/null +++ b/boards/nxp/frdm_mcxe31b/Kconfig.defconfig @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_FRDM_MCXE31B + +configdefault NET_L2_ETHERNET + default y + +endif # BOARD_FRDM_MCXE31B diff --git a/boards/nxp/frdm_mcxe31b/doc/index.rst b/boards/nxp/frdm_mcxe31b/doc/index.rst index 669f26a6ba43..c204c3e0e695 100644 --- a/boards/nxp/frdm_mcxe31b/doc/index.rst +++ b/boards/nxp/frdm_mcxe31b/doc/index.rst @@ -71,6 +71,40 @@ controller, refer to the device reference manual. +-------+-------------+---------------------------+ | PTA6 | FLEXCAN0 | CAN0 RX | +-------+-------------+---------------------------+ +| PTB4 | EMAC | Ethernet MDIO | ++-------+-------------+---------------------------+ +| PTB5 | EMAC | Ethernet MDC | ++-------+-------------+---------------------------+ +| PTC0 | EMAC | Ethernet RMII RXD1 | ++-------+-------------+---------------------------+ +| PTC1 | EMAC | Ethernet RMII RXD0 | ++-------+-------------+---------------------------+ +| PTC2 | EMAC | Ethernet RMII TXD0 | ++-------+-------------+---------------------------+ +| PTC3 | GPIO | Ethernet PHY reset | ++-------+-------------+---------------------------+ +| PTC17 | EMAC | Ethernet RMII RX_DV | ++-------+-------------+---------------------------+ +| PTD7 | EMAC | Ethernet RMII TXD1 | ++-------+-------------+---------------------------+ +| PTD11 | EMAC | Ethernet RMII REF_CLK | ++-------+-------------+---------------------------+ +| PTD12 | EMAC | Ethernet RMII TX_EN | ++-------+-------------+---------------------------+ + +Ethernet +======== + +The board carries a Microchip LAN8741 10/100 Mbit/s PHY on MDIO address 0, +connected to the MCXE31B EMAC over RMII. The EMAC is a Synopsys DesignWare +Ethernet QoS core and is driven by the generic +:zephyr_file:`drivers/ethernet/dwc_mac` driver, not by the NXP HAL based +``eth_nxp_enet_qos`` driver. + +The PHY sources the 50 MHz RMII reference clock, which the SoC takes in on +``PTD11`` and divides by two to clock the MAC's MII side. The driver also +supports MII, selected with ``phy-connection-type``, though this board is +wired for RMII. System Clock ============ diff --git a/boards/nxp/frdm_mcxe31b/frdm_mcxe31b-pinctrl.dtsi b/boards/nxp/frdm_mcxe31b/frdm_mcxe31b-pinctrl.dtsi index 4e6ec9687729..102007cecf6a 100644 --- a/boards/nxp/frdm_mcxe31b/frdm_mcxe31b-pinctrl.dtsi +++ b/boards/nxp/frdm_mcxe31b/frdm_mcxe31b-pinctrl.dtsi @@ -135,6 +135,46 @@ }; }; + pinmux_emac: pinmux_emac { + group1 { + /* RMII outputs. The slowest slew rate matches NXP's + * reference pin configuration for this board. + */ + pinmux = , + , + ; + output-enable; + slew-rate = "slowest"; + }; + + group2 { + pinmux = , + , + ; + input-enable; + }; + + group3 { + /* 50 MHz RMII reference clock supplied by the PHY */ + pinmux = ; + input-enable; + slew-rate = "slowest"; + }; + }; + + pinmux_emac_mdio: pinmux_emac_mdio { + group1 { + pinmux = <(PTB4_EMAC_MII_RMII_MDIO_O | PTB4_EMAC_MII_RMII_MDIO_I)>; + input-enable; + output-enable; + }; + + group2 { + pinmux = ; + output-enable; + }; + }; + pinmux_sai_0: pinmux_sai_0 { group1 { /* Each entry combines the pad's output mux with its diff --git a/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.dts b/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.dts index af7061945af9..cec531413be4 100644 --- a/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.dts +++ b/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.dts @@ -186,6 +186,29 @@ status = "okay"; }; +&emac { + pinctrl-0 = <&pinmux_emac>; + pinctrl-names = "default"; + phy-connection-type = "rmii"; + phy-handle = <ð_phy>; + status = "okay"; +}; + +&mdio { + pinctrl-0 = <&pinmux_emac_mdio>; + pinctrl-names = "default"; + status = "okay"; + + /* Microchip LAN8741 */ + eth_phy: ethernet-phy@0 { + compatible = "ethernet-phy"; + reg = <0x00>; + reset-gpios = <&gpioc_l 3 GPIO_ACTIVE_LOW>; + reset-assert-duration-us = <25000>; + reset-deassertion-timeout-ms = <25>; + }; +}; + /* * SAI0 on header J1: D0 = PTB2, BCLK = PTC12, SYNC = PTC13. The * transmitter drives all three pads and each pad's input buffer feeds diff --git a/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.yaml b/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.yaml index e5bcccef863b..6c311f45446f 100644 --- a/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.yaml +++ b/boards/nxp/frdm_mcxe31b/frdm_mcxe31b.yaml @@ -23,4 +23,5 @@ supported: - pwm - i2s - spi + - netif:eth vendor: nxp diff --git a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.dtsi b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.dtsi index 20315c4372f3..5035255ffbdc 100644 --- a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.dtsi +++ b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.dtsi @@ -164,3 +164,7 @@ pinctrl-0 = <&pinmux_aon_lpi2c0>; pinctrl-names = "default"; }; + +&mbox_a { + status = "okay"; +}; diff --git a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.yaml b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.yaml index 6b5b0b9ef9bb..56b42581e9bc 100644 --- a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.yaml +++ b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu0.yaml @@ -18,4 +18,5 @@ supported: - rtc - crc - watchdog + - mbox vendor: nxp diff --git a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.dts b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.dts index 7c0f66cf21f1..d971b11810cc 100644 --- a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.dts +++ b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.dts @@ -41,3 +41,7 @@ pinctrl-0 = <&pinmux_aon_lpi2c0>; pinctrl-names = "default"; }; + +&mbox_b { + status = "okay"; +}; diff --git a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.yaml b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.yaml index 332b7185dd14..f2a7b2b7c95f 100644 --- a/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.yaml +++ b/boards/nxp/frdm_mcxl255/frdm_mcxl255_mcxl255_cpu1.yaml @@ -13,4 +13,5 @@ toolchain: supported: - uart - i2c + - mbox vendor: nxp diff --git a/boards/nxp/frdm_mcxn947/Kconfig.defconfig b/boards/nxp/frdm_mcxn947/Kconfig.defconfig index d8da5bba185e..2187bc30d7cb 100644 --- a/boards/nxp/frdm_mcxn947/Kconfig.defconfig +++ b/boards/nxp/frdm_mcxn947/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_FRDM_MCXN947 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if SD_STACK diff --git a/boards/nxp/frdm_rw612/Kconfig.defconfig b/boards/nxp/frdm_rw612/Kconfig.defconfig index e4d820f88d88..a0d889dfad55 100644 --- a/boards/nxp/frdm_rw612/Kconfig.defconfig +++ b/boards/nxp/frdm_rw612/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_FRDM_RW612 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if DT_HAS_NXP_ENET_MAC_ENABLED if LVGL diff --git a/boards/nxp/imx8mm_evk/Kconfig.defconfig b/boards/nxp/imx8mm_evk/Kconfig.defconfig index 6168d3178ef0..2efe2df99cfe 100644 --- a/boards/nxp/imx8mm_evk/Kconfig.defconfig +++ b/boards/nxp/imx8mm_evk/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_IMX8MM_EVK if BOARD_IMX8MM_EVK_MIMX8MM6_A53 || BOARD_IMX8MM_EVK_MIMX8MM6_A53_SMP -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/imx8mn_evk/Kconfig.defconfig b/boards/nxp/imx8mn_evk/Kconfig.defconfig index 5d21b9584a82..37c7d8ef33a3 100644 --- a/boards/nxp/imx8mn_evk/Kconfig.defconfig +++ b/boards/nxp/imx8mn_evk/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_IMX8MN_EVK if BOARD_IMX8MN_EVK_MIMX8MN6_A53 || BOARD_IMX8MN_EVK_MIMX8MN6_A53_SMP -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/imx8mp_evk/Kconfig.defconfig b/boards/nxp/imx8mp_evk/Kconfig.defconfig index 1895a0c5d095..26dae6372376 100644 --- a/boards/nxp/imx8mp_evk/Kconfig.defconfig +++ b/boards/nxp/imx8mp_evk/Kconfig.defconfig @@ -5,7 +5,7 @@ if BOARD_IMX8MP_EVK if BOARD_IMX8MP_EVK_MIMX8ML8_A53 || BOARD_IMX8MP_EVK_MIMX8ML8_A53_SMP -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/imx93_evk/Kconfig.defconfig b/boards/nxp/imx93_evk/Kconfig.defconfig index e24565bf228f..02e5a962b51c 100644 --- a/boards/nxp/imx93_evk/Kconfig.defconfig +++ b/boards/nxp/imx93_evk/Kconfig.defconfig @@ -31,7 +31,7 @@ config GPIO_ADP5585_INIT_PRIORITY endif # BOARD_MIMX93_EVK_EXP_SEL_INIT -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/imx943_evk/Kconfig.defconfig b/boards/nxp/imx943_evk/Kconfig.defconfig index 8a5f2ea843b9..39085c025d0d 100644 --- a/boards/nxp/imx943_evk/Kconfig.defconfig +++ b/boards/nxp/imx943_evk/Kconfig.defconfig @@ -29,7 +29,7 @@ config CLOCK_CONTROL_INIT_PRIORITY default 31 if SOC_MIMX94398_A55 # Enlarge default networking stack -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/imx95_evk/Kconfig.defconfig b/boards/nxp/imx95_evk/Kconfig.defconfig index f0919723812e..efac5b705fb6 100644 --- a/boards/nxp/imx95_evk/Kconfig.defconfig +++ b/boards/nxp/imx95_evk/Kconfig.defconfig @@ -29,7 +29,7 @@ config CLOCK_CONTROL_INIT_PRIORITY default 31 # Enlarge default networking stack -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/nxp/imx95_evk_15x15/Kconfig.defconfig b/boards/nxp/imx95_evk_15x15/Kconfig.defconfig index d9335f60713a..b3ce53ed394c 100644 --- a/boards/nxp/imx95_evk_15x15/Kconfig.defconfig +++ b/boards/nxp/imx95_evk_15x15/Kconfig.defconfig @@ -43,7 +43,7 @@ configdefault GIC_V3_ITS configdefault HEAP_MEM_POOL_SIZE default 851968 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Enlarge default networking stack diff --git a/boards/nxp/lpcxpresso54628/Kconfig.defconfig b/boards/nxp/lpcxpresso54628/Kconfig.defconfig new file mode 100644 index 000000000000..c97987a80cec --- /dev/null +++ b/boards/nxp/lpcxpresso54628/Kconfig.defconfig @@ -0,0 +1,15 @@ +# Copyright 2026 NXP +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_LPCXPRESSO54628 + +if FXOS8700 + +# The on-board MMA8652FC has no magnetometer. +choice FXOS8700_MODE + default FXOS8700_MODE_ACCEL +endchoice + +endif # FXOS8700 + +endif # BOARD_LPCXPRESSO54628 diff --git a/boards/nxp/lpcxpresso54628/lpcxpresso54628-pinctrl.dtsi b/boards/nxp/lpcxpresso54628/lpcxpresso54628-pinctrl.dtsi index 47c7db98bd45..f0c7a176df4f 100644 --- a/boards/nxp/lpcxpresso54628/lpcxpresso54628-pinctrl.dtsi +++ b/boards/nxp/lpcxpresso54628/lpcxpresso54628-pinctrl.dtsi @@ -70,4 +70,13 @@ bias-pull-up; }; }; + + /* FlexComm2 I2C: the on-board accelerometer (external pull-ups). */ + pinmux_flexcomm2_i2c: pinmux_flexcomm2_i2c { + group0 { + pinmux = , + ; + slew-rate = "standard"; + }; + }; }; diff --git a/boards/nxp/lpcxpresso54628/lpcxpresso54628.dts b/boards/nxp/lpcxpresso54628/lpcxpresso54628.dts index eab8e5fb72ba..a3efd7396981 100644 --- a/boards/nxp/lpcxpresso54628/lpcxpresso54628.dts +++ b/boards/nxp/lpcxpresso54628/lpcxpresso54628.dts @@ -7,6 +7,7 @@ /dts-v1/; #include +#include #include #include "lpcxpresso54628-pinctrl.dtsi" @@ -27,6 +28,7 @@ led2 = &led3; usart-0 = &flexcomm0; sw0 = &user_button; + accel0 = &mma8652fc; }; /* @@ -107,3 +109,25 @@ zephyr_udc0: &usbhs { status = "okay"; }; }; + +&flexcomm2 { + compatible = "nxp,lpc-i2c"; + status = "okay"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pinmux_flexcomm2_i2c>; + pinctrl-names = "default"; + + /* + * NXP MMA8652FC 3-axis accelerometer. INT1 is wired to P3_4 and INT2 is + * unconnected. The pin interrupt engine can only select pins on ports 0 + * and 1, so INT1 cannot raise a GPIO interrupt and the driver's trigger + * support is unavailable on this board. + */ + mma8652fc: mma8652fc@1d { + compatible = "nxp,fxos8700", "nxp,mma8652fc"; + reg = <0x1d>; + int1-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; + }; +}; diff --git a/boards/nxp/mcx_nx4x_evk/Kconfig.defconfig b/boards/nxp/mcx_nx4x_evk/Kconfig.defconfig index 55f8b98165db..b3babf7229d9 100644 --- a/boards/nxp/mcx_nx4x_evk/Kconfig.defconfig +++ b/boards/nxp/mcx_nx4x_evk/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_MCX_N9XX_EVK || BOARD_MCX_N5XX_EVK -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if SD_STACK diff --git a/boards/nxp/mimxrt1020_evk/Kconfig.defconfig b/boards/nxp/mimxrt1020_evk/Kconfig.defconfig index 47d38819d225..10e95b665106 100644 --- a/boards/nxp/mimxrt1020_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1020_evk/Kconfig.defconfig @@ -11,7 +11,7 @@ config DEVICE_CONFIGURATION_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_MIMXRT1020_EVK diff --git a/boards/nxp/mimxrt1024_evk/Kconfig.defconfig b/boards/nxp/mimxrt1024_evk/Kconfig.defconfig index 7e99e713cfb1..a77b9aaf04fa 100644 --- a/boards/nxp/mimxrt1024_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1024_evk/Kconfig.defconfig @@ -15,7 +15,7 @@ config I2C_MCUX_LPI2C_BUS_RECOVERY default y depends on I2C_MCUX_LPI2C && PINCTRL -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_MIMXRT1024_EVK diff --git a/boards/nxp/mimxrt1040_evk/Kconfig.defconfig b/boards/nxp/mimxrt1040_evk/Kconfig.defconfig index f53272558695..9722d404ea97 100644 --- a/boards/nxp/mimxrt1040_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1040_evk/Kconfig.defconfig @@ -9,7 +9,7 @@ config DEVICE_CONFIGURATION_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if DT_HAS_NXP_ENET_ENABLED endif # BOARD_MIMXRT1040_EVK diff --git a/boards/nxp/mimxrt1050_evk/Kconfig.defconfig b/boards/nxp/mimxrt1050_evk/Kconfig.defconfig index f936a923e0d9..fa671649d11b 100644 --- a/boards/nxp/mimxrt1050_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1050_evk/Kconfig.defconfig @@ -11,7 +11,7 @@ config DEVICE_CONFIGURATION_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_MIMXRT1050_EVK diff --git a/boards/nxp/mimxrt1060_evk/Kconfig.defconfig b/boards/nxp/mimxrt1060_evk/Kconfig.defconfig index 69df8a20ffe9..6eefbda60c42 100644 --- a/boards/nxp/mimxrt1060_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1060_evk/Kconfig.defconfig @@ -11,7 +11,7 @@ config DEVICE_CONFIGURATION_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NXP_FW_DUMP_FLASH_START_ADDR diff --git a/boards/nxp/mimxrt1062_fmurt6/Kconfig.defconfig b/boards/nxp/mimxrt1062_fmurt6/Kconfig.defconfig index d7d1961df4da..e441bd7c3e22 100644 --- a/boards/nxp/mimxrt1062_fmurt6/Kconfig.defconfig +++ b/boards/nxp/mimxrt1062_fmurt6/Kconfig.defconfig @@ -11,7 +11,7 @@ config DEVICE_CONFIGURATION_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/nxp/mimxrt1064_evk/Kconfig.defconfig b/boards/nxp/mimxrt1064_evk/Kconfig.defconfig index db8df5730815..8249a6a858b1 100644 --- a/boards/nxp/mimxrt1064_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1064_evk/Kconfig.defconfig @@ -11,7 +11,7 @@ config DEVICE_CONFIGURATION_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_MIMXRT1064_EVK diff --git a/boards/nxp/mimxrt1160_evk/Kconfig.defconfig b/boards/nxp/mimxrt1160_evk/Kconfig.defconfig index ecd2d88596c4..dadcb0cea07a 100644 --- a/boards/nxp/mimxrt1160_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1160_evk/Kconfig.defconfig @@ -30,7 +30,7 @@ config SYS_CLOCK_HW_CYCLES_PER_SEC default 240000000 if BOARD_MIMXRT1160_EVK_MIMXRT1166_CM4 && CORTEX_M_SYSTICK default 600000000 if BOARD_MIMXRT1160_EVK_MIMXRT1166_CM7 && CORTEX_M_SYSTICK -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if DT_HAS_NXP_ENET_ENABLED endif # BOARD_MIMXRT1160_EVK diff --git a/boards/nxp/mimxrt1170_evk/Kconfig.defconfig b/boards/nxp/mimxrt1170_evk/Kconfig.defconfig index 6c379d043002..d6839674a6b4 100644 --- a/boards/nxp/mimxrt1170_evk/Kconfig.defconfig +++ b/boards/nxp/mimxrt1170_evk/Kconfig.defconfig @@ -33,7 +33,7 @@ config IMX_USDHC_DAT3_PWR_TOGGLE endif # DISK_DRIVERS -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if DT_HAS_NXP_ENET_ENABLED endif diff --git a/boards/nxp/mimxrt685_evk/hifi4/init.c b/boards/nxp/mimxrt685_evk/hifi4/init.c index 77be78dfba18..5cba63d4545e 100644 --- a/boards/nxp/mimxrt685_evk/hifi4/init.c +++ b/boards/nxp/mimxrt685_evk/hifi4/init.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2024 NXP + * Copyright 2020-2024, 2026 NXP * * SPDX-License-Identifier: Apache-2.0 */ @@ -15,30 +15,46 @@ void board_early_init_hook(void) (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm3), nxp_lpc_i2s, okay)) && \ CONFIG_I2S - /* Set shared signal set 0 SCK, WS from Transmit I2S - Flexcomm3 */ - SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(3) | - SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(3); - #ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES - /* Select Data in from Transmit I2S - Flexcomm 3 */ - SYSCTL1->SHAREDCTRLSET[0] |= SYSCTL1_SHAREDCTRLSET_SHAREDDATASEL(3); - /* Enable Transmit I2S - Flexcomm 3 for Shared Data Out */ - SYSCTL1->SHAREDCTRLSET[0] |= SYSCTL1_SHAREDCTRLSET_FC3DATAOUTEN(1); -#endif + /* + * Internal loopback + * + * Flexcomm 3 (I2S Tx) provides SCK, WS and DATA (controller) into set #0. + */ + SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(3) | + SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(3) | + SYSCTL1_SHAREDCTRLSET_SHAREDDATASEL(3) | + SYSCTL1_SHAREDCTRLSET_FC3DATAOUTEN(1); - /* Set Receive I2S - Flexcomm 1 SCK, WS from shared signal set 0 */ + /* Flexcomm 1 (I2S Rx) consumes the set. */ SYSCTL1->FCCTRLSEL[1] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | - SYSCTL1_FCCTRLSEL_WSINSEL(1); + SYSCTL1_FCCTRLSEL_WSINSEL(1) | + SYSCTL1_FCCTRLSEL_DATAINSEL(1); - /* Set Transmit I2S - Flexcomm 3 SCK, WS from shared signal set 0 */ + /* Flexcomm 3 (I2S Tx) consumes the provided signals internally. */ SYSCTL1->FCCTRLSEL[3] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | - SYSCTL1_FCCTRLSEL_WSINSEL(1); + SYSCTL1_FCCTRLSEL_WSINSEL(1) | + SYSCTL1_FCCTRLSEL_DATAOUTSEL(1); +#else + /* + * Duplex audio configuration + * + * Flexcomm 1 (I2S Rx) provides SCK and WS into set #0. + * These are sourced from outside pads, being routed to the WM8904. + * + * When configuring any of the Flexcomms for I2S traffic, configure them + * as I2S targets. + */ + SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(1) | + SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(1); + + /* Flexcomm 1 (I2S Rx) consumes provided signals internally. */ + SYSCTL1->FCCTRLSEL[1] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | + SYSCTL1_FCCTRLSEL_WSINSEL(1); -#ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES - /* Select Receive I2S - Flexcomm 1 Data in from shared signal set 0 */ - SYSCTL1->FCCTRLSEL[1] |= SYSCTL1_FCCTRLSEL_DATAINSEL(1); - /* Select Transmit I2S - Flexcomm 3 Data out to shared signal set 0 */ - SYSCTL1->FCCTRLSEL[3] |= SYSCTL1_FCCTRLSEL_DATAOUTSEL(1); + /* Flexcomm 3 (I2S Tx) consumes the set. */ + SYSCTL1->FCCTRLSEL[3] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | + SYSCTL1_FCCTRLSEL_WSINSEL(1); #endif #endif diff --git a/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_hifi4.dts b/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_hifi4.dts index fbcdc2f9b6cb..53bd1996c1a6 100644 --- a/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_hifi4.dts +++ b/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_hifi4.dts @@ -71,6 +71,7 @@ pinctrl-0 = <&pinmux_sai0>; pinctrl-names = "default"; mclk-output; + nxp,rx-sync-mode; }; &mbox4_b { diff --git a/boards/nxp/mr_canhubk3/Kconfig.defconfig b/boards/nxp/mr_canhubk3/Kconfig.defconfig index 9773db8b68df..8c449cc2e2c3 100644 --- a/boards/nxp/mr_canhubk3/Kconfig.defconfig +++ b/boards/nxp/mr_canhubk3/Kconfig.defconfig @@ -26,7 +26,7 @@ config WDT_NXP_FS26_INIT_PRIORITY endif # WDT_NXP_FS26 endif # SPI -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !NET_LOOPBACK && !NET_TEST endif # BOARD_MR_CANHUBK3 diff --git a/boards/nxp/rd_rw612_bga/Kconfig.defconfig b/boards/nxp/rd_rw612_bga/Kconfig.defconfig index 44a71ebc9389..408c721bf166 100644 --- a/boards/nxp/rd_rw612_bga/Kconfig.defconfig +++ b/boards/nxp/rd_rw612_bga/Kconfig.defconfig @@ -30,7 +30,7 @@ config LV_Z_FLUSH_THREAD endif # LVGL -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if DT_HAS_NXP_ENET_MAC_ENABLED endif # BOARD_RD_RW612_BGA diff --git a/boards/nxp/rddrone_fmuk66/Kconfig.defconfig b/boards/nxp/rddrone_fmuk66/Kconfig.defconfig index 8c1703ca111b..a6bf4dab171a 100644 --- a/boards/nxp/rddrone_fmuk66/Kconfig.defconfig +++ b/boards/nxp/rddrone_fmuk66/Kconfig.defconfig @@ -17,7 +17,7 @@ config MCG_VDIV0 config MCG_FCRDIV default 1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !MODEM endif # BOARD_RDDRONE_FMUK66 diff --git a/boards/nxp/s32k148_evb/Kconfig.defconfig b/boards/nxp/s32k148_evb/Kconfig.defconfig index c2d4202163a1..f92bc6c6438e 100644 --- a/boards/nxp/s32k148_evb/Kconfig.defconfig +++ b/boards/nxp/s32k148_evb/Kconfig.defconfig @@ -10,7 +10,7 @@ config UART_CONSOLE endif # SERIAL -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !MODEM endif # BOARD_S32K148_EVB diff --git a/boards/nxp/s32z2xxdc2/Kconfig.defconfig b/boards/nxp/s32z2xxdc2/Kconfig.defconfig index 4c250677fd2c..e7cc470b5c70 100644 --- a/boards/nxp/s32z2xxdc2/Kconfig.defconfig +++ b/boards/nxp/s32z2xxdc2/Kconfig.defconfig @@ -23,7 +23,7 @@ config SHELL_STACK_SIZE endif # SHELL -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if !NET_LOOPBACK && !NET_TEST if XIP diff --git a/boards/nxp/vmu_rt1170/Kconfig.defconfig b/boards/nxp/vmu_rt1170/Kconfig.defconfig index f91331e73b39..e028a8445d60 100644 --- a/boards/nxp/vmu_rt1170/Kconfig.defconfig +++ b/boards/nxp/vmu_rt1170/Kconfig.defconfig @@ -12,7 +12,7 @@ config IMX_USDHC_DAT3_PWR_TOGGLE endif # DISK_DRIVERS -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y if CPU_CORTEX_M7 # No cache memory support is required for driver configdefault ETH_NXP_ENET_RMII_EXT_CLK diff --git a/boards/olimex/esp32p4_pc/Kconfig.defconfig b/boards/olimex/esp32p4_pc/Kconfig.defconfig index a861d5e3ad8f..7dca0a11dc6c 100644 --- a/boards/olimex/esp32p4_pc/Kconfig.defconfig +++ b/boards/olimex/esp32p4_pc/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_ESP32P4_PC_ESP32P4_HPCORE -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_ESP32P4_PC_ESP32P4_HPCORE diff --git a/boards/openisa/rv32m1_vega/doc/index.rst b/boards/openisa/rv32m1_vega/doc/index.rst index 97c2ba7b44ad..b52d53153974 100644 --- a/boards/openisa/rv32m1_vega/doc/index.rst +++ b/boards/openisa/rv32m1_vega/doc/index.rst @@ -574,9 +574,8 @@ Flashing Make sure you've followed the above instructions to set up your board and build a program first. -Since you need to use a special OpenOCD, the easiest way to flash is -by using :ref:`west flash ` instead of ``ninja -flash`` like you might see with other Zephyr documentation. +Since you need to use a special OpenOCD, flash with :ref:`west flash +` and point it at your OpenOCD build. Run these commands from the build directory where you ran ``ninja`` in the above section. diff --git a/boards/others/promicro_nrf52840/promicro_nrf52840.yaml b/boards/others/promicro_nrf52840/promicro_nrf52840.yaml index ef54516b3876..e30143979b53 100644 --- a/boards/others/promicro_nrf52840/promicro_nrf52840.yaml +++ b/boards/others/promicro_nrf52840/promicro_nrf52840.yaml @@ -10,7 +10,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - pwm - spi - watchdog diff --git a/boards/others/promicro_nrf52840/promicro_nrf52840_nrf52840_uf2.yaml b/boards/others/promicro_nrf52840/promicro_nrf52840_nrf52840_uf2.yaml index f5228a763eda..7f5e80ec35fb 100644 --- a/boards/others/promicro_nrf52840/promicro_nrf52840_nrf52840_uf2.yaml +++ b/boards/others/promicro_nrf52840/promicro_nrf52840_nrf52840_uf2.yaml @@ -10,7 +10,7 @@ toolchain: supported: - adc - usbd - - ble + - bluetooth - pwm - spi - watchdog diff --git a/boards/panasonic/pan1770_evb/pan1770_evb.yaml b/boards/panasonic/pan1770_evb/pan1770_evb.yaml index a10c15ea3e10..462a1dfaed40 100644 --- a/boards/panasonic/pan1770_evb/pan1770_evb.yaml +++ b/boards/panasonic/pan1770_evb/pan1770_evb.yaml @@ -17,7 +17,7 @@ supported: - arduino_gpio - arduino_i2c - arduino_spi - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/panasonic/pan1780_evb/pan1780_evb.yaml b/boards/panasonic/pan1780_evb/pan1780_evb.yaml index 65a29e5c75fc..38faa8badc56 100644 --- a/boards/panasonic/pan1780_evb/pan1780_evb.yaml +++ b/boards/panasonic/pan1780_evb/pan1780_evb.yaml @@ -17,7 +17,7 @@ supported: - arduino_gpio - arduino_i2c - arduino_spi - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/panasonic/pan1781_evb/pan1781_evb.yaml b/boards/panasonic/pan1781_evb/pan1781_evb.yaml index 5ba7fae607fa..9222eab60ee2 100644 --- a/boards/panasonic/pan1781_evb/pan1781_evb.yaml +++ b/boards/panasonic/pan1781_evb/pan1781_evb.yaml @@ -15,7 +15,7 @@ toolchain: supported: - arduino_i2c - arduino_spi - - ble + - bluetooth - gpio - i2c - spi diff --git a/boards/panasonic/pan1782_evb/pan1782_evb.yaml b/boards/panasonic/pan1782_evb/pan1782_evb.yaml index 0574926ea72e..bc65b7fcc99e 100644 --- a/boards/panasonic/pan1782_evb/pan1782_evb.yaml +++ b/boards/panasonic/pan1782_evb/pan1782_evb.yaml @@ -17,7 +17,7 @@ supported: - arduino_i2c - arduino_spi - usb_device - - ble + - bluetooth - gpio - i2c - spi diff --git a/boards/particle/argon/particle_argon.yaml b/boards/particle/argon/particle_argon.yaml index 8ec6c888b921..04a39b2b5f0f 100644 --- a/boards/particle/argon/particle_argon.yaml +++ b/boards/particle/argon/particle_argon.yaml @@ -12,7 +12,7 @@ supported: - spi - gpio - usb_device - - ble + - bluetooth - feather_serial - feather_i2c - feather_spi diff --git a/boards/particle/boron/particle_boron.yaml b/boards/particle/boron/particle_boron.yaml index 1e2835ac09d2..1f0a84e0d262 100644 --- a/boards/particle/boron/particle_boron.yaml +++ b/boards/particle/boron/particle_boron.yaml @@ -12,7 +12,7 @@ supported: - spi - gpio - usb_device - - ble + - bluetooth - feather_serial - feather_i2c - feather_spi diff --git a/boards/particle/nrf51_blenano/nrf51_blenano.yaml b/boards/particle/nrf51_blenano/nrf51_blenano.yaml index 4d4c9c96a224..fc082001ff10 100644 --- a/boards/particle/nrf51_blenano/nrf51_blenano.yaml +++ b/boards/particle/nrf51_blenano/nrf51_blenano.yaml @@ -7,7 +7,7 @@ toolchain: - gnuarmemb ram: 16 supported: - - ble + - bluetooth testing: ignore_tags: - net diff --git a/boards/particle/xenon/particle_xenon.yaml b/boards/particle/xenon/particle_xenon.yaml index 0b2176965477..7420e96d2e18 100644 --- a/boards/particle/xenon/particle_xenon.yaml +++ b/boards/particle/xenon/particle_xenon.yaml @@ -17,7 +17,7 @@ supported: - spi - gpio - usb_device - - ble + - bluetooth - feather_serial - feather_i2c - feather_spi diff --git a/boards/phytec/phyboard_atlas/Kconfig.defconfig b/boards/phytec/phyboard_atlas/Kconfig.defconfig index 799a446d568b..0422ee93416b 100644 --- a/boards/phytec/phyboard_atlas/Kconfig.defconfig +++ b/boards/phytec/phyboard_atlas/Kconfig.defconfig @@ -14,7 +14,7 @@ config EXTERNAL_MEM_CONFIG_DATA config NXP_IMX_EXTERNAL_SDRAM default y -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # No cache memory support is required for driver endif # CPU_CORTEX_M7 diff --git a/boards/phytec/reel_board/reel_board_1.yaml b/boards/phytec/reel_board/reel_board_1.yaml index c973f47cc79e..d13ea6b1eb1d 100644 --- a/boards/phytec/reel_board/reel_board_1.yaml +++ b/boards/phytec/reel_board/reel_board_1.yaml @@ -12,7 +12,7 @@ supported: - spi - gpio - usb_device - - ble + - bluetooth - pwm - arduino_i2c - arduino_spi diff --git a/boards/phytec/reel_board/reel_board_nrf52840_2.yaml b/boards/phytec/reel_board/reel_board_nrf52840_2.yaml index 5852cf72161b..847336e3823c 100644 --- a/boards/phytec/reel_board/reel_board_nrf52840_2.yaml +++ b/boards/phytec/reel_board/reel_board_nrf52840_2.yaml @@ -12,7 +12,7 @@ supported: - spi - gpio - usb_device - - ble + - bluetooth - pwm - arduino_i2c - arduino_spi diff --git a/boards/pjrc/teensy4/Kconfig.defconfig b/boards/pjrc/teensy4/Kconfig.defconfig index 2fc156eeab87..c8928406196e 100644 --- a/boards/pjrc/teensy4/Kconfig.defconfig +++ b/boards/pjrc/teensy4/Kconfig.defconfig @@ -10,8 +10,7 @@ config BUILD_OUTPUT_HEX bool default y -configdefault NET_L2_ETHERNET - default n if BOARD_TEENSY40 +configdefault ETH_DRIVER default y if BOARD_TEENSY41 endif # BOARD_TEENSY40 || BOARD_TEENSY41 diff --git a/boards/qemu/arc/Kconfig.defconfig b/boards/qemu/arc/Kconfig.defconfig index 173ad9d405ed..bbac4a0215d6 100644 --- a/boards/qemu/arc/Kconfig.defconfig +++ b/boards/qemu/arc/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_QEMU_ARC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Required to satisfy dependency of networking stack on RNG diff --git a/boards/qemu/cortex_a9/Kconfig.defconfig b/boards/qemu/cortex_a9/Kconfig.defconfig index 28a48ff05c40..81c87fc0b2f7 100644 --- a/boards/qemu/cortex_a9/Kconfig.defconfig +++ b/boards/qemu/cortex_a9/Kconfig.defconfig @@ -24,7 +24,7 @@ config LOG_PROCESS_THREAD_STACK_SIZE endif # LOG_PROCESS_THREAD -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_TX_STACK_SIZE diff --git a/boards/qemu/riscv64/Kconfig.defconfig b/boards/qemu/riscv64/Kconfig.defconfig index 6d9af1410a72..c5c99f87666c 100644 --- a/boards/qemu/riscv64/Kconfig.defconfig +++ b/boards/qemu/riscv64/Kconfig.defconfig @@ -12,7 +12,7 @@ config HAS_COVERAGE_SUPPORT config QEMU_ICOUNT_SHIFT default 6 if QEMU_ICOUNT -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault NET_QEMU_DEVICE_EXTRA_ARGS diff --git a/boards/qemu/riscv64/board.cmake b/boards/qemu/riscv64/board.cmake index 392d083c4375..729fde51a860 100644 --- a/boards/qemu/riscv64/board.cmake +++ b/boards/qemu/riscv64/board.cmake @@ -24,9 +24,15 @@ if(CONFIG_INPUT_VIRTIO) endif() endif() +if(CONFIG_RISCV_S_MODE_EXTERNAL_SBI) + set(qemu_bios default) +else() + set(qemu_bios none) +endif() + set(QEMU_BOARD_FLAGS -machine virt - -bios none + -bios ${qemu_bios} -m 256 -cpu ${qemu_riscv_cpu} ${QEMU_VIRTIO_INPUT_FLAGS} diff --git a/boards/qemu/riscv64/board.yml b/boards/qemu/riscv64/board.yml index 9fd3946f1302..e95793a7706b 100644 --- a/boards/qemu/riscv64/board.yml +++ b/boards/qemu/riscv64/board.yml @@ -7,3 +7,4 @@ board: variants: - name: smp - name: smode + - name: opensbi diff --git a/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi.dts b/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi.dts new file mode 100644 index 000000000000..647695460bc3 --- /dev/null +++ b/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi.dts @@ -0,0 +1,37 @@ +/* Copyright (c) 2026 Alexios Lyrakis */ +/* SPDX-License-Identifier: Apache-2.0 */ + +/dts-v1/; + +#include +#include + +/delete-node/ &ram0; + +/ { + chosen { + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,sram = &sram; + }; + + cpus { + riscv,privilege-modes = "m", "s", "u"; + }; + + /* + * When launched as an S-mode payload under an external SBI (OpenSBI), the + * M-mode firmware occupies the bottom of RAM (0x80000000 onwards). Move the + * Zephyr image up by 2 MiB so it does not overlap OpenSBI, and shrink the + * region by the same amount so it still ends at the top of the 256 MiB the + * QEMU virt machine provides (0x90000000). + */ + sram: memory@80200000 { + device_type = "memory"; + reg = <0x80200000 0x0fe00000>; + }; +}; + +&uart0 { + status = "okay"; +}; diff --git a/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi.yaml b/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi.yaml new file mode 100644 index 000000000000..fd357cea4b7d --- /dev/null +++ b/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi.yaml @@ -0,0 +1,15 @@ +identifier: qemu_riscv64/qemu_virt_riscv64/opensbi +name: QEMU Emulation for RISC-V 64-bit S-mode with external SBI +type: qemu +simulation: + - name: qemu +arch: riscv +toolchain: + - zephyr +ram: 260096 +flash: 32768 +testing: + default: true + ignore_tags: + - net + - bluetooth diff --git a/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi_defconfig b/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi_defconfig new file mode 100644 index 000000000000..5ef0247eff16 --- /dev/null +++ b/boards/qemu/riscv64/qemu_riscv64_qemu_virt_riscv64_opensbi_defconfig @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_UART_CONSOLE=y +CONFIG_STACK_SENTINEL=y +CONFIG_XIP=n +CONFIG_RISCV_S_MODE=y +CONFIG_RISCV_S_MODE_EXTERNAL_SBI=y +# The PLIC driver configures PLIC context 0 (M-mode) for hart 0. In S-mode +# Zephyr the correct context is 1 (supervisor mode), so external device +# interrupts via the PLIC do not reach the CPU. Disable interrupt-driven +# UART TX so the shell backend falls back to polling, which works correctly. +CONFIG_SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN=n diff --git a/boards/qorvo/decawave_dwm3001cdk/decawave_dwm3001cdk.yaml b/boards/qorvo/decawave_dwm3001cdk/decawave_dwm3001cdk.yaml index da6ecebeea31..f1a690acc40d 100644 --- a/boards/qorvo/decawave_dwm3001cdk/decawave_dwm3001cdk.yaml +++ b/boards/qorvo/decawave_dwm3001cdk/decawave_dwm3001cdk.yaml @@ -11,7 +11,7 @@ toolchain: supported: - adc - usb_device - - ble + - bluetooth - gpio - pwm - watchdog diff --git a/boards/rakwireless/rak4631/rak4631_nrf52840.yaml b/boards/rakwireless/rak4631/rak4631_nrf52840.yaml index 342b30b8f7fe..d5d94f9673ff 100644 --- a/boards/rakwireless/rak4631/rak4631_nrf52840.yaml +++ b/boards/rakwireless/rak4631/rak4631_nrf52840.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/rakwireless/rak5010/rak5010_nrf52840.yaml b/boards/rakwireless/rak5010/rak5010_nrf52840.yaml index 41c9a3e37893..7e51df217a70 100644 --- a/boards/rakwireless/rak5010/rak5010_nrf52840.yaml +++ b/boards/rakwireless/rak5010/rak5010_nrf52840.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/raspberrypi/rpi_5/board.yml b/boards/raspberrypi/rpi_5/board.yml index 2c90e5c2db06..04a65e2daf55 100644 --- a/boards/raspberrypi/rpi_5/board.yml +++ b/boards/raspberrypi/rpi_5/board.yml @@ -4,3 +4,5 @@ board: vendor: raspberrypi socs: - name: bcm2712 + variants: + - name: swd diff --git a/boards/raspberrypi/rpi_5/rpi_5-pinctrl.dtsi b/boards/raspberrypi/rpi_5/rpi_5-pinctrl.dtsi new file mode 100644 index 000000000000..f188cac68f86 --- /dev/null +++ b/boards/raspberrypi/rpi_5/rpi_5-pinctrl.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + /* Not yet implemented BCM2712 side pinctrl. Put a stub definition at this time. */ + uart10_default: uart10_default {}; +}; diff --git a/boards/raspberrypi/rpi_5/rpi_5_bcm2712.dts b/boards/raspberrypi/rpi_5/rpi_5_bcm2712.dts index 339adba011c8..e0d22d9d3958 100644 --- a/boards/raspberrypi/rpi_5/rpi_5_bcm2712.dts +++ b/boards/raspberrypi/rpi_5/rpi_5_bcm2712.dts @@ -8,6 +8,7 @@ #include #include +#include "rpi_5-pinctrl.dtsi" / { compatible = "raspberrypi,5-model-b", "brcm,bcm2712"; @@ -44,6 +45,8 @@ &uart10 { status = "okay"; current-speed = <115200>; + pinctrl-0 = <&uart10_default>; + pinctrl-names = "default"; }; &gpio0_0 { diff --git a/boards/raspberrypi/rpi_5/rpi_5_bcm2712_defconfig b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_defconfig index fc82b7f50d27..b96293fa2090 100644 --- a/boards/raspberrypi/rpi_5/rpi_5_bcm2712_defconfig +++ b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_defconfig @@ -8,5 +8,6 @@ CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME=y CONFIG_SERIAL=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y +CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_PCIE=y diff --git a/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd-pinctrl.dtsi b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd-pinctrl.dtsi new file mode 100644 index 000000000000..ee260b1eca56 --- /dev/null +++ b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd-pinctrl.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "rpi_5-pinctrl.dtsi" + +&rp1_pinctrl { + rp1_uart0_default: rp1_uart0_default { + group1 { + pinmux = ; + }; + + group2 { + pinmux = ; + input-enable; + input-schmitt-enable; + bias-pull-up; + }; + }; +}; diff --git a/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd.dts b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd.dts new file mode 100644 index 000000000000..bcb344f2d915 --- /dev/null +++ b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd.dts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "rpi_5_bcm2712.dts" +#include "rpi_5_bcm2712_swd-pinctrl.dtsi" + +/ { + chosen { + zephyr,console = &rp1_uart0; + zephyr,shell-uart = &rp1_uart0; + }; +}; + +&rp1_uart0 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&rp1_uart0_default>; + pinctrl-names = "default"; +}; + +&uart10 { + status = "disabled"; +}; diff --git a/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd.yaml b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd.yaml new file mode 100644 index 000000000000..6a70feb5e66f --- /dev/null +++ b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd.yaml @@ -0,0 +1,7 @@ +identifier: rpi_5/bcm2712/swd +name: Raspberry Pi 5 SWD-enabled +type: mcu +arch: arm64 +toolchain: + - zephyr + - cross-compile diff --git a/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd_defconfig b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd_defconfig new file mode 100644 index 000000000000..a0ae7337a7e4 --- /dev/null +++ b/boards/raspberrypi/rpi_5/rpi_5_bcm2712_swd_defconfig @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_ARM64_VA_BITS_40=y +CONFIG_ARM64_PA_BITS_40=y +CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME=y + +# Enable serial console. +CONFIG_SERIAL=y +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y +CONFIG_SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN=n + +CONFIG_PCIE=y diff --git a/boards/raytac/mdbt50q_cx_40_dongle/raytac_mdbt50q_cx_40_dongle_nrf52840.yaml b/boards/raytac/mdbt50q_cx_40_dongle/raytac_mdbt50q_cx_40_dongle_nrf52840.yaml index d5ecd05ff73e..13148c5fe5e9 100644 --- a/boards/raytac/mdbt50q_cx_40_dongle/raytac_mdbt50q_cx_40_dongle_nrf52840.yaml +++ b/boards/raytac/mdbt50q_cx_40_dongle/raytac_mdbt50q_cx_40_dongle_nrf52840.yaml @@ -13,7 +13,7 @@ toolchain: - gnuarmemb supported: - usbd - - ble + - bluetooth - pwm - watchdog - counter diff --git a/boards/raytac/mdbt50q_db_33/raytac_mdbt50q_db_33_nrf52833.yaml b/boards/raytac/mdbt50q_db_33/raytac_mdbt50q_db_33_nrf52833.yaml index fa8c20d01633..4ea1e13c1322 100644 --- a/boards/raytac/mdbt50q_db_33/raytac_mdbt50q_db_33_nrf52833.yaml +++ b/boards/raytac/mdbt50q_db_33/raytac_mdbt50q_db_33_nrf52833.yaml @@ -12,7 +12,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/raytac/mdbt50q_db_40/raytac_mdbt50q_db_40_nrf52840.yaml b/boards/raytac/mdbt50q_db_40/raytac_mdbt50q_db_40_nrf52840.yaml index 4a1e5fd20de7..519db4859109 100644 --- a/boards/raytac/mdbt50q_db_40/raytac_mdbt50q_db_40_nrf52840.yaml +++ b/boards/raytac/mdbt50q_db_40/raytac_mdbt50q_db_40_nrf52840.yaml @@ -14,7 +14,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/renesas/aik_ra8d1/Kconfig.defconfig b/boards/renesas/aik_ra8d1/Kconfig.defconfig index 5eeadaf88376..3ed20bdfede9 100644 --- a/boards/renesas/aik_ra8d1/Kconfig.defconfig +++ b/boards/renesas/aik_ra8d1/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_AIK_RA8D1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_AIK_RA8D1 diff --git a/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_lcdc.overlay b/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_lcdc.overlay index b742c792fd94..84b0a7536a43 100644 --- a/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_lcdc.overlay +++ b/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_lcdc.overlay @@ -46,7 +46,7 @@ status = "okay"; reg = <0x38>; int-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; - swap-xy; + swapped-x-y; }; }; diff --git a/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_mipi_dbi.overlay b/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_mipi_dbi.overlay index 523f03b62a65..7965dc7a1a05 100644 --- a/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_mipi_dbi.overlay +++ b/boards/renesas/da14695_dk_usb/dts/da14695_dk_usb_mipi_dbi.overlay @@ -28,9 +28,9 @@ status = "okay"; reg = <0x38>; int-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; - swap-xy; - invert-x; - invert-y; + swapped-x-y; + inverted-x; + inverted-y; }; }; diff --git a/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_lcdc.overlay b/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_lcdc.overlay index b742c792fd94..84b0a7536a43 100644 --- a/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_lcdc.overlay +++ b/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_lcdc.overlay @@ -46,7 +46,7 @@ status = "okay"; reg = <0x38>; int-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; - swap-xy; + swapped-x-y; }; }; diff --git a/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_mipi_dbi.overlay b/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_mipi_dbi.overlay index 0af140a685eb..e45ef4147622 100644 --- a/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_mipi_dbi.overlay +++ b/boards/renesas/da1469x_dk_pro/dts/da1469x_dk_pro_mipi_dbi.overlay @@ -28,9 +28,9 @@ status = "okay"; reg = <0x38>; int-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; - swap-xy; - invert-x; - invert-y; + swapped-x-y; + inverted-x; + inverted-y; }; }; diff --git a/boards/renesas/ek_ra6m3/Kconfig.defconfig b/boards/renesas/ek_ra6m3/Kconfig.defconfig index 462c6a4c1d30..d03f2d160034 100644 --- a/boards/renesas/ek_ra6m3/Kconfig.defconfig +++ b/boards/renesas/ek_ra6m3/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA6M3 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_EK_RA6M3 diff --git a/boards/renesas/ek_ra6m4/Kconfig.defconfig b/boards/renesas/ek_ra6m4/Kconfig.defconfig index 275aafee3cf0..c2df801f5396 100644 --- a/boards/renesas/ek_ra6m4/Kconfig.defconfig +++ b/boards/renesas/ek_ra6m4/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA6M4 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault OUTPUT_RPD diff --git a/boards/renesas/ek_ra6m5/Kconfig.defconfig b/boards/renesas/ek_ra6m5/Kconfig.defconfig index 0a03db8a36b7..30a487fc42c6 100644 --- a/boards/renesas/ek_ra6m5/Kconfig.defconfig +++ b/boards/renesas/ek_ra6m5/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA6M5 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault OUTPUT_RPD diff --git a/boards/renesas/ek_ra8d1/Kconfig.defconfig b/boards/renesas/ek_ra8d1/Kconfig.defconfig index c8317b7acf4b..35b67347d924 100644 --- a/boards/renesas/ek_ra8d1/Kconfig.defconfig +++ b/boards/renesas/ek_ra8d1/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA8D1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_EK_RA8D1 diff --git a/boards/renesas/ek_ra8d2/Kconfig.defconfig b/boards/renesas/ek_ra8d2/Kconfig.defconfig index c50a095232c4..0a777e737ff8 100644 --- a/boards/renesas/ek_ra8d2/Kconfig.defconfig +++ b/boards/renesas/ek_ra8d2/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA8D2 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Enable fixed clock for ethernet phy diff --git a/boards/renesas/ek_ra8m1/Kconfig.defconfig b/boards/renesas/ek_ra8m1/Kconfig.defconfig index 72efdfd3951d..6761aabfb009 100644 --- a/boards/renesas/ek_ra8m1/Kconfig.defconfig +++ b/boards/renesas/ek_ra8m1/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA8M1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_EK_RA8M1 diff --git a/boards/renesas/ek_ra8m2/Kconfig.defconfig b/boards/renesas/ek_ra8m2/Kconfig.defconfig index 8dafa6e4b76e..b521b8cbce4a 100644 --- a/boards/renesas/ek_ra8m2/Kconfig.defconfig +++ b/boards/renesas/ek_ra8m2/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA8M2 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Enable fixed clock for ethernet phy diff --git a/boards/renesas/ek_ra8p1/Kconfig.defconfig b/boards/renesas/ek_ra8p1/Kconfig.defconfig index db77780d72a2..5126038f159d 100644 --- a/boards/renesas/ek_ra8p1/Kconfig.defconfig +++ b/boards/renesas/ek_ra8p1/Kconfig.defconfig @@ -10,7 +10,7 @@ config SD_CMD_TIMEOUT endif # DISK_DRIVER_SDMMC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Enable fixed clock for ethernet phy diff --git a/boards/renesas/ek_ra8t2/Kconfig.defconfig b/boards/renesas/ek_ra8t2/Kconfig.defconfig index 8c066b5fd106..21114d65f5fe 100644 --- a/boards/renesas/ek_ra8t2/Kconfig.defconfig +++ b/boards/renesas/ek_ra8t2/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_EK_RA8T2 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_EK_RA8T2 diff --git a/boards/renesas/mck_ra8t1/Kconfig.defconfig b/boards/renesas/mck_ra8t1/Kconfig.defconfig index 0b3e47e85978..c5b83664737b 100644 --- a/boards/renesas/mck_ra8t1/Kconfig.defconfig +++ b/boards/renesas/mck_ra8t1/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_MCK_RA8T1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_MCK_RA8T1 diff --git a/boards/renesas/mck_ra8t2/Kconfig.defconfig b/boards/renesas/mck_ra8t2/Kconfig.defconfig index 1b8f3b8ba238..04532baed3b7 100644 --- a/boards/renesas/mck_ra8t2/Kconfig.defconfig +++ b/boards/renesas/mck_ra8t2/Kconfig.defconfig @@ -3,7 +3,7 @@ if BOARD_MCK_RA8T2 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # BOARD_MCK_RA8T2 diff --git a/boards/retronix/sparrowhawk_rcar_v4h/doc/sparrow_hawk_rcar_v4h_r52.rst b/boards/retronix/sparrowhawk_rcar_v4h/doc/index.rst similarity index 100% rename from boards/retronix/sparrowhawk_rcar_v4h/doc/sparrow_hawk_rcar_v4h_r52.rst rename to boards/retronix/sparrowhawk_rcar_v4h/doc/index.rst diff --git a/boards/ruiside/ra8p1_titan/Kconfig.defconfig b/boards/ruiside/ra8p1_titan/Kconfig.defconfig index 8ae5f32d01c4..d4c73cfcbb9e 100644 --- a/boards/ruiside/ra8p1_titan/Kconfig.defconfig +++ b/boards/ruiside/ra8p1_titan/Kconfig.defconfig @@ -10,7 +10,7 @@ config SD_CMD_TIMEOUT endif # DISK_DRIVER_SDMMC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Enable fixed clock for ethernet phy diff --git a/boards/ruiside/ra8p1_titan_mini/Kconfig.defconfig b/boards/ruiside/ra8p1_titan_mini/Kconfig.defconfig index 7acb86f70374..1aaf1ade3792 100644 --- a/boards/ruiside/ra8p1_titan_mini/Kconfig.defconfig +++ b/boards/ruiside/ra8p1_titan_mini/Kconfig.defconfig @@ -10,7 +10,7 @@ config SD_CMD_TIMEOUT endif # DISK_DRIVER_SDMMC -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y # Enable fixed clock for ethernet phy diff --git a/boards/ruuvi/ruuvitag/ruuvi_ruuvitag.yaml b/boards/ruuvi/ruuvitag/ruuvi_ruuvitag.yaml index 3331bd179052..27152f5be473 100644 --- a/boards/ruuvi/ruuvitag/ruuvi_ruuvitag.yaml +++ b/boards/ruuvi/ruuvitag/ruuvi_ruuvitag.yaml @@ -8,7 +8,7 @@ toolchain: ram: 64 flash: 512 supported: - - ble + - bluetooth - adc - gpio - spi diff --git a/boards/seeed/wio_tracker_l1/wio_tracker_l1.yaml b/boards/seeed/wio_tracker_l1/wio_tracker_l1.yaml index c7520086261a..39f1065f59c9 100644 --- a/boards/seeed/wio_tracker_l1/wio_tracker_l1.yaml +++ b/boards/seeed/wio_tracker_l1/wio_tracker_l1.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - display - flash diff --git a/boards/seeed/xiao_ble/xiao_ble.yaml b/boards/seeed/xiao_ble/xiao_ble.yaml index fea7a4fa769f..c781431b987d 100644 --- a/boards/seeed/xiao_ble/xiao_ble.yaml +++ b/boards/seeed/xiao_ble/xiao_ble.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.yaml b/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.yaml index 7edb8000612d..ecd93dc62085 100644 --- a/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.yaml +++ b/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.yaml @@ -9,7 +9,7 @@ toolchain: - gnuarmemb supported: - adc - - ble + - bluetooth - counter - gpio - i2c diff --git a/boards/segger/ip_k66f/Kconfig.defconfig b/boards/segger/ip_k66f/Kconfig.defconfig index 347773c3eead..5d1e28da463a 100644 --- a/boards/segger/ip_k66f/Kconfig.defconfig +++ b/boards/segger/ip_k66f/Kconfig.defconfig @@ -17,7 +17,7 @@ config MCG_VDIV0 config MCG_FCRDIV default 1 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y configdefault ETH_NXP_ENET_RMII_EXT_CLK diff --git a/boards/sensry/ganymed_bob/Kconfig.defconfig b/boards/sensry/ganymed_bob/Kconfig.defconfig index f0a5ec770cf7..e14329732f2f 100644 --- a/boards/sensry/ganymed_bob/Kconfig.defconfig +++ b/boards/sensry/ganymed_bob/Kconfig.defconfig @@ -1,5 +1,5 @@ # Copyright (c) 2025 sensry.io # SPDX-License-Identifier: Apache-2.0 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/sensry/ganymed_sk/Kconfig.defconfig b/boards/sensry/ganymed_sk/Kconfig.defconfig index f0a5ec770cf7..e14329732f2f 100644 --- a/boards/sensry/ganymed_sk/Kconfig.defconfig +++ b/boards/sensry/ganymed_sk/Kconfig.defconfig @@ -1,5 +1,5 @@ # Copyright (c) 2025 sensry.io # SPDX-License-Identifier: Apache-2.0 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y diff --git a/boards/shields/arceli_eth_w5500/Kconfig.defconfig b/boards/shields/arceli_eth_w5500/Kconfig.defconfig index 7d582eec4904..a78a2b463bde 100644 --- a/boards/shields/arceli_eth_w5500/Kconfig.defconfig +++ b/boards/shields/arceli_eth_w5500/Kconfig.defconfig @@ -3,7 +3,7 @@ if SHIELD_ARCELI_ETH_W5500 -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # SHIELD_ARCELI_ETH_W5500 diff --git a/boards/shields/canis_canpico/doc/index.rst b/boards/shields/canis_canpico/doc/index.rst index a89e226fe2dd..0814947a1368 100644 --- a/boards/shields/canis_canpico/doc/index.rst +++ b/boards/shields/canis_canpico/doc/index.rst @@ -138,7 +138,6 @@ in your Zephyr application. For example: .. zephyr-app-commands:: :zephyr-app: samples/drivers/can/counter - :tool: all :board: rpi_pico :shield: canpico :goals: build flash diff --git a/boards/shields/esp_8266/boards/sam4e_xpro.defconfig b/boards/shields/esp_8266/boards/sam4e_xpro.defconfig index 464289cd49be..f692bd1b40b0 100644 --- a/boards/shields/esp_8266/boards/sam4e_xpro.defconfig +++ b/boards/shields/esp_8266/boards/sam4e_xpro.defconfig @@ -5,7 +5,7 @@ if BOARD_SAM4E_XPRO -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default n configdefault ETH_SAM_GMAC diff --git a/boards/shields/esp_threadbr_ethernet/Kconfig.defconfig b/boards/shields/esp_threadbr_ethernet/Kconfig.defconfig index 6981b963b1c2..83e4d5295fb4 100644 --- a/boards/shields/esp_threadbr_ethernet/Kconfig.defconfig +++ b/boards/shields/esp_threadbr_ethernet/Kconfig.defconfig @@ -3,7 +3,7 @@ if SHIELD_ESP_THREADBR_ETHERNET -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # SHIELD_ESP_THREADBR_ETHERNET diff --git a/boards/shields/frdm_cr20a/boards/frdm_k64f.defconfig b/boards/shields/frdm_cr20a/boards/frdm_k64f.defconfig index dd73ed2ad304..2b17d6be5e3e 100644 --- a/boards/shields/frdm_cr20a/boards/frdm_k64f.defconfig +++ b/boards/shields/frdm_cr20a/boards/frdm_k64f.defconfig @@ -7,7 +7,7 @@ if BOARD_FRDM_K64F -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default n endif # BOARD_FRDM_K64F diff --git a/boards/shields/inventek_eswifi/boards/frdm_k64f.defconfig b/boards/shields/inventek_eswifi/boards/frdm_k64f.defconfig index a8e4472d79c2..fa96b7edb9f1 100644 --- a/boards/shields/inventek_eswifi/boards/frdm_k64f.defconfig +++ b/boards/shields/inventek_eswifi/boards/frdm_k64f.defconfig @@ -5,7 +5,7 @@ if BOARD_FRDM_K64F -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default n endif # BOARD_FRDM_K64F diff --git a/boards/shields/inventek_eswifi/boards/nucleo_f767zi.defconfig b/boards/shields/inventek_eswifi/boards/nucleo_f767zi.defconfig index 5d4b204c5939..c94261a6d769 100644 --- a/boards/shields/inventek_eswifi/boards/nucleo_f767zi.defconfig +++ b/boards/shields/inventek_eswifi/boards/nucleo_f767zi.defconfig @@ -5,7 +5,7 @@ if BOARD_NUCLEO_F767ZI -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default n endif # BOARD_NUCLEO_F767ZI diff --git a/boards/shields/link_board_eth/Kconfig.defconfig b/boards/shields/link_board_eth/Kconfig.defconfig index 1780279ead98..1089b3098f93 100644 --- a/boards/shields/link_board_eth/Kconfig.defconfig +++ b/boards/shields/link_board_eth/Kconfig.defconfig @@ -3,7 +3,7 @@ if SHIELD_LINK_BOARD_ETH -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # SHIELD_LINK_BOARD_ETH diff --git a/boards/shields/mcp2515/doc/index.rst b/boards/shields/mcp2515/doc/index.rst index 5ba3df088da2..c5c572b4d137 100644 --- a/boards/shields/mcp2515/doc/index.rst +++ b/boards/shields/mcp2515/doc/index.rst @@ -547,14 +547,12 @@ For example: .. zephyr-app-commands:: :zephyr-app: samples/drivers/can/counter - :tool: all :board: nrf52dk/nrf52832 :shield: dfrobot_can_bus_v2_0 :goals: build flash .. zephyr-app-commands:: :zephyr-app: samples/drivers/can/counter - :tool: all :board: nrf52840dk/nrf52840 :shield: keyestudio_can_bus_ks0411 :goals: build flash diff --git a/boards/shields/mikroe_dali_2_click/Kconfig.shield b/boards/shields/mikroe_dali_2_click/Kconfig.shield new file mode 100644 index 000000000000..b4d3b2f9366a --- /dev/null +++ b/boards/shields/mikroe_dali_2_click/Kconfig.shield @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright (c) 2026 sevenlab engineering GmbH + +config SHIELD_MIKROE_DALI_2_CLICK + def_bool $(shields_list_contains,mikroe_dali_2_click) diff --git a/boards/shields/mikroe_dali_2_click/doc/images/dali_2_click.webp b/boards/shields/mikroe_dali_2_click/doc/images/dali_2_click.webp new file mode 100644 index 000000000000..c0aa5c43e7c9 Binary files /dev/null and b/boards/shields/mikroe_dali_2_click/doc/images/dali_2_click.webp differ diff --git a/boards/shields/mikroe_dali_2_click/doc/index.rst b/boards/shields/mikroe_dali_2_click/doc/index.rst new file mode 100644 index 000000000000..58bafecc1b24 --- /dev/null +++ b/boards/shields/mikroe_dali_2_click/doc/index.rst @@ -0,0 +1,47 @@ +.. _mikroe_dali_2_click_shield: + +MikroElektronika DALI 2 Click +############################# + +Overview +******** + +The DALI 2 Click shield provides a physical interface to a DALI bus. +The DALI bus interface uses separate Rx and Tx signals to communicate with the DALI bus. +The board uses optocouplers to isolate the DALI bus from the host board. + +More information about the shield can be found at +`Mikroe DALI 2 click`_. + +.. figure:: images/dali_2_click.webp + :align: center + :height: 300px + :alt: MikroElektronika DALI 2 Click + + MikroElektronika DALI 2 Click + +Requirements +************ + +The shield uses a mikroBUS interface. +The target board must define ``mikrobus_header`` node labels +(see :ref:`shields` for more details). + +Programming +*********** + +Set ``--shield mikroe_dali_2_click`` when you invoke ``west build``. For example: + +.. zephyr-app-commands:: + :zephyr-app: samples/drivers/dali/ + :board: + :shield: mikroe_dali_2_click + :goals: build flash + +References +********** + +.. target-notes:: + +.. _Mikroe DALI 2 click: + https://www.mikroe.com/dali-2-click diff --git a/boards/shields/mikroe_dali_2_click/mikroe_dali_2_click.overlay b/boards/shields/mikroe_dali_2_click/mikroe_dali_2_click.overlay new file mode 100644 index 000000000000..f2eaf43f6e3e --- /dev/null +++ b/boards/shields/mikroe_dali_2_click/mikroe_dali_2_click.overlay @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Copyright (c) 2026 sevenlab engineering GmbH + */ + +/ { + aliases { + dali = &mikroe_dali2_click; + }; +}; + +/ { + mikroe_dali2_click: dali2_click { + status = "okay"; + compatible = "zephyr,dali-pwm"; + + rx-gpios = <&mikrobus_header 7 GPIO_ACTIVE_HIGH>; + tx-flank-shift-us = <(-46)>; + rx-flank-shift-us = <(-68)>; + + /* override the following based on your board */ + counter = <&timer2>; + chan-id-rx = <0>; + chan-id-tx = <1>; + pwms = <&pwm0 0 PWM_USEC(41) PWM_POLARITY_NORMAL>; + }; +}; diff --git a/boards/shields/mikroe_dali_2_click/shield.yml b/boards/shields/mikroe_dali_2_click/shield.yml new file mode 100644 index 000000000000..724541fecc6e --- /dev/null +++ b/boards/shields/mikroe_dali_2_click/shield.yml @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright (c) 2026 sevenlab engineering GmbH + +shield: + name: mikroe_dali_2_click + full_name: DALI 2 Click + vendor: mikroe + supported_features: + - dali diff --git a/boards/shields/mikroe_eth3_click/Kconfig.defconfig b/boards/shields/mikroe_eth3_click/Kconfig.defconfig index 2f00dc52130c..cac3ba6f07ff 100644 --- a/boards/shields/mikroe_eth3_click/Kconfig.defconfig +++ b/boards/shields/mikroe_eth3_click/Kconfig.defconfig @@ -4,7 +4,7 @@ if SHIELD_MIKROE_ETH3_CLICK # LAN9250 is L2 chip slave on SPI -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # SHIELD_MIKROE_ETH3_CLICK diff --git a/boards/shields/mikroe_eth_click/Kconfig.defconfig b/boards/shields/mikroe_eth_click/Kconfig.defconfig index 6743d1961ab2..44fb56ba7385 100644 --- a/boards/shields/mikroe_eth_click/Kconfig.defconfig +++ b/boards/shields/mikroe_eth_click/Kconfig.defconfig @@ -4,7 +4,7 @@ if SHIELD_MIKROE_ETH_CLICK # ENC28J60 is L2 chip slave on SPI -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # SHIELD_MIKROE_ETH_CLICK diff --git a/boards/shields/mikroe_two_wire_eth_click/Kconfig.defconfig b/boards/shields/mikroe_two_wire_eth_click/Kconfig.defconfig index 6b664e1c98a2..dd60752c5b4b 100644 --- a/boards/shields/mikroe_two_wire_eth_click/Kconfig.defconfig +++ b/boards/shields/mikroe_two_wire_eth_click/Kconfig.defconfig @@ -4,7 +4,7 @@ if SHIELD_MIKROE_TWO_WIRE_ETH_CLICK # LAN865X is an Ethernet MAC+PHY controller on SPI -configdefault NET_L2_ETHERNET +configdefault ETH_DRIVER default y endif # SHIELD_MIKROE_TWO_WIRE_ETH_CLICK diff --git a/boards/shields/nxp_m2_ieee802154/doc/index.rst b/boards/shields/nxp_m2_ieee802154/doc/index.rst new file mode 100644 index 000000000000..52c95d1be4f7 --- /dev/null +++ b/boards/shields/nxp_m2_ieee802154/doc/index.rst @@ -0,0 +1,157 @@ +.. _nxp_m2_ieee802154: + +NXP M.2 IEEE 802.15.4 SPI RCP Shield +#################################### + +Overview +******** + +This Zephyr shield exposes an IEEE 802.15.4 Radio Co-Processor (RCP) over a SPI +transport, using an NXP M.2 module connected to the host platform through its M.2 +interface slot. The RCP runs the 802.15.4 radio and communicates with the host +using the Spinel protocol carried over an HDLC-framed SPI link +(``spi,hdlc-rcp-if``). This makes the shield suitable for OpenThread host +applications such as the OpenThread Border Router, where the host runs the +OpenThread stack and the M.2 module provides the 802.15.4 radio. + +The shield is tested with the following M.2 modules: + +- Embedded Artist 2EL module - uses Murata 2EL radio module with NXP IW612 chipset +- Embedded Artist 2LL module - uses Murata 2LL radio module with NXP IW610 chipset + +More information about the supported chipsets, radio modules and M.2 modules can +be found in the links below: + +- `IW612 NXP Chipset `_ +- `IW610 NXP Chipset `_ +- `2EL Murata Radio Module `_ +- `2LL Murata Radio Module `_ +- `2EL Embedded Artist Module `_ +- `2LL Embedded Artist Module `_ + +Requirements +************ + +To use the shield, the requirements below must be satisfied. + +- An M.2 module with a SPI RCP interface and an NXP IW612 or IW610 SoC. +- A host platform with a compatible M.2 interface slot and a free SPI + controller exposing SCK, SDI, SDO, a chip-select GPIO and an interrupt GPIO. +- The board overlay must enable the host SPI controller (for example ``&lpspi4`` + on the MIMXRT1060-EVK Rev-C) with ``cs-gpios`` and pinctrl, and instantiate the + ``spi,hdlc-rcp-if`` device node with its ``int-gpios``. + +Integration Platform +******************** + +This shield is validated and tested for use with the host platform listed below. +While the shield can be used with other host platforms, other combinations +are not actively tested or validated. + +- :zephyr:board:`mimxrt1060_evk` Rev-C (``mimxrt1060_evk@C/mimxrt1062/qspi``). + +Fetch Binary Blobs +****************** + +The M.2 module requires fetching binary blobs, using the following command: + +.. code-block:: console + + west blobs fetch hal_nxp + +Programming +*********** + +Use the following shield name with ``--shield