[PATCH v3] ARM: imx: replicate the diagnostic register of boot cpu into secondary cores
Dirk Behme
dirk.behme at gmail.com
Wed May 1 11:32:14 EDT 2013
Am 26.04.2013 15:47, schrieb Shawn Guo:
> On Fri, Apr 26, 2013 at 02:21:30PM +0100, Will Deacon wrote:
>>> diff --git a/arch/arm/mach-imx/headsmp.S b/arch/arm/mach-imx/headsmp.S
>>> index a58c8b0..cd87970 100644
>>> --- a/arch/arm/mach-imx/headsmp.S
>>> +++ b/arch/arm/mach-imx/headsmp.S
>>> @@ -18,8 +18,20 @@
>>> .section ".text.head", "ax"
>>>
>>> #ifdef CONFIG_SMP
>>> +diag_reg_offset:
>>> + .word g_diag_reg - .
>>> +
>>> + .macro set_diag_reg
>>> + adr r0, diag_reg_offset
>>> + ldr r1, [r0]
>>> + add r1, r1, r0 @ r1 = physical &g_diag_reg
>>> + ldr r0, [r1]
>>> + mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register
>>> + .endm
>>
>> Why not re-read the register directly, rather than mrc on the current core?
>
> I do not understand the comment. What do you mean by "re-read"? Read
> the register on secondary cores will only return us 0, as bootloader
> only sets up the register on cpu0. The macro set_diag_reg only runs on
> secondary cores to copy cpu0's diagnostic bits. I think it's safe on
> SMP.
Any news on this?
Thanks
Dirk
More information about the linux-arm-kernel
mailing list