mirror of https://github.com/zmkfirmware/zmk.git
refactor(core): Adjust our approach for upstream Zephyr boards
Move to using proper HWMv2 board extensions https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html#board-extensions for extending upstream Zephyr boards for use with ZMK. With this change, using upstream Zephyr board IDs directly, e.g. `seeeduino_xiao` will be stock versions as found upstream. To use a board variant that is tuned for ZMK use, use the `zmk` variant, e.g. `seeeduino_xiao//zmk` which is shorthand for `seeeduino_xiao/samd21g18a/zmk`.
This commit is contained in:
parent
ac7f75b859
commit
7db083232b
|
|
@ -277,6 +277,7 @@ jobs:
|
|||
);
|
||||
} else {
|
||||
console.error("Board without keys or interconnect");
|
||||
return [];
|
||||
}
|
||||
break;
|
||||
case "shield":
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: adafruit_kb2040
|
||||
id: adafruit_kb2040//zmk
|
||||
name: Adafruit KB2040
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/adafruit/kb2040/adafruit_kb2040.dts>
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&pro_micro_serial { status = "disabled"; };
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
|
||||
|
||||
# Enable reset by default
|
||||
CONFIG_RESET=y
|
||||
|
||||
# Enable clock control by default
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# Code partition needed to target the correct flash range
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
|
||||
# Output UF2 by default, native bootloader supports it.
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Bootloader Support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: adafruit_kb2040
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: rp2040
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: adafruit_qt_py_rp2040
|
||||
id: adafruit_qt_py_rp2040//zmk
|
||||
name: Adafruit QT Py RP2040
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.dts>
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&xiao_serial { status = "disabled"; };
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
|
||||
|
||||
# Enable reset by default
|
||||
CONFIG_RESET=y
|
||||
|
||||
# Enable clock control by default
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# Code partition needed to target the correct flash range
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
|
||||
# Output UF2 by default, native bootloader supports it.
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Bootloader Support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: adafruit_qt_py_rp2040
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: rp2040
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
file_format: "1"
|
||||
id: boardsource_blok
|
||||
name: BoardSource blok
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
- usb
|
||||
url: https://peg.software/docs/blok
|
||||
exposes: [pro_micro]
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: boardsource_blok
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: rp2040
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
file_format: "1"
|
||||
id: boardsource_blok//zmk
|
||||
name: Boardsource Blok
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
- usb
|
||||
url: https://boardsource.xyz/products/blok-rp2040-keyboard-controller
|
||||
exposes: [pro_micro]
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/boardsource/blok/boardsource_blok.dts>
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&pro_micro_serial { status = "disabled"; };
|
||||
|
||||
&code_partition {
|
||||
reg = <0x100 (DT_SIZE_M(16) - 0x100 - DT_SIZE_K(512))>;
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
partitions {
|
||||
storage_partition: partition@f80000 {
|
||||
reg = <0xf80000 DT_SIZE_K(512)>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
|
||||
|
||||
CONFIG_RESET=y
|
||||
|
||||
# Enable clock control by default
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# Code partition needed to target the correct flash range
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
|
||||
# Output UF2 by default, native bootloader supports it.
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Settings Support
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
# Bootloader Support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2023 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&pro_micro_serial { status = "disabled"; };
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
CONFIG_ZMK_USB=y
|
||||
CONFIG_ZMK_KSCAN_MATRIX_POLLING=y
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
CONFIG_ZMK_USB=y
|
||||
CONFIG_ZMK_KSCAN_MATRIX_POLLING=y
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
CONFIG_ZMK_USB=y
|
||||
CONFIG_ZMK_KSCAN_MATRIX_POLLING=y
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <dt-bindings/zmk/kscan_mock.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,console = &uart0;
|
||||
zmk,kscan = &kscan;
|
||||
};
|
||||
|
||||
kscan: native_posix_64_kscan_mock {
|
||||
compatible = "zmk,kscan-mock";
|
||||
|
||||
rows = <2>;
|
||||
columns = <2>;
|
||||
exit-after;
|
||||
};
|
||||
|
||||
uart0: uart {
|
||||
status = "okay";
|
||||
compatible = "zephyr,native-posix-uart";
|
||||
/* Dummy current-speed entry to comply with serial
|
||||
* DTS binding
|
||||
*/
|
||||
current-speed = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdl_dc {
|
||||
width = <128>;
|
||||
height = <32>;
|
||||
};
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# Copyright (c) 2025 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_ZMK_BLE=y
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_ZMK_BLE=y
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
CONFIG_ZMK_DISPLAY=y
|
||||
CONFIG_LV_FONT_UNSCII_8=n
|
||||
CONFIG_ZMK_USB=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_DW=y
|
||||
CONFIG_LV_Z_VDB_SIZE=50
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2023 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
&xiao_serial { status = "disabled"; };
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
config BOARD_NATIVE_SIM
|
||||
bool
|
||||
select POSIX_ARCH_CONSOLE
|
||||
select NATIVE_LIBRARY
|
||||
select NATIVE_POSIX_TIMER
|
||||
select 64BIT if BOARD_NATIVE_SIM_NATIVE_ZMK_TEST_MOCK || BOARD_NATIVE_SIM_NATIVE_ZMK_DISPLAY_TESTING
|
||||
imply BOARD_NATIVE_POSIX if NATIVE_SIM_NATIVE_POSIX_COMPAT
|
||||
help
|
||||
Native simulator (Single Core)
|
||||
Will produce a console Linux process which can be executed natively.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
board:
|
||||
extend: native_sim
|
||||
variants:
|
||||
- name: zmk_display_testing
|
||||
qualifier: native
|
||||
- name: zmk_test_mock
|
||||
qualifier: native
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <behaviors.dtsi>
|
||||
|
||||
/ {
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
|
||||
default_layer {
|
||||
bindings = <
|
||||
&none &mo 1
|
||||
&kp A &none>;
|
||||
};
|
||||
|
||||
lower_layer {
|
||||
bindings = <
|
||||
&none &trans
|
||||
&none &kp A>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_ZMK_DISPLAY=y
|
||||
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=1000000
|
||||
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
CONFIG_GPIO=n
|
||||
# Enable to have the native posix build expose USBIP device(s)
|
||||
# CONFIG_ZMK_USB=y
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=1000000
|
||||
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#include "native_sim_zmk_test_mock.dts"
|
||||
|
||||
&kscan {
|
||||
events = <>;
|
||||
/delete-property/ exit-after;
|
||||
};
|
||||
|
||||
&sdl_dc {
|
||||
width = <128>;
|
||||
height = <128>;
|
||||
};
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
#include <../boards/native/native_sim/native_sim.dts>
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <dt-bindings/zmk/kscan_mock.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,console = &uart0;
|
||||
zmk,kscan = &kscan;
|
||||
};
|
||||
|
||||
|
|
@ -15,13 +15,5 @@
|
|||
columns = <2>;
|
||||
exit-after;
|
||||
};
|
||||
|
||||
uart0: uart {
|
||||
status = "okay";
|
||||
compatible = "zephyr,native-posix-uart";
|
||||
/* Dummy current-speed entry to comply with serial
|
||||
* DTS binding
|
||||
*/
|
||||
current-speed = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: nrf52_bsim
|
||||
variants:
|
||||
- name: zmk_test_mock
|
||||
qualifier: native
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (c) 2026 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_NO_OPTIMIZATIONS=y
|
||||
|
||||
CONFIG_ZMK_BLE=y
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
#include <../boards/native/nrf_bsim/nrf52_bsim.dts>
|
||||
|
||||
#include <behaviors.dtsi>
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <dt-bindings/zmk/kscan_mock.h>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
config BOARD_NRF52840DK
|
||||
select SOC_NRF52840_QIAA if BOARD_NRF52840DK_NRF52840_ZMK
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: nrf52840dk
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: nrf52840
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: nrf52840dk/nrf52840
|
||||
id: nrf52840dk/nrf52840/zmk
|
||||
name: Nordic nRF52840 DK
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/nordic/nrf52840dk/nrf52840dk_nrf52840.dts>
|
||||
|
||||
|
|
@ -1,9 +1,20 @@
|
|||
# Copyright (c) 2022 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable hardware stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# USB and BLE HID
|
||||
CONFIG_ZMK_USB=y
|
||||
CONFIG_ZMK_BLE=y
|
||||
|
||||
# Settings Support
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: nrf52840dongle
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: nrf52840
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.dts>
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (c) 2026 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable hardware stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Board Kconfig.defconfig enables USB CDC ACM and should disable USB remote
|
||||
# wakeup by default. It needs to be disabled here, because the USB nrfx
|
||||
# driver always overwrites option from Kconfig mentioned above with the
|
||||
# imply from CONFIG_USB_NRFX.
|
||||
CONFIG_USB_DEVICE_REMOTE_WAKEUP=n
|
||||
|
||||
# HID Transports
|
||||
CONFIG_ZMK_BLE=y
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Settings options
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
# * single overlay,
|
||||
# * or per board/shield.
|
||||
|
||||
list(APPEND KEYMAP_DIRS ${BOARD_DIR})
|
||||
list(APPEND KEYMAP_DIRS "${BOARD_DIRECTORIES}")
|
||||
get_filename_component(BOARD_DIR_NAME ${BOARD_DIR} NAME)
|
||||
# Give a shield like `kyria_rev2_left` we want to use `kyria_rev2` and `kyria` as candidate names for
|
||||
# overlay/conf/keymap files.
|
||||
|
|
@ -81,7 +81,7 @@ endif()
|
|||
if(NOT KEYMAP_FILE)
|
||||
message("${NORMALIZED_BOARD_TARGET} for ${NORMALIZED_BOARD_QUALIFIERS} for ${BOARD} with version ${BOARD_REVISION}")
|
||||
foreach(keymap_dir ${KEYMAP_DIRS})
|
||||
foreach(keymap_prefix ${shield_candidate_names} ${SHIELD_AS_LIST} ${SHIELD_DIR} "${BOARD}_${BOARD_REVISION_STRING}" ${BOARD} ${BOARD_DIR_NAME})
|
||||
foreach(keymap_prefix ${shield_candidate_names} ${SHIELD_AS_LIST} ${SHIELD_DIR} "${NORMALIZED_BOARD_TARGET}" "${BOARD}_${BOARD_REVISION_STRING}" ${BOARD} ${BOARD_DIR_NAME})
|
||||
if (EXISTS ${keymap_dir}/${keymap_prefix}.keymap)
|
||||
set(KEYMAP_FILE "${keymap_dir}/${keymap_prefix}.keymap" CACHE STRING "Selected keymap file")
|
||||
message(STATUS "Using keymap file: ${KEYMAP_FILE}")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: rpi_pico
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: rp2040
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
file_format: "1"
|
||||
id: rpi_pico//zmk
|
||||
name: Raspberry Pi Pico
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
- usb
|
||||
url: https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-1-family
|
||||
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/raspberrypi/rpi_pico/rpi_pico.dts>
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&uart0 { status = "disabled"; };
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
|
||||
|
||||
# Core deps
|
||||
CONFIG_RESET=y
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Build Output
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Settings Support
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
# Bootloader Support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: seeeduino_xiao
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: samd21g18a
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: seeeduino_xiao
|
||||
id: seeeduino_xiao//zmk
|
||||
name: Seeed Studio XIAO SAMD21
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/seeed/seeeduino_xiao/seeeduino_xiao.dts>
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# XTAL setup
|
||||
CONFIG_SOC_ATMEL_SAMD_XOSC32K=y
|
||||
CONFIG_SOC_ATMEL_SAMD_XOSC32K_AS_MAIN=y
|
||||
|
||||
# Bootloader Setup
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
CONFIG_BOOTLOADER_BOSSA=y
|
||||
CONFIG_BOOTLOADER_BOSSA_ADAFRUIT_UF2=y
|
||||
|
||||
# ZMK USB Transport
|
||||
CONFIG_ZMK_USB=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: xiao_ble
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: nrf52840
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: xiao_ble
|
||||
id: xiao_ble//zmk
|
||||
name: Seeed Studio XIAO nRF52840
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/seeed/xiao_ble/xiao_ble.dts>
|
||||
#include <common/nordic/nrf52840_uf2_boot_mode.dtsi>
|
||||
|
||||
/* Add an sd_partition label for compatibility with the nosd snippet */
|
||||
|
|
@ -1,12 +1,21 @@
|
|||
|
||||
CONFIG_CONSOLE=n
|
||||
CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable hardware stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# Enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
CONFIG_ZMK_USB=y
|
||||
CONFIG_ZMK_BLE=y
|
||||
|
||||
# Build UF2 by default, supported by the Adafruit nRF52 Bootloader
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
|
||||
# Settings Support
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
|
|
@ -14,6 +23,7 @@ CONFIG_FLASH=y
|
|||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
# Bootloader Support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: xiao_rp2040
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: rp2040
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: xiao_rp2040
|
||||
id: xiao_rp2040//zmk
|
||||
name: Seeed Studio XIAO RP2040
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/seeed/xiao_rp2040/xiao_rp2040.dts>
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&xiao_serial { status = "disabled"; };
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
|
||||
CONFIG_RESET=y
|
||||
|
||||
# Enable clock control by default
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# Code partition needed to target the correct flash range
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
|
||||
# Output UF2 by default, native bootloader supports it.
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
|
||||
# Enable USB HID transport by default
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Settings Enablement
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
|
||||
# Bootloader support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: sparkfun_pro_micro_rp2040
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: rp2040
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: sparkfun_pro_micro_rp2040
|
||||
id: sparkfun_pro_micro_rp2040//zmk
|
||||
name: SparkFun Pro Micro RP2040
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040.dts>
|
||||
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
|
||||
|
||||
&pro_micro_serial { status = "disabled"; };
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000
|
||||
|
||||
CONFIG_RESET=y
|
||||
|
||||
# Enable clock control by default
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# Code partition needed to target the correct flash range
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
|
||||
# Output UF2 by default, native bootloader supports it.
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Settings Support
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
|
||||
# Bootloader Support
|
||||
CONFIG_RETAINED_MEM=y
|
||||
CONFIG_RETENTION=y
|
||||
CONFIG_RETENTION_BOOT_MODE=y
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: blackpill_f401cc
|
||||
id: blackpill_f401cc//zmk
|
||||
name: BlackPill F401CC
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
/*
|
||||
* Copyright (c) 2022 The ZMK Contributors
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/weact/blackpill_f401cc/blackpill_f401cc.dts>
|
||||
|
||||
/ {
|
||||
blackpill: connector {
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable HW stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
|
||||
# Enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Defaults for matrix scanning to avoid interrupt issues
|
||||
CONFIG_ZMK_KSCAN_MATRIX_POLLING=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: blackpill_f401cc
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: stm32f401xc
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: blackpill_f401ce
|
||||
id: blackpill_f401ce//zmk
|
||||
name: BlackPill F401CE
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
/*
|
||||
* Copyright (c) 2022 The ZMK Contributors
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/weact/blackpill_f401ce/blackpill_f401ce.dts>
|
||||
|
||||
/ {
|
||||
blackpill: connector {
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable HW stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
|
||||
# Enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Defaults for matrix scanning to avoid interrupt issues
|
||||
CONFIG_ZMK_KSCAN_MATRIX_POLLING=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: blackpill_f401ce
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: stm32f401xe
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
file_format: "1"
|
||||
id: blackpill_f411ce
|
||||
id: blackpill_f411ce//zmk
|
||||
name: BlackPill F411CE
|
||||
type: board
|
||||
arch: arm
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
* Copyright (c) 2026 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <../boards/weact/blackpill_f411ce/blackpill_f411ce.dts>
|
||||
|
||||
/ {
|
||||
blackpill: connector {
|
||||
compatible = "blackpill";
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable HW stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
|
||||
# Enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# USB HID
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
# Defaults for matrix scanning to avoid interrupt issues
|
||||
CONFIG_ZMK_KSCAN_MATRIX_POLLING=y
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
extend: blackpill_f411ce
|
||||
variants:
|
||||
- name: zmk
|
||||
qualifier: stm32f411xe
|
||||
|
|
@ -11,7 +11,7 @@ shield:
|
|||
include:
|
||||
- board: bdn9
|
||||
- board: nice60
|
||||
- board: xiao_ble
|
||||
- board: xiao_ble//zmk
|
||||
shield: hummingbird
|
||||
- board: nrf52840_m2
|
||||
shield: m60
|
||||
|
|
@ -26,7 +26,7 @@ include:
|
|||
shield: kyria_left
|
||||
cmake-args: "-DCONFIG_ZMK_POINTING=y"
|
||||
nickname: "mouse"
|
||||
- board: sparkfun_pro_micro_rp2040
|
||||
- board: sparkfun_pro_micro_rp2040//zmk
|
||||
shield: reviung41
|
||||
cmake-args: "-DSNIPPET='zmk-usb-logging'"
|
||||
- board: nice_nano
|
||||
|
|
@ -59,12 +59,12 @@ include:
|
|||
snippet: studio-rpc-usb-uart
|
||||
cmake-args: "-DCONFIG_ZMK_STUDIO=y"
|
||||
nickname: "split-right-studio"
|
||||
- board: sparkfun_pro_micro_rp2040
|
||||
- board: sparkfun_pro_micro_rp2040//zmk
|
||||
shield: reviung41
|
||||
snippet: studio-rpc-usb-uart
|
||||
cmake-args: "-DCONFIG_ZMK_STUDIO=y"
|
||||
nickname: "rp2040-studio"
|
||||
- board: seeeduino_xiao
|
||||
- board: seeeduino_xiao//zmk
|
||||
shield: hummingbird
|
||||
snippet: studio-rpc-usb-uart
|
||||
cmake-args: "-DCONFIG_ZMK_STUDIO=y"
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ echo "Running $testcase:"
|
|||
shopt -s nullglob
|
||||
for file in $(pwd)/$testcase/peripheral*.overlay ; do
|
||||
pn=$(basename -s .overlay ${file})
|
||||
west build -d build/${testcase%%/}_${pn}/ -b nrf52_bsim -- -DZMK_CONFIG="$(pwd)/$testcase" -DEXTRA_DTC_OVERLAY_FILE="${file}" > /dev/null 2>&1
|
||||
west build -d build/${testcase%%/}_${pn}/ -b nrf52_bsim//zmk_test_mock -- -DZMK_CONFIG="$(pwd)/$testcase" -DEXTRA_DTC_OVERLAY_FILE="${file}" > /dev/null 2>&1
|
||||
|
||||
if [ $? -gt 0 ]; then
|
||||
echo "FAILED: $testcase peripheral ${pn} did not build" | tee -a ./build/tests/pass-fail.log
|
||||
|
|
@ -76,7 +76,7 @@ if ls $(pwd)/$testcase/peripheral*.overlay >/dev/null 2>&1; then
|
|||
extra_cmake_args="-DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=y"
|
||||
fi
|
||||
|
||||
west build -d build/$testcase -b nrf52_bsim -- -DZMK_CONFIG="$(pwd)/$testcase" ${extra_cmake_args} > /dev/null 2>&1
|
||||
west build -d build/$testcase -b nrf52_bsim//zmk_test_mock -- -DZMK_CONFIG="$(pwd)/$testcase" ${extra_cmake_args} > /dev/null 2>&1
|
||||
if [ $? -gt 0 ]; then
|
||||
echo "FAILED: $testcase did not build" | tee -a ./build/tests/pass-fail.log
|
||||
exit 1
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ testcase=$(realpath $path | sed -n -e "s|.*/tests/||p")
|
|||
echo "Running $testcase:"
|
||||
|
||||
build_cmd="west build ${ZMK_SRC_DIR:+-s $ZMK_SRC_DIR} -d ${ZMK_BUILD_DIR}/tests/$testcase \
|
||||
-b native_sim/native/64 -p -- -DCONFIG_ASSERT=y -DZMK_CONFIG="$(realpath $path)" \
|
||||
-b native_sim//zmk_test_mock -p -- -DCONFIG_ASSERT=y -DZMK_CONFIG="$(realpath $path)" \
|
||||
${ZMK_EXTRA_MODULES:+-DZMK_EXTRA_MODULES="$(realpath ${ZMK_EXTRA_MODULES})"}"
|
||||
|
||||
# Add extra cmake arguments from file if it exists
|
||||
|
|
|
|||
Loading…
Reference in New Issue