Messages in this thread | | | Date | Wed, 13 May 2020 21:03:41 +0530 | From | Sai Prakash Ranjan <> | Subject | Re: [PATCH] coresight: dynamic-replicator: Fix handling of multiple connections |
| |
Hi Mike,
On 2020-05-13 03:22, Mike Leach wrote:
[...]
> > Looking at the AMBA driver there is a comment there that AMBA does not > lose state when clocks are removed. This is consistent with the AMBA > protocol spec which states that AMBA slaves can only be accessed / > read / write on various strobe signals, or state reset on PRESET > signal, all timed by the rising edge of the bus clock. state changes > are not permitted on clock events alone. Given this static nature of > AMBA slaves then removing the clock should not have any effect. > > The AMBA driver only /drivers/amba/bus.c gives permission to > remove/restore the clocks from the devices (pm_suspend pm_resume > callbacks) - this reduces the power consumption of these devices if > the clock is not running, but state must be retained. >
Thanks for the clarification.
>> >> >> >> >> >> pid=0x2bb909 for both replicators. So part number is same. >> >> >> UCI will be different for different implementation(QCOM maybe >> >> >> different from ARM), >> >> >> but will it be different for different replicators under the same >> >> >> impl(i.e., on QCOM). >> >> > >> >> > May be use PIDR4.DES_2 to match the Implementor and apply the work >> >> > around for all QCOM replicators ? >> >> > >> >> > To me that sounds the best option. >> >> > >> >> >> > >> > I agree, if it can be established that the register values that make >> > up UCI (pid0-4, devarch, devtype, PID:CLASS==0x9), can correctly >> > identify the parts then a flag can be set in the probe() function and >> > acted on during the enable() function. >> > >> >> So here I have a doubt as to why we need to use UCI because PID = >> 0x2bb909 >> and CID = 0xb105900d are same for both replicators, so UCI won't >> identify the >> different replicators(in same implementation i.e., on QCOM) here. >> Am I missing something? >> >> Thats why I think Suzuki suggested to use PIDR4_DES2 and check for >> QCOM >> impl >> and add a workaround for all replicators, something like below: (will >> need cleaning) >> >> #define PIDR4_DES2 0xFD0 >> >> if (FIELD_GET(GENMASK(3, 0), readl_relaxed(drvdata->base + >> PIDR4_DES2)) >> == 0x4) >> id0val = id1val = 0xff; >> > > Please look at the CoreSight components specification 3.0 (ARM IHI > 0029E) Section B2.1.2 which describes the Unique Component Identifier > (UCI). > As mentioned above this consists of a combination of bits from > multiple registers, including PIDR4. >
Ok got it now, thanks for clearing the doubt. I will go ahead with this method to identify QCOM impl and post a patch.
Thanks, Sai
-- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
| |