Wifi over SDIO on P4
Posted: Fri Jan 03, 2025 3:44 pm
I am trying to build examples/wifi/iperf for ESP32-P4 on ESP-IDF v5.4.
According to the README it is supported on P4. Even if it wireless-less chip it can utilize C6 for WiFi over SDIO.
Let's ignore reboot loop for now (I've debugged it and it is because "static struct esp_sip *sip = NULL;" is still NULL at the time of access in esp_sip.c (in esp-extconn module)).
What would cause SDIO timeouts?
Pinouts are good.
Does anybody has success story with P4 and WiFi?
According to the README it is supported on P4. Even if it wireless-less chip it can utilize C6 for WiFi over SDIO.
After flashing and running:idf menuconfig
Component config → ESP external connectivity
(54) Slave enable pin
(1) Slave enable gpio level
(6) Slave boot pin
Component config → ESP external connectivity → IO Configuration → SDIO Slot configuration
(1) host slot
(18) clk
(19) cmd
(14) D0
(15) D1
(16) D2
(17) D3
Component config → Wi-Fi → Host WiFi Enable
Partition Table → Partition Table: Single factory app (large), no OTA
Error 0x107 is ESP_ERR_TIMEOUT.Rebooting...
ESP-ROM:esp32p4-eco1-20240205
Build:Feb 5 2024
rst:0xc (SW_CPU_RESET),boot:0x10f (SPI_FAST_FLASH_BOOT)
Core0 Saved PC:0x4ff00c4c
Core1 Saved PC:0x4ff048c4
SPI mode:DIO, clock div:1
load:0x4ff33ce0,len:0x1150
load:0x4ff2abd0,len:0xaf4
load:0x4ff2cbd0,len:0x3078
entry 0x4ff2abd0
I (215) cpu_start: Multicore app
I (224) cpu_start: Pro cpu start user code
I (225) cpu_start: cpu freq: 360000000 Hz
I (225) app_init: Application information:
I (225) app_init: Project name: iperf
I (228) app_init: App version: v5.4-rc1-10-gde29670d9c-dirty
I (234) app_init: Compile time: Jan 3 2025 16:17:52
I (239) app_init: ELF file SHA256: 4008049d2...
I (243) app_init: ESP-IDF: v5.4-rc1-10-gde29670d9c-dirty
I (249) efuse_init: Min chip rev: v0.1
I (253) efuse_init: Max chip rev: v1.99
I (257) efuse_init: Chip rev: v0.1
I (261) heap_init: Initializing. RAM available for dynamic allocation:
I (267) heap_init: At 4FF1D8E0 len 0001D6E0 (117 KiB): RAM
I (272) heap_init: At 4FF3AFC0 len 00004BF0 (18 KiB): RAM
I (277) heap_init: At 4FF40000 len 00060000 (384 KiB): RAM
I (283) heap_init: At 50108080 len 00007F80 (31 KiB): RTCRAM
I (288) heap_init: At 30100044 len 00001FBC (7 KiB): TCM
I (294) spi_flash: detected chip: generic
I (297) spi_flash: flash io: dio
I (300) main_task: Started on CPU0
I (343) main_task: Calling app_main()
I (343) gpio: GPIO[6]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (344) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (412) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (412) gpio: GPIO[19]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (418) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (426) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (434) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (443) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (483) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (485) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (489) fw_dl: sdmmc init success 0x0
Name:
Type: SDIO
Speed: 20.00 MHz (limit: 20.00 MHz)
Size: 0MB
CSD: ver=1, sector_size=0, capacity=0 read_bl_len=0
SCR: sd_spec=0, bus_width=0
I (525) esp_host: IOE: 0x06
I (525) esp_host: IE: 0x07
I (525) esp_host: BUS_WIDTH GET: 0x42
I (525) esp_host: BUS_WIDTH SET: 0x62
I (525) esp_host: Function 1 read: 0000
I (529) esp_host: Function 1 set: 0200
I (532) esp_host: Function 2 BS: 0000
I (536) esp_host: Function 2 BS: 0200
E (539) sdmmc_io: sdmmc_io_rw_extended: sdmmc_send_cmd returned 0x107
E (545) esp_host: read ESP_SLC_CONF1_REG error 0x107
E (550) esp_host: esp_extconn_sdio_init(210): esp host init slave link failed
I (557) extconn: extconn init ret 0x107
I (572) wifi:wifi driver task: 4ff27f64, prio:23, stack:6656, core=0
I (572) wifi:wifi Rxcontrol 28
E (572) esp_adapter: esp_extconn_get_mac() returned NULL, not good!
E (575) esp_adapter: esp_extconn_get_mac() returned NULL, not good!
I (582) wifi:wifi firmware version: 48ea317a7
I (585) wifi:wifi certification version: v7.0
I (590) wifi:config NVS flash: disabled
I (593) wifi:config nano formatting: disabled
I (597) wifi:Init data frame dynamic rx buffer num: 32
I (602) wifi:Init management frame dynamic rx buffer num: 32
I (607) wifi:Init management short buffer num: 32
I (612) wifi:Init dynamic tx buffer num: 32
I (616) wifi_init: rx ba win: 6
I (619) wifi_init: accept mbox: 6
I (622) wifi_init: tcpip mbox: 32
I (625) wifi_init: udp mbox: 6
I (627) wifi_init: tcp mbox: 6
I (630) wifi_init: tcp tx win: 5760
I (633) wifi_init: tcp rx win: 5760
I (637) wifi_init: tcp mss: 1440
I (640) wifi_init: WiFi IRAM OP enabled
I (643) wifi_init: WiFi RX IRAM OP enabled
I (647) wifi_init: LWIP IRAM OP enabled
I (651) wifi:(2.4G)set country: cc=CN schan=1 nchan=13 policy=0
Guru Meditation Error: Core 0 panic'ed (Instruction access fault). Exception was unhandled.
Core 0 register dump:
MEPC : 0x00000000 RA : 0x40072ce4 SP : 0x4ff27e90 GP : 0x4ff16580
TP : 0x4ff27f30 T0 : 0x4fc0a778 T1 : 0x00000000 T2 : 0x0000002c
S0/FP : 0x4ff29210 S1 : 0xffffffff A0 : 0x00000000 A1 : 0x00000000
A2 : 0x00000000 A3 : 0x00000000 A4 : 0x4ff1c000 A5 : 0x4ff1d000
A6 : 0x00000006 A7 : 0x4000cc86 S2 : 0x4ff1c618 S3 : 0x4ff1d000
S4 : 0x4ff18000 S5 : 0x00000000 S6 : 0x4ff1ce6c S7 : 0x4010c000
S8 : 0x40112000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x00000000 T4 : 0x4003e06a T5 : 0x4003e188 T6 : 0x4003decc
MSTATUS : 0x00011880 MTVEC : 0x4ff00003 MCAUSE : 0x00000001 MTVAL : 0x00000000
MHARTID : 0x00000000
Let's ignore reboot loop for now (I've debugged it and it is because "static struct esp_sip *sip = NULL;" is still NULL at the time of access in esp_sip.c (in esp-extconn module)).
What would cause SDIO timeouts?
Pinouts are good.
Does anybody has success story with P4 and WiFi?