Просмотр исходного кода

fix(idf): fix p4 config

Signed-off-by: sakumisu <1203593632@qq.com>
sakumisu 7 месяцев назад
Родитель
Сommit
c75e62c1e9
1 измененных файлов с 74 добавлено и 13 удалено
  1. 74 13
      osal/idf/usb_config.h

+ 74 - 13
osal/idf/usb_config.h

@@ -25,9 +25,16 @@
 #define CONFIG_USB_ALIGN_SIZE 4
 #endif
 
+// #define CONFIG_USB_DCACHE_ENABLE
+
 /* attribute data into no cache ram */
 #define USB_NOCACHE_RAM_SECTION
 
+/* use usb_memcpy default for high performance but cost more flash memory.
+ * And, arm libc has a bug that memcpy() may cause data misalignment when the size is not a multiple of 4.
+*/
+// #define CONFIG_USB_MEMCPY_DISABLE
+
 /* ================= USB Device Stack Configuration ================ */
 
 /* Ep0 in and out transfer buffer */
@@ -49,6 +56,9 @@
 /* Enable test mode */
 // #define CONFIG_USBDEV_TEST_MODE
 
+/* enable advance desc register api */
+#define CONFIG_USBDEV_ADVANCE_DESC
+
 /* move ep0 setup handler from isr to thread */
 // #define CONFIG_USBDEV_EP0_THREAD
 
@@ -84,7 +94,7 @@
 // #define CONFIG_USBDEV_MSC_POLLING
 
 /* move msc read & write from isr to thread */
-// #define CONFIG_USBDEV_MSC_THREAD
+#define CONFIG_USBDEV_MSC_THREAD
 
 #ifndef CONFIG_USBDEV_MSC_PRIO
 #define CONFIG_USBDEV_MSC_PRIO 4
@@ -94,6 +104,28 @@
 #define CONFIG_USBDEV_MSC_STACKSIZE 2048
 #endif
 
+#ifndef CONFIG_USBDEV_MTP_MAX_BUFSIZE
+#define CONFIG_USBDEV_MTP_MAX_BUFSIZE 2048
+#endif
+
+#ifndef CONFIG_USBDEV_MTP_MAX_OBJECTS
+#define CONFIG_USBDEV_MTP_MAX_OBJECTS 256
+#endif
+
+#ifndef CONFIG_USBDEV_MTP_MAX_PATHNAME
+#define CONFIG_USBDEV_MTP_MAX_PATHNAME 256
+#endif
+
+#define CONFIG_USBDEV_MTP_THREAD
+
+#ifndef CONFIG_USBDEV_MTP_PRIO
+#define CONFIG_USBDEV_MTP_PRIO 4
+#endif
+
+#ifndef CONFIG_USBDEV_MTP_STACKSIZE
+#define CONFIG_USBDEV_MTP_STACKSIZE 4096
+#endif
+
 #ifndef CONFIG_USBDEV_RNDIS_RESP_BUFFER_SIZE
 #define CONFIG_USBDEV_RNDIS_RESP_BUFFER_SIZE 156
 #endif
@@ -112,6 +144,7 @@
 #endif
 
 #define CONFIG_USBDEV_RNDIS_USING_LWIP
+#define CONFIG_USBDEV_CDC_ECM_USING_LWIP
 
 /* ================ USB HOST Stack Configuration ================== */
 
@@ -137,7 +170,7 @@
 #define CONFIG_USBHOST_PSC_STACKSIZE 2048
 #endif
 
-// #define CONFIG_USBHOST_GET_STRING_DESC
+//#define CONFIG_USBHOST_GET_STRING_DESC
 
 // #define CONFIG_USBHOST_MSOS_ENABLE
 #ifndef CONFIG_USBHOST_MSOS_VENDOR_CODE
@@ -236,11 +269,27 @@
 
 #define CONFIG_USB_DWC2_DMA_ENABLE
 
-#elif CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32P4
+#elif CONFIG_IDF_TARGET_ESP32P4
+#define ESP_USBD_BASE           0x50000000UL
+
+#define CONFIG_USBDEV_MAX_BUS 1
+#define CONFIG_USBDEV_EP_NUM 7 // 16
+
+/* ---------------- DWC2 Configuration ---------------- */
+//esp32s2/s3 can support up to 5 IN endpoints(include ep0) at the same time
+#define CONFIG_USB_DWC2_RXALL_FIFO_SIZE (1024 / 4)
+#define CONFIG_USB_DWC2_TX0_FIFO_SIZE (64 / 4)
+#define CONFIG_USB_DWC2_TX1_FIFO_SIZE (512 / 4)
+#define CONFIG_USB_DWC2_TX2_FIFO_SIZE (512 / 4)
+#define CONFIG_USB_DWC2_TX3_FIFO_SIZE (512 / 4)
+#define CONFIG_USB_DWC2_TX4_FIFO_SIZE (512 / 4)
+#define CONFIG_USB_DWC2_TX5_FIFO_SIZE (64 / 4)
+#define CONFIG_USB_DWC2_TX6_FIFO_SIZE (64 / 4)
+#define CONFIG_USB_DWC2_TX7_FIFO_SIZE (0 / 4)
+#define CONFIG_USB_DWC2_TX8_FIFO_SIZE (0 / 4)
+
+#define CONFIG_USB_DWC2_DMA_ENABLE
 #define CONFIG_USB_HS
-#define ESP_USBD_BASE           0x60080000
-// todo: check c5, p4 in later
-#define CONFIG_USBDEV_EP_NUM 7
 #else
 #error "Unsupported SoC"
 #endif
@@ -265,12 +314,24 @@
  */
 #define CONFIG_USB_DWC2_RX_FIFO_SIZE ((200 - CONFIG_USB_DWC2_NPTX_FIFO_SIZE - CONFIG_USB_DWC2_PTX_FIFO_SIZE))
 
-#elif CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32P4
-// todo: check c5, p4 in later
-#define ESP_USBH_BASE               0x60080000
-#define CONFIG_USBHOST_PIPE_NUM 8
+#elif CONFIG_IDF_TARGET_ESP32P4
+#define ESP_USBH_BASE               0x50000000UL
+
+#define CONFIG_USBHOST_MAX_BUS 1
+#define CONFIG_USBHOST_PIPE_NUM 16
+
+/* ---------------- DWC2 Configuration ---------------- */
+/* largest non-periodic USB packet used / 4 */
+#define CONFIG_USB_DWC2_NPTX_FIFO_SIZE (512 / 4)
+/* largest periodic USB packet used / 4 */
+#define CONFIG_USB_DWC2_PTX_FIFO_SIZE (512 / 4)
+/*
+ * (largest USB packet used / 4) + 1 for status information + 1 transfer complete +
+ * 1 location each for Bulk/Control endpoint for handling NAK/NYET scenario
+ */
+#define CONFIG_USB_DWC2_RX_FIFO_SIZE ((896 - CONFIG_USB_DWC2_NPTX_FIFO_SIZE - CONFIG_USB_DWC2_PTX_FIFO_SIZE))
+
+#define CONFIG_USB_HS
 #else
 #error "Unsupported SoC"
-#endif
-
-#define CONFIG_USBDEV_ADVANCE_DESC
+#endif