Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
d92aacd
zephyr-cp: don't require a label on gpio-keys nodes
mikeysklar Jul 31, 2026
9daef62
zephyr-cp: build the TLSF heap in the largest RAM region
mikeysklar Jul 31, 2026
8bc17d9
zephyr-cp/wifi: subscribe to NET_EVENT_WIFI_SCAN_RESULT
mikeysklar Jul 31, 2026
b198668
boards: add Silicon Labs SiWx917-DK2605A (BRD2605A)
mikeysklar Jul 31, 2026
a4605eb
zephyr-cp/wifi: implement station connect
mikeysklar Jul 31, 2026
04d3191
zephyr-cp/_bleio: don't let an unsupported Tx power command block adv…
mikeysklar Aug 1, 2026
20ddbb4
zephyr-cp: keep special-purpose memory regions out of the Python heap
mikeysklar Aug 1, 2026
df644fe
zephyr-cp: allow boards to opt in to ulab
mikeysklar Aug 1, 2026
0d74da2
boards: siwx917_dk2605a: enable ulab, keep PSRAM out of the heap
mikeysklar Aug 1, 2026
7c45002
merge siwx917/fix-heap-largest-region
mikeysklar Aug 1, 2026
9cd2bd3
merge siwx917/fix-wifi-scan-result-event
mikeysklar Aug 1, 2026
7ec1190
merge siwx917/feat-wifi-station-connect
mikeysklar Aug 1, 2026
94123c7
merge siwx917/fix-bleio-advertising-tx-power
mikeysklar Aug 1, 2026
8ec3a40
merge siwx917/feat-ulab-support
mikeysklar Aug 1, 2026
1b88d93
merge siwx917/board-silabs-siwx917-dk2605a
mikeysklar Aug 1, 2026
199ff98
zephyr-cp/wifi: handle connect() while already associated
mikeysklar Aug 1, 2026
2977ca4
merge wifi reconnect fix
mikeysklar Aug 1, 2026
779b1f6
supervisor/web_workflow: check the listener socket calls for failure
mikeysklar Aug 1, 2026
de70526
zephyr-cp/wifi: return early when already connected to the requested …
mikeysklar Aug 1, 2026
fe7d95d
boards: siwx917_dk2605a: enable TCP and a zvfs descriptor table
mikeysklar Aug 1, 2026
a69a437
merge siwx917/fix-web-workflow-listener-errors
mikeysklar Aug 1, 2026
44fb284
merge siwx917/feat-wifi-station-connect
mikeysklar Aug 1, 2026
47a9b32
merge siwx917/board-silabs-siwx917-dk2605a
mikeysklar Aug 1, 2026
bc1cfdf
boards: siwx917_dk2605a: move the Zephyr console to SEGGER RTT
mikeysklar Aug 1, 2026
8d8e561
merge siwx917/board-silabs-siwx917-dk2605a
mikeysklar Aug 1, 2026
c861348
zephyr-cp: disable the unmaintained PSRAM data cache on SiWx917
mikeysklar Aug 1, 2026
edb489c
boards: siwx917_dk2605a: re-enable PSRAM as the Python heap
mikeysklar Aug 1, 2026
2429e85
merge siwx917/fix-psram-dcache-corruption
mikeysklar Aug 1, 2026
328c74d
merge siwx917/board-silabs-siwx917-dk2605a
mikeysklar Aug 1, 2026
e64da9b
zephyr-cp/wifi: drop the debug printks this branch added
mikeysklar Aug 1, 2026
203583e
merge siwx917/feat-wifi-station-connect
mikeysklar Aug 1, 2026
e69fb11
zephyr-cp/wifi: implement radio.ap_info
mikeysklar Aug 1, 2026
5b94dd3
merge siwx917/feat-wifi-ap-info
mikeysklar Aug 1, 2026
7f0d025
zephyr-cp/bleio: resume advertising after a disconnect
mikeysklar Aug 1, 2026
e0c3186
merge siwx917/fix-bleio-advertising-resume
mikeysklar Aug 1, 2026
4f783df
zephyr-cp/bleio: implement GATT server, fix connection flapping
mikeysklar Aug 3, 2026
0621fa6
zephyr-cp/bleio: remove temporary test_gatt_service diagnostic
mikeysklar Aug 3, 2026
ff3b5c9
zephyr-cp/wifi: route diagnostic printks through the log subsystem
mikeysklar Aug 3, 2026
1e1e1d0
merge siwx917/fix-wifi-printk-cleanup
mikeysklar Aug 3, 2026
8c04379
zephyr-cp/wifi: handle NET_EVENT_IPV4_ADDR_ADD
mikeysklar Aug 4, 2026
0363678
merge siwx917/fix-ipv4-addr-event
mikeysklar Aug 4, 2026
1981e96
zephyr-cp: resolve the vendor name from the vendor directory, not the…
mikeysklar Aug 4, 2026
7b8dbcf
merge siwx917/fix-board-name-vendor
mikeysklar Aug 4, 2026
4684e97
zephyr-cp/wifi: print unhandled net events with all 64 bits
mikeysklar Aug 4, 2026
e9ac061
zephyr-cp/wifi: handle NET_EVENT_IPV4_ADDR_ADD
mikeysklar Aug 4, 2026
19f0628
merge updated siwx917/fix-ipv4-addr-event (64-bit event print, reworded)
mikeysklar Aug 4, 2026
e8edc90
zephyr-cp/siwx917: board config sync - RTT console, TCP, heap, GPIO, DNS
mikeysklar Aug 4, 2026
e3b8928
zephyr-cp/wifi: per-AP security selection, real authmode, IPv4 getters
mikeysklar Aug 4, 2026
0d12526
merge siwx917/feat-wifi-per-ap-security
mikeysklar Aug 4, 2026
415f3f0
zephyr-cp/siwx917: enable SPI (GSPI) on the DK2605A
Aug 4, 2026
d1e3563
merge siwx917/feat-spi-gspi
mikeysklar Aug 4, 2026
6801d62
zephyr-cp: hardware regression tests for the web workflow
mikeysklar Aug 4, 2026
b62792b
merge siwx917/feat-web-workflow-hw-test
mikeysklar Aug 4, 2026
460ec7a
zephyr-cp: correct the measured refusal window in #35 references
mikeysklar Aug 4, 2026
b5e635a
zephyr-cp: fix pre-commit CI failures
mikeysklar Aug 4, 2026
b5eb970
zephyr-cp: enable BT_GATT_DYNAMIC_DB on every BT board; ruff format
mikeysklar Aug 4, 2026
6f6afbc
zephyr-cp: restore the py/py.mk pointer in configure_ulab_module docs…
mikeysklar Aug 4, 2026
a135a47
zephyr-cp: drop BT_GATT_DYNAMIC_DB from stm32wba65i_dk1 (BT is disabl…
mikeysklar Aug 4, 2026
4416385
zephyr-cp: verify BT_GATT_DYNAMIC_DB fix links on a non-siwx917 board
mikeysklar Aug 4, 2026
08c7328
zephyr-cp: fix web workflow connection refusals (NET_MAX_CONN)
mikeysklar Aug 4, 2026
0d4cfa4
zephyr-cp: refresh stale autogen_board_info.toml for nrf5340dk
mikeysklar Aug 4, 2026
709e2b1
zephyr-cp: record why NET_MAX_CONN is the constraining pool, not the …
mikeysklar Aug 4, 2026
871c7ed
zephyr-cp/wifi: fix version.json's "ip" field, split off mDNS gap as #37
mikeysklar Aug 4, 2026
094ace3
zephyr-cp/wifi: fix wifi.radio.addresses, sibling of the #34 stub
mikeysklar Aug 4, 2026
a2dceb4
zephyr-cp/wifi: expose raw MAC getter, guard net_if_ip.ipv4 access
mikeysklar Aug 4, 2026
5b632a8
tools: fix ci_changes_per_commit.py crash on null workflowRun
mikeysklar Aug 4, 2026
42bc790
zephyr-cp/mdns: implement common-hal for issue #37
mikeysklar Aug 4, 2026
6651855
zephyr-cp: drop dead heap==NULL fallback, correct the guard's mechanism
mikeysklar Aug 4, 2026
7e6f0d1
zephyr-cp: enable CONFIG_BUILD_OUTPUT_HEX for siwx917_dk2605a
mikeysklar Aug 4, 2026
1d99fd5
zephyr-cp: fall back to wifi MAC for cpu.uid on siwx91x (issue #7)
mikeysklar Aug 4, 2026
7400310
zephyr-cp: document that siwx91x cpu.uid is mutable, not a fixed serial
mikeysklar Aug 4, 2026
4043bca
zephyr-cp: document the dcache-disable / largest-region ordering depe…
mikeysklar Aug 4, 2026
6e6798a
zephyr-cp: rebase onto zephyr_260803, migrate two changed APIs
mikeysklar Aug 4, 2026
2b4737d
zephyr-cp: fix hci_ipc net-core conf for the rebased zephyr
mikeysklar Aug 5, 2026
9109724
zephyr-cp: explicitly enable CONFIG_PSA_CRYPTO, don't rely on a side …
mikeysklar Aug 5, 2026
2faeaee
zephyr-cp: TEMP diagnostic instrumentation for hostnetwork accept() s…
mikeysklar Aug 5, 2026
26d9ad9
zephyr-cp: revert diagnostic instrumentation in Socket.c
mikeysklar Aug 5, 2026
a05fc0c
zephyr-cp: single-source net-core conf, drop ISO and ext-adv (fixes #41)
mikeysklar Aug 5, 2026
88c0b27
zephyr-cp: regenerate nrf7002dk autogen_board_info for the new pin
mikeysklar Aug 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions ports/zephyr-cp/background.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@

#include <zephyr/kernel.h>

#if CIRCUITPY_BLEIO
#include "common-hal/_bleio/Adapter.h"
#endif

void port_start_background_tick(void) {
}

Expand All @@ -22,6 +26,13 @@ void port_background_tick(void) {
}

void port_background_task(void) {
#if CIRCUITPY_BLEIO
// Resume advertising after a disconnect. Deferred to here because the
// Zephyr disconnect callback runs in the BT thread, where bt_le_adv_start()
// must not be called.
bleio_background();
#endif

// Make sure time advances in the simulator.
#if defined(CONFIG_ARCH_POSIX)
k_busy_wait(100);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/adafruit_feather_nrf52840_uf2.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
1 change: 1 addition & 0 deletions ports/zephyr-cp/boards/board_aliases.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,4 @@ cp_board_alias(raspberrypi_rpi_pico_w_zephyr rpi_pico/rp2040/w)
cp_board_alias(raspberrypi_rpi_pico2_zephyr rpi_pico2/rp2350a/m33)
cp_board_alias(raspberrypi_rpi_pico2_w_zephyr rpi_pico2/rp2350a/m33/w)
cp_board_alias(st_nucleo_n657x0_q nucleo_n657x0_q/stm32n657xx)
cp_board_alias(silabs_siwx917_dk2605a siwx917_dk2605a)
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/da14695_dk_usb.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/frdm_rw612.conf
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ atexit = false
audiobusio = true # Zephyr board has audiobusio
audiocore = true # Zephyr board has audiobusio
audiodelays = true # Zephyr board has audiobusio
audiofilewriter = false
audiofilters = true # Zephyr board has audiobusio
audiofreeverb = true # Zephyr board has audiobusio
audioi2sin = false
audioio = false
audiomixer = true # Zephyr board has audiobusio
audiomp3 = true # Zephyr board has audiobusio
Expand Down Expand Up @@ -105,6 +107,7 @@ touchio = false
traceback = true
uheap = false
usb = false
usb_audio = false
usb_cdc = true
usb_hid = false
usb_host = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ atexit = false
audiobusio = false
audiocore = false
audiodelays = false
audiofilewriter = false
audiofilters = false
audiofreeverb = false
audioi2sin = false
audioio = false
audiomixer = false
audiomp3 = false
Expand Down Expand Up @@ -105,6 +107,7 @@ touchio = false
traceback = true
uheap = false
usb = false
usb_audio = false
usb_cdc = true
usb_hid = false
usb_host = false
Expand Down
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/nrf5340bsim_nrf5340_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ CONFIG_BT_CENTRAL=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y

CONFIG_BT_L2CAP_TX_MTU=253
CONFIG_BT_BUF_CMD_TX_COUNT=2
CONFIG_BT_BUF_CMD_TX_SIZE=255
Expand Down
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/nrf5340dk_nrf5340_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/nrf7002dk_nrf5340_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
7 changes: 7 additions & 0 deletions ports/zephyr-cp/boards/renesas_da14695_dk_usb.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_BROADCASTER=y

# common-hal/_bleio/Service.c registers GATT services built at runtime from
# Python, so it calls bt_gatt_service_register()/_unregister(). Those are only
# compiled into the host when BT_GATT_DYNAMIC_DB is set; without it the link
# fails with "undefined reference to bt_gatt_service_register". Every board
# that enables BT needs this as long as the port ships a GATT server.
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y

Expand Down
123 changes: 123 additions & 0 deletions ports/zephyr-cp/boards/silabs/siwx917_dk2605a/autogen_board_info.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# This file is autogenerated when a board is built. Do not edit. Do commit it to git. Other scripts use its info.
name = "Silicon Labs SiWx917 Wi-Fi 6 and Bluetooth LE SoC Dev Kit (BRD2605A)"

[modules]
__future__ = true
_bleio = true # Zephyr board has _bleio
_eve = false
_pew = false
_pixelmap = false
_stage = false
adafruit_bus_device = true
adafruit_pixelbuf = false
aesio = true
alarm = false
analogbufio = false
analogio = false
atexit = false
audiobusio = false
audiocore = false
audiodelays = false
audiofilewriter = false
audiofilters = false
audiofreeverb = false
audioi2sin = false
audioio = false
audiomixer = false
audiomp3 = false
audiopwmio = false
audiospeed = false
aurora_epaper = false
bitbangio = false
bitmapfilter = true # Zephyr board has busio
bitmaptools = true # Zephyr board has busio
bitops = false
board = false
busdisplay = true # Zephyr board has busio
busio = true # Zephyr board has busio
camera = false
canio = false
codeop = false
countio = false
digitalio = true
displayio = true # Zephyr board has busio
dotclockframebuffer = false
dualbank = false
epaperdisplay = true # Zephyr board has busio
floppyio = false
fontio = true # Zephyr board has busio
fourwire = true # Zephyr board has busio
framebufferio = true # Zephyr board has busio
frequencyio = false
getpass = true
gifio = true # Zephyr board has busio
gnss = false
hashlib = true # Zephyr networking enabled
hostnetwork = false
i2cdisplaybus = true # Zephyr board has busio
i2cioexpander = false
i2ctarget = false
imagecapture = false
ipaddress = true # Zephyr networking enabled
is31fl3741 = false
jpegio = true # Zephyr board has busio
keypad = false
keypad_demux = false
locale = false
lvfontio = true # Zephyr board has busio
math = true
max3421e = false
mcp4822 = false
mdns = true # Zephyr board has mdns
memorymap = false
memorymonitor = false
microcontroller = true
mipidsi = false
msgpack = true
neopixel_write = false
nvm = false
onewireio = false
os = true
paralleldisplaybus = false
ps2io = false
pulseio = false
pwmio = false
qrio = false
qspibus = false
rainbowio = true
random = true
rclcpy = false
rgbmatrix = false
rotaryio = true # Zephyr board has rotaryio
rtc = false
sdcardio = true # Zephyr board has busio
sdioio = false
sharpdisplay = true # Zephyr board has busio
socketpool = true # Zephyr networking enabled
spitarget = false
ssl = true # Zephyr networking enabled
storage = true
struct = true
supervisor = true
synthio = false
terminalio = true # Zephyr board has busio
tilepalettemapper = true # Zephyr board has busio
time = true
touchio = false
traceback = true
uheap = false
usb = false
usb_audio = false
usb_cdc = false
usb_hid = false
usb_host = false
usb_midi = false
usb_video = false
ustack = false
vectorio = true # Zephyr board has busio
warnings = true
watchdog = false
wifi = true # Zephyr board has wifi
zephyr_display = false
zephyr_kernel = false
zlib = true
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CIRCUITPY_BUILD_EXTENSIONS = ["elf", "hex"]
CIRCUITPY_ULAB = true
Loading
Loading