1# Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd.
2# SPDX-License-Identifier: Apache-2.0
3
4config SOC_SERIES_ESP32
5	select XTENSA
6	select CLOCK_CONTROL
7	select DYNAMIC_INTERRUPTS
8	select ARCH_HAS_GDBSTUB
9	select ARCH_SUPPORTS_COREDUMP
10	select PINCTRL
11	select HAS_ESPRESSIF_HAL
12	select CPU_HAS_FPU
13	select HAS_PM
14	select HAS_POWEROFF
15
16if SOC_SERIES_ESP32
17
18config ESP32_BT_RESERVE_DRAM
19	hex "Bluetooth controller reserved RAM region"
20	default 0xdb5c if BT
21	default 0
22
23config ESP_HEAP_MEM_POOL_REGION_1_SIZE
24	int "Internal DRAM region 1 mempool size"
25	default 0 if MCUBOOT
26	default 1024 if SOC_ESP32_PROCPU
27	default 49152
28	help
29	  ESP32 has two banks of size 192K and 128K which can be used
30	  as DRAM, system heap allocates area from region 0.
31	  This configuration can be used to add memory from region 1
32	  to heap and can be allocated using k_malloc.
33
34config ESP32_DEEP_SLEEP_WAKEUP_DELAY
35	int "Extra delay in deep sleep wake stub (in us)"
36	default 2000
37	range 0 5000
38	help
39	  When ESP32 exits deep sleep, the CPU and the flash chip are powered on
40	  at the same time. CPU will run deep sleep stub first, and then
41	  proceed to load code from flash. Some flash chips need sufficient
42	  time to pass between power on and first read operation. By default,
43	  without any extra delay, this time is approximately 900us, although
44	  some flash chip types need more than that.
45
46	  By default extra delay is set to 2000us. When optimizing startup time
47	  for applications which require it, this value may be reduced.
48
49	  If you are seeing "flash read err, 1000" message printed to the
50	  console after deep sleep reset, try increasing this value.
51
52config ESP32_EMAC
53	bool
54	default y if ETH_ESP32
55	default y if MDIO_ESP32
56	default n
57	help
58	  Hidden option to enable the ESP32 Ethernet MAC driver.
59	  Both Ethernet and MDIO depend on this driver.
60	  This option allows enabling MDIO independently of Ethernet.
61
62if ESP32_EMAC
63
64config ETH_DMA_BUFFER_SIZE
65	int "Ethernet DMA buffer size (Byte)"
66	range 256 1600
67	default 512
68	help
69	  Set the size of each buffer used by Ethernet MAC DMA.
70
71config ETH_DMA_RX_BUFFER_NUM
72	int "Amount of Ethernet DMA Rx buffers"
73	range 3 30
74	default 10
75	help
76	  Number of DMA receive buffers. Each buffer's size is ETH_DMA_BUFFER_SIZE.
77	  Larger number of buffers could increase throughput somehow.
78
79config ETH_DMA_TX_BUFFER_NUM
80	int "Amount of Ethernet DMA Tx buffers"
81	range 3 30
82	default 10
83	help
84	  Number of DMA transmit buffers. Each buffer's size is ETH_DMA_BUFFER_SIZE.
85	  Larger number of buffers could increase throughput somehow.
86
87endif # ESP32_EMAC config
88
89endif # SOC_SERIES_ESP32
90