Re: [PATCH V2 2/7] MIPS: Loongson: Add NMI handler support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 8, 2017 at 2:47 PM, Huacai Chen <chenhc@xxxxxxxxxx> wrote:
> Maybe your Loongson-3A1000 has some hw problems.:)

Maybe so. I just run it with Debian's official kernel (4.9) without this patch,
It also hang with this problem.

While 4.7 seems working better.

>
> Huacai
>
> On Tue, Mar 7, 2017 at 9:38 PM, YunQiang Su <wzssyqa@xxxxxxxxx> wrote:
>> With this patch, I met a problem on Loongson 3A 1000:
>>
>> kernel: [1692。089996] NMI watchdog: BUG: soft lockup - CPU#0 stuck for
>> 22s! [apt-get: 9687]
>>
>> I will try to recomplie the kernel without this patch.
>>
>> It seems that it works well on Loongson 3A 3000.
>>
>> On Mon, Nov 14, 2016 at 11:12 AM, Huacai Chen <chenhc@xxxxxxxxxx> wrote:
>>> Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx>
>>> ---
>>>  arch/mips/loongson64/common/init.c | 13 +++++++++++++
>>>  1 file changed, 13 insertions(+)
>>>
>>> diff --git a/arch/mips/loongson64/common/init.c b/arch/mips/loongson64/common/init.c
>>> index 9b987fe..6ef1712 100644
>>> --- a/arch/mips/loongson64/common/init.c
>>> +++ b/arch/mips/loongson64/common/init.c
>>> @@ -10,13 +10,25 @@
>>>
>>>  #include <linux/bootmem.h>
>>>  #include <asm/bootinfo.h>
>>> +#include <asm/traps.h>
>>>  #include <asm/smp-ops.h>
>>> +#include <asm/cacheflush.h>
>>>
>>>  #include <loongson.h>
>>>
>>>  /* Loongson CPU address windows config space base address */
>>>  unsigned long __maybe_unused _loongson_addrwincfg_base;
>>>
>>> +static void __init mips_nmi_setup(void)
>>> +{
>>> +       void *base;
>>> +       extern char except_vec_nmi;
>>> +
>>> +       base = (void *)(CAC_BASE + 0x380);
>>> +       memcpy(base, &except_vec_nmi, 0x80);
>>> +       flush_icache_range((unsigned long)base, (unsigned long)base + 0x80);
>>> +}
>>> +
>>>  void __init prom_init(void)
>>>  {
>>>  #ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
>>> @@ -40,6 +52,7 @@ void __init prom_init(void)
>>>         /*init the uart base address */
>>>         prom_init_uart_base();
>>>         register_smp_ops(&loongson3_smp_ops);
>>> +       board_nmi_handler_setup = mips_nmi_setup;
>>>  }
>>>
>>>  void __init prom_free_prom_memory(void)
>>> --
>>> 2.7.0
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> YunQiang Su
>>



-- 
YunQiang Su




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux