2022-11-01 23:08:07

by Ahelenia Ziemiańska

[permalink] [raw]
Subject: [PATCH v2 07/15] MIPS: IP27: clean out sn/nmi.h

The only user is arch/mips/sgi-ip27/ip27-nmi.c; this file was imported
wholesale in 2.3.99pre9-1, and received only whitespace updates since
then.

NMI_MAGIC isn't a magic number; it's unclear if it's actually used by
the firmware in some capacity or if it's a holdover from copying the SGI
code, but in the former case it's API and in the latter it's dead cruft.

Lack of QEMU support makes this unvalidatable without the hardware,
so leave it in.

Signed-off-by: Ahelenia Ziemiańska <[email protected]>
---
Documentation/process/magic-number.rst | 1 -
.../it_IT/process/magic-number.rst | 1 -
.../zh_CN/process/magic-number.rst | 1 -
.../zh_TW/process/magic-number.rst | 1 -
arch/mips/include/asm/sn/nmi.h | 60 -------------------
5 files changed, 64 deletions(-)

diff --git a/Documentation/process/magic-number.rst b/Documentation/process/magic-number.rst
index 62a3a2113e7c..7dada7abc733 100644
--- a/Documentation/process/magic-number.rst
+++ b/Documentation/process/magic-number.rst
@@ -76,5 +76,4 @@ KV_MAGIC 0x5f4b565f kernel_vars_s ``arch/mips/incl
CCB_MAGIC 0xf2691ad2 ccb ``drivers/scsi/ncr53c8xx.c``
QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry ``drivers/scsi/arm/queue.c``
QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry ``drivers/scsi/arm/queue.c``
-NMI_MAGIC 0x48414d4d455201 nmi_s ``arch/mips/include/asm/sn/nmi.h``
===================== ================ ======================== ==========================================
diff --git a/Documentation/translations/it_IT/process/magic-number.rst b/Documentation/translations/it_IT/process/magic-number.rst
index b20a54ee6fb2..f9634a04d349 100644
--- a/Documentation/translations/it_IT/process/magic-number.rst
+++ b/Documentation/translations/it_IT/process/magic-number.rst
@@ -82,5 +82,4 @@ KV_MAGIC 0x5f4b565f kernel_vars_s ``arch/mips/incl
CCB_MAGIC 0xf2691ad2 ccb ``drivers/scsi/ncr53c8xx.c``
QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry ``drivers/scsi/arm/queue.c``
QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry ``drivers/scsi/arm/queue.c``
-NMI_MAGIC 0x48414d4d455201 nmi_s ``arch/mips/include/asm/sn/nmi.h``
===================== ================ ======================== ==========================================
diff --git a/Documentation/translations/zh_CN/process/magic-number.rst b/Documentation/translations/zh_CN/process/magic-number.rst
index e7781ab923f7..966b9e6b1a46 100644
--- a/Documentation/translations/zh_CN/process/magic-number.rst
+++ b/Documentation/translations/zh_CN/process/magic-number.rst
@@ -65,5 +65,4 @@ KV_MAGIC 0x5f4b565f kernel_vars_s ``arch/mips/incl
CCB_MAGIC 0xf2691ad2 ccb ``drivers/scsi/ncr53c8xx.c``
QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry ``drivers/scsi/arm/queue.c``
QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry ``drivers/scsi/arm/queue.c``
-NMI_MAGIC 0x48414d4d455201 nmi_s ``arch/mips/include/asm/sn/nmi.h``
===================== ================ ======================== ==========================================
diff --git a/Documentation/translations/zh_TW/process/magic-number.rst b/Documentation/translations/zh_TW/process/magic-number.rst
index 5cc0bfa97d9d..f3e87a6b3a01 100644
--- a/Documentation/translations/zh_TW/process/magic-number.rst
+++ b/Documentation/translations/zh_TW/process/magic-number.rst
@@ -68,5 +68,4 @@ KV_MAGIC 0x5f4b565f kernel_vars_s ``arch/mips/incl
CCB_MAGIC 0xf2691ad2 ccb ``drivers/scsi/ncr53c8xx.c``
QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry ``drivers/scsi/arm/queue.c``
QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry ``drivers/scsi/arm/queue.c``
-NMI_MAGIC 0x48414d4d455201 nmi_s ``arch/mips/include/asm/sn/nmi.h``
===================== ================ ======================== ==========================================
diff --git a/arch/mips/include/asm/sn/nmi.h b/arch/mips/include/asm/sn/nmi.h
index 12ac210f12a1..0bd9458fc804 100644
--- a/arch/mips/include/asm/sn/nmi.h
+++ b/arch/mips/include/asm/sn/nmi.h
@@ -10,8 +10,6 @@
#ifndef __ASM_SN_NMI_H
#define __ASM_SN_NMI_H

-#include <asm/sn/addrs.h>
-
/*
* The launch data structure resides at a fixed place in each node's memory
* and is used to communicate between the master processor and the slave
@@ -29,14 +27,6 @@
*/

#define NMI_MAGIC 0x48414d4d455201
-#define NMI_SIZEOF 0x40
-
-#define NMI_OFF_MAGIC 0x00 /* Struct offsets for assembly */
-#define NMI_OFF_FLAGS 0x08
-#define NMI_OFF_CALL 0x10
-#define NMI_OFF_CALLC 0x18
-#define NMI_OFF_CALLPARM 0x20
-#define NMI_OFF_GMASTER 0x28

/*
* The NMI routine is called only if the complement address is
@@ -48,8 +38,6 @@
*
*/

-#ifndef __ASSEMBLY__
-
typedef struct nmi_s {
volatile unsigned long magic; /* Magic number */
volatile unsigned long flags; /* Combination of flags above */
@@ -59,14 +47,10 @@ typedef struct nmi_s {
volatile unsigned long gmaster; /* Flag true only on global master*/
} nmi_t;

-#endif /* !__ASSEMBLY__ */
-
/* Following definitions are needed both in the prom & the kernel
* to identify the format of the nmi cpu register save area in the
* low memory on each node.
*/
-#ifndef __ASSEMBLY__
-
struct reg_struct {
unsigned long gpr[32];
unsigned long sr;
@@ -78,48 +62,4 @@ struct reg_struct {
unsigned long nmi_sr;
};

-#endif /* !__ASSEMBLY__ */
-
-/* These are the assembly language offsets into the reg_struct structure */
-
-#define R0_OFF 0x0
-#define R1_OFF 0x8
-#define R2_OFF 0x10
-#define R3_OFF 0x18
-#define R4_OFF 0x20
-#define R5_OFF 0x28
-#define R6_OFF 0x30
-#define R7_OFF 0x38
-#define R8_OFF 0x40
-#define R9_OFF 0x48
-#define R10_OFF 0x50
-#define R11_OFF 0x58
-#define R12_OFF 0x60
-#define R13_OFF 0x68
-#define R14_OFF 0x70
-#define R15_OFF 0x78
-#define R16_OFF 0x80
-#define R17_OFF 0x88
-#define R18_OFF 0x90
-#define R19_OFF 0x98
-#define R20_OFF 0xa0
-#define R21_OFF 0xa8
-#define R22_OFF 0xb0
-#define R23_OFF 0xb8
-#define R24_OFF 0xc0
-#define R25_OFF 0xc8
-#define R26_OFF 0xd0
-#define R27_OFF 0xd8
-#define R28_OFF 0xe0
-#define R29_OFF 0xe8
-#define R30_OFF 0xf0
-#define R31_OFF 0xf8
-#define SR_OFF 0x100
-#define CAUSE_OFF 0x108
-#define EPC_OFF 0x110
-#define BADVA_OFF 0x118
-#define ERROR_EPC_OFF 0x120
-#define CACHE_ERR_OFF 0x128
-#define NMISR_OFF 0x130
-
#endif /* __ASM_SN_NMI_H */
--
2.30.2


Attachments:
(No filename) (6.88 kB)
signature.asc (849.00 B)
Download all attachments

2022-11-04 15:51:55

by Thomas Bogendoerfer

[permalink] [raw]
Subject: Re: [PATCH v2 07/15] MIPS: IP27: clean out sn/nmi.h

On Wed, Nov 02, 2022 at 12:05:30AM +0100, Ahelenia Ziemiańska wrote:
> The only user is arch/mips/sgi-ip27/ip27-nmi.c; this file was imported
> wholesale in 2.3.99pre9-1, and received only whitespace updates since
> then.
>
> NMI_MAGIC isn't a magic number; it's unclear if it's actually used by
> the firmware in some capacity or if it's a holdover from copying the SGI
> code, but in the former case it's API and in the latter it's dead cruft.

it's used by firmware and Linux code to register the NMI exception
handler. Please leave arch/mips/include/asm/sn/nmi.h untouched as
it's documents firmware NMI handler usage (even when we don't use it, yet).

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]

2022-11-08 16:42:37

by Ahelenia Ziemiańska

[permalink] [raw]
Subject: Re: [PATCH v2 07/15] MIPS: IP27: clean out sn/nmi.h

On Fri, Nov 04, 2022 at 03:50:02PM +0100, Thomas Bogendoerfer wrote:
> On Wed, Nov 02, 2022 at 12:05:30AM +0100, Ahelenia Ziemiańska wrote:
> > The only user is arch/mips/sgi-ip27/ip27-nmi.c; this file was imported
> > wholesale in 2.3.99pre9-1, and received only whitespace updates since
> > then.
> >
> > NMI_MAGIC isn't a magic number; it's unclear if it's actually used by
> > the firmware in some capacity or if it's a holdover from copying the SGI
> > code, but in the former case it's API and in the latter it's dead cruft.
>
> it's used by firmware and Linux code to register the NMI exception
> handler.
Great, I'll put that in the message.

> Please leave arch/mips/include/asm/sn/nmi.h untouched as
> it's documents firmware NMI handler usage (even when we don't use it, yet).
"Yet".
This file appeared in 2.3.99pre9-1, and hasn't changed since.
I removed hard-coded assembly struct offsets, which we'll never use,
because we /haven't/ used them, and this part is implemented in C.
This file's my age, and these parts have been dead for just as long.

Yet.


Attachments:
(No filename) (1.07 kB)
signature.asc (849.00 B)
Download all attachments

2022-11-08 17:20:11

by Thomas Bogendoerfer

[permalink] [raw]
Subject: Re: [PATCH v2 07/15] MIPS: IP27: clean out sn/nmi.h

On Tue, Nov 08, 2022 at 04:38:20PM +0100, наб wrote:
> On Fri, Nov 04, 2022 at 03:50:02PM +0100, Thomas Bogendoerfer wrote:
> > On Wed, Nov 02, 2022 at 12:05:30AM +0100, Ahelenia Ziemiańska wrote:
> > > The only user is arch/mips/sgi-ip27/ip27-nmi.c; this file was imported
> > > wholesale in 2.3.99pre9-1, and received only whitespace updates since
> > > then.
> > >
> > > NMI_MAGIC isn't a magic number; it's unclear if it's actually used by
> > > the firmware in some capacity or if it's a holdover from copying the SGI
> > > code, but in the former case it's API and in the latter it's dead cruft.
> >
> > it's used by firmware and Linux code to register the NMI exception
> > handler.
> Great, I'll put that in the message.
>
> > Please leave arch/mips/include/asm/sn/nmi.h untouched as
> > it's documents firmware NMI handler usage (even when we don't use it, yet).
> "Yet".
> This file appeared in 2.3.99pre9-1, and hasn't changed since.
> I removed hard-coded assembly struct offsets, which we'll never use,
> because we /haven't/ used them, and this part is implemented in C.
> This file's my age, and these parts have been dead for just as long.
>
> Yet.

it might be never used, but what's the problem with them ? Those
files came from IRIX and "document" the firmware interface. And me
as the MIPS maintainer wants to keep it there.

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]