GSoC PRU: AM35xx Clock driver
Christian Mauderer
list at c-mauderer.de
Sat Jul 27 12:34:26 UTC 2019
On 24/07/2019 16:53, Nils Hölscher wrote:
> Hi,
>
> @Vijay Kumar Banerjee <mailto:vijaykumar9597 at gmail.com> thanks for the
> dtb file.
> I build my file from FreeBSD master.
>
> Prcm attaches now but still after the pruss driver...:
> "
> nexus0: <RTEMS Nexus device>
> ofwbus0: <Open Firmware Device Tree> on nexus0
> simplebus0: <Flattened device tree simple bus> on ofwbus0
> *ti_pruss0: <TI Programmable Realtime Unit Subsystem> mem
> 0x4a300000-0x4a37ffff irq 20,21,22,23,24,25,26,27 on simplebus0
> ti_pruss0: could not enable PRUSS clock
> device_attach: ti_pruss0 attach returned 6*
> simplebus1: <Flattened device tree simple bus> on simplebus0*
> am335x_prcm0: <AM335x Power and Clock Management> mem 0x200000-0x203fff
> on simplebus1*
Hello Nils,
I'm not sure about the order. But what seems a little bit odd is that
the prcm0 is found in simplebus0 while am335x_prcm0 is found on
simplebus1. Maybe it's worth investigating how that order is created and
how it is handled in RTEMS.
A general note regarding the prcm module: In RTEMS most (non-libbsd)
drivers enable their power and clocks themself. Please make sure that
the FreeBSD prcm doesn't interfere with that. Otherwise you might get
odd effects.
Best regards
Christian
> *====am335x_prcm_attach====*
> "
>
> Is there anything else I can do besides using MODULE_DEPENDENCY, which I
> already use.
> The prcm module is also a EARLY_DRIVER_MODULE.
>
> Best,
> Nils
>
> On Wed, 24 Jul 2019 at 16:04, Vijay Kumar Banerjee
> <vijaykumar9597 at gmail.com <mailto:vijaykumar9597 at gmail.com>> wrote:
>
>
>
> On Wed, Jul 24, 2019 at 7:03 PM Nils Hölscher <nilhoel1 at gmail.com
> <mailto:nilhoel1 at gmail.com>> wrote:
>
>
>
> On Wed, 24 Jul 2019 at 15:14, Vijay Kumar Banerjee
> <vijaykumar9597 at gmail.com <mailto:vijaykumar9597 at gmail.com>> wrote:
>
>
>
>
> On Wed, Jul 24, 2019 at 6:36 PM Nils Hölscher
> <nilhoel1 at gmail.com <mailto:nilhoel1 at gmail.com>> wrote:
>
> Hi again,
>
> Hi Nils
>
> I just decompiled my device tree and checked.
> The probe code of the prcm driver is as follows:
> "
> static int
> am335x_prcm_probe(device_t dev)
> {
> printk("am335x_prcm_probe\n");
>
> if (!ofw_bus_status_okay(dev)){
> printk("ofw_bus_status_not_okay\n");
> return (ENXIO);
> }
>
> Do you get the "ofw_bus_status_not_okay" print ?
>
> Yes. But I also see the other print. except the success one.
>
> if (ofw_bus_is_compatible(dev, "ti,am3-prcm")) {
> device_set_desc(dev, "AM335x Power and Clock
> Management");
> printk("PROBE SUCESSFULL\n");
> return(BUS_PROBE_DEFAULT);
> }
> printk("ofw_bus incompatible\n");
> return (ENXIO);
> }
> "
> So it seems the prcm part in the device tree has to be
> compatible to "ti,am3-prcm".
> The thing is the decompiled device tree states just that:
> "
> prcm at 0 {
> compatible =
> "ti,am3-prcm\0simple-bus";
>
> In my device tree, it runs successfully and the decompiled
> compatible looks like :
> ```
> prcm at 200000 {
> compatible = "ti,am3-prcm";
> reg = < 0x200000 0x4000 >;
> linux,phandle = < 0x4a >;
> phandle = < 0x4a >;
> ```
>
> OK, this is awkward, cause we both should have used the same
> sources.
>
> Have you checked that your source is from the tree matching the
> libBSD HEAD
> commit?
>
> reg = <0x00 0x2000>;
> #address-cells = <0x01>;
> #size-cells = <0x01>;
> ranges = <0x00 0x00 0x2000>;
> phandle = <0x5a>;
> [...]
> "
> Any ideas would help, cause I am currently not able to
> understand this behaviour.
> Also without this driver even the dev_usb_bbb driver
> shouldn't work.
> However it attaches because it doesn't check for the
> clocks error code.
>
> I remember testing this a few days ago for my fb drivers and
> it was attaching alright,
> if I remember correctly. If changing the dtb doesn't work
> for you, I won't mind checking
> again, this will give me a hint for the display issue as well.
>
> I will keep you updated on this.
> Would you be so kind and send me your compiled device tree?
>
> Please find it attached in this mail.
>
> Note: I have removed the devel from the cc because the attachment
> might be
> big for the list. Please continue the discussion in the mailing list
> and maybe note
> it somewhere that you already received the dtb from me in private mail.
>
> Regards,
> Vijay
>
>
>
> Best,
> Nils
>
>
>
> On Wed, 24 Jul 2019 at 14:43, Nils Hölscher
> <nilhoel1 at gmail.com <mailto:nilhoel1 at gmail.com>> wrote:
>
> Hi,
>
> I just found out that the prcm driver fails to probe
> on the simplebus and therefore cannot apply itself.
> Seems like I am back to checking dtb.
>
> Best,
> Nils
>
> On Tue, 23 Jul 2019 at 14:26, Nils Hölscher
> <nilhoel1 at gmail.com <mailto:nilhoel1 at gmail.com>> wrote:
>
> Hi,
>
> After debugging with printk, didn't get the
> module loading working as suggested by Sebastian.
> I just found out that my PRU driver can't be
> attached, cause the AM35xx clock driver isn't
> loaded.
> The driver can be found her:
> https://github.com/RTEMS/rtems-libbsd/blob/610349693dd31d8b0efd33776516b7187cc5cda2/freebsd/sys/arm/ti/am335x/am335x_prcm.c
>
> Can anyone tell me how to load this driver and
> obisouly before I initialize my BSD modules?
>
> FYI: The code line that fails is this one, cause
> the driver hasn't been initialized.
> https://github.com/RTEMS/rtems-libbsd/blob/610349693dd31d8b0efd33776516b7187cc5cda2/freebsd/sys/arm/ti/am335x/am335x_prcm.c#L854
>
> Thanks,
> Nils
>
> _______________________________________________
> devel mailing list
> devel at rtems.org <mailto:devel at rtems.org>
> http://lists.rtems.org/mailman/listinfo/devel
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
More information about the devel
mailing list