[PATCH] coresight: adding basic support for Spreadtrum SC9836
Chunyan Zhang
zhang.chunyan at linaro.org
Wed Mar 25 05:19:36 PDT 2015
On Tue, Mar 24, 2015 at 11:08 PM, Mathieu Poirier
<mathieu.poirier at linaro.org> wrote:
> On 23 March 2015 at 23:48, Chunyan Zhang <zhang.chunyan at linaro.org> wrote:
>> Support only for ETB, FUNNEL, STM are included currently.
>> Support for ETM, TPIU and the replicator linked to it are not included in
>> this version patch.
>>
>> Signed-off-by: Chunyan Zhang <zhang.chunyan at linaro.org>
>> ---
>> arch/arm64/boot/dts/sprd/sc9836.dtsi | 57 ++++++++++++++++++++++++++++++++++++
>> 1 file changed, 57 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> index f92f1b4..2ca80f3 100644
>> --- a/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> +++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi
>> @@ -45,6 +45,63 @@
>> };
>> };
>>
>> + etb at 10003000 {
>> + compatible = "arm,coresight-etb10", "arm,primecell";
>> + reg = <0 0x10003000 0 0x1000>;
>> + arm,primecell-periphid = <0x0003b907>;
>
> Specifying the primecell id in the device tree like this is usually to
> avoid probing of the memory space by the AMBA mechanic when bus
> components are discovered. As such components are probed and
> initialised when their drivers are registered with the diver core
> later in the boot process.
>
> Is there a good reason why this is done here? Especially when the
> funnel and STM don't specify their cell IDs in the DT.
Actually today I found that is not a ETB but TMC, so if I didn't set
peripheral id for it in DT, it can't be initialized as ETB.
I will correct it to be a TMC in upcoming version patch.
>
>> + coresight-default-sink;
>
> Please remove the above - this feature no longer exists.
ok, I will remove it in next version.
>
>> + clocks = <&clk26mhz>;
>> + clock-names = "apb_pclk";
>> + port {
>> + etb_in: endpoint {
>> + slave-mode;
>> + remote-endpoint = <&funnel_out_port0>;
>> + };
>> + };
>> + };
>> +
>> + funnel at 10001000 {
>> + compatible = "arm,coresight-funnel", "arm,primecell";
>> + reg = <0 0x10001000 0 0x1000>;
>> + clocks = <&clk26mhz>;
>> + clock-names = "apb_pclk";
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + /* funnel output port */
>> + port at 0 {
>> + reg = <0>;
>> + funnel_out_port0: endpoint {
>> + remote-endpoint = <&etb_in>;
>> + };
>> + };
>> +
>> + /* funnel input port 0~3 is reserved for ETMs */
>> + port at 1 {
>> + reg = <4>;
>> + funnel_in_port4: endpoint {
>> + slave-mode;
>> + remote-endpoint = <&stm_out>;
>> + };
>> + };
>> + };
>> + };
>> +
>> + stm at 10006000 {
>> + compatible = "arm,coresight-stm", "arm,primecell";
>> + reg = <0 0x10006000 0 0x1000>,
>> + <0 0x01000000 0 0x180000>;
>> + reg-names = "stm-base", "stm-stimulus-base";
>> + clocks = <&clk26mhz>;
>> + clock-names = "apb_pclk";
>> + port {
>> + stm_out: endpoint {
>> + remote-endpoint = <&funnel_in_port4>;
>> + };
>> + };
>> + };
>> +
>> gic: interrupt-controller at 12001000 {
>> compatible = "arm,gic-400";
>> reg = <0 0x12001000 0 0x1000>,
>> --
>> 1.9.1
>>
More information about the linux-arm-kernel
mailing list