[PATCH 01/02] USB driver bcm283x_dwcotg added.

Thomas Kim thomas73.kim at gmail.com
Thu Aug 11 09:24:17 UTC 2016


Dear Deval Shah,

I found reason about "why dwcotg probe & attach function is not called".

Even though DRIVER_MODULE is declared in below, _bsd__start_set_nexus &
_bsd__stop_set_nexus is not initialized.

DRIVER_MODULE(bcm283x_dwcotg, nexus, bcm283x_dwc_otg_driver,
  bcm283x_dwc_otg_devclass, 0, 0);

I checked symbol information by arm-rtems4.12-nm command.

00225fac D _bsd__start_set_nexus
00225fac D _bsd__start_set_sysctl_set
0022ca10 D _bsd__start_set_sysinit_set
0022974c D _bsd_start_softclock_sys_init
00225fac D _bsd__stop_set_modmetadata_set
00225fac D _bsd__stop_set_nexus
002260a4 D _bsd__stop_set_sysctl_set
0022cb04 D _bsd__stop_set_sysinit_set

But, I was failed for finding location for initializing
_bsd__start_set_nexus and _bsd__stop_set_nexus.

Please advise me.

Best Regards,
Thomas Kim.

2016-08-11 11:40 GMT+09:00 Thomas Kim <thomas73.kim at gmail.com>:

> Dear Deval Shah,
>
> I found something.
>
> At this time, I am analyzing libbsd subsystem call procedure.
> I added additional information on verbose log file for referencing
> kernel.h (in rtems-libbsd/freebsd/sys/sys) and symbol file which is
> generated by arm-rtems4.12-nm.
> I attached this log file(libbsd-verbose-log.txt).
>
> As you see in this log file, my surmmary is below;
>
> 1) subsystem 310000 is SI_SUB_DRIVERS. also, I checked that
> dwcotg_nexus_mod, usbus_ehci_mod, umass_uhub_mod, uhub_uhub_mod,
> uhub_usbus_mod are registered by _bsd_module_register_init().
>   - I think that it is okay.
>
> 2) subsystem 3800000 is SI_SUB_CONFIGURE. I checked nexus_probe() in
> rtems-kernel-nexus.c is called in this phase.
> but, device_add_child() is not called in below step of nexus_probe().
>
>    SET_FOREACH(nd, nexus) {
>     device_add_child(dev, nd->name, nd->unit);
>    }
>
> Finally, I am guessing that device_add_child() for DWCOTG should be called.
> At this time, I don't know why device_add_child() for DWCOTG controller is
> not called.
>
> Please advise me.
>
> Best Regards,
> Thomas Kim
>
>
> 2016-08-11 8:51 GMT+09:00 Thomas Kim <thomas73.kim at gmail.com>:
>
>> Dear Deval Shah,
>>
>> I checked my rasberry board. my board is rasberry Pi B+. (It is not RPI2
>> B+)
>> I am sorry. I returned to rtems, libbsd version for Pi B+.
>>
>> Anyway, I guess that both bcm283x_dwc_otg_probe() and
>> bcm283x_dwc_otg_attach() function should be called.
>> I don't know how to call bcm283x_dwc_otg_probe() and
>> bcm283x_dwc_otg_attach().
>>
>> Please advsie me.
>>
>> Best Regards,
>> Thomas Kim.
>>
>> 2016-08-10 22:06 GMT+09:00 Deval Shah <deval.maker at gmail.com>:
>>
>>> I saw the files which you have attached. I found one quick mistake.
>>>
>>> In your nexus-devices.h file "RTEMS_BSD_DRIVER_BCM283X_DWCOTG(0x20980000,
>>> 17);", base and irq used are wrong. I had corrected the irq in my other
>>> commit. They will be 0x3F980000 (since you are using Raspberry pi 2) and 9.
>>>
>>> It would be easier to use the macros. i.e.
>>> RTEMS_BSD_DRIVER_BCM283X_DWCOTG(BCM2835_USB_BASE, BCM2835_IRQ_ID_USB);
>>>
>>>
>>>>>>
>>> On Wed, Aug 10, 2016 at 1:11 PM, Thomas Kim <thomas73.kim at gmail.com>
>>> wrote:
>>>
>>>> Dear Deval Shah,
>>>>
>>>> Thank you very much for your reply.
>>>> I checked this again.
>>>> Because there is not your code in currrent git system, I patched your
>>>> code in current libbsd code.
>>>> As I know in current libbsd source tree, your nexus_devices.h should be
>>>> sperated into rtems-bsd-nexus-bus.h. I attached this.
>>>>
>>>> First of all, I completed to test RTEMS testsuites/sample/ticker.exe on
>>>> RPI2 B+ board.
>>>> I am tring to test rtems-libbsd/rtemsbsd/testsuite/usb01.
>>>> also, I try to test two cases in usb01/init.c
>>>> case 1 does not include NEED_USB_EHCI. case 2 include NEED_USB_EHCI.
>>>>
>>>> #if defined(LIBBSP_ARM_LPC24XX_BSP_H) || defined(LIBBSP_ARM_LPC32XX_BSP
>>>> _H)
>>>>  #define NEED_USB_OHCI
>>>> (CASE1) #elif defined(__GEN83xx_BSP_h) || defined(LIBBSP_POWERPC_QORIQ_B
>>>> SP_H)
>>>> (CASE2) #elif defined(__GEN83xx_BSP_h) || defined(LIBBSP_ARM_RASPBERRYPI
>>>> _BSP_H)
>>>>  #define NEED_USB_EHCI
>>>> #endif
>>>> SYSINIT_NEED_USB_CORE;
>>>> #ifdef NEED_USB_OHCI
>>>>  SYSINIT_NEED_USB_OHCI;
>>>> #endif
>>>> #ifdef NEED_USB_EHCI
>>>>  SYSINIT_NEED_USB_EHCI;
>>>> #endif
>>>>
>>>> also, I added "#define VERBOSE_SYSINIT 1" in init_main.c for checking
>>>> SYS_INIT functional call.
>>>>
>>>> At this time, usb_quirk_init() only is called when I test two cases.
>>>> I attached serial log file, too.
>>>>
>>>> Please let me know my missing point.
>>>>
>>>> Best Regards,
>>>> JunBeom
>>>>
>>>> 2016-08-10 5:31 GMT+09:00 Deval Shah <deval.maker at gmail.com>:
>>>>
>>>>> Hello Thomas Kim,
>>>>>
>>>>> It is the same code which you downloaded will work for the raspberry
>>>>> pi. You can test the libbsd version of raspberry pi by configuring waf with
>>>>> the following arguments.
>>>>>
>>>>> waf configure --prefix=/opt/rtems/4.12/bsps \
>>>>> --rtems=/opt/rtems/4.12/bsps \
>>>>> --rtems-tools=/opt/rtems/4.12/tools \
>>>>> --rtems-bsps=arm/raspberrypi
>>>>>
>>>>> You can find more at this link. https://git.rtems.org/rt
>>>>> ems-libbsd/tree/README.waf
>>>>>
>>>>> Deval Shah
>>>>>
>>>>>>>>>>
>>>>> On Tue, Aug 9, 2016 at 11:48 AM, Thomas Kim <thomas73.kim at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Dear Sir,
>>>>>>
>>>>>> I am sorry.
>>>>>>
>>>>>> I want to test this libbsd version for Rasberry Pi.
>>>>>> When I check "git://git.rtems.org/rtems-libbsd.git", there is not
>>>>>> any code for Rasberry pi.
>>>>>>
>>>>>> Please could you let me know git URL for downloading this libbsd
>>>>>> version ?
>>>>>>
>>>>>> Best Regards,
>>>>>> Thomas Kim
>>>>>>
>>>>>> 2016-08-09 14:52 GMT+09:00 Sebastian Huber <
>>>>>> sebastian.huber at embedded-brains.de>:
>>>>>>
>>>>>>> From which FreeBSD version are these files?
>>>>>>>
>>>>>>> On 05/08/16 18:32, Deval Shah wrote:
>>>>>>>
>>>>>>>> ---
>>>>>>>>   freebsd/sys/arm/broadcom/bcm2835/bcm283x_dwc_fdt.c | 127
>>>>>>>> ++++++++++++
>>>>>>>>   freebsd/sys/dev/usb/controller/dwc_otg_fdt.c       | 228
>>>>>>>> +++++++++++++++++++++
>>>>>>>>   freebsd/sys/dev/usb/controller/dwc_otg_fdt.h       |  39 ++++
>>>>>>>>   libbsd.py                                          |   3 +
>>>>>>>>   libbsd_waf.py                                      |   4 +-
>>>>>>>>   rtemsbsd/include/bsp/nexus-devices.h               |  21 ++
>>>>>>>>   6 files changed, 421 insertions(+), 1 deletion(-)
>>>>>>>>   create mode 100644 freebsd/sys/arm/broadcom/bcm28
>>>>>>>> 35/bcm283x_dwc_fdt.c
>>>>>>>>   create mode 100644 freebsd/sys/dev/usb/controller/dwc_otg_fdt.c
>>>>>>>>   create mode 100644 freebsd/sys/dev/usb/controller/dwc_otg_fdt.h
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sebastian Huber, embedded brains GmbH
>>>>>>>
>>>>>>> Address : Dornierstr. 4, D-82178 Puchheim, Germany
>>>>>>> Phone   : +49 89 189 47 41-16
>>>>>>> Fax     : +49 89 189 47 41-09
>>>>>>> E-Mail  : sebastian.huber at embedded-brains.de
>>>>>>> PGP     : Public key available on request.
>>>>>>>
>>>>>>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> devel mailing list
>>>>>>> devel at rtems.org
>>>>>>> http://lists.rtems.org/mailman/listinfo/devel
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Deval Shah
>>>>> Graduate Student,
>>>>> B.E. (Hons.) Electrical and Electronics Engineering
>>>>> BITS Pilani Hyderabad Campus <http://www.bits-pilani.ac.in/hyderabad/>
>>>>>
>>>>> Github Profile <https://github.com/deval-maker>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Deval Shah
>>> Graduate Student,
>>> B.E. (Hons.) Electrical and Electronics Engineering
>>> BITS Pilani Hyderabad Campus <http://www.bits-pilani.ac.in/hyderabad/>
>>>
>>> Github Profile <https://github.com/deval-maker>
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160811/338d5f76/attachment-0002.html>


More information about the devel mailing list