This PR adds a devicetree patch that enables using multiple USB gadget functions a the same time (see this mail thread for why this is required) and a set of scripts to set up such multi-function gadgets.
We are currently still limited to two functions at once by the FIFO configuration, as two functions (using the maximum message sizes currently configured in the drivers) is the maximum that can fit into the 4K SRAM of the dwc2 controller.
I've thus added the following two-function setup scripts that I could come up with a use case for:
tac-gadget-ethernet-serial (Ethernet + Serial)
Could be useful to rescue a system with broken network support that is configured to open a console on /dev/ttyACM0.
tac-gadget-ethernet-storage (Ethernet + Mass Storage)
Tested this by booting a Arch Linux install .iso on my laptop via USB and connecting it to the internet by adding the usb0 interface on the TAC to the tac-bridge.
tac-gadget-hid-storage (HID + Mass Storage)
Could be useful to boot x86 devices via USB by simulating the right keyboard presses.
"F12, down arrow, down arrow, enter".
tac-gadget-serial-storage (Serial + Mass Storage)
Tested this by booting a Arch Linux install .iso on my laptop via USB and controlling it via the simulated serial port.
Related Pull Requests
This PR is based on another PRs that should be kept in mind:
[x] The meta-lxatac pull request that last touched the kernel patch stack: #47
This PR adds a devicetree patch that enables using multiple USB gadget functions a the same time (see this mail thread for why this is required) and a set of scripts to set up such multi-function gadgets.
We are currently still limited to two functions at once by the FIFO configuration, as two functions (using the maximum message sizes currently configured in the drivers) is the maximum that can fit into the 4K SRAM of the dwc2 controller.
I've thus added the following two-function setup scripts that I could come up with a use case for:
tac-gadget-ethernet-serial
(Ethernet + Serial)Could be useful to rescue a system with broken network support that is configured to open a console on
/dev/ttyACM0
.tac-gadget-ethernet-storage
(Ethernet + Mass Storage)Tested this by booting a Arch Linux install .iso on my laptop via USB and connecting it to the internet by adding the
usb0
interface on the TAC to thetac-bridge
.tac-gadget-hid-storage
(HID + Mass Storage)Could be useful to boot x86 devices via USB by simulating the right keyboard presses. "F12, down arrow, down arrow, enter".
tac-gadget-serial-storage
(Serial + Mass Storage)Tested this by booting a Arch Linux install .iso on my laptop via USB and controlling it via the simulated serial port.
Related Pull Requests
This PR is based on another PRs that should be kept in mind:
meta-lxatac
pull request that last touched the kernel patch stack: #47