qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 8/8] q800: add NMI handler


From: Mark Cave-Ayland
Subject: Re: [PATCH 8/8] q800: add NMI handler
Date: Wed, 20 Oct 2021 14:32:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

On 17/10/2021 17:56, Laurent Vivier wrote:

Le 17/10/2021 à 12:00, Mark Cave-Ayland a écrit :
...
I've just tried this on Linux, and it seems to work okay although I get several 
copies of the
register dump on the console for a single invocation of "info nmi" e.g.

[    4.610000] Non-Maskable Interrupt
[    4.610000] Modules linked in: mac_esp(+) esp_scsi macsonic
[    4.610000] PC: [<00002dc0>] arch_cpu_idle+0x4/0x6
[    4.610000] SR: 2000  SP: (ptrval)  a2: 00395314
[    4.610000] d0: 00000000    d1: 00000002    d2: 0004b492    d3: 00392000
[    4.610000] d4: 00000000    d5: 00000000    a0: 00392000    a1: 00395314
[    4.610000] Process swapper (pid: 0, task=(ptrval))
[    4.610000] Frame format=0
[    4.610000] Stack from 00393f9c:
[    4.610000]         0004b540 00000431 0040ee22 0004b4c4 0002bf6a 004005f0 
00393ff8 0004b714
[    4.610000]         0003e23a 0029c518 000000c2 0040eb54 3dc1e5d0 00000000 
0004ff74 0003efe2
[    4.610000]         003f4e92 00000000 00000040 00000000 00000000 00000000 
0040ee22 00000000
[    4.610000]         003f3872
[    4.610000] Call Trace: [<0004b540>] do_idle+0x7c/0xd2
[    4.610000]  [<0004b4c4>] do_idle+0x0/0xd2
[    4.610000]  [<0002bf6a>] kernel_thread+0x0/0x26
[    4.610000]  [<004005f0>] __alloc_bootmem+0x0/0x38
[    4.610000]  [<0004b714>] cpu_startup_entry+0xe/0x12
[    4.610000]  [<0003e23a>] find_task_by_pid_ns+0x0/0x22
[    4.610000]  [<0029c518>] rest_init+0x78/0x82
[    4.610000]  [<0004ff74>] printk+0x0/0x18
[    4.610000]  [<0003efe2>] parse_args+0x0/0x2c2
[    4.610000]  [<003f4e92>] start_kernel+0x43e/0x448
[    4.610000]  [<003f3872>] _sinittext+0x872/0x11f8
[    4.610000] Code: bc00 0060 f210 f0ff 7001 60cc 4e72 2000 <4e75> 2079 003b 
fc6c 4a88 6702 4e90
60fe 2079 003b fc68 4a88 6702 4e90 60fe 2f0c

(repeated 7 or 8 times)

MacsBug seems to handle this better: as soon as the NMI is triggered, MacsBug 
opens and displays
"NMI" both if the programmer switch GPIO is held active, or pulsed as 
implemented in the patch. When
using the above patch, subsequent NMI triggers do not display "NMI" or change 
MacsBug in any visible
way which suggests that once the NMI is triggered, the NMI is ignored until the 
programmers switch
GPIO is inactive once again.

Do you see the repeated register output in Linux for a single press of the 
programmers switch on a
real Quadra 800? It may be that Linux could be improved by having similar logic.

In fact, register output is repeated while I keep the button pressed (5.14 
kernel provided by Finn)

If I press and release one (or several) time(s) before the end of the first 
output I have only one
output.

Thanks, that makes sense - my guess is that the repeated output in QEMU is just a symptom of the QEMU machine being much faster than the real one.


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]