Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/mips/cavium General code cleanup:



details:   https://anonhg.NetBSD.org/src/rev/58b3d9de8fa2
branches:  trunk
changeset: 973057:58b3d9de8fa2
user:      simonb <simonb%NetBSD.org@localhost>
date:      Thu Jun 18 13:52:08 2020 +0000

description:
General code cleanup:
 - use generic macros for building IO and IOBDMA addresses instead
   of many different variations of the same theme.
 - use #define's for CVMSEG addresses instead of magic numbers.
 - use __BIT/__BITS/__SHIFTIN/__SHIFTOUT in most places, instead of
   foo_SHIFT defines or (worse) shifting by magic numbers.

No functional changes.

diffstat:

 sys/arch/mips/cavium/dev/if_cnmac.c       |   13 +-
 sys/arch/mips/cavium/dev/octeon_asxvar.h  |    4 +-
 sys/arch/mips/cavium/dev/octeon_cop2reg.h |    8 +-
 sys/arch/mips/cavium/dev/octeon_cop2var.h |    8 +-
 sys/arch/mips/cavium/dev/octeon_fau.c     |   41 ++---
 sys/arch/mips/cavium/dev/octeon_faureg.h  |   27 +++-
 sys/arch/mips/cavium/dev/octeon_fauvar.h  |   34 ++---
 sys/arch/mips/cavium/dev/octeon_fpa.c     |    6 +-
 sys/arch/mips/cavium/dev/octeon_fpareg.h  |   33 +----
 sys/arch/mips/cavium/dev/octeon_fpavar.h  |   30 ++--
 sys/arch/mips/cavium/dev/octeon_gmx.c     |   55 ++++----
 sys/arch/mips/cavium/dev/octeon_gmxreg.h  |   33 ++---
 sys/arch/mips/cavium/dev/octeon_gmxvar.h  |   18 +-
 sys/arch/mips/cavium/dev/octeon_ipd.c     |   10 +-
 sys/arch/mips/cavium/dev/octeon_ipdreg.h  |   11 +-
 sys/arch/mips/cavium/dev/octeon_ipdvar.h  |    4 +-
 sys/arch/mips/cavium/dev/octeon_l2creg.h  |    8 +-
 sys/arch/mips/cavium/dev/octeon_mpireg.h  |    5 +-
 sys/arch/mips/cavium/dev/octeon_pip.c     |   16 +-
 sys/arch/mips/cavium/dev/octeon_pipreg.h  |   57 ++++-----
 sys/arch/mips/cavium/dev/octeon_pipvar.h  |    5 +-
 sys/arch/mips/cavium/dev/octeon_pko.c     |    7 +-
 sys/arch/mips/cavium/dev/octeon_pkoreg.h  |   18 +-
 sys/arch/mips/cavium/dev/octeon_pkovar.h  |   62 ++++-----
 sys/arch/mips/cavium/dev/octeon_pow.c     |   32 +---
 sys/arch/mips/cavium/dev/octeon_powreg.h  |  182 ++++++++---------------------
 sys/arch/mips/cavium/dev/octeon_powvar.h  |  117 ++++++++----------
 sys/arch/mips/cavium/dev/octeon_rnm.c     |   20 +-
 sys/arch/mips/cavium/dev/octeon_rnmreg.h  |   32 +----
 sys/arch/mips/cavium/dev/octeon_smi.c     |   18 +-
 sys/arch/mips/cavium/dev/octeon_smireg.h  |    6 +-
 sys/arch/mips/cavium/dev/octeon_smivar.h  |    4 +-
 sys/arch/mips/cavium/dev/octeon_twsi.c    |   46 ++++---
 sys/arch/mips/cavium/dev/octeon_twsireg.h |   32 ++--
 sys/arch/mips/cavium/dev/octeon_uart.c    |    7 +-
 sys/arch/mips/cavium/octeonreg.h          |   67 ++++++++++-
 sys/arch/mips/cavium/octeonvar.h          |   11 +-
 37 files changed, 494 insertions(+), 593 deletions(-)

diffs (truncated from 2448 to 300 lines):

diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/if_cnmac.c
--- a/sys/arch/mips/cavium/dev/if_cnmac.c       Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/if_cnmac.c       Thu Jun 18 13:52:08 2020 +0000
@@ -1,8 +1,8 @@
-/*     $NetBSD: if_cnmac.c,v 1.21 2020/06/10 07:34:19 simonb Exp $     */
+/*     $NetBSD: if_cnmac.c,v 1.22 2020/06/18 13:52:08 simonb Exp $     */
 
 #include <sys/cdefs.h>
 #if 0
-__KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.21 2020/06/10 07:34:19 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.22 2020/06/18 13:52:08 simonb Exp $");
 #endif
 
 #include "opt_octeon.h"
@@ -63,18 +63,15 @@
 
 #include <mips/cpuregs.h>
 
-#include <mips/cavium/dev/octeon_asxreg.h>
+#include <mips/cavium/octeonreg.h>
+#include <mips/cavium/include/iobusvar.h>
+
 #include <mips/cavium/dev/octeon_ciureg.h>
-#include <mips/cavium/dev/octeon_npireg.h>
 #include <mips/cavium/dev/octeon_gmxreg.h>
-#include <mips/cavium/dev/octeon_ipdreg.h>
 #include <mips/cavium/dev/octeon_pipreg.h>
 #include <mips/cavium/dev/octeon_powreg.h>
 #include <mips/cavium/dev/octeon_faureg.h>
 #include <mips/cavium/dev/octeon_fpareg.h>
-#include <mips/cavium/dev/octeon_bootbusreg.h>
-#include <mips/cavium/include/iobusvar.h>
-#include <mips/cavium/octeonvar.h>
 #include <mips/cavium/dev/octeon_fpavar.h>
 #include <mips/cavium/dev/octeon_gmxvar.h>
 #include <mips/cavium/dev/octeon_fauvar.h>
diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/octeon_asxvar.h
--- a/sys/arch/mips/cavium/dev/octeon_asxvar.h  Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/octeon_asxvar.h  Thu Jun 18 13:52:08 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: octeon_asxvar.h,v 1.2 2020/05/31 06:27:06 simonb Exp $ */
+/*     $NetBSD: octeon_asxvar.h,v 1.3 2020/06/18 13:52:08 simonb Exp $ */
 
 /*
  * Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -53,4 +53,4 @@
 int                    octasx_clk_set(struct octasx_softc *, int, int);
 uint64_t               octasx_int_summary(struct octasx_softc *sc);
 
-#endif
+#endif /* _OCTEON_ASXVAR_H_ */
diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/octeon_cop2reg.h
--- a/sys/arch/mips/cavium/dev/octeon_cop2reg.h Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/octeon_cop2reg.h Thu Jun 18 13:52:08 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: octeon_cop2reg.h,v 1.1 2015/04/29 08:32:01 hikaru Exp $        */
+/*     $NetBSD: octeon_cop2reg.h,v 1.2 2020/06/18 13:52:08 simonb Exp $        */
 
 /*
  * Copyright (c) 2008 Internet Initiative Japan, Inc.
@@ -33,8 +33,8 @@
  * DMFC2 / DMTC2 instructions
  */
 
-#ifndef _CN30XXCOP2REG_H_
-#define _CN30XXCOP2REG_H_
+#ifndef _OCTEON_COP2REG_H_
+#define _OCTEON_COP2REG_H_
 
 /* 3DES */
 
@@ -125,4 +125,4 @@
 #define        CVM_MT_KAS_KEY                  0x0080  /* Load Key into KASUMI Unit */
 #define        CVM_MT_KAS_RESULT               0x0098  /* Load Result into KASUMI Unit */
 
-#endif /* _CN30XXCOP2REG_H_ */
+#endif /* _OCTEON_COP2REG_H_ */
diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/octeon_cop2var.h
--- a/sys/arch/mips/cavium/dev/octeon_cop2var.h Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/octeon_cop2var.h Thu Jun 18 13:52:08 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: octeon_cop2var.h,v 1.1 2015/04/29 08:32:01 hikaru Exp $        */
+/*     $NetBSD: octeon_cop2var.h,v 1.2 2020/06/18 13:52:08 simonb Exp $        */
 
 /*
  * TODO:
@@ -12,8 +12,8 @@
  *   direction argument (int dir, 0 => encrypt, 1 => decrypt) then branch.
  */
 
-#ifndef _CN30XXCOP2VAR_H_
-#define _CN30XXCOP2VAR_H_
+#ifndef _OCTEON_COP2VAR_H_
+#define _OCTEON_COP2VAR_H_
 
 #ifdef __OCTEON_USEUN__
 #define CNASM_ULD(r, o, b)             "uld    %["#r"], "#o"(%["#b"])  \n\t"
@@ -1035,4 +1035,4 @@
 
 /* XXX */
 
-#endif /* _CN30XXCOP2VAR_H_ */
+#endif /* _OCTEON_COP2VAR_H_ */
diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/octeon_fau.c
--- a/sys/arch/mips/cavium/dev/octeon_fau.c     Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/octeon_fau.c     Thu Jun 18 13:52:08 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: octeon_fau.c,v 1.2 2020/05/31 06:27:06 simonb Exp $    */
+/*     $NetBSD: octeon_fau.c,v 1.3 2020/06/18 13:52:08 simonb Exp $    */
 
 /*
  * Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_fau.c,v 1.2 2020/05/31 06:27:06 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_fau.c,v 1.3 2020/06/18 13:52:08 simonb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -49,26 +49,18 @@
 static inline int64_t
 octfau_op_load(uint64_t args)
 {
-       paddr_t addr;
+       paddr_t addr = OCTEON_ADDR_IO_DID(FAU_MAJOR_DID, FAU_SUB_DID) |
+           __SHIFTIN(args, OCTEON_ADDR_OFFSET);
 
-       addr =
-           ((uint64_t)1 << 48) |
-           ((uint64_t)(CN30XXFAU_MAJORDID & 0x1f) << 43) |
-           ((uint64_t)(CN30XXFAU_SUBDID & 0x7) << 40) |
-           ((uint64_t)(args & 0xfffffffffULL) << 0);
        return octeon_read_csr(addr);
 }
 
 static inline void
 octfau_op_store(uint64_t args, int64_t value)
 {
-       paddr_t addr;
+       paddr_t addr = OCTEON_ADDR_IO_DID(FAU_MAJOR_DID, FAU_SUB_DID) |
+           __SHIFTIN(args, OCTEON_ADDR_OFFSET);
 
-       addr =
-           ((uint64_t)1 << 48) |
-           ((uint64_t)(CN30XXFAU_MAJORDID & 0x1f) << 43) |
-           ((uint64_t)(CN30XXFAU_SUBDID & 0x7) << 40) |
-           ((uint64_t)(args & 0xfffffffffULL) << 0);
        octeon_write_csr(addr, value);
 }
 
@@ -85,12 +77,11 @@
 static inline int64_t
 octfau_op_load_paddr(int incval, int tagwait, int reg)
 {
-       uint64_t args;
+       uint64_t args =
+           __SHIFTIN(incval, POW_LOAD_INCVAL) |
+           __SHIFTIN(tagwait, POW_LOAD_TAGWAIT) |
+           __SHIFTIN(reg, POW_LOAD_REG);
 
-       args =
-           ((uint64_t)(incval & 0x3fffff) << 14) |
-           ((uint64_t)(tagwait & 0x1) << 13) |  
-           ((uint64_t)(reg & 0x7ff) << 0);
        return octfau_op_load(args);
 }
 
@@ -101,11 +92,8 @@
 static inline void
 octfau_op_store_paddr(int noadd, int reg, int64_t value)
 {
-       uint64_t args;
+       uint64_t args = POW_STORE_NOADD | __SHIFTIN(reg, POW_STORE_REG);
 
-       args =
-           ((uint64_t)(noadd & 0x1) << 13) | 
-           ((uint64_t)(reg & 0x7ff) << 0);
        octfau_op_store(args, value);
 }
 
@@ -114,6 +102,7 @@
 void
 octfau_op_init(struct octfau_desc *fd, size_t scroff, size_t regno)
 {
+
        fd->fd_scroff = scroff;
        fd->fd_regno = regno;
 }
@@ -121,6 +110,7 @@
 uint64_t
 octfau_op_save(struct octfau_desc *fd)
 {
+
        OCTEON_SYNCIOBDMA/* XXX */;
        return octeon_cvmseg_read_8(fd->fd_scroff);
 }
@@ -128,12 +118,14 @@
 void
 octfau_op_restore(struct octfau_desc *fd, uint64_t backup)
 {
+
        octeon_cvmseg_write_8(fd->fd_scroff, backup);
 }
 
 int64_t
 octfau_op_inc_8(struct octfau_desc *fd, int64_t v)
 {
+
        octfau_op_iobdma_store_data(fd->fd_scroff, v, 0, OCT_FAU_OP_SIZE_64/* XXX */,
            fd->fd_regno);
        OCTEON_SYNCIOBDMA/* XXX */;
@@ -143,6 +135,7 @@
 int64_t
 octfau_op_incwait_8(struct octfau_desc *fd, int v)
 {
+
        octfau_op_iobdma_store_data(fd->fd_scroff, v, 1, OCT_FAU_OP_SIZE_64/* XXX */,
            fd->fd_regno);
        /* XXX */
@@ -154,11 +147,13 @@
 void
 octfau_op_add_8(struct octfau_desc *fd, int64_t v)
 {
+
        octfau_op_store_paddr(0, fd->fd_regno, v);
 }
 
 void
 octfau_op_set_8(struct octfau_desc *fd, int64_t v)
 {
+
        octfau_op_store_paddr(1, fd->fd_regno, v);
 }
diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/octeon_faureg.h
--- a/sys/arch/mips/cavium/dev/octeon_faureg.h  Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/octeon_faureg.h  Thu Jun 18 13:52:08 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: octeon_faureg.h,v 1.1 2015/04/29 08:32:01 hikaru Exp $ */
+/*     $NetBSD: octeon_faureg.h,v 1.2 2020/06/18 13:52:08 simonb Exp $ */
 
 /*
  * Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -33,9 +33,30 @@
 #ifndef _OCTEON_FAUREG_H_
 #define _OCTEON_FAUREG_H_
 
+
+#define        FAU_MAJOR_DID                   0x1e
+#define        FAU_SUB_DID                     0
+
 /* ---- operations */
 
-#define        CN30XXFAU_MAJORDID      0x1e
-#define        CN30XXFAU_SUBDID        0
+/* -- load operations */
+#define        POW_LOAD_INCVAL                 __BITS(35,14)
+#define        POW_LOAD_TAGWAIT                __BIT(13)
+/*      reserved                       __BiTS(12,11) */
+#define        POW_LOAD_REG                    __BITS(10,0)
+
+/* -- iobdma store operations */
+
+#define        POW_IOBDMA_LEN                  1       /* always 1 for POW */
+#define        POW_IOBDMA_INCVAL               POW_LOAD_INCVAL
+#define        POW_IOBDMA_TAGWAIT              POW_LOAD_TAGWAIT
+#define        POW_IOBDMA_SIZE                 __BITS(12,11)
+#define        POW_IOBDMA_REG                  POW_LOAD_REG
+
+/* -- store operations */
+/*      reserved                       __BiTS(35,14) */
+#define        POW_STORE_NOADD                 __BIT(13)
+/*      reserved                       __BiTS(12,11) */
+#define        POW_STORE_REG                   __BITS(10,0)
 
 #endif /* _OCTEON_FAUREG_H_ */
diff -r f0d73039d1f9 -r 58b3d9de8fa2 sys/arch/mips/cavium/dev/octeon_fauvar.h
--- a/sys/arch/mips/cavium/dev/octeon_fauvar.h  Thu Jun 18 11:50:44 2020 +0000
+++ b/sys/arch/mips/cavium/dev/octeon_fauvar.h  Thu Jun 18 13:52:08 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: octeon_fauvar.h,v 1.2 2020/05/31 06:27:06 simonb Exp $ */
+/*     $NetBSD: octeon_fauvar.h,v 1.3 2020/06/18 13:52:08 simonb Exp $ */
 
 /*
  * Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -29,6 +29,8 @@
 #ifndef _OCTEON_FAUVAR_H_
 #define _OCTEON_FAUVAR_H_
 
+#include <mips/cavium/octeonreg.h>
+
 /* ---- API */
 
 struct octfau_desc {
@@ -89,14 +91,9 @@
 static inline void
 octfau_op_iobdma(int index, uint64_t args)
 {
-       uint64_t value;



Home | Main Index | Thread Index | Old Index