Re: [PATCH] omap3: Add basic support for 720MHz part

Koen Kooi
2011-01-18T18:18:01Z

Op 18 jan 2011, om 18:18 heeft Vishwanath Sripathy het volgende geschreven:

> Kooi,
>
>> -----Original Message-----
>> From: Nishanth Menon [mailto:nm@ti.com]
>> Sent: Tuesday, January 18, 2011 10:19 PM
>> To: Koen Kooi
>> Cc: Sanjeev Premi; l-o List; thara@ti.com; Vishwanath Sripathy
>> Subject: Re: [PATCH] omap3: Add basic support for 720MHz part
>>
>> Koen Kooi wrote, on 01/18/2011 05:38 PM:
>>>
>>> Op 18 jan 2011, om 08:49 heeft Sanjeev Premi het volgende
>> geschreven:
>>>
>>>> This patch adds support for new speed enhanced parts with ARM
>>>> and IVA running at 720MHz and 520MHz respectively. These parts
>>>> can be probed at run-time by reading PRODID.SKUID[3:0] at
>>>> 0x4830A20C [1].
>>>>
>>>> This patch specifically does following:
>>>> * Detect devices capable of 720MHz.
>>>> * Add new OPP
>>>> * Ensure that OPP is conditionally enabled.
>>>> * Check for presence of IVA before attempting to enable
>>>> the corresponding OPP.
>>>
>>> Thanks for the updated patch!
>>>
>>> I'm still having problem using this together with DVFS, the kernel
>> won't scale beyond 600MHz because 600MHz and 720MHz share the
>> same voltage. Thara, Nishant, do you have any suggestions on how to
>> convince the kernel that 2 frequencies can share the same voltage
>> settings?
>> + Vishwa
> Yes, this is a limitation with the current set of DVFS patches.
> With the next version of DVFS patches (will be out soon) this feature is
> going to be supported. That means you can have 2 opps with the same
> voltage but with different frequency. The device will be configured based
> on user requested frequency.

Just to have a crude hack, would something like this work?:

/* MPU OPP6 */
- OPP_INITIALIZER("mpu", false, 720000000, 1350000),
+ OPP_INITIALIZER("mpu", false, 720000000, 1350001),

Or will I fall into a (post)divider trap where the kernel panics because it can't do that exact voltage?

The TRM[1] chickens out with the OPP definitions:

------------------>8---------------------------------------------------------------
Six generic processor OPPs can be defined as:
1. OPP6 (VDD1 = v4, (MPU_CLK = fmpu5, IVA2_CLK = fiva5))
2. OPP5 (VDD1 = v4, (MPU_CLK = fmpu4, IVA2_CLK = fiva4))
3. OPP4 (VDD1 = v3, (MPU_CLK = fmpu3, IVA2_CLK = fiva3))
4. OPP3 (VDD1 = v2 , (MPU_CLK = fmpu2, IVA2_CLK = fiva2))
5. OPP2 (VDD1 = v1 , (MPU_CLK = fmpu1, IVA2_CLK = fiva1))
6. OPP1 (VDD1 = v0 , (MPU_CLK = fmpu0, IVA2_CLK = fiva0))
where v4 > v3 > v2 > v1 > v0,
------------------8<---------------------------------------------------------------

My limited sample size of 3 board (2x beagle C4, 1x overo tide) shows 600MHz@1.3V works as well, but I don't know how much slack that has. And I haven't check if the hardware can do 1.3V exactly or has rounded up.

So, what's the quickest way with the current code to get 720MHz "working"? I've voided my warranty on everything already, so that isn't a problem :)

regards,

Koen

[1] spruf98m.pdf page 355