[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e4e0c2a4-0d63-434f-ba52-6aaf571e30a5@kwiboo.se>
Date: Sat, 1 Jun 2024 01:32:29 +0200
From: Jonas Karlman <jonas@...boo.se>
To: Alexey Charkov <alchark@...il.com>
Cc: Dragan Simic <dsimic@...jaro.org>, linux-rockchip@...ts.infradead.org,
heiko@...ech.de, linux-arm-kernel@...ts.infradead.org,
devicetree@...r.kernel.org, robh+dt@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org, linux-kernel@...r.kernel.org,
quentin.schulz@...rry.de, wens@...nel.org, daniel.lezcano@...aro.org,
didi.debian@...ow.org, krzysztof.kozlowski+dt@...aro.org,
viresh.kumar@...aro.org
Subject: Re: [RFC PATCH] arm64: dts: rockchip: Make preparations for
per-RK3588-variant OPPs
Hi Alexey,
On 2024-05-31 13:44, Alexey Charkov wrote:
> Hi Jonas,
>
> On Fri, May 31, 2024 at 3:27 PM Jonas Karlman <jonas@...boo.se> wrote:
>>
>> Hi Alexey and Dragan,
>>
>> On 2024-05-30 21:31, Dragan Simic wrote:
>>> Hello Alexey,
>>>
>>
>> [snip]
>>
>>>>>>> That way we'll have no roadblocks if, at some point, we end up with
>>>>>>> having
>>>>>>> different OPPs defined for the RK3588 and the RK3588S variants. Or
>>>>>>> maybe
>>>>>>> even for the RK3582, which we don't know much about yet.
>>>>>>
>>>>>> Guess we'll deal with that one once we stumble upon an actual RK3582
>>>>>> board out in the wild and heading to the mainline kernel tree :)
>>>>>
>>>>> Of course, that was just an example for the future use.
>>>>
>>>> In fact, I've just discovered that Radxa has recently released Rock 5C
>>>> Lite which is based on RK3582, and starts at just $29 for the 1GB
>>>> version, making it interesting for tinkering. Especially given that
>>>> its GPU, one of the big-core clusters and one of the VPU cores seem to
>>>> be disabled in software (u-boot) rather than in hardware, which means
>>>> there is some chance that a particular SoC specimen would actually
>>>> have them in a working condition and possible to re-enable at no cost.
>>>> Ordered myself one to investigate :)
>>>
>>> Yes, I also saw the RK3582-based ROCK 5C Lite a couple of days ago. :)
>>> It seems that the disabled IP blocks are detected as defective during
>>> the manufacturing, which means that they might work correctly, or might
>>> actually misbehave. It seems similar to the way old three-core AMD
>>> Phenom II CPUs could sometimes be made quad-core.
>>>
>>
>> I can confirm that the RK3582 include ip-state in OTP indicating
>> unusable cores, any unusable cpu core cannot be taken online and stalls
>> Linux kernel a few extra seconds during boot.
>>
>> Started working on a patch for U-Boot to remove any broken cpu core
>> and/or cluster nodes, similar to what vendor U-Boot does, adopted to
>> work with a mainline DT for RK3588.
>
> Superb - it's great to have a patch for it already, thank you for working on it!
>
>> On one of my ROCK 5C Lite board one of the cpu cores is unusable, U-Boot
>> removes the related cpu cluster nodes. On another ROCK 5C Lite board one
>> rkvdec core is only marked unusable and all cpu cores can be taken
>> online, U-Boot does nothing in this case. Guessing we should apply
>> similar policy as vendor U-Boot and disable cores anyway.
>
> Is there any misbehavior / instability if you just keep all the
> unmarked cores online?
I will run some tests during the weekend and get back with results later.
>
> I think from an end-user perspective it would be better to just enable
> everything that works, as the reason to unconditionally disable some
> IP blocks even when they are "good" is quite likely not a technical
> one but rather a marketing one. It's hard to justify selling chips
> with different sets of working IP blocks under the same label and the
> same price, making it easier to just trim them all to a lowest common
> denominator. On the other hand, once a person has already bought a
> device where some IP blocks work even if they are not supposed to, why
> not make use of them? It costs nothing, hurts noone...
I agree, it is probably more related to marketing, licensing and/or
what is tested.
Vendor U-Boot apply following logic/policy for rk3582 (and rk3583).
RK3582 policy:
- always remove gpu
- always remove both rkvdec cores
- remove bad rkvenc core, if both are normal, remove rkvenc1 anyway
RK3583 policy:
- always keep gpu
- remove bad rkvdec core, if both are normal, remove rkvdec1 anyway
- remove bad rkvenc core, if both are normal, remove rkvenc1 anyway
CPU core policy:
- remove both cores within a cluster having a bad core
- if core4~7 are all normal, remove core6 and core7 anyway
Regards,
Jonas
>
> Best regards,
> Alexey
Powered by blists - more mailing lists