This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit ffa2209b4a91c46e33c2e0c25628ce487fff6cd2 Author: wangjianyu3 <[email protected]> AuthorDate: Wed Nov 27 18:34:53 2024 +0800 boards/xtensa/esp32s3: Add USB MSC support for esp32s3 Test # Device:/dev/ram10 <----> Host:/dev/sde # Device (NuttX) nsh> mkrd -m 10 -s 512 640 nsh> msconn nsh> ls -l /dev/ram10 brw-rw-rw- 327680 /dev/ram10 # Host (e.g /dev/sde) $ sudo mkfs.ext4 /dev/sdx $ sudo mount /dev/sdx /workspace/mnt # Part of `df -h` /dev/sdx 292K 24K 248K 9% /workspace/mnt # dmesg (/dev/sdd, /dev/sde) [1116587.199896] usb 1-10: new full-speed USB device number 122 using xhci_hcd [1116587.369226] usb 1-10: New USB device found, idVendor=584e, idProduct=5342, bcdDevice= 3.99 [1116587.369231] usb 1-10: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [1116587.369232] usb 1-10: Product: Mass Storage [1116587.369233] usb 1-10: Manufacturer: NuttX [1116587.369234] usb 1-10: SerialNumber: 0101 [1116587.385275] usb-storage 1-10:1.0: USB Mass Storage device detected [1116587.385526] scsi host5: usb-storage 1-10:1.0 [1116588.423335] scsi 5:0:0:0: Direct-Access NuttX Mass Storage 0101 PQ: 0 ANSI: 2 [1116588.423746] scsi 5:0:0:1: Direct-Access NuttX Mass Storage 0101 PQ: 0 ANSI: 2 [1116588.424001] sd 5:0:0:0: Attached scsi generic sg3 type 0 [1116588.424181] sd 5:0:0:1: Attached scsi generic sg4 type 0 [1116588.424305] sd 5:0:0:0: [sdd] Unsupported sector size 256. [1116588.425336] sd 5:0:0:1: [sde] 640 512-byte logical blocks: (328 kB/320 KiB) [1116588.638620] sd 5:0:0:1: [sde] Write Protect is off [1116588.638624] sd 5:0:0:1: [sde] Mode Sense: 0f 00 00 00 [1116588.858793] sd 5:0:0:0: [sdd] 0 512-byte logical blocks: (0 B/0 B) [1116588.858797] sd 5:0:0:0: [sdd] 256-byte physical blocks [1116589.078698] sd 5:0:0:0: [sdd] Write Protect is off [1116589.078702] sd 5:0:0:0: [sdd] Mode Sense: 0f 00 00 00 [1116589.298629] sd 5:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [1116589.298903] sd 5:0:0:0: [sdd] Attached SCSI disk [1116589.518626] sd 5:0:0:1: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [1116589.972872] sd 5:0:0:1: [sde] Attached SCSI disk [1116644.299819] EXT4-fs (sde): mounted filesystem d4e18b90-b0c3-4a0f-8969-2493a41c5e02 r/w without journal. Quota mode: none. Copy from boards/arm/rp2040/common/src/rp2040_usbmsc.c Signed-off-by: wangjianyu3 <[email protected]> --- boards/xtensa/esp32s3/common/src/Make.defs | 4 ++ boards/xtensa/esp32s3/common/src/esp32s3_usbmsc.c | 62 +++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/boards/xtensa/esp32s3/common/src/Make.defs b/boards/xtensa/esp32s3/common/src/Make.defs index 5f0fe48919..a59e473e49 100644 --- a/boards/xtensa/esp32s3/common/src/Make.defs +++ b/boards/xtensa/esp32s3/common/src/Make.defs @@ -86,6 +86,10 @@ ifeq ($(CONFIG_ESP32S3_SDMMC),y) CSRCS += esp32s3_board_sdmmc.c endif +ifeq ($(CONFIG_USBMSC),y) + CSRCS += esp32s3_usbmsc.c +endif + DEPPATH += --dep-path src VPATH += :src CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src diff --git a/boards/xtensa/esp32s3/common/src/esp32s3_usbmsc.c b/boards/xtensa/esp32s3/common/src/esp32s3_usbmsc.c new file mode 100644 index 0000000000..a008e9216d --- /dev/null +++ b/boards/xtensa/esp32s3/common/src/esp32s3_usbmsc.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * boards/xtensa/esp32s3/common/src/esp32s3_usbmsc.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +#include <stdio.h> +#include <syslog.h> +#include <errno.h> + +#include <nuttx/board.h> + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_usbmsc_initialize + * + * Description: + * Perform architecture specific initialization as needed to establish + * the mass storage device that will be exported by the USB MSC device. + * + ****************************************************************************/ + +int board_usbmsc_initialize(int port) +{ + /* If system/usbmsc is built as an NSH command, then SD slot should + * already have been initialized in board_app_initialize() + * In this case, there is nothing further to be done here. + */ + + return OK; +}
