Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
minLevel1
maxLevel6
outlinefalse
styledefault
typelist
printabletrue

Kernel Setup

Enter the kernel configuration by running the following command in the top directory of project.

...

  1. Execute the make command to build the Linux image.

ConfigFS (CDC ACM)

Configure serial gadget through configfs saved as a file named setup_serial.

Code Block
#!/bin/sh

USB2_ACM_EN=on
USB3_ACM_EN=on

KERNEL_PATH=/lib/modules/`uname -r`/kernel
GADGET_PATH=$KERNEL_PATH/drivers/usb/gadget
FUNCTION_PATH=$GADGET_PATH/function

COMPOSITE=$GADGET_PATH/libcomposite.ko
U_SERIAL=$FUNCTION_PATH/u_serial.ko

insmod $COMPOSITE
insmod $U_SERIAL

# disable debug message
echo 0 > /sys/module/sunplus_udc/parameters/dmsg

mkdir -p /sys/kernel/config
mount -t configfs none /sys/kernel/config

if [ $USB2_ACM_EN = on ]
then
    cd /sys/kernel/config/usb_gadget

    # create gadget folder
    mkdir g1
    cd g1

    # setup gadget
    echo 64 > bMaxPacketSize0
    echo 0x200 > bcdUSB

    # composite class
    echo 0x02 > bDeviceClass

    mkdir -p configs/c.1
    mkdir -p configs/c.1/strings/0x409
    echo "USB2.0 Serial Console" > configs/c.1/strings/0x409/configuration

    mkdir strings/0x409
    echo "1234" > strings/0x409/serialnumber
    echo "Sunplus" > strings/0x409/manufacturer
    echo "SP7350" > strings/0x409/product

    mkdir functions/acm.gs0
    ln -s functions/acm.gs0 configs/c.1

    # bind UDC
    echo "f8102800.usb" > UDC
fi

if [ $USB3_ACM_EN = on ]
then
    cd /sys/kernel/config/usb_gadget

    # create gadget folder
    if [ $USB2_ACM_EN = on ]
    then
        mkdir g2
        cd g2
    else
        mkdir g1
        cd g1
    fi

    # setup gadget
    echo 64 > bMaxPacketSize0
    echo 0x300 > bcdUSB

    # composite class
    echo 0x02 > bDeviceClass
    
    mkdir -p configs/c.1
    mkdir -p configs/c.1/strings/0x409
    echo "USB3.0 Serial Console" > configs/c.1/strings/0x409/configuration
    
    mkdir strings/0x409
    echo "5678" > strings/0x409/serialnumber
    echo "Sunplus" > strings/0x409/manufacturer
    echo "SP7350" > strings/0x409/product
    
    mkdir functions/acm.gs1
    ln -s functions/acm.gs1 configs/c.1
    
    # bind UDC
    echo "f80a1000.dwc3" > UDC
fi

Test (CDC ACM) Configuartions

Use sh setup_serial command to configure USB 2.0 and USB3.0 device controllers as serial gadgets.

...

ttyGS0 and ttyGS1 in /dev are represented for the USB2.0 serial gadget and the USB3.0 one.

...

...

After connecting the USB2.0 serial gadget and the USB3.0 one to a Windows PC with USB cables, “USB Serial Device (COM17COM6)“ (USB2.0 serial gadget) and “USB Serial Device (COM18COM7)“ (USB3.0 serial gadget) will show up in “Ports (COM & LPT)” in Device Manager. “Prolific UBS-to-Serial Comm Port (COM9)” is the default terminal (UART0) of the SP7350 platform.

...

Serial Device Test

Use the communication tool of Putty Tera Term for the test with a the Windows PC.

TX Test for USB2.0 Serial Gadget

  1. Use the following command to transfer characters of “SP7350 USB2.0 Serial Gadget TX Test“ to COM17 through from ttyGS0 (USB2.0 serial gadget) to COM6.

Code Block
# echo "SP7350 USB2.0 Serial Gadget TX Test" > /dev/ttyGS0

...

  1. The characters will be received by COM17 open in PuttyCOM6 open by Tera Term.

...

TX Test for USB3.0 Serial Gadget

  1. Use the following command to transfer characters of “SP7350 USB3.0 Serial Gadget TX Test“ to COM18 through from ttyGS1 (USB3.0 serial gadget) to COM7.

Code Block
# echo "SP7350 USB3.0 Serial Gadget TX Test" > /dev/ttyGS1

...

  1. The characters will be received by COM18 open in PuttyCOM7 open by Tera Term.

...

RX Test for USB2.0 Serial Gadget

  1. Use the following command to be ready to receive characters transferred from COM17 COM6 through ttyGS0 (USB2.0 serial gadget).

...

  1. Input the characters of “SP7350 USB2.0 Serial Gadget RX Test" in Putty with COM17 COM6 open by Tera Term and press “Enter”.

Code Block
SP7350 USB2.0 Serial Gadget RX Test

  1. The characters will be received by

...

  1. ttyGS0.

...

RX Test for USB3.0 Serial Gadget

  1. Use the following command to be ready to receive characters transferred from COM18 COM7 through ttyGS1 (USB3.0 serial gadget).

...

  1. Input the characters of “SP7350 USB3.0 Serial Gadget RX Test" in Putty with COM18 COM7 open by Tera Term and press “Enter”.

Code Block
SP7350 USB3.0 Serial Gadget RX Test

  1. The characters will be received by

...

  1. ttyGS1.

...