GSOC 2017 RTEMS-libbsd issue

Kirspel, Kevin Kevin-Kirspel at
Wed Apr 19 12:41:21 UTC 2017

My USB mass storage works without UGEN.

Kevin Kirspel
Electrical Engineer - Sr. Staff
Idexx Roswell
235 Hembree Park Drive
Roswell GA 30076
Tel: (770)-510-4444 ext. 81642
Direct: (770)-688-1642
Fax: (770)-510-4445

-----Original Message-----
From: devel [mailto:devel-bounces at] On Behalf Of Christian Mauderer
Sent: Wednesday, April 19, 2017 8:37 AM
To: RTEMS <devel at>; 赵 思晨 <zsc19940506 at>
Subject: Re: GSOC 2017 RTEMS-libbsd issue

Hello Sichen Zhao,

Sorry for the delayed response. Somehow the mail must have been lost.
I only received it through the answer from Kevin Kirspel. I slightly changed my mailing list settings so the next time it will (hopefully) work.

> Hi Christian Mauderer, Hi all,
> I understand what you mean, i will update my RTEMS-libbsd to the 
> newest branch.


> I already pull over the host controller driver files(am335x_musb.c
> am335x_usbss.c umass.c)from freebsd and make them compilable in 
> rtems-libbsd. The umass.c is driver for storage device.
> And i already add the host controller and driver to
> nexus-devices.h(RTEMS_BSD_DEFINE_NEXUS_DEVICE(musbotg,0 , 
> RTEMS_ARRAY_SIZE(musbotg_res), &musbotg_res[0]);).

Sounds good. Did you put these changes on some working branch in your github repository so it would be possible to have a look?

> Now uhub usbus and musbotg can mount on nexus bus.

OK. Sounds good. I expect you have verified that by some console output?

> the issue is: it can not find the new device(such as U disk)

Which application did you use to test this. Do you have some kind of debugger so you could check whether the code reaches the umass_probe function?

> So i compare with the FreeBSD boot log info, and the only difference 
> is FreeBSD enable the USB_HAVE_UGEN, so i guess if it is necessary
> to enable the macro USB_HAVE_UGEN.

As far as I can tell neither the am335x_musb nor the umass driver does something different based on this macro. And till now, the macro hasn't been necessary for supporting mass storage devices. It is possible that something changed and that this specific host needs USB_HAVE_UGEN for some reason to support any device but I would think it is rather unlikely.

@Kevin Kirspel: It seems that you need UGEN for keyboards. Does a USB mass storage work on your target without UGEN? This might could give a hint whether the dependency is device-specific or host-specific.

I'm currently not sure if any other USB device (like a hub) produces any messages on the console. But it might would be worth a try. If you have upgraded to the last libbsd, you could also try some USB-wifi-dongles. I tested with a rtl8192 based one and that did put some messages on the console. For this wifi dongle You would have to add the following drivers in nexus-devices.h:


Kind regards


> Thank you for your suggestions.
> Best regards
> Sichen Zhao

embedded brains GmbH
Christian Mauderer
Dornierstr. 4
D-82178 Puchheim
email: christian.mauderer at
Phone: +49-89-18 94 741 - 18
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
devel mailing list
devel at 

More information about the devel mailing list