CDC ACM driver for UEFI - serial-port

I'm new to UEFI development.
So far, I have learnt about UEFI shell, build procedure and application basics.
My task is to communicate to a custom board from UEFI using uefi app through a USB cable from the PC (usb serial).
Currently, the PC is booted to UEFI shell and connected the board through serial cable and I type devices command, I see that the board is listed as
344 : CDC Abstract Control Model (CDC)
and
345: CDC ACM Data
Please help me to understand how I can proceed? And what works I need to do in order to detect my board as Serial port?
Is there any uefi driver available for this?
If I need to develop the uefi driver, please help me on what would be the starting point?

I haven't seen anyone develop a CDC driver yet, but there is a FTDI driver that could be used as a starting point.
FtdiUsbSerialDxe on GitHub

Related

Testing Microchip RN4871 BLE Module with Raspberry Pi 3

I got a Microchip RN4871 BLE Module and want it to act as beacon.
So, I connected over UART and executed the following commands:
SS,20
SC,2
NB,09,656667
I am able to scan and connect to it using hcitool and gattool command. Now I want to verify whether the beacon functionality is working or not. I mean the device is periodically broadcasting Beacon packets or not..
How can I verify that.. Is there any android application which can help or can i do with raspberry pi 3 as it has in built Bluetooth Chip
There are some really nice apps from nordic for free available. I like the nrF connect app. I guess it will help you.

How do I program my atmel develper board with sample program on the usb

I have successfully compiled a sample program, which came with a developer board. I have also connected to the board via putty and ran the executable which was on the board from the factory. But I can not push my elf file to the board apparently because the debug/programming interface is missing. I can not figure out what the issue is. I turned off Win7's firewall, and defender before I installed the driver. Enclosed are a couple of pics; do I need to purchase a JTAG to usb cable? Right now, I am just connected to the board via the usb interface which is on the board. But the board comes with JATG, and miniJTAG.
#DigiNinja- I have AT97SC3205T-SDK2. Can you also comment on the firewall? Do I need to keep win firewall and defender off all along or just while I install the USB driver?
I posted a pic of the board with all the other interfaces.
Do I need one of these
Here is a pic of Device Programming options:
#all- Thanks. I have a starting point. I need to read the docs now.
The user guide provides the info you need, and can be downloaded here: http://www.atmel.com/Images/Atmel-8528-TPM-I2C-SPI-Development-Kit-UserGuide.pdf
From the user guide:
"The USB bootloader remains pre-programmed in ROM memory. This bootloader may be used to either reload the TPM demonstration software images or to load the SAM4S ARM demonstration software. The kit has a JTAG connector that can be detached from the kit and connected to the mini JTAG connector on the board. This will allow the reprogramming of the SAM4S ARM."
So that means you should be able to load new software images using the pre-loaded USB bootloader. If you don't want to use the bootloader or it's been removed then you will need to use JTAG.
From the user guide: "For more advanced in-system programming techniques, the In-System Programmer SAM JTAG ICE combined with Atmel Studio® can be utilized over the provided JTAG interface port to exercise complete programming control over the processor."

Virtual com communications with no usb2uart bridge?

I'd like to connect a beagleboard-like (custom developed) omap board to a Windows PC using a virtual-com setup. That is, i'd like the board to appear to Windows as a com device and get the COM to send data to our application on the board. The main reason for that is to use virtual-com drivers on windows, since the usb drivers we use now to directly sent data over usb between the host and the board seem not to work properly.
I have done this using the FTDI driver on the past but as far as i know it worked because the device had an FTDI chip that translated the usb protocol to serial signals (am i right ?).If there's no USB to UART bridge on the board, how could i do that ?
By the way, how USB Communication Device Classes fits here ? Should develop a CDC driver for the board ? What should I use then on Windows side ?
I'm kind of confused, so any help will be greatly appreciated :)
Well, i answer myself :)
The solution lies in the Linux USB Gadget Subsystem.
Gadget API

Activesync connection between two USB-host controllers

For a hobby project I wish to develop some stuff for a WinCE 6.0 device. Ideally, I would have an activesync connection to debug from Visual Studio. The OS appears to have all the prerequisites in place, but I'm not sure about the transport. What are my options?
The device has a USB port which can be used to connect e.g. flash drives for mp3 playback, so this seems to be a USB host port. Can I use this to obtain an activesync connection? I guess using a usb-to-serial cable on both pc and WinCE device could work. Or is there a RNDIS way perhaps?
If possible I rather not disassemble the unit, but if my chances of finding a USB client port or wired ethernet are nonzero I could consider that. Any thoughts?
You can not use USB host port for Activesync connection.
But if it is USB OTG (Both host and client) port, you can use activesync using USB OTG or USB Client functionality.
Your BSP should support USB Serial Client functionality (Search SYSGEN_USBFN_SERIAL sysgen variable in catalog items).
Also, your USB driver (lower level driver) should support USB Client functionality.
ActiveSync will work on a serial cable, so the idea of using an USB-to-serial adapter may work. But you need to have drivers for it in the OS image. There are some CDC drivers and FTDI provides drivers for their chips. You may be able to load them on the device, copying them using a USB thumbdrive and modifying the registry using a registry editor for windows CE, but that's not granted. Windows CE also supports RNDIS compatible USB to ethernet adapter but honestly I don't know if any device of this kind is currently available on the market. If your device has wi-fi connectivity you can skip using ActiveSync and debug over the network.

Interfacing zigbee usb stick module with MSP430(Fingerprint Development Kit Texas instruments C5515)

I am developing a wireless finger print based attendance management system to be deployed in my university(National university of sciences and technology Pakistan). I want to use "ETRX357USB+8M ZigBee Wireless Mesh Networking USB Stick" in my project.
Question:
how can i interface MSP430 controller of c5515 finger development kit with ETRX357USB zigbee in order to transmit the data to my server ?
There is a USB port on the finger developing kit(FDK) i am using (Texas instruments C5515) so i have query whether it can host the USB stick Zigbee or not, as hosting a USB device requires driver to be installed on the hosting machine(in my case C5515).
The Telegesis USB sticks all use a Silicon Laboratories Serial-to-USB chip. When you connect them to a PC (or Mac/Linux), you have to install the drivers and the device will show up as a COM port. If the MSP430 is running Linux, you may be in luck, but otherwise I don't know that this product will fit your use case.
You might look at their Zigbee Module which would provide you with UART access, or perhaps one of the Digi XBee devices.

Resources