RE: [PATCH 1/2] arm64: dts: imx8mq: Correct OPP table according to latest datasheet

2019-06-28 Thread Anson Huang


> -Original Message-
> From: Leonard Crestez
> Sent: Friday, June 28, 2019 2:45 PM
> To: Anson Huang ; Jacky Bai ;
> l.st...@pengutronix.de
> Cc: shawn...@kernel.org; robh...@kernel.org; mark.rutl...@arm.com;
> s.ha...@pengutronix.de; ker...@pengutronix.de; feste...@gmail.com;
> viresh.ku...@linaro.org; Daniel Baluta ; Abel
> Vesa ; andrew.smir...@gmail.com;
> ccai...@baylibre.com; an...@akkea.ca; a...@sigxcpu.org;
> devicet...@vger.kernel.org; linux-arm-ker...@lists.infradead.org; linux-
> ker...@vger.kernel.org; dl-linux-imx 
> Subject: Re: [PATCH 1/2] arm64: dts: imx8mq: Correct OPP table according to
> latest datasheet
> 
> On 6/28/2019 9:16 AM, Anson Huang wrote:
> >> From: Leonard Crestez
> >>> From: Anson Huang 
> >>>
> >>> According to latest datasheet (Rev.1, 10/2018) from below links, in
> >>> the consumer datasheet, 1.5GHz is mentioned as highest opp but
> >>> depends on speed grading fuse, and in the industrial datasheet,
> >>> 1.3GHz is mentioned as highest opp but depends on speed grading
> >>> fuse. 1.5GHz and 1.3GHz opp use same voltage, so no need for
> >>> consumer part to support 1.3GHz opp, with same voltage, CPU should
> >>> run at highest frequency in order to go into idle as quick as possible, 
> >>> this
> can save power.
> >>
> >> I looked at the same datasheets and it's not clear to me that 1.3 Ghz
> >> should be disallowed for consumer parts. Power consumption increases
> >> with both voltage and frequency so having two OPPs with same voltage
> >> does make sense.
> >
> > The consumer part datasheet does NOT mention 1.3GHz at all, so
> > consumer part ONLY support 1GHz/1.5GHz, and industrial part ONLY
> > support 800MHz/1.3GHz, this is what we did in our internal tree and
> > NPI release, so better to make them aligned, otherwise, we have to change
> it when kernel upgrade.
> 
> Datasheet seems ambiguous: it mentions "max freq for volt" so my
> understanding is that any lower freqs should also work at that voltage.
> 
> This also seems to be the understanding behind commit 8cfd813c7307
> ("arm64: dts: imx8mq: fix higher CPU operating point") by Lucas. 
> 
> On datasheet page 7 it mentions that product code can have "JZ" or "HZ"
> for 1.3Ghz or 1.5Ghz. Are you saying that only industrial parts can be "JZ"?

If take a look at page 6 table2, industrial datasheet ONLY has "HZ", and 
consumer
Datasheet ONLY has "JZ". And yes, that is my understanding.

And considering our rule, I don't think is benefit for consumer part to run 
1.3GHz.

> 
> >>>   opp-hz = /bits/ 64 <15>;
> >>>   opp-microvolt = <100>;
> >>>   /* Consumer only but rely on speed grading */
> >>> - opp-supported-hw = <0x8>, <0x7>;
> >>> + opp-supported-hw = <0x8>, <0x3>;
> >>
> >> If you don't want to rely on the fact that only consumer parts should
> >> be fused for 1.5 Ghz then please delete the comment.
> >
> > Don't quite understand, 1.5GHz is indeed consumer ONLY, but if the
> > consumer part is fused to 1GHz, then 1.5GHz is also NOT available, so
> > it also rely on speed grading. So keep the comment there is OK?
> 
> What I meant with that comment is that 1.5Ghz is only mentioned for
> consumer parts but instead of explicitly banning it on industrial parts we 
> rely
> on MFG never fusing industrial parts for 1.5Ghz.
> 
> Now you're explicitly banning it on industrial parts.

Yes, industrial parts never support up to 1.5GHz, so explicitly banning it is 
just OK.
The speed grading fuse and market segment fuse are actually has some overlap,
we better to implement both of them.

> 
> This comment is indeed confusing so better to just remove all instances.

I agree to remove those comments, no need to let it introduce any confusion.

Anson.


Re: [PATCH 1/2] arm64: dts: imx8mq: Correct OPP table according to latest datasheet

2019-06-28 Thread Leonard Crestez
On 6/28/2019 9:16 AM, Anson Huang wrote:
>> From: Leonard Crestez
>>> From: Anson Huang 
>>>
>>> According to latest datasheet (Rev.1, 10/2018) from below links, in
>>> the consumer datasheet, 1.5GHz is mentioned as highest opp but depends
>>> on speed grading fuse, and in the industrial datasheet, 1.3GHz is
>>> mentioned as highest opp but depends on speed grading fuse. 1.5GHz and
>>> 1.3GHz opp use same voltage, so no need for consumer part to support
>>> 1.3GHz opp, with same voltage, CPU should run at highest frequency in
>>> order to go into idle as quick as possible, this can save power.
>>
>> I looked at the same datasheets and it's not clear to me that 1.3 Ghz should
>> be disallowed for consumer parts. Power consumption increases with both
>> voltage and frequency so having two OPPs with same voltage does make
>> sense.
> 
> The consumer part datasheet does NOT mention 1.3GHz at all, so consumer part 
> ONLY
> support 1GHz/1.5GHz, and industrial part ONLY support 800MHz/1.3GHz, this is 
> what
> we did in our internal tree and NPI release, so better to make them aligned, 
> otherwise,
> we have to change it when kernel upgrade.

Datasheet seems ambiguous: it mentions "max freq for volt" so my 
understanding is that any lower freqs should also work at that voltage.

This also seems to be the understanding behind commit 8cfd813c7307 
("arm64: dts: imx8mq: fix higher CPU operating point") by Lucas.

On datasheet page 7 it mentions that product code can have "JZ" or "HZ" 
for 1.3Ghz or 1.5Ghz. Are you saying that only industrial parts can be "JZ"?

>>> opp-hz = /bits/ 64 <15>;
>>> opp-microvolt = <100>;
>>> /* Consumer only but rely on speed grading */
>>> -   opp-supported-hw = <0x8>, <0x7>;
>>> +   opp-supported-hw = <0x8>, <0x3>;
>>
>> If you don't want to rely on the fact that only consumer parts should be
>> fused for 1.5 Ghz then please delete the comment.
> 
> Don't quite understand, 1.5GHz is indeed consumer ONLY, but if the consumer
> part is fused to 1GHz, then 1.5GHz is also NOT available, so it also rely on 
> speed
> grading. So keep the comment there is OK?

What I meant with that comment is that 1.5Ghz is only mentioned for 
consumer parts but instead of explicitly banning it on industrial parts 
we rely on MFG never fusing industrial parts for 1.5Ghz.

Now you're explicitly banning it on industrial parts.

This comment is indeed confusing so better to just remove all instances.


RE: [PATCH 1/2] arm64: dts: imx8mq: Correct OPP table according to latest datasheet

2019-06-28 Thread Anson Huang
Hi, Leonard

> -Original Message-
> From: Leonard Crestez
> Sent: Friday, June 28, 2019 1:59 PM
> To: Anson Huang ; shawn...@kernel.org; Jacky
> Bai ; l.st...@pengutronix.de
> Cc: robh...@kernel.org; mark.rutl...@arm.com; s.ha...@pengutronix.de;
> ker...@pengutronix.de; feste...@gmail.com; viresh.ku...@linaro.org;
> Daniel Baluta ; Abel Vesa ;
> andrew.smir...@gmail.com; ccai...@baylibre.com; an...@akkea.ca;
> a...@sigxcpu.org; devicet...@vger.kernel.org; linux-arm-
> ker...@lists.infradead.org; linux-kernel@vger.kernel.org; dl-linux-imx
> 
> Subject: Re: [PATCH 1/2] arm64: dts: imx8mq: Correct OPP table according to
> latest datasheet
> 
> On 28.06.2019 06:37, anson.hu...@nxp.com wrote:
> > From: Anson Huang 
> >
> > According to latest datasheet (Rev.1, 10/2018) from below links, in
> > the consumer datasheet, 1.5GHz is mentioned as highest opp but depends
> > on speed grading fuse, and in the industrial datasheet, 1.3GHz is
> > mentioned as highest opp but depends on speed grading fuse. 1.5GHz and
> > 1.3GHz opp use same voltage, so no need for consumer part to support
> > 1.3GHz opp, with same voltage, CPU should run at highest frequency in
> > order to go into idle as quick as possible, this can save power.
> 
> I looked at the same datasheets and it's not clear to me that 1.3 Ghz should
> be disallowed for consumer parts. Power consumption increases with both
> voltage and frequency so having two OPPs with same voltage does make
> sense.

The consumer part datasheet does NOT mention 1.3GHz at all, so consumer part 
ONLY
support 1GHz/1.5GHz, and industrial part ONLY support 800MHz/1.3GHz, this is 
what
we did in our internal tree and NPI release, so better to make them aligned, 
otherwise,
we have to change it when kernel upgrade.

And normally, with same voltage, i.MX SoCs always run at highest frequency, so 
it is better
to keep the rule, otherwise customer may ask, how about using same voltage to 
run at 1.2GHz or
1.1GHz?

> 
> > opp-hz = /bits/ 64 <13>;
> > opp-microvolt = <100>;
> > -   opp-supported-hw = <0xc>, <0x7>;
> > +   /* Industrial only but rely on speed grading */
> > +   opp-supported-hw = <0xc>, <0x4>;
> 
> Comment is false, you're explicitly excluding consumer parts via the second
> element.

Yes, that is what I meant to do, as we no need to support 1.3GHz for consumer
part, with 1.0V, consumer part can run up to 1.5GHz.

> 
> > opp-hz = /bits/ 64 <15>;
> > opp-microvolt = <100>;
> > /* Consumer only but rely on speed grading */
> > -   opp-supported-hw = <0x8>, <0x7>;
> > +   opp-supported-hw = <0x8>, <0x3>;
> 
> If you don't want to rely on the fact that only consumer parts should be
> fused for 1.5 Ghz then please delete the comment.

Don't quite understand, 1.5GHz is indeed consumer ONLY, but if the consumer
part is fused to 1GHz, then 1.5GHz is also NOT available, so it also rely on 
speed
grading. So keep the comment there is OK?

Thanks,
Anson.



Re: [PATCH 1/2] arm64: dts: imx8mq: Correct OPP table according to latest datasheet

2019-06-27 Thread Leonard Crestez
On 28.06.2019 06:37, anson.hu...@nxp.com wrote:
> From: Anson Huang 
> 
> According to latest datasheet (Rev.1, 10/2018) from below links,
> in the consumer datasheet, 1.5GHz is mentioned as highest opp but
> depends on speed grading fuse, and in the industrial datasheet,
> 1.3GHz is mentioned as highest opp but depends on speed grading
> fuse. 1.5GHz and 1.3GHz opp use same voltage, so no need for
> consumer part to support 1.3GHz opp, with same voltage, CPU should
> run at highest frequency in order to go into idle as quick as
> possible, this can save power.

I looked at the same datasheets and it's not clear to me that 1.3 Ghz 
should be disallowed for consumer parts. Power consumption increases 
with both voltage and frequency so having two OPPs with same voltage 
does make sense.

>   opp-hz = /bits/ 64 <13>;
>   opp-microvolt = <100>;
> - opp-supported-hw = <0xc>, <0x7>;
> + /* Industrial only but rely on speed grading */
> + opp-supported-hw = <0xc>, <0x4>;

Comment is false, you're explicitly excluding consumer parts via the 
second element.

>   opp-hz = /bits/ 64 <15>;
>   opp-microvolt = <100>;
>   /* Consumer only but rely on speed grading */
> - opp-supported-hw = <0x8>, <0x7>;
> + opp-supported-hw = <0x8>, <0x3>;

If you don't want to rely on the fact that only consumer parts should be 
fused for 1.5 Ghz then please delete the comment.