Maybe SPI plays some role here ? I see that disabling it (we don’t need it at all) KIWI goes mad and restarts because it WANTS to have spi enabled for the display. Moreover, looking at esp32-arduino header i see for esp32-poe-iso:
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
#define ETH_PHY_POWER 12
static const uint8_t KEY_BUILTIN = 34;
static const uint8_t TX = 1;
static const uint8_t RX = 3;
#define TX1 4
#define RX1 36
#define TX2 33 // ext2 pin 5
#define RX2 35 // ext2 pin 3
static const uint8_t SDA = 13;
static const uint8_t SCL = 16;
static const uint8_t SS = 5;
static const uint8_t MOSI = 2;
static const uint8_t MISO = 15;
static const uint8_t SCK = 14;
whereas esp32-gateway has (I have a Rev. C board):
#if ARDUINO_ESP32_GATEWAY >= ‘D’
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
#define ETH_PHY_POWER 5
#endif
static const uint8_t LED_BUILTIN = 33;
#define BUILTIN_LED LED_BUILTIN // backward compatibility
static const uint8_t KEY_BUILTIN = 34;
static const uint8_t SCL = 16; // This is extention pin 11
static const uint8_t SDA = 32; // This is extention pin 13
static const uint8_t SS = 5;
static const uint8_t MOSI = 23;
static const uint8_t MISO = 19;
static const uint8_t SCK = 18;
static const uint8_t TX = 1;
static const uint8_t RX = 3;
static const uint8_t A0 = 36;
static const uint8_t A3 = 39;
static const uint8_t A4 = 32;
static const uint8_t A7 = 35;
static const uint8_t T9 = 32;
#if ARDUINO_ESP32_GATEWAY >= ‘F’
#define BOARD_HAS_1BIT_SDMMC
#endif