summaryrefslogtreecommitdiff
path: root/meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh
diff options
context:
space:
mode:
authorThang Q. Nguyen <thang@os.amperecomputing.com>2021-10-15 17:04:44 +0300
committerThang Q. Nguyen <thang@os.amperecomputing.com>2021-11-05 05:30:27 +0300
commitff38979bf9dbc8bc02ee6852d707140ca97b80aa (patch)
treecafc0f898abe1fa617a2fbbc30a2f0e0612e9d55 /meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh
parentcb3197635912c1f49357838d9cd59f927b1af23b (diff)
downloadopenbmc-ff38979bf9dbc8bc02ee6852d707140ca97b80aa.tar.xz
meta-ampere: usbnet: implement using usb-ctrl
Change to implement virtual USB Ethernet using phosphor-misc's usb-ctrl. Tested: 1. Boot BMC to Linux. Login and check if usb0 ethernet interface exists. 2. Power ON the Host. Check if usb0 automatically sets its IP to 192.168.0.10 3. Restart the ampere-usbnet.service service. Check if no error happens. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I4de722a691a112db851b6dda0a7821b9f78b4d72
Diffstat (limited to 'meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh')
-rw-r--r--meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh93
1 files changed, 0 insertions, 93 deletions
diff --git a/meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh b/meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh
deleted file mode 100644
index c4c2c273f..000000000
--- a/meta-ampere/meta-common/recipes-ac01/usbnet/ampere-usbnet/ampere_add_usbnet_gadget.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-
-# Add an Ethernet over USB gadget device and connect to a port of Aspeed USB
-# virtual hub. If can't find any free port on virtual hub, exit with failure.
-# If can't find the virtual hub, exit with failure.
-
-# Author: Thinh Hung Pham <thinh.pham@amperecomputing.com>
-# Signed-off-by: Chanh Nguyen <chnguyen@amperecomputing.com>
-
-UDC_SYSPATH=/sys/class/udc
-VHUB_DEVICE=1e6a0000.usb-vhub:p
-GADGET_CONFIG_SYSPATH=/sys/kernel/config/usb_gadget
-USBNET=usbnet
-# The number of port on AST2500 USB virtual hub
-NUM_PORT_USB_HUB=5
-# idVendor = 0x1d6b: Linux Foundation
-VENDORID=0x1d6b
-# idProduct = 0x0103: NCM (Ethernet) Gadget
-PRODUCTID=0x0103
-# Language code = 0x409: English – United States
-LANGUAGEID=0x409
-SERIALNUMBER=cafecafe
-MANUFACTURER=Aspeed
-FUNCTION=ecm.usb0
-
-if [ ! -d ${GADGET_CONFIG_SYSPATH} ]; then
- # GADGET_CONFIG_SYSPATH is not exist
- # Return 1 so that systemd knows the service failed to start
- echo "ERROR: ${GADGET_CONFIG_SYSPATH} : doesn't exist!"
- exit 1
-fi
-
-find_free_vhub_port(){
- for ((i=1;i<=${NUM_PORT_USB_HUB};i++))
- do
- state=$(cat ${UDC_SYSPATH}/${VHUB_DEVICE}${i}/state)
- func=$(cat ${UDC_SYSPATH}/${VHUB_DEVICE}${i}/function)
- if [ "${state}" == "not attached" -a "${func}" == "" ]; then
- FREEUDC=${VHUB_DEVICE}${i}
- break
- fi
- done
- if [ ${i} -eq 6 ]; then
- # Can't find a free port
- # Return 1 so that systemd knows the service failed to start
- echo "ERROR: Can't find a free port !"
- exit 1
- fi
-}
-
-if [ -d ${GADGET_CONFIG_SYSPATH}/${USBNET} ]; then
- cd ${GADGET_CONFIG_SYSPATH}/${USBNET}
-else
- # Create the gadget
- mkdir ${GADGET_CONFIG_SYSPATH}/${USBNET}
- cd ${GADGET_CONFIG_SYSPATH}/${USBNET}
-
- # Configure the gadget
- echo ${VENDORID} > idVendor
- echo ${PRODUCTID} > idProduct
- mkdir strings/${LANGUAGEID}
- echo ${SERIALNUMBER} > strings/${LANGUAGEID}/serialnumber
- echo ${MANUFACTURER} > strings/${LANGUAGEID}/manufacturer
- echo ${USBNET} > strings/${LANGUAGEID}/product
-
- # Create the configuration
- mkdir configs/c.1
- mkdir configs/c.1/strings/${LANGUAGEID}
-
- # Create the function
- mkdir functions/${FUNCTION}
-
- # Associate the function with its configuration
- ln -s functions/${FUNCTION} configs/c.1
-fi
-
-# Find an available virtual hub port
-find_free_vhub_port
-
-# Enable the gadget
-echo ${FREEUDC} > UDC
-
-if [[ $? -ne 0 ]]; then
- # End
- cd - > /dev/null
- # Virtual HUB is not available
- # Return 1 so that systemd knows the service failed to start
- exit 1
-fi
-
-# End
-cd - > /dev/null
-