Subject: [PATCH 09/11 v4] coresight: adding support for beagle and beagleXM

From: [email-masked] (Marcin Jabrzyk)
Date: Mon, 25 Aug 2014 23:01:10 +0200

Hello,

W dniu 25.08.2014 o 16:02, Mathieu Poirier pisze:
> On 24 August 2014 15:38, Marcin Jabrzyk <[email-masked]> wrote:
>> Hi,
>>
>> W dniu 20.08.2014 o 19:03, mathieu.poirier at linaro.org pisze:
>>> From: Mathieu Poirier <[email-masked]>
>>>
>>> Currently supporting ETM and ETB.  Support for TPIU
>>> and SDTI are yet to be added.
>> Did you tried running the drivers on board or are there any special
>> preparation needed?
>> I've BeagleBoard-xM Rev. C applied your patches and enabled the
>> functions the in menuconfig.
>> But on dmesg I see that:
>>
>> [    0.685028] of_amba_device_create(): amba_device_add() failed (-19)
>> for /etb at 5401b000
>> [    0.685119] of_amba_device_create(): amba_device_add() failed (-19)
>> for /etm at 54010000
>>
>> There are no nodes according coresight in /sys/kernel/debug/ .
> Right, that is because there is a problem in mainline with enabling
> "emu_src_ck".  The call to "clk_prepare_enable()" returns without
> waiting for the clock to effectively be enabled, preventing the
> components from being discovered properly.
>
> The work around (non-upstreamable) is to have a driver getting a hold
> of the clock before AMBA devices are probed.  I can send you that code
> (10 lines) if need be.
Ok I can confirm that this patch works fine for BeagleBoard-xM. After
applying workaround for that clock the devices are properly discovered
and visible through sysfs entries.

Thanks,
Marcin
>
>> Best regards,
>> Marcin
>>
>>> Signed-off-by: Mathieu Poirier <[email-masked]>
>>> ---
>>>  arch/arm/boot/dts/omap3-beagle-xm.dts | 28 ++++++++++++++++++++++++++++
>>>  arch/arm/boot/dts/omap3-beagle.dts    | 28 ++++++++++++++++++++++++++++
>>>  2 files changed, 56 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>> index 1becefc..eec73d8 100644
>>> --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
>>> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
>>> @@ -145,6 +145,34 @@
>>>                       };
>>>               };
>>>       };
>>> +
>>> +     etb at 5401b000 {
>>> +             compatible = "arm,coresight-etb10", "arm,primecell";
>>> +             reg = <0x5401b000 0x1000>;
>>> +
>>> +             coresight-default-sink;
>>> +             clocks = <&emu_src_ck>;
>>> +             clock-names = "apb_pclk";
>>> +             port {
>>> +                     etb_in: endpoint {
>>> +                             slave-mode;
>>> +                             remote-endpoint = <&etm_out>;
>>> +                     };
>>> +             };
>>> +     };
>>> +
>>> +     etm at 54010000 {
>>> +             compatible = "arm,coresight-etm3x", "arm,primecell";
>>> +             reg = <0x54010000 0x1000>;
>>> +
>>> +             clocks = <&emu_src_ck>;
>>> +             clock-names = "apb_pclk";
>>> +             port {
>>> +                     etm_out: endpoint {
>>> +                             remote-endpoint = <&etb_in>;
>>> +                     };
>>> +             };
>>> +     };
>>>  };
>>>
>>>  &omap3_pmx_wkup {
>>> diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
>>> index 3c3e6da..a151daf 100644
>>> --- a/arch/arm/boot/dts/omap3-beagle.dts
>>> +++ b/arch/arm/boot/dts/omap3-beagle.dts
>>> @@ -140,6 +140,34 @@
>>>                       };
>>>               };
>>>       };
>>> +
>>> +     etb at 540000000 {
>>> +             compatible = "arm,coresight-etb10", "arm,primecell";
>>> +             reg = <0x5401b000 0x1000>;
>>> +
>>> +             coresight-default-sink;
>>> +             clocks = <&emu_src_ck>;
>>> +             clock-names = "apb_pclk";
>>> +             port {
>>> +                     etb_in: endpoint {
>>> +                             slave-mode;
>>> +                             remote-endpoint = <&etm_out>;
>>> +                     };
>>> +             };
>>> +     };
>>> +
>>> +     etm at 54010000 {
>>> +             compatible = "arm,coresight-etm3x", "arm,primecell";
>>> +             reg = <0x54010000 0x1000>;
>>> +
>>> +             clocks = <&emu_src_ck>;
>>> +             clock-names = "apb_pclk";
>>> +             port {
>>> +                     etm_out: endpoint {
>>> +                             remote-endpoint = <&etb_in>;
>>> +                     };
>>> +             };
>>> +     };
>>>  };
>>>
>>>  &omap3_pmx_wkup {