31dac92e5f
OpenCores Ethernet MAC has a relatively simple interface, and is already supported in QEMU. This makes it a good candidate for enabling network support when running IDF apps in QEMU, compared to the relatively more complex task of writing a QEMU model of ESP32 EMAC. This driver is written with QEMU in mind: it does not implement or handle things that aren't implemented or handled in the QEMU model: error flags, error interrupts. The transmit part of the driver also assumes that the TX operation is done immediately when the TX descriptor is written (which is the case with QEMU), hence waiting for the TX operation to complete is not necessary. For simplicity, the driver assumes that the peripheral register occupy the same memory range as the ESP32 EMAC registers, and the same interrupt source number is used.
149 lines
5.4 KiB
Text
149 lines
5.4 KiB
Text
menu "Example Connection Configuration"
|
|
choice EXAMPLE_CONNECT_INTERFACE
|
|
prompt "Connect using"
|
|
default EXAMPLE_CONNECT_WIFI
|
|
help
|
|
Protocol examples can use Wi-Fi or Ethernet to connect to the network.
|
|
Choose which interface to use.
|
|
|
|
config EXAMPLE_CONNECT_WIFI
|
|
bool "Wi-Fi"
|
|
|
|
config EXAMPLE_CONNECT_ETHERNET
|
|
bool "Ethernet"
|
|
|
|
endchoice
|
|
|
|
if EXAMPLE_CONNECT_WIFI
|
|
config EXAMPLE_WIFI_SSID
|
|
string "WiFi SSID"
|
|
default "myssid"
|
|
help
|
|
SSID (network name) for the example to connect to.
|
|
|
|
config EXAMPLE_WIFI_PASSWORD
|
|
string "WiFi Password"
|
|
default "mypassword"
|
|
help
|
|
WiFi password (WPA or WPA2) for the example to use.
|
|
Can be left blank if the network has no security set.
|
|
endif
|
|
|
|
if EXAMPLE_CONNECT_ETHERNET
|
|
choice EXAMPLE_USE_ETHERNET
|
|
prompt "Ethernet Type"
|
|
default EXAMPLE_USE_INTERNAL_ETHERNET if IDF_TARGET_ESP32
|
|
default EXAMPLE_USE_SPI_ETHERNET if !IDF_TARGET_ESP32
|
|
help
|
|
Select which kind of Ethernet will be used in the example.
|
|
|
|
config EXAMPLE_USE_INTERNAL_ETHERNET
|
|
depends on IDF_TARGET_ESP32
|
|
select ETH_USE_ESP32_EMAC
|
|
bool "Internal EMAC"
|
|
help
|
|
Select internal Ethernet MAC controller.
|
|
|
|
config EXAMPLE_USE_SPI_ETHERNET
|
|
bool "SPI Ethernet Module"
|
|
select ETH_USE_SPI_ETHERNET
|
|
help
|
|
Select external SPI-Ethernet module.
|
|
|
|
config EXAMPLE_USE_OPENETH
|
|
bool "OpenCores Ethernet MAC (EXPERIMENTAL)"
|
|
select ETH_USE_OPENETH
|
|
help
|
|
When this option is enabled, the example is built with support for
|
|
OpenCores Ethernet MAC, which allows testing the example in QEMU.
|
|
Note that this option is used for internal testing purposes, and
|
|
not officially supported. Examples built with this option enabled
|
|
will not run on a real ESP32 chip.
|
|
|
|
endchoice
|
|
|
|
if EXAMPLE_USE_INTERNAL_ETHERNET
|
|
choice EXAMPLE_ETH_PHY_MODEL
|
|
prompt "Ethernet PHY Device"
|
|
default EXAMPLE_ETH_PHY_IP101
|
|
help
|
|
Select the Ethernet PHY device to use in the example.
|
|
|
|
config EXAMPLE_ETH_PHY_IP101
|
|
bool "IP101"
|
|
help
|
|
IP101 is a single port 10/100 MII/RMII/TP/Fiber Fast Ethernet Transceiver.
|
|
Goto http://www.icplus.com.tw/pp-IP101G.html for more information about it.
|
|
|
|
config EXAMPLE_ETH_PHY_RTL8201
|
|
bool "RTL8201/SR8201"
|
|
help
|
|
RTL8201F/SR8201F is a single port 10/100Mb Ethernet Transceiver with auto MDIX.
|
|
Goto http://www.corechip-sz.com/productsview.asp?id=22 for more information about it.
|
|
|
|
config EXAMPLE_ETH_PHY_LAN8720
|
|
bool "LAN8720"
|
|
help
|
|
LAN8720A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX Support.
|
|
Goto https://www.microchip.com/LAN8720A for more information about it.
|
|
|
|
config EXAMPLE_ETH_PHY_DP83848
|
|
bool "DP83848"
|
|
help
|
|
DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver.
|
|
Goto http://www.ti.com/product/DP83848J for more information about it.
|
|
endchoice
|
|
endif
|
|
|
|
if EXAMPLE_USE_SPI_ETHERNET
|
|
config EXAMPLE_ETH_SPI_HOST
|
|
int "SPI Host Number"
|
|
range 0 2
|
|
default 1
|
|
help
|
|
Set the SPI host used to communicate with DM9051.
|
|
|
|
config EXAMPLE_ETH_SCLK_GPIO
|
|
int "SPI SCLK GPIO number"
|
|
range 0 33
|
|
default 19
|
|
help
|
|
Set the GPIO number used by SPI SCLK.
|
|
|
|
config EXAMPLE_ETH_MOSI_GPIO
|
|
int "SPI MOSI GPIO number"
|
|
range 0 33
|
|
default 23
|
|
help
|
|
Set the GPIO number used by SPI MOSI.
|
|
|
|
config EXAMPLE_ETH_MISO_GPIO
|
|
int "SPI MISO GPIO number"
|
|
range 0 33
|
|
default 25
|
|
help
|
|
Set the GPIO number used by SPI MISO.
|
|
|
|
config EXAMPLE_ETH_CS_GPIO
|
|
int "SPI CS GPIO number"
|
|
range 0 33
|
|
default 22
|
|
help
|
|
Set the GPIO number used by SPI CS.
|
|
|
|
config EXAMPLE_ETH_SPI_CLOCK_MHZ
|
|
int "SPI clock speed (MHz)"
|
|
range 20 80
|
|
default 20
|
|
help
|
|
Set the clock speed (MHz) of SPI interface.
|
|
endif
|
|
endif
|
|
|
|
config EXAMPLE_CONNECT_IPV6
|
|
bool "Obtain IPv6 link-local address"
|
|
default y
|
|
help
|
|
By default, examples will wait until IPv4 and IPv6 addresses are obtained.
|
|
Disable this option if the network does not support IPv6.
|
|
endmenu
|