CONFIG_IDF_TARGET="esp32p4" # L2 TAP for PTP CONFIG_ESP_NETIF_L2_TAP=y # PTP daemon CONFIG_NETUTILS_PTPD=y CONFIG_NETUTILS_PTPD_CLIENT=y CONFIG_NETUTILS_PTPD_SERVER=y CONFIG_NETUTILS_PTPD_SYNC_INTERVAL_MSEC=125 CONFIG_NETUTILS_PTPD_ANNOUNCE_INTERVAL_MSEC=2000 CONFIG_NETUTILS_PTPD_PRIORITY1=128 CONFIG_NETUTILS_PTPD_PRIORITY2=128 CONFIG_NETUTILS_PTPD_CLASS=248 CONFIG_NETUTILS_PTPD_ACCURACY=254 CONFIG_NETUTILS_PTPD_CLOCKSOURCE=160 CONFIG_NETUTILS_PTPD_TWOSTEP_SYNC=y CONFIG_NETUTILS_PTPD_SEND_DELAYREQ=y CONFIG_NETUTILS_PTPD_DELAYREQ_AVGCOUNT=8 CONFIG_NETUTILS_PTPD_SERVERPRIO=20 CONFIG_NETUTILS_PTPD_STACKSIZE=6144 CONFIG_NETUTILS_PTPD_MAX_PATH_DELAY_NS=1000000 CONFIG_NETUTILS_PTPD_PATH_DELAY_STABILITY_NS=5000 # PSRAM CONFIG_SPIRAM=y CONFIG_SPIRAM_SPEED_80M=y # lwIP - tuned for low-latency AES67 audio CONFIG_LWIP_SO_RCVBUF=y CONFIG_LWIP_NETBUF_RECVINFO=y CONFIG_LWIP_IP_DEFAULT_TTL=64 # lwIP task: pin to core 0 (same as I2S/Ethernet for cache coherency) CONFIG_LWIP_TCPIP_TASK_PRIO=23 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=4096 CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y # Larger mailboxes reduce queuing delay CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=128 CONFIG_LWIP_UDP_RECVMBOX_SIZE=128 # IRAM optimizations -- critical for reducing per-packet overhead CONFIG_LWIP_IRAM_OPTIMIZATION=y CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Disable features we don't need (reduces per-packet processing) CONFIG_LWIP_IP4_REASSEMBLY=n CONFIG_LWIP_STATS=n CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y # DHCP: fast acquisition, restore last IP to skip discovery CONFIG_LWIP_DHCP_RESTORE_LAST_IP=y CONFIG_LWIP_DHCP_OPTIONS_LEN=68 CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 # Ethernet DMA: 64 RX buffers for headroom CONFIG_ETH_ENABLED=y CONFIG_ETH_USE_ESP32_EMAC=y CONFIG_ETH_DMA_RX_BUFFER_NUM=64 CONFIG_ETH_DMA_TX_BUFFER_NUM=16 CONFIG_ETH_IRAM_OPTIMIZATION=y # mDNS CONFIG_MDNS_MAX_SERVICES=8 # FreeRTOS CONFIG_FREERTOS_HZ=1000 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096 CONFIG_FREERTOS_USE_TRACE_FACILITY=y # System CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096 CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192 CONFIG_ESP_TASK_WDT_TIMEOUT_S=10 # Performance optimization (-O2, critical for real-time audio paths) CONFIG_COMPILER_OPTIMIZATION_PERF=y # I2S ISR runs from IRAM (safe even when flash cache is disabled) CONFIG_I2S_ISR_IRAM_SAFE=y # Disable power management (real-time audio needs consistent performance) CONFIG_PM_ENABLE=n # Disable WiFi (Ethernet only, saves resources and avoids interference) CONFIG_ESP_WIFI_ENABLED=n # Disable IPv6 (saves ~39KB flash, 2KB RAM, reduces packet processing) CONFIG_LWIP_IPV6=n # HTTP server with WebSocket support CONFIG_HTTPD_WS_SUPPORT=y CONFIG_LWIP_MAX_SOCKETS=16 # Flash (Waveshare ESP32-P4-ETH: 32MB NOR flash) CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y