[PATCH v3 4/5] ARM: tegra: set CPU reset handler with firmware op
From: Stephen Warren <hidden>
Date: 2013-08-14 21:40:37
Also in:
linux-tegra, lkml
From: Stephen Warren <hidden>
Date: 2013-08-14 21:40:37
Also in:
linux-tegra, lkml
On 08/12/2013 08:29 PM, Alexandre Courbot wrote:
Use a firmware operation to set the CPU reset handler and only resort to doing it ourselves if there is none defined. This supports the booting of secondary CPUs on devices using a TrustZone secure monitor.
diff --git a/arch/arm/mach-tegra/reset.c b/arch/arm/mach-tegra/reset.c
+ err = call_firmware_op(set_cpu_boot_addr, 0, reset_address);
+ switch (err) {
+ case -ENOSYS:
+ tegra_cpu_reset_handler_set(reset_address);
+ /* pass-through */
+ case 0:
+ is_enabled = true;
+ break;
+ default:
+ pr_crit("Cannot set CPU reset handler: %d\n", err);
+ BUG();
+ }Instead of trying and failing, does it make sense to register tegra_cpu_reset_handler_set() as the set_cpu_boot_addr firmware op when there is no firmware present? That would simplify all call-sites of any firmware op.