[PATCH v2 3/3] ARM: tegra: set CPU reset handler with firmware op
Alexandre Courbot
gnurou at gmail.com
Fri Jun 14 18:54:59 EST 2013
On Fri, Jun 14, 2013 at 4:23 AM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> On 06/13/2013 03:12 AM, 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 */
>
> Rather than detecting -ENOSYS and falling back to the custom
> tegra_cpu_reset_handler_set(), does it make sense to plug in
> tegra_cpu_reset_handler_set as the firmware op when there is no secure
> firmware detected? That way, this code wouldn't need the special case;
> that would be isolated to firmware.c.
Mmmm I admit I just followed what Exynos did without thinking much
about it. I don't see any reason why your suggestion wouldn't work,
but on second thought tegra_cpu_reset_handler_set() is not a firmware
operation - wouldn't it be unexpected (and maybe confusing) to have it
called through call_firmware_op()?
Alex.
More information about the devicetree-discuss
mailing list