CONFIG_IDF_TARGET="esp32p4" # OTA layout (partitions.csv): two app slots, no factory CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" # Bootloader had only 6% free below 0x8000; moved so it can grow (e.g. secure boot) without a relayout CONFIG_PARTITION_TABLE_OFFSET=0x10000 # Rollback lives in the bootloader, which is only ever flashed over USB: enable it from the start CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y # Board has engineering silicon v1.3 (esptool chip_id). Rev <3 binaries don't run on rev 3 and vice versa. CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y CONFIG_ESP32P4_REV_MIN_100=y # 32 MB flash (esptool flash_id: GigaDevice c8/4019). App slots stay below 16 MB; # cache mapping above 16 MB is experimental in IDF. CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y # LLDP and PTP send raw frames from their own tasks next to lwIP: serialise EMAC transmits CONFIG_ETH_TRANSMIT_MUTEX=y # lwIP default is 10 sockets; PTP (2), AES67 TX, SAP, syslog and httpd's listen/control sockets # use 7, leaving ~3 for web clients (httpd allows 7): a browser's keep-alive connections then # starve new requests. 16 = 7 others + 7 web clients + OTA self-test client + 1 spare. CONFIG_LWIP_MAX_SOCKETS=16