Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Kernel debugger on RockPro64



On Tue, 30 Jul 2019 04:22:55 +0000 (UTC)
John Klos <john%ziaspace.com@localhost> wrote:

> It seems that even when not using awge0, a RockPro64 will lock hard after 
> a bit of compiling (-current from today, USB root, axe0 USB-ethernet). 
> However, it doesn't seem to be possible to get in to the kernel debugger 
> via the serial console via a traditional break, so I set hw.cnmagic to ~~ 
> and verified it works when the system isn't locked.
> 
> However, after lockup, there's no getting in to the kernel debugger. How 
> does one go about diagnosing this?

The problem is apparently that the A72 cluster at this point is hard
locked and doesn't respond at all to interprocessor interrupts. One
possible way to debug it is with a jtag debugger but I haven't checked
if it is possible to hook that up.

Disabling cpus via cpuctl is not sufficient (they probably still take
IPIs every now and then?). You need to prevent the cluster from being
hatched, with a patch like below. With that applied I have built
packages on Rockpro64 for 10 days now without a hang.
Of course it will be quite a bit slower than it could be ...

-Tobias

--- gpl2/dts/dist/arch/arm64/boot/dts/rockchip/rk3399.dtsi      25 May 2019 11:29:15 -0000      1.1.1.8
+++ gpl2/dts/dist/arch/arm64/boot/dts/rockchip/rk3399.dtsi      30 Jul 2019 07:18:22 -0000
@@ -119,6 +119,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                        dynamic-power-coefficient = <436>;
                        cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       status = "dont_hatch_me_bro";
                };

                cpu_b1: cpu@101 {
@@ -130,6 +131,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                        dynamic-power-coefficient = <436>;
                        cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       status = "dont_hatch_me_bro";
                };

                idle-states {


Home | Main Index | Thread Index | Old Index