[PATCH 0/3] Add syscon-reboot and syscon-poweroff support for gs101/Pixel 6

Krzysztof Kozlowski krzk at kernel.org
Mon Jul 1 01:14:43 PDT 2024


On 27/06/2024 14:10, Peter Griffin wrote:
> Hi Krzysztof,
> 
> On Thu, 27 Jun 2024 at 11:47, Krzysztof Kozlowski <krzk at kernel.org> wrote:
>>
>> On 26/06/2024 21:42, Peter Griffin wrote:
>>> Hi Krzysztof,
>>>
>>> This series adds support for syscon-reboot and syscon-poweroff to gs101/Oriole.
>>> It has been tested with reboot and poweroff commands respectively.
>>>
>>> Note the syscon-reboot/poweroff has *runtime* dependencies on the exynos-pmu
>>
>> How does the runtime dependency manifests? Something get broken if there
>> are no dependencies? Or maybe reboot does not work, but probably it did
>> not work before, either?
> 
> Without [1] but with this series applied you will get an Serror
> interrupt and hang on poweroff, and reboot commands, as it will use a
> mmio syscon to write the protected register.
> 
> [   74.680240][    T1] reboot: Restarting system
> [   74.680322][    C0] SError Interrupt on CPU0, code
> 0x00000000be000011 -- SError
> [   74.680329][    C0] CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted
> 6.10.0-rc3-next-20240613-00009-g6ca503bd3c2b #476
> [   74.680336][    C0] Hardware name: Oriole (DT)
> [   74.680338][    C0] pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT
> -SSBS BTYPE=--)
> [   74.680345][    C0] pc : _raw_spin_unlock_irqrestore+0x10/0x44
> [   74.680363][    C0] lr : regmap_unlock_spinlock+0x14/0x20
> [   74.680373][    C0] sp : ffff80008009bb40
> [   74.680375][    C0] x29: ffff80008009bb40 x28: ffff00da4587e158
> x27: ffffa38d3bc74708
> [   74.680386][    C0] x26: ffffa38d3d9c9ca8 x25: 0000000000000000
> x24: 0000000000000000
> [   74.680394][    C0] x23: 0000000000000000 x22: 0000000000000002
> x21: 0000000000000002
> [   74.680400][    C0] x20: 0000000000003a00 x19: 0000000000000000
> x18: ffffffffffffffff
> [   74.680407][    C0] x17: 0000000000000000 x16: ffffa38d3c6cf438
> x15: ffff80008009b6a0
> [   74.680414][    C0] x14: 0000000000000000 x13: ffff00dbb6980000
> x12: 00000000000007d4
> [   74.680421][    C0] x11: 000000000000029c x10: ffff00dbb6c40000 x9
> : ffff00dbb6980000
> [   74.680427][    C0] x8 : ffff80008009bc28 x7 : 0000000000000000 x6
> : 0000000000000000
> [   74.680434][    C0] x5 : ffffa38d3b83e074 x4 : 0000000000003a00 x3
> : 0000000000000000
> [   74.680440][    C0] x2 : ffffa38d3b831764 x1 : ffff00da40230000 x0
> : 0000000100000001
> [   74.680447][    C0] Kernel panic - not syncing: Asynchronous SError Interrupt
> 
> and
> 
> [   49.448590][    T1] reboot: Power down
> [   49.448747][    C0] SError Interrupt on CPU0, code
> 0x00000000be000011 -- SError
> [..]
> 
> Without the clk-gs101 critical clock change, poweroff command will
> hang, when shutting down UFS.
> 
> Without the exynos-pmu support for !atomic registers, the reboot
> command won't work when the DT is present as the register write to
> SYSTEM_CONFIGURATION register will fail.
> 
> [  114.525217][    T1] reboot: Restarting system
> [  114.525290][    T1] tensor_sec_reg_write(): SMC failed: -22
> [  115.525434][    T1] Unable to restart system
> [  116.025576][    T1] Reboot failed -- System halted
> 
> For poweroff, you are correct this has not been supported on Pixel 6
> so far upstream.
> 
> However `echo b > /proc/sysrq-trigger ` has worked in previous kernel
> releases (it would reset the system using Watchdog). With the
> syscon-reboot DT present, but without [1] this will cause a Serror and
> no longer restart the system which would be a regression.

Thanks, DTS will wait for the next cycle then.

Best regards,
Krzysztof




More information about the linux-arm-kernel mailing list