advice needed on how best to fix kirkwood kexec

Nicolas Pitre nico at fluxnic.net
Tue Feb 1 23:11:50 EST 2011


On Tue, 1 Feb 2011, Eric Cooper wrote:

> I found the problem with kexec'ing kirkwood kernels:
> 
> During late initialization, the kirkwood_clock_gate function powers
> down unused units, including the PCIe.  But the early initialization
> (kirkwood_timer_init) relies on reading the device ID register, which
> is in the PCIe space, so it will hang when started by kexec.
> 
> My question is, should I patch the kexec code or the initialization code?
> 
> Patching the kexec code is much more useful, because it allows
> kexec'ing the existing kirkwood kernels that are already "out there",
> in distros, etc.  But it requires a kirkwood-specific operation in the
> otherwise generic machine_kexec().
> 
> Patching just the kirkwood initialization is better from an
> "information hiding" perspective, but won't provide any benefit until
> it makes its way into the kernels that people might want to kexec.

I think that both should be patched.  The first one will let you kexec 
old kernels, while the later will let you be kexec'd by old kernels as 
well as be less dependent on whatever the bootloader might have done 
with the clock.

And machine_kexec() should probably call a machine specific hook if set 
by machine specific code, similar to pm_power_off in 
machine_power_off().


Nicolas



More information about the linux-arm-kernel mailing list