mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
ed2e6735ff
- Added sys/timex.h and clock_adjtime API
123 lines
4.6 KiB
Plaintext
123 lines
4.6 KiB
Plaintext
menu "Ethernet"
|
|
|
|
# Invisible item that is enabled if any Ethernet selection is made
|
|
config ETH_ENABLED
|
|
bool
|
|
|
|
menuconfig ETH_USE_ESP32_EMAC
|
|
depends on SOC_EMAC_SUPPORTED
|
|
bool "Support ESP32 internal EMAC controller"
|
|
default y
|
|
select ETH_ENABLED
|
|
help
|
|
ESP32 integrates a 10/100M Ethernet MAC controller.
|
|
|
|
if ETH_USE_ESP32_EMAC
|
|
config ETH_DMA_BUFFER_SIZE
|
|
int "Ethernet DMA buffer size (Byte)"
|
|
range 256 1600
|
|
default 512
|
|
help
|
|
Set the size of each buffer used by Ethernet MAC DMA.
|
|
!! Important !! Make sure it is 64B aligned for ESP32P4!
|
|
|
|
config ETH_DMA_RX_BUFFER_NUM
|
|
int "Amount of Ethernet DMA Rx buffers"
|
|
range 3 30
|
|
default 10 if IDF_TARGET_ESP32
|
|
default 20 if IDF_TARGET_ESP32P4 #ESP32P4 has smaller internal Rx FIFO
|
|
help
|
|
Number of DMA receive buffers. Each buffer's size is ETH_DMA_BUFFER_SIZE.
|
|
Larger number of buffers could increase throughput somehow.
|
|
|
|
config ETH_DMA_TX_BUFFER_NUM
|
|
int "Amount of Ethernet DMA Tx buffers"
|
|
range 3 30
|
|
default 10
|
|
help
|
|
Number of DMA transmit buffers. Each buffer's size is ETH_DMA_BUFFER_SIZE.
|
|
Larger number of buffers could increase throughput somehow.
|
|
|
|
if ETH_DMA_RX_BUFFER_NUM > 15
|
|
config ETH_SOFT_FLOW_CONTROL
|
|
bool "Enable software flow control"
|
|
default n
|
|
help
|
|
Ethernet MAC engine on ESP32 doesn't feature a flow control logic.
|
|
The MAC driver can perform a software flow control if you enable this option.
|
|
Note that, if the RX buffer number is small, enabling software flow control will
|
|
cause obvious performance loss.
|
|
endif
|
|
|
|
config ETH_IRAM_OPTIMIZATION
|
|
bool "Enable IRAM optimization"
|
|
default n
|
|
help
|
|
If enabled, functions related to RX/TX are placed into IRAM. It can improve Ethernet throughput.
|
|
If disabled, all functions are placed into FLASH.
|
|
|
|
menu "Ethernet Clock"
|
|
depends on SOC_EMAC_IEEE1588V2_SUPPORTED
|
|
|
|
config ETH_CLOCK_ADJTIME_PERIOD_MS
|
|
int "Period over which adjtime() applies corrections (ms)"
|
|
default 1000
|
|
range 100 10000
|
|
help
|
|
The time period over which a clock_adjtime() correction is applied
|
|
by adjusting the hardware clock rate. The PTP clock's tick rate (ppb)
|
|
is computed as: ppb = delta_ns * 1000 / ETH_CLOCK_ADJTIME_PERIOD_MS.
|
|
|
|
config ETH_CLOCK_ADJTIME_SLEWLIMIT_PPB
|
|
int "Maximum clock slew rate (ppb)"
|
|
default 500000
|
|
range 1000 5000000
|
|
help
|
|
Drift estimates exceeding this limit (in ppb) are rejected as
|
|
out of range. Typical crystal oscillators drift less than 50 ppm
|
|
(50000 ppb).
|
|
endmenu
|
|
|
|
endif # ETH_USE_ESP32_EMAC
|
|
menuconfig ETH_USE_SPI_ETHERNET
|
|
bool "Support SPI to Ethernet Module"
|
|
default y
|
|
select ETH_ENABLED
|
|
help
|
|
ESP-IDF can also support SPI-Ethernet. Actual chip drivers are available as components in
|
|
Component Registry.
|
|
|
|
menuconfig ETH_USE_OPENETH
|
|
bool "Support OpenCores Ethernet MAC (for use with QEMU)"
|
|
default n
|
|
select ETH_ENABLED
|
|
help
|
|
OpenCores Ethernet MAC driver can be used when an ESP-IDF application
|
|
is executed in QEMU. This driver is not supported when running on a
|
|
real chip.
|
|
|
|
if ETH_USE_OPENETH
|
|
config ETH_OPENETH_DMA_RX_BUFFER_NUM
|
|
int "Number of Ethernet DMA Rx buffers"
|
|
range 1 64
|
|
default 4
|
|
help
|
|
Number of DMA receive buffers, each buffer is 1600 bytes.
|
|
|
|
config ETH_OPENETH_DMA_TX_BUFFER_NUM
|
|
int "Number of Ethernet DMA Tx buffers"
|
|
range 1 64
|
|
default 1
|
|
help
|
|
Number of DMA transmit buffers, each buffer is 1600 bytes.
|
|
endif # ETH_USE_OPENETH
|
|
|
|
config ETH_TRANSMIT_MUTEX
|
|
depends on ETH_ENABLED
|
|
bool "Enable Transmit Mutex"
|
|
default n
|
|
help
|
|
Prevents multiple accesses when Ethernet interface is used as shared resource and multiple
|
|
functionalities might try to access it at a time.
|
|
endmenu
|