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.
Cheers,
Lloyd
Home |
Main Index |
Thread Index |
Old Index