Hi @jhzhao, frankly speaking your post is a little ambiguous. There is not much details. Therefore I am not sure if I can reply to it in satisfactory manner but I try.
ESP32 boots to boot mode since GPIO is bootstrap pin and a special care needs to be taken to handle the boot properly. This has been discussed multiple times, here is example of such discussion
https://github.com/espressif/arduino-esp32/pull/6188.
The most proper way is to feed the GPIO0 with RMII REF CLK only after the ESP32 boots. It can be achieved by multiple ways:
- Enable OSC only after the ESP32 boots. You can do it by:
* connecting OSC OE to ESP32 GPIO and control it by software
* delay OSC OE by RC circuit on your board
- if PHY is source of REF_CLK, keep the PHY in reset and release it from reset during Ethernet driver init by providing reset GPIO to the driver. This is how it is done on Espressif Ethernet Kit dev board. However, note that not all PHY chips support this configuration. For example LAN8720 does not.
Regarding your 100 ohm resistor solution, I am not sure about it since I am not HW expert but I would be a little bit worry about signal integrity. Does Ethernet work in this configuration?