Skip to content

Commit fe1479f

Browse files
committed
zephyr: Add ESP32-C5_DevKitC board.
Add an ESP32-C5 board. Signed-off-by: Vdragon <mail@massdriver.space>
1 parent 1dccd13 commit fe1479f

2 files changed

Lines changed: 154 additions & 0 deletions

File tree

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Hardware features.
2+
CONFIG_FPU=n
3+
CONFIG_PINCTRL=y
4+
CONFIG_GPIO=y
5+
CONFIG_WATCHDOG=y
6+
CONFIG_CONSOLE_SUBSYS=y
7+
CONFIG_CONSOLE_GETCHAR=y
8+
CONFIG_CONSOLE_GETCHAR_BUFSIZE=1024
9+
CONFIG_CONSOLE_PUTCHAR_BUFSIZE=1024
10+
CONFIG_I2C=y
11+
CONFIG_I2C_TARGET=y
12+
CONFIG_SPI=y
13+
CONFIG_ENTROPY_GENERATOR=y
14+
CONFIG_HWINFO=y
15+
16+
# PSRAM
17+
CONFIG_ESP_SPIRAM=y
18+
CONFIG_SPIRAM_MODE_QUAD=y
19+
CONFIG_ESPTOOLPY_FLASHFREQ_120M=y
20+
CONFIG_SPIRAM_SPEED_120M=y
21+
22+
# MicroPython config
23+
CONFIG_MICROPY_HEAP_SIZE=64
24+
CONFIG_MAIN_STACK_SIZE=32768
25+
CONFIG_MICROPY_CONFIG_ROM_LEVEL_FULL_FEATURES=y
26+
27+
# File System Configuration
28+
CONFIG_FLASH=y
29+
CONFIG_FLASH_MAP=y
30+
CONFIG_FILE_SYSTEM=y
31+
CONFIG_FILE_SYSTEM_LITTLEFS=y
32+
CONFIG_FILE_SYSTEM_MKFS=y
33+
CONFIG_MICROPY_VFS_FAT=y
34+
CONFIG_MICROPY_VFS_LFS1=n
35+
CONFIG_MICROPY_VFS_LFS2=n
36+
# Default heap for littlefs is too small
37+
CONFIG_FS_LITTLEFS_FC_HEAP_SIZE=8192
38+
39+
# Bluetooth
40+
CONFIG_BT=y
41+
CONFIG_BT_DEVICE_NAME_DYNAMIC=y
42+
CONFIG_BT_DEVICE_APPEARANCE_DYNAMIC=y
43+
CONFIG_BT_GATT_DYNAMIC_DB=y
44+
CONFIG_BT_PERIPHERAL=y
45+
CONFIG_BT_CENTRAL=y
46+
CONFIG_BT_GATT_CLIENT=y
47+
CONFIG_BT_GATT_ENFORCE_SUBSCRIPTION=n
48+
CONFIG_BT_DIS=y
49+
CONFIG_BT_DIS_PNP=n
50+
CONFIG_BT_SMP=y
51+
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
52+
53+
# Networking config
54+
CONFIG_NETWORKING=y
55+
CONFIG_WIFI=y
56+
CONFIG_WIFI_NM=y
57+
CONFIG_NET_L2_WIFI_MGMT=y
58+
CONFIG_NET_IPV4=y
59+
CONFIG_NET_IPV6=y
60+
CONFIG_NET_UDP=y
61+
CONFIG_NET_TCP=y
62+
CONFIG_NET_SOCKETS=y
63+
CONFIG_NET_HOSTNAME_ENABLE=y
64+
CONFIG_NET_HOSTNAME_DYNAMIC=y
65+
CONFIG_WIFI_USAGE_MODE_STA_AP=y
66+
CONFIG_NET_SOCKETS_INET_RAW=y
67+
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
68+
CONFIG_NET_SOCKETS_TLS_MAX_CONTEXTS=2
69+
CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH=y
70+
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
71+
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=16384
72+
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
73+
CONFIG_MBEDTLS_X509_USE_C=y
74+
CONFIG_MBEDTLS_X509_CRT_PARSE_C=y
75+
CONFIG_MBEDTLS_PEM_PARSE_C=y
76+
CONFIG_MBEDTLS_BASE64_C=y
77+
CONFIG_MBEDTLS_ENTROPY_C=y
78+
CONFIG_MBEDTLS_CIPHER=y
79+
CONFIG_MBEDTLS_CIPHERSUITE_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256=y
80+
CONFIG_MBEDTLS_HASH_ALL_ENABLED=y
81+
CONFIG_PSA_WANT_ALG_SHA_1=y
82+
CONFIG_ZVFS_POLL_MAX=10
83+
CONFIG_NET_IF_MAX_IPV6_COUNT=2
84+
CONFIG_NET_IF_MAX_IPV4_COUNT=2
85+
86+
# Safeguard an amount of LIBC malloc space
87+
CONFIG_COMMON_LIBC_MALLOC=y
88+
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=16384
89+
90+
# DNS
91+
CONFIG_DNS_RESOLVER=y
92+
CONFIG_DNS_RESOLVER_AUTO_INIT=y
93+
CONFIG_DNS_RESOLVER_ADDITIONAL_QUERIES=2
94+
CONFIG_DNS_RESOLVER_MAX_SERVERS=2
95+
CONFIG_NET_SOCKETS_DNS_TIMEOUT=4000
96+
97+
# DHCP configuration.
98+
CONFIG_NET_DHCPV4=y
99+
CONFIG_NET_DHCPV6=y
100+
CONFIG_NET_DHCPV4_SERVER=y
101+
102+
# Use less heap than recommended, but using all of is very unlikely
103+
CONFIG_HEAP_MEM_POOL_SIZE=40960
104+
CONFIG_HEAP_MEM_POOL_IGNORE_MIN=y
105+
CONFIG_SYS_HEAP_RUNTIME_STATS=y
106+
107+
# Required for socket.pkt_get_info()
108+
CONFIG_NET_BUF_POOL_USAGE=y
109+
110+
# Relocate some things to PSRAM to free up SRAM
111+
CONFIG_ESP_WIFI_HEAP_SPIRAM=y
112+
CONFIG_ESP32_WIFI_NET_ALLOC_SPIRAM=y
113+
114+
# Don't use 40KB of RAM for nothing
115+
CONFIG_MBEDTLS_PSA_STATIC_KEY_SLOTS=n
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright (c) 2026 MASSDRIVER EI (massdriver.space)
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
// chosen {
9+
// zephyr,mbedtls-heap = &heap_mbedtls;
10+
// };
11+
12+
fstab {
13+
compatible = "zephyr,fstab";
14+
lfs: lfs {
15+
compatible = "zephyr,fstab,littlefs";
16+
mount-point = "/flash";
17+
partition = <&storage_partition>;
18+
read-size=<16>;
19+
prog-size=<256>;
20+
cache-size=<1024>;
21+
lookahead-size=<32>;
22+
block-cycles=<4>;
23+
};
24+
};
25+
26+
heap_psram {
27+
compatible = "micropython,heap";
28+
size = <DT_SIZE_M(6)>;
29+
memory-region = <&ext_ram_mock>;
30+
};
31+
32+
/* EXTRAM region does not result in a region that picks EXTRAM sections, bad espressif
33+
* However, the LD region already picks the mbedtls heap by default.
34+
*/
35+
ext_ram_mock: bad_memory_region {
36+
compatible = "micropython,bad-region";
37+
zephyr,memory-region = ".ext_ram_noinit.mpy_head";
38+
};
39+
};

0 commit comments

Comments
 (0)