GSOC 2017 RTEMS-libbsd issue

Christian Mauderer christian.mauderer at embedded-brains.de
Wed Apr 19 12:36:59 UTC 2017


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.
> 

Good.

> 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:

  SYSINIT_MODULE_REFERENCE(wlan_ratectl_none);
  SYSINIT_MODULE_REFERENCE(wlan_sta);
  SYSINIT_MODULE_REFERENCE(wlan_amrr);
  SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);
  SYSINIT_REFERENCE(rtwn_rtl8192cfwT);

Kind regards

Christian

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

-- 
--------------------------------------------
embedded brains GmbH
Christian Mauderer
Dornierstr. 4
D-82178 Puchheim
Germany
email: christian.mauderer at embedded-brains.de
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.



More information about the devel mailing list