summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-05-10 17:07:13 +0800
committersakumisu <[email protected]>2025-05-10 17:07:13 +0800
commita92b5488b0cdb904340e9a93b4c6160a8ed6ca1a (patch)
tree22bace9df109dd77aa8a43e06bafbe9a12cc2c4f
parent5253d5aa6bf6e21e9b82d8faaed4322f5d22974f (diff)
chore(kconfig): update rtthread pkg & master kconfig
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--Kconfig.rtt355
-rw-r--r--Kconfig.rttpkg392
-rw-r--r--SConscript2
-rw-r--r--demo/msc_ram_template.c45
-rw-r--r--platform/rtthread/usb_check.c2
-rw-r--r--platform/rtthread/usb_msh.c2
-rw-r--r--platform/rtthread/usbd_msc_blkdev.c175
7 files changed, 795 insertions, 178 deletions
diff --git a/Kconfig.rtt b/Kconfig.rtt
new file mode 100644
index 00000000..75681edf
--- /dev/null
+++ b/Kconfig.rtt
@@ -0,0 +1,355 @@
+# Kconfig file for package CherryUSB
+menuconfig RT_USING_CHERRYUSB
+ bool "Using USB with CherryUSB"
+ default n
+
+if RT_USING_CHERRYUSB
+
+ menuconfig RT_CHERRYUSB_DEVICE
+ bool "Enable usb device mode"
+ default n
+
+ if RT_CHERRYUSB_DEVICE
+ choice
+ prompt "Select usb device speed"
+ default RT_CHERRYUSB_DEVICE_SPEED_FS
+ config RT_CHERRYUSB_DEVICE_SPEED_FS
+ bool "FS"
+ config RT_CHERRYUSB_DEVICE_SPEED_HS
+ bool "HS"
+ config RT_CHERRYUSB_DEVICE_SPEED_AUTO
+ bool "AUTO"
+ endchoice
+
+ choice
+ prompt "Select usb device ip, and some ip need config in usb_config.h, please check"
+ default RT_CHERRYUSB_DEVICE_CUSTOM
+ config RT_CHERRYUSB_DEVICE_CUSTOM
+ bool "CUSTOM (Implement it yourself)"
+ config RT_CHERRYUSB_DEVICE_FSDEV_ST
+ bool "fsdev_st"
+ config RT_CHERRYUSB_DEVICE_FSDEV_CUSTOM
+ bool "fsdev_custom"
+ config RT_CHERRYUSB_DEVICE_DWC2_ST
+ bool "dwc2_st"
+ config RT_CHERRYUSB_DEVICE_DWC2_ESP
+ bool "dwc2_esp"
+ config RT_CHERRYUSB_DEVICE_DWC2_KENDRYTE
+ bool "dwc2_kendryte"
+ config RT_CHERRYUSB_DEVICE_DWC2_AT
+ bool "dwc2_at"
+ config RT_CHERRYUSB_DEVICE_DWC2_HC
+ bool "dwc2_hc"
+ config RT_CHERRYUSB_DEVICE_DWC2_GD
+ bool "dwc2_gd"
+ config RT_CHERRYUSB_DEVICE_DWC2_CUSTOM
+ bool "dwc2_custom"
+ config RT_CHERRYUSB_DEVICE_MUSB_ES
+ bool "musb_es"
+ config RT_CHERRYUSB_DEVICE_MUSB_SUNXI
+ bool "musb_sunxi"
+ config RT_CHERRYUSB_DEVICE_MUSB_BK
+ bool "musb_bk"
+ config RT_CHERRYUSB_DEVICE_MUSB_CUSTOM
+ bool "musb_custom"
+ config RT_CHERRYUSB_DEVICE_CHIPIDEA_MCX
+ bool "chipidea_mcx"
+ config RT_CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM
+ bool "chipidea_custom"
+ config RT_CHERRYUSB_DEVICE_KINETIS_MCX
+ bool "kinetis_mcx"
+ config RT_CHERRYUSB_DEVICE_KINETIS_MM32
+ bool "kinetis_mm32"
+ config RT_CHERRYUSB_DEVICE_KINETIS_CUSTOM
+ bool "kinetis_custom"
+ config RT_CHERRYUSB_DEVICE_BL
+ bool "bouffalo"
+ config RT_CHERRYUSB_DEVICE_HPM
+ bool "hpm"
+ config RT_CHERRYUSB_DEVICE_AIC
+ bool "aic"
+ config RT_CHERRYUSB_DEVICE_RP2040
+ bool "rp2040"
+ config RT_CHERRYUSB_DEVICE_CH32
+ bool "ch32"
+ config RT_CHERRYUSB_DEVICE_PUSB2
+ bool "pusb2"
+ config RT_CHERRYUSB_DEVICE_NRF5X
+ bool "nrf5x"
+ endchoice
+
+ config RT_CHERRYUSB_DEVICE_CDC_ACM
+ bool
+ prompt "Enable usb cdc acm device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_HID
+ bool
+ prompt "Enable usb hid device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_MSC
+ bool
+ prompt "Enable usb msc device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_AUDIO
+ bool
+ prompt "Enable usb audio device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_VIDEO
+ bool
+ prompt "Enable usb video device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_CDC_RNDIS
+ bool
+ prompt "Enable usb cdc rndis device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_CDC_ECM
+ bool
+ prompt "Enable usb cdc ecm device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_CDC_NCM
+ bool
+ prompt "Enable usb cdc ncm device"
+ default n
+
+ config RT_CHERRYUSB_DEVICE_DFU
+ bool
+ prompt "Enable usb dfu device"
+ default n
+
+ choice
+ prompt "Select usb device template"
+ default RT_CHERRYUSB_DEVICE_TEMPLATE_NONE
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_NONE
+ bool "none (Implement it yourself)"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM
+ bool "cdc_acm"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_MSC
+ bool "msc_ram"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
+ bool "msc_blkdev"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_KEYBOARD
+ bool "hid_keyboard"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSE
+ bool "hid_mouse"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_CUSTOM
+ bool "hid_custom"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_VIDEO
+ bool "video"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V1_MIC_SPEAKER
+ bool "audio_v1_mic_speaker_multichan"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V2_MIC_SPEAKER
+ bool "audio_v2_mic_speaker_multichan"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_RNDIS
+ bool "cdc_rndis"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ECM
+ bool "cdc_ecm"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_NCM
+ bool "cdc_ncm"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC
+ bool "cdc_acm_msc"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC_HID
+ bool "cdc_acm_msc_hid"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV1
+ bool "winusbv1"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_CDC
+ bool "winusbv2_cdc"
+ config RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_HID
+ bool "winusbv2_hid"
+ endchoice
+
+ config CONFIG_USBDEV_MSC_BLOCK_DEV_NAME
+ string "usb device msc block device name"
+ depends on RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
+ default "sd0"
+
+ endif
+
+ menuconfig RT_CHERRYUSB_HOST
+ bool "Enable usb host mode"
+ default n
+
+ if RT_CHERRYUSB_HOST
+ choice
+ prompt "Select usb host ip, and some ip need config in usb_config.h, please check"
+ default RT_CHERRYUSB_HOST_CUSTOM
+ config RT_CHERRYUSB_HOST_CUSTOM
+ bool "CUSTOM (Implement it yourself)"
+ config RT_CHERRYUSB_HOST_EHCI_BL
+ bool "ehci_bouffalo"
+ config RT_CHERRYUSB_HOST_EHCI_HPM
+ bool "ehci_hpm"
+ config RT_CHERRYUSB_HOST_EHCI_AIC
+ bool "ehci_aic"
+ config RT_CHERRYUSB_HOST_EHCI_MCX
+ bool "ehci_mcx"
+ config RT_CHERRYUSB_HOST_EHCI_NUC980
+ bool "ehci_nuc980"
+ config RT_CHERRYUSB_HOST_EHCI_MA35D0
+ bool "ehci_ma35d0"
+ config RT_CHERRYUSB_HOST_EHCI_CUSTOM
+ bool "ehci_custom"
+ config RT_CHERRYUSB_HOST_DWC2_ST
+ bool "dwc2_st"
+ config RT_CHERRYUSB_HOST_DWC2_ESP
+ bool "dwc2_esp"
+ config RT_CHERRYUSB_HOST_DWC2_KENDRYTE
+ bool "dwc2_kendryte"
+ config RT_CHERRYUSB_HOST_DWC2_HC
+ bool "dwc2_hc"
+ config RT_CHERRYUSB_HOST_DWC2_CUSTOM
+ bool "dwc2_custom"
+ config RT_CHERRYUSB_HOST_MUSB_ES
+ bool "musb_es"
+ config RT_CHERRYUSB_HOST_MUSB_SUNXI
+ bool "musb_sunxi"
+ config RT_CHERRYUSB_HOST_MUSB_BK
+ bool "musb_bk"
+ config RT_CHERRYUSB_HOST_MUSB_CUSTOM
+ bool "musb_custom"
+ config RT_CHERRYUSB_HOST_PUSB2
+ bool "pusb2"
+ config RT_CHERRYUSB_HOST_XHCI
+ bool "xhci"
+ config RT_CHERRYUSB_HOST_RP2040
+ bool "rp2040"
+ endchoice
+
+ config RT_CHERRYUSB_HOST_CDC_ACM
+ bool
+ prompt "Enable usb cdc acm driver"
+ default n
+
+ config RT_CHERRYUSB_HOST_HID
+ bool
+ prompt "Enable usb hid driver"
+ default n
+
+ config RT_CHERRYUSB_HOST_MSC
+ bool
+ prompt "Enable usb msc driver"
+ default n
+ select RT_USING_DFS
+ select RT_USING_DFS_ELMFAT
+
+ config RT_CHERRYUSB_HOST_CDC_ECM
+ bool
+ prompt "Enable usb cdc ecm driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_CDC_ECM
+ default n
+
+ config RT_CHERRYUSB_HOST_CDC_RNDIS
+ bool
+ prompt "Enable usb rndis driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_CDC_RNDIS
+ default n
+
+ config RT_CHERRYUSB_HOST_CDC_NCM
+ bool
+ prompt "Enable usb cdc ncm driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_CDC_NCM
+ default n
+
+ config RT_CHERRYUSB_HOST_VIDEO
+ bool
+ prompt "Enable usb video driver, it is commercial charge"
+ default n
+
+ config RT_CHERRYUSB_HOST_AUDIO
+ bool
+ prompt "Enable usb audio driver, it is commercial charge"
+ default n
+
+ config RT_CHERRYUSB_HOST_BLUETOOTH
+ bool
+ prompt "Enable usb bluetooth driver"
+ default n
+
+ config RT_CHERRYUSB_HOST_ASIX
+ bool
+ prompt "Enable usb asix driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_ASIX
+ default n
+
+ config RT_CHERRYUSB_HOST_RTL8152
+ bool
+ prompt "Enable usb rtl8152 driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_RTL8152
+ default n
+
+ config RT_CHERRYUSB_HOST_FTDI
+ bool
+ prompt "Enable usb ftdi driver"
+ default n
+
+ config RT_CHERRYUSB_HOST_CH34X
+ bool
+ prompt "Enable usb ch34x driver"
+ default n
+
+ config RT_CHERRYUSB_HOST_CP210X
+ bool
+ prompt "Enable usb cp210x driver"
+ default n
+
+ config RT_CHERRYUSB_HOST_PL2303
+ bool
+ prompt "Enable usb pl2303 driver"
+ default n
+
+ config CONFIG_USBHOST_PLATFORM_CDC_ECM
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_CDC_RNDIS
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_CDC_NCM
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_ASIX
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_RTL8152
+ bool
+
+ config RT_LWIP_PBUF_POOL_BUFSIZE
+ int "The size of each pbuf in the pbuf pool"
+ range 1500 2000
+ default 1600
+
+ config CONFIG_USB_DFS_MOUNT_POINT
+ string "usb host dfs mount point"
+ depends on RT_CHERRYUSB_HOST_MSC
+ default "/"
+
+ config RT_CHERRYUSB_HOST_TEMPLATE
+ bool
+ prompt "Use usb host template"
+ default n
+
+ if RT_CHERRYUSB_HOST_TEMPLATE
+ config TEST_USBH_CDC_ACM
+ int
+ prompt "demo for test cdc acm"
+ default 0
+ depends on CHERRYUSB_HOST_CDC_ACM
+ config TEST_USBH_HID
+ int
+ prompt "demo for test hid"
+ default 0
+ depends on CHERRYUSB_HOST_HID
+ endif
+ endif
+
+endif
diff --git a/Kconfig.rttpkg b/Kconfig.rttpkg
new file mode 100644
index 00000000..74c99aae
--- /dev/null
+++ b/Kconfig.rttpkg
@@ -0,0 +1,392 @@
+# Kconfig file for package CherryUSB
+menuconfig PKG_USING_CHERRYUSB
+ depends on RT_VER_NUM < 0x50200
+ bool "CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP"
+ default n
+
+if PKG_USING_CHERRYUSB
+
+ menuconfig PKG_CHERRYUSB_DEVICE
+ bool "Enable usb device mode"
+ default n
+
+ if PKG_CHERRYUSB_DEVICE
+ choice
+ prompt "Select usb device speed"
+ default PKG_CHERRYUSB_DEVICE_SPEED_FS
+ config PKG_CHERRYUSB_DEVICE_SPEED_FS
+ bool "FS"
+ config PKG_CHERRYUSB_DEVICE_SPEED_HS
+ bool "HS"
+ config PKG_CHERRYUSB_DEVICE_SPEED_AUTO
+ bool "AUTO"
+ endchoice
+
+ choice
+ prompt "Select usb device ip, and some ip need config in usb_config.h, please check"
+ default PKG_CHERRYUSB_DEVICE_CUSTOM
+ config PKG_CHERRYUSB_DEVICE_CUSTOM
+ bool "CUSTOM (Implement it yourself)"
+ config PKG_CHERRYUSB_DEVICE_FSDEV_ST
+ bool "fsdev_st"
+ config PKG_CHERRYUSB_DEVICE_FSDEV_CUSTOM
+ bool "fsdev_custom"
+ config PKG_CHERRYUSB_DEVICE_DWC2_ST
+ bool "dwc2_st"
+ config PKG_CHERRYUSB_DEVICE_DWC2_ESP
+ bool "dwc2_esp"
+ config PKG_CHERRYUSB_DEVICE_DWC2_KENDRYTE
+ bool "dwc2_kendryte"
+ config PKG_CHERRYUSB_DEVICE_DWC2_AT
+ bool "dwc2_at"
+ config PKG_CHERRYUSB_DEVICE_DWC2_HC
+ bool "dwc2_hc"
+ config PKG_CHERRYUSB_DEVICE_DWC2_GD
+ bool "dwc2_gd"
+ config PKG_CHERRYUSB_DEVICE_DWC2_CUSTOM
+ bool "dwc2_custom"
+ config PKG_CHERRYUSB_DEVICE_MUSB_ES
+ bool "musb_es"
+ config PKG_CHERRYUSB_DEVICE_MUSB_SUNXI
+ bool "musb_sunxi"
+ config PKG_CHERRYUSB_DEVICE_MUSB_BK
+ bool "musb_bk"
+ config PKG_CHERRYUSB_DEVICE_MUSB_CUSTOM
+ bool "musb_custom"
+ config PKG_CHERRYUSB_DEVICE_CHIPIDEA_MCX
+ bool "chipidea_mcx"
+ config PKG_CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM
+ bool "chipidea_custom"
+ config PKG_CHERRYUSB_DEVICE_KINETIS_MCX
+ bool "kinetis_mcx"
+ config PKG_CHERRYUSB_DEVICE_KINETIS_MM32
+ bool "kinetis_mm32"
+ config PKG_CHERRYUSB_DEVICE_KINETIS_CUSTOM
+ bool "kinetis_custom"
+ config PKG_CHERRYUSB_DEVICE_BL
+ bool "bouffalo"
+ config PKG_CHERRYUSB_DEVICE_HPM
+ bool "hpm"
+ config PKG_CHERRYUSB_DEVICE_AIC
+ bool "aic"
+ config PKG_CHERRYUSB_DEVICE_RP2040
+ bool "rp2040"
+ config PKG_CHERRYUSB_DEVICE_CH32
+ bool "ch32"
+ config PKG_CHERRYUSB_DEVICE_PUSB2
+ bool "pusb2"
+ endchoice
+
+ config PKG_CHERRYUSB_DEVICE_CDC_ACM
+ bool
+ prompt "Enable usb cdc acm device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_HID
+ bool
+ prompt "Enable usb hid device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_MSC
+ bool
+ prompt "Enable usb msc device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_AUDIO
+ bool
+ prompt "Enable usb audio device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_VIDEO
+ bool
+ prompt "Enable usb video device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_CDC_RNDIS
+ bool
+ prompt "Enable usb cdc rndis device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_CDC_ECM
+ bool
+ prompt "Enable usb cdc ecm device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_CDC_NCM
+ bool
+ prompt "Enable usb cdc ncm device"
+ default n
+
+ config PKG_CHERRYUSB_DEVICE_DFU
+ bool
+ prompt "Enable usb dfu device"
+ default n
+
+ choice
+ prompt "Select usb device template"
+ default PKG_CHERRYUSB_DEVICE_TEMPLATE_NONE
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_NONE
+ bool "none (Implement it yourself)"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM
+ bool "cdc_acm"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_MSC
+ bool "msc_ram"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
+ bool "msc_blkdev"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_HID_KEYBOARD
+ bool "hid_keyboard"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSE
+ bool "hid_mouse"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_HID_CUSTOM
+ bool "hid_custom"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_VIDEO
+ bool "video"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V1_MIC_SPEAKER
+ bool "audio_v1_mic_speaker_multichan"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V2_MIC_SPEAKER
+ bool "audio_v2_mic_speaker_multichan"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_CDC_RNDIS
+ bool "cdc_rndis"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_CDC_ECM
+ bool "cdc_ecm"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_CDC_NCM
+ bool "cdc_ncm"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC
+ bool "cdc_acm_msc"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC_HID
+ bool "cdc_acm_msc_hid"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV1
+ bool "winusbv1"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_CDC
+ bool "winusbv2_cdc"
+ config PKG_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_HID
+ bool "winusbv2_hid"
+ endchoice
+
+ config CONFIG_USBDEV_MSC_BLOCK_DEV_NAME
+ string "usb device msc block device name"
+ depends on PKG_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
+ default "sd0"
+
+ endif
+
+ menuconfig PKG_CHERRYUSB_HOST
+ bool "Enable usb host mode"
+ default n
+
+ if PKG_CHERRYUSB_HOST
+ choice
+ prompt "Select usb host ip, and some ip need config in usb_config.h, please check"
+ default PKG_CHERRYUSB_HOST_CUSTOM
+ config PKG_CHERRYUSB_HOST_CUSTOM
+ bool "CUSTOM (Implement it yourself)"
+ config PKG_CHERRYUSB_HOST_EHCI_BL
+ bool "ehci_bouffalo"
+ config PKG_CHERRYUSB_HOST_EHCI_HPM
+ bool "ehci_hpm"
+ config PKG_CHERRYUSB_HOST_EHCI_AIC
+ bool "ehci_aic"
+ config PKG_CHERRYUSB_HOST_EHCI_MCX
+ bool "ehci_mcx"
+ config PKG_CHERRYUSB_HOST_EHCI_NUC980
+ bool "ehci_nuc980"
+ config PKG_CHERRYUSB_HOST_EHCI_MA35D0
+ bool "ehci_ma35d0"
+ config PKG_CHERRYUSB_HOST_EHCI_CUSTOM
+ bool "ehci_custom"
+ config PKG_CHERRYUSB_HOST_DWC2_ST
+ bool "dwc2_st"
+ config PKG_CHERRYUSB_HOST_DWC2_ESP
+ bool "dwc2_esp"
+ config PKG_CHERRYUSB_HOST_DWC2_KENDRYTE
+ bool "dwc2_kendryte"
+ config PKG_CHERRYUSB_HOST_DWC2_HC
+ bool "dwc2_hc"
+ config PKG_CHERRYUSB_HOST_DWC2_CUSTOM
+ bool "dwc2_custom"
+ config PKG_CHERRYUSB_HOST_MUSB_ES
+ bool "musb_es"
+ config PKG_CHERRYUSB_HOST_MUSB_SUNXI
+ bool "musb_sunxi"
+ config PKG_CHERRYUSB_HOST_MUSB_BK
+ bool "musb_bk"
+ config PKG_CHERRYUSB_HOST_MUSB_CUSTOM
+ bool "musb_custom"
+ config PKG_CHERRYUSB_HOST_PUSB2
+ bool "pusb2"
+ config PKG_CHERRYUSB_HOST_XHCI
+ bool "xhci"
+ config PKG_CHERRYUSB_HOST_RP2040
+ bool "rp2040"
+ endchoice
+
+ config PKG_CHERRYUSB_HOST_CDC_ACM
+ bool
+ prompt "Enable usb cdc acm driver"
+ default n
+
+ config PKG_CHERRYUSB_HOST_HID
+ bool
+ prompt "Enable usb hid driver"
+ default n
+
+ config PKG_CHERRYUSB_HOST_MSC
+ bool
+ prompt "Enable usb msc driver"
+ default n
+ select RT_USING_DFS
+ select RT_USING_DFS_ELMFAT
+
+ config PKG_CHERRYUSB_HOST_CDC_ECM
+ bool
+ prompt "Enable usb cdc ecm driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_CDC_ECM
+ default n
+
+ config PKG_CHERRYUSB_HOST_CDC_RNDIS
+ bool
+ prompt "Enable usb rndis driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_CDC_RNDIS
+ default n
+
+ config PKG_CHERRYUSB_HOST_CDC_NCM
+ bool
+ prompt "Enable usb cdc ncm driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_CDC_NCM
+ default n
+
+ config PKG_CHERRYUSB_HOST_VIDEO
+ bool
+ prompt "Enable usb video driver, it is commercial charge"
+ default n
+
+ config PKG_CHERRYUSB_HOST_AUDIO
+ bool
+ prompt "Enable usb audio driver, it is commercial charge"
+ default n
+
+ config PKG_CHERRYUSB_HOST_BLUETOOTH
+ bool
+ prompt "Enable usb bluetooth driver"
+ default n
+
+ config PKG_CHERRYUSB_HOST_ASIX
+ bool
+ prompt "Enable usb asix driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_ASIX
+ default n
+
+ config PKG_CHERRYUSB_HOST_RTL8152
+ bool
+ prompt "Enable usb rtl8152 driver"
+ select RT_USING_LWIP
+ select CONFIG_USBHOST_PLATFORM_RTL8152
+ default n
+
+ config PKG_CHERRYUSB_HOST_FTDI
+ bool
+ prompt "Enable usb ftdi driver"
+ default n
+
+ config PKG_CHERRYUSB_HOST_CH34X
+ bool
+ prompt "Enable usb ch34x driver"
+ default n
+
+ config PKG_CHERRYUSB_HOST_CP210X
+ bool
+ prompt "Enable usb cp210x driver"
+ default n
+
+ config PKG_CHERRYUSB_HOST_PL2303
+ bool
+ prompt "Enable usb pl2303 driver"
+ default n
+
+ config CONFIG_USBHOST_PLATFORM_CDC_ECM
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_CDC_RNDIS
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_CDC_NCM
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_ASIX
+ bool
+
+ config CONFIG_USBHOST_PLATFORM_RTL8152
+ bool
+
+ config RT_LWIP_PBUF_POOL_BUFSIZE
+ int "The size of each pbuf in the pbuf pool"
+ range 1500 2000
+ default 1600
+
+ config CONFIG_USB_DFS_MOUNT_POINT
+ string "usb host dfs mount point"
+ depends on RT_CHERRYUSB_HOST_MSC
+ default "/"
+
+ config PKG_CHERRYUSB_HOST_TEMPLATE
+ bool
+ prompt "Use usb host template"
+ default n
+
+ if PKG_CHERRYUSB_HOST_TEMPLATE
+ config TEST_USBH_CDC_ACM
+ int
+ prompt "demo for test cdc acm"
+ default 0
+ depends on PKG_CHERRYUSB_HOST_CDC_ACM
+ config TEST_USBH_HID
+ int
+ prompt "demo for test hid"
+ default 0
+ depends on PKG_CHERRYUSB_HOST_HID
+ endif
+ endif
+
+ config PKG_CHERRYUSB_PATH
+ string
+ default "/packages/system/CherryUSB"
+
+ choice
+ prompt "Version"
+ default PKG_USING_CHERRYUSB_V010403
+ help
+ Select the package version
+
+ config PKG_USING_CHERRYUSB_LATEST_VERSION
+ bool "latest"
+ config PKG_USING_CHERRYUSB_V010403
+ bool "v1.4.3"
+ config PKG_USING_CHERRYUSB_V010402
+ bool "v1.4.2"
+ config PKG_USING_CHERRYUSB_V010400
+ bool "v1.4.0"
+ config PKG_USING_CHERRYUSB_V010301
+ bool "v1.3.1"
+ config PKG_USING_CHERRYUSB_V010300
+ bool "v1.3.0"
+ config PKG_USING_CHERRYUSB_V010200
+ bool "v1.2.0"
+ config PKG_USING_CHERRYUSB_V001002
+ bool "v0.10.2"
+ endchoice
+
+ config PKG_CHERRYUSB_VER
+ string
+ default "latest" if PKG_USING_CHERRYUSB_LATEST_VERSION
+ default "v1.4.3" if PKG_USING_CHERRYUSB_V010403
+ default "v1.4.2" if PKG_USING_CHERRYUSB_V010402
+ default "v1.4.0" if PKG_USING_CHERRYUSB_V010400
+ default "v1.3.1" if PKG_USING_CHERRYUSB_V010301
+ default "v1.3.0" if PKG_USING_CHERRYUSB_V010300
+ default "v1.2.0" if PKG_USING_CHERRYUSB_V010200
+ default "v0.10.2" if PKG_USING_CHERRYUSB_V001002
+endif
diff --git a/SConscript b/SConscript
index d604467a..602ba5fe 100644
--- a/SConscript
+++ b/SConscript
@@ -30,7 +30,7 @@ if GetDepend(['PKG_CHERRYUSB_DEVICE']):
src += Glob('core/usbd_core.c')
src += Glob('osal/usb_osal_rtthread.c')
- if GetDepend(['PKG_CHERRYUSB_DEVICE_HS']):
+ if GetDepend(['PKG_CHERRYUSB_DEVICE_SPEED_HS']):
CPPDEFINES+=['CONFIG_USB_HS']
if GetDepend(['PKG_CHERRYUSB_DEVICE_FSDEV_ST']):
diff --git a/demo/msc_ram_template.c b/demo/msc_ram_template.c
index 1b19a571..ac7d9dbd 100644
--- a/demo/msc_ram_template.c
+++ b/demo/msc_ram_template.c
@@ -189,6 +189,7 @@ static void usbd_event_handler(uint8_t busid, uint8_t event)
}
}
+#if !defined(RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV) && !defined(PKG_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV)
#define BLOCK_SIZE 512
#define BLOCK_COUNT 10
@@ -217,11 +218,55 @@ int usbd_msc_sector_write(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *
memcpy(mass_block[sector].BlockSpace, buffer, length);
return 0;
}
+#else
+#include <rtthread.h>
+#include <rtdevice.h>
+
+#ifndef CONFIG_USBDEV_MSC_THREAD
+#error "Please enable CONFIG_USBDEV_MSC_THREAD, move msc read & write from isr to thread"
+#endif
+
+#ifndef CONFIG_USBDEV_MSC_BLOCK_DEV_NAME
+#define CONFIG_USBDEV_MSC_BLOCK_DEV_NAME "sd0"
+#endif
+
+static rt_device_t blk_dev = RT_NULL;
+struct rt_device_blk_geometry geometry = { 0 };
+
+void usbd_msc_get_cap(uint8_t busid, uint8_t lun, uint32_t *block_num, uint32_t *block_size)
+{
+ rt_device_control(blk_dev, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry);
+
+ *block_num = geometry.sector_count;
+ *block_size = geometry.bytes_per_sector;
+}
+
+int usbd_msc_sector_read(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *buffer, uint32_t length)
+{
+ rt_device_read(blk_dev, sector, buffer, length / geometry.bytes_per_sector);
+ return 0;
+}
+
+int usbd_msc_sector_write(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *buffer, uint32_t length)
+{
+ rt_device_write(blk_dev, sector, buffer, length / geometry.bytes_per_sector);
+ return 0;
+}
+#endif
static struct usbd_interface intf0;
void msc_ram_init(uint8_t busid, uintptr_t reg_base)
{
+#if defined(RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV) || defined(PKG_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV)
+ rt_err_t res;
+
+ blk_dev = rt_device_find(CONFIG_USBDEV_MSC_BLOCK_DEV_NAME);
+ RT_ASSERT(blk_dev);
+
+ res = rt_device_open(blk_dev, RT_DEVICE_OFLAG_RDWR);
+ RT_ASSERT(res == RT_EOK);
+#endif
#ifdef CONFIG_USBDEV_ADVANCE_DESC
usbd_desc_register(busid, &msc_ram_descriptor);
#else
diff --git a/platform/rtthread/usb_check.c b/platform/rtthread/usb_check.c
index 9b12f3f8..adec2c51 100644
--- a/platform/rtthread/usb_check.c
+++ b/platform/rtthread/usb_check.c
@@ -1,6 +1,6 @@
#include "rtthread.h"
-#ifdef PKG_CHERRYUSB_HOST
+#if defined(PKG_CHERRYUSB_HOST) || defined(RT_CHERRYUSB_HOST)
#ifndef RT_USING_TIMER_SOFT
#error must enable RT_USING_TIMER_SOFT to support timer callback in thread
diff --git a/platform/rtthread/usb_msh.c b/platform/rtthread/usb_msh.c
index db04e059..a153ed05 100644
--- a/platform/rtthread/usb_msh.c
+++ b/platform/rtthread/usb_msh.c
@@ -5,7 +5,7 @@
*/
#include "rtthread.h"
-#ifdef PKG_CHERRYUSB_HOST
+#if defined(PKG_CHERRYUSB_HOST) || defined(RT_CHERRYUSB_HOST)
#include "usbh_core.h"
diff --git a/platform/rtthread/usbd_msc_blkdev.c b/platform/rtthread/usbd_msc_blkdev.c
deleted file mode 100644
index 20bd4ca5..00000000
--- a/platform/rtthread/usbd_msc_blkdev.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2024, sakumisu
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-#include "usbd_core.h"
-#include "usbd_msc.h"
-
-#ifndef CONFIG_USBDEV_MSC_THREAD
-#error "Please enable CONFIG_USBDEV_MSC_THREAD, move msc read & write from isr to thread"
-#endif
-
-#define MSC_IN_EP 0x81
-#define MSC_OUT_EP 0x02
-
-#define USBD_VID 0xFFFF
-#define USBD_PID 0xFFFF
-#define USBD_MAX_POWER 100
-#define USBD_LANGID_STRING 1033
-
-#define USB_CONFIG_SIZE (9 + MSC_DESCRIPTOR_LEN)
-
-#ifdef CONFIG_USB_HS
-#define MSC_MAX_MPS 512
-#else
-#define MSC_MAX_MPS 64
-#endif
-
-const uint8_t msc_storage_descriptor[] = {
- USB_DEVICE_DESCRIPTOR_INIT(USB_2_0, 0x00, 0x00, 0x00, USBD_VID, USBD_PID, 0x0200, 0x01),
- USB_CONFIG_DESCRIPTOR_INIT(USB_CONFIG_SIZE, 0x01, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER),
- MSC_DESCRIPTOR_INIT(0x00, MSC_OUT_EP, MSC_IN_EP, MSC_MAX_MPS, 0x02),
- ///////////////////////////////////////
- /// string0 descriptor
- ///////////////////////////////////////
- USB_LANGID_INIT(USBD_LANGID_STRING),
- ///////////////////////////////////////
- /// string1 descriptor
- ///////////////////////////////////////
- 0x14, /* bLength */
- USB_DESCRIPTOR_TYPE_STRING, /* bDescriptorType */
- 'C', 0x00, /* wcChar0 */
- 'h', 0x00, /* wcChar1 */
- 'e', 0x00, /* wcChar2 */
- 'r', 0x00, /* wcChar3 */
- 'r', 0x00, /* wcChar4 */
- 'y', 0x00, /* wcChar5 */
- 'U', 0x00, /* wcChar6 */
- 'S', 0x00, /* wcChar7 */
- 'B', 0x00, /* wcChar8 */
- ///////////////////////////////////////
- /// string2 descriptor
- ///////////////////////////////////////
- 0x26, /* bLength */
- USB_DESCRIPTOR_TYPE_STRING, /* bDescriptorType */
- 'C', 0x00, /* wcChar0 */
- 'h', 0x00, /* wcChar1 */
- 'e', 0x00, /* wcChar2 */
- 'r', 0x00, /* wcChar3 */
- 'r', 0x00, /* wcChar4 */
- 'y', 0x00, /* wcChar5 */
- 'U', 0x00, /* wcChar6 */
- 'S', 0x00, /* wcChar7 */
- 'B', 0x00, /* wcChar8 */
- ' ', 0x00, /* wcChar9 */
- 'M', 0x00, /* wcChar10 */
- 'S', 0x00, /* wcChar11 */
- 'C', 0x00, /* wcChar12 */
- ' ', 0x00, /* wcChar13 */
- 'D', 0x00, /* wcChar14 */
- 'E', 0x00, /* wcChar15 */
- 'M', 0x00, /* wcChar16 */
- 'O', 0x00, /* wcChar17 */
- ///////////////////////////////////////
- /// string3 descriptor
- ///////////////////////////////////////
- 0x16, /* bLength */
- USB_DESCRIPTOR_TYPE_STRING, /* bDescriptorType */
- '2', 0x00, /* wcChar0 */
- '0', 0x00, /* wcChar1 */
- '2', 0x00, /* wcChar2 */
- '2', 0x00, /* wcChar3 */
- '1', 0x00, /* wcChar4 */
- '2', 0x00, /* wcChar5 */
- '3', 0x00, /* wcChar6 */
- '4', 0x00, /* wcChar7 */
- '5', 0x00, /* wcChar8 */
- '6', 0x00, /* wcChar9 */
-#ifdef CONFIG_USB_HS
- ///////////////////////////////////////
- /// device qualifier descriptor
- ///////////////////////////////////////
- 0x0a,
- USB_DESCRIPTOR_TYPE_DEVICE_QUALIFIER,
- 0x00,
- 0x02,
- 0x00,
- 0x00,
- 0x00,
- 0x40,
- 0x00,
- 0x00,
-#endif
- 0x00
-};
-
-struct usbd_interface intf0;
-
-#ifndef CONFIG_USBDEV_MSC_BLOCK_DEV_NAME
-#define CONFIG_USBDEV_MSC_BLOCK_DEV_NAME "sd0"
-#endif
-
-static rt_device_t blk_dev = RT_NULL;
-struct rt_device_blk_geometry geometry = { 0 };
-
-static void usbd_event_handler(uint8_t busid, uint8_t event)
-{
- switch (event) {
- case USBD_EVENT_RESET:
- break;
- case USBD_EVENT_CONNECTED:
- break;
- case USBD_EVENT_DISCONNECTED:
- break;
- case USBD_EVENT_RESUME:
- break;
- case USBD_EVENT_SUSPEND:
- break;
- case USBD_EVENT_CONFIGURED:
- break;
- case USBD_EVENT_SET_REMOTE_WAKEUP:
- break;
- case USBD_EVENT_CLR_REMOTE_WAKEUP:
- break;
-
- default:
- break;
- }
-}
-
-void usbd_msc_get_cap(uint8_t busid, uint8_t lun, uint32_t *block_num, uint32_t *block_size)
-{
- rt_device_control(blk_dev, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry);
-
- *block_num = geometry.sector_count;
- *block_size = geometry.bytes_per_sector;
-}
-
-int usbd_msc_sector_read(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *buffer, uint32_t length)
-{
- rt_device_read(blk_dev, sector, buffer, length / geometry.bytes_per_sector);
- return 0;
-}
-
-int usbd_msc_sector_write(uint8_t busid, uint8_t lun, uint32_t sector, uint8_t *buffer, uint32_t length)
-{
- rt_device_write(blk_dev, sector, buffer, length / geometry.bytes_per_sector);
- return 0;
-}
-
-void msc_storage_init(uint8_t busid, uintptr_t reg_base)
-{
- rt_err_t res;
-
- blk_dev = rt_device_find(CONFIG_USBDEV_MSC_BLOCK_DEV_NAME);
- RT_ASSERT(blk_dev);
-
- res = rt_device_open(blk_dev, RT_DEVICE_OFLAG_RDWR);
- RT_ASSERT(res == RT_EOK);
-
- usbd_desc_register(busid, msc_storage_descriptor);
- usbd_add_interface(busid, usbd_msc_init_intf(busid, &intf0, MSC_OUT_EP, MSC_IN_EP));
-
- usbd_initialize(busid, reg_base, usbd_event_handler);
-} \ No newline at end of file