Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: beagle bone. uhub2: device problem, disabling port 2

On 24/03/2013, at 7:01 AM, Aleksey Cheusov <cheusov%tut.by@localhost> wrote:

> Hi. I'm trying to play with Beagle Bone but I cannot see console during
> boot process.
> dmesg says
>    ugen0: FTDI BeagleBone, rev 2.00/7.00, addr 3
> and after some delay
>    uhub2: device problem, disabling port 2
> cu(1) says the following
>    asrock# cu -115200 -l /dev/dtyU0
>    cu: /dev/dtyU0: Device not configured
>    cu: link down
>    asrock#
> I'm completely new to embedded world. Any help?

I guess you are running dmesg and cu on a PC running NetBSD and you have 
plugged the Beagle Bone in to the PC with a USB cable.

Trying to connect to dtyU0 won't work unless dmesg tells you that a ucom device 
has successfully attached because ucom is the driver that provides dtyU0. The 
Beagle Bone has attached as ugen0 which is the device driver that the NetBSD 
kernel uses when it has no idea what the USB device actually is. This could be 
as simple as the NetBSD kernel missing a device IDs needed to identify the 
Beagle Bone USB as a ucom device, or it could be as complicated as the Beagle 
Bone having some special setup. It's possible that you need to do something to 
the Beagle Bone to activate the serial console over the USB port. 

I've had a quick look at the BeagleBone reference manual and it seems that the 
FTDI chip that provides the serial console over USB functionality also provides 
JTAG debug access and that the FTDI chip might not be programmed to provide the 
serial console over USB by default. 

The BeagleBone manual says that at some point they changed the FTDI device IDs 
to 0x0403/0x6010. These new numbers are ones that the NetBSD kernel can use to 
register the BeagleBone as a ucom device (which you want) rather than a ugen 
device (which you don't want). Obviously your BeagleBone doesn't have these 
newer IDs set. The easiest fix is to recompile your NetBSD kernel with the 
device IDs that your BeagleBone actually has. You will need the vendor and 
product IDs from the BeagleBone, so run "usbdevs -v" on as rock while the 
BeagleBone is plugged in and it will display two hexadecimal numbers for your 
BeagleBone. The vendor ID is clearly labelled in the output from usbdevs and 
the product ID is the other hexadecimal number in the output. Add the IDs to 
the obvious places in src/sys/dev/usb/usbdevs and then also to 
sys/dev/usb/uftdi.c. Rebuild your kernel and boot it. With a bit of luck the 
BeagleBone will now who up as ucom0 and dtyU0 will now work.


Home | Main Index | Thread Index | Old Index