cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

w6692.h (4267B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Winbond W6692 specific defines
      4 *
      5 * Author       Karsten Keil <keil@isdn4linux.de>
      6 *		based on the w6692 I4L driver from Petr Novak <petr.novak@i.cz>
      7 *
      8 * Copyright 2009  by Karsten Keil <keil@isdn4linux.de>
      9 */
     10
     11/* Specifications of W6692 registers */
     12
     13#define W_D_RFIFO	0x00	/* R */
     14#define W_D_XFIFO	0x04	/* W */
     15#define W_D_CMDR	0x08	/* W */
     16#define W_D_MODE	0x0c	/* R/W */
     17#define W_D_TIMR	0x10	/* R/W */
     18#define W_ISTA		0x14	/* R_clr */
     19#define W_IMASK		0x18	/* R/W */
     20#define W_D_EXIR	0x1c	/* R_clr */
     21#define W_D_EXIM	0x20	/* R/W */
     22#define W_D_STAR	0x24	/* R */
     23#define W_D_RSTA	0x28	/* R */
     24#define W_D_SAM		0x2c	/* R/W */
     25#define W_D_SAP1	0x30	/* R/W */
     26#define W_D_SAP2	0x34	/* R/W */
     27#define W_D_TAM		0x38	/* R/W */
     28#define W_D_TEI1	0x3c	/* R/W */
     29#define W_D_TEI2	0x40	/* R/W */
     30#define W_D_RBCH	0x44	/* R */
     31#define W_D_RBCL	0x48	/* R */
     32#define W_TIMR2		0x4c	/* W */
     33#define W_L1_RC		0x50	/* R/W */
     34#define W_D_CTL		0x54	/* R/W */
     35#define W_CIR		0x58	/* R */
     36#define W_CIX		0x5c	/* W */
     37#define W_SQR		0x60	/* R */
     38#define W_SQX		0x64	/* W */
     39#define W_PCTL		0x68	/* R/W */
     40#define W_MOR		0x6c	/* R */
     41#define W_MOX		0x70	/* R/W */
     42#define W_MOSR		0x74	/* R_clr */
     43#define W_MOCR		0x78	/* R/W */
     44#define W_GCR		0x7c	/* R/W */
     45
     46#define	W_B_RFIFO	0x80	/* R */
     47#define	W_B_XFIFO	0x84	/* W */
     48#define	W_B_CMDR	0x88	/* W */
     49#define	W_B_MODE	0x8c	/* R/W */
     50#define	W_B_EXIR	0x90	/* R_clr */
     51#define	W_B_EXIM	0x94	/* R/W */
     52#define	W_B_STAR	0x98	/* R */
     53#define	W_B_ADM1	0x9c	/* R/W */
     54#define	W_B_ADM2	0xa0	/* R/W */
     55#define	W_B_ADR1	0xa4	/* R/W */
     56#define	W_B_ADR2	0xa8	/* R/W */
     57#define	W_B_RBCL	0xac	/* R */
     58#define	W_B_RBCH	0xb0	/* R */
     59
     60#define W_XADDR		0xf4	/* R/W */
     61#define W_XDATA		0xf8	/* R/W */
     62#define W_EPCTL		0xfc	/* W */
     63
     64/* W6692 register bits */
     65
     66#define	W_D_CMDR_XRST	0x01
     67#define	W_D_CMDR_XME	0x02
     68#define	W_D_CMDR_XMS	0x08
     69#define	W_D_CMDR_STT	0x10
     70#define	W_D_CMDR_RRST	0x40
     71#define	W_D_CMDR_RACK	0x80
     72
     73#define	W_D_MODE_RLP	0x01
     74#define	W_D_MODE_DLP	0x02
     75#define	W_D_MODE_MFD	0x04
     76#define	W_D_MODE_TEE	0x08
     77#define	W_D_MODE_TMS	0x10
     78#define	W_D_MODE_RACT	0x40
     79#define	W_D_MODE_MMS	0x80
     80
     81#define W_INT_B2_EXI	0x01
     82#define W_INT_B1_EXI	0x02
     83#define W_INT_D_EXI	0x04
     84#define W_INT_XINT0	0x08
     85#define W_INT_XINT1	0x10
     86#define W_INT_D_XFR	0x20
     87#define W_INT_D_RME	0x40
     88#define W_INT_D_RMR	0x80
     89
     90#define W_D_EXI_WEXP	0x01
     91#define W_D_EXI_TEXP	0x02
     92#define W_D_EXI_ISC	0x04
     93#define W_D_EXI_MOC	0x08
     94#define W_D_EXI_TIN2	0x10
     95#define W_D_EXI_XCOL	0x20
     96#define W_D_EXI_XDUN	0x40
     97#define W_D_EXI_RDOV	0x80
     98
     99#define	W_D_STAR_DRDY	0x10
    100#define	W_D_STAR_XBZ	0x20
    101#define	W_D_STAR_XDOW	0x80
    102
    103#define W_D_RSTA_RMB	0x10
    104#define W_D_RSTA_CRCE	0x20
    105#define W_D_RSTA_RDOV	0x40
    106
    107#define W_D_CTL_SRST	0x20
    108
    109#define W_CIR_SCC	0x80
    110#define W_CIR_ICC	0x40
    111#define W_CIR_COD_MASK	0x0f
    112
    113#define W_PCTL_PCX	0x01
    114#define W_PCTL_XMODE	0x02
    115#define W_PCTL_OE0	0x04
    116#define W_PCTL_OE1	0x08
    117#define W_PCTL_OE2	0x10
    118#define W_PCTL_OE3	0x20
    119#define W_PCTL_OE4	0x40
    120#define W_PCTL_OE5	0x80
    121
    122#define	W_B_CMDR_XRST	0x01
    123#define	W_B_CMDR_XME	0x02
    124#define	W_B_CMDR_XMS	0x04
    125#define	W_B_CMDR_RACT	0x20
    126#define	W_B_CMDR_RRST	0x40
    127#define	W_B_CMDR_RACK	0x80
    128
    129#define	W_B_MODE_FTS0	0x01
    130#define	W_B_MODE_FTS1	0x02
    131#define	W_B_MODE_SW56	0x04
    132#define	W_B_MODE_BSW0	0x08
    133#define	W_B_MODE_BSW1	0x10
    134#define	W_B_MODE_EPCM	0x20
    135#define	W_B_MODE_ITF	0x40
    136#define	W_B_MODE_MMS	0x80
    137
    138#define	W_B_EXI_XDUN	0x01
    139#define	W_B_EXI_XFR	0x02
    140#define	W_B_EXI_RDOV	0x10
    141#define	W_B_EXI_RME	0x20
    142#define	W_B_EXI_RMR	0x40
    143
    144#define	W_B_STAR_XBZ	0x01
    145#define	W_B_STAR_XDOW	0x04
    146#define	W_B_STAR_RMB	0x10
    147#define	W_B_STAR_CRCE	0x20
    148#define	W_B_STAR_RDOV	0x40
    149
    150#define	W_B_RBCH_LOV	0x20
    151
    152/* W6692 Layer1 commands */
    153
    154#define	W_L1CMD_ECK	0x00
    155#define W_L1CMD_RST	0x01
    156#define W_L1CMD_SCP	0x04
    157#define W_L1CMD_SSP	0x02
    158#define W_L1CMD_AR8	0x08
    159#define W_L1CMD_AR10	0x09
    160#define W_L1CMD_EAL	0x0a
    161#define W_L1CMD_DRC	0x0f
    162
    163/* W6692 Layer1 indications */
    164
    165#define W_L1IND_CE	0x07
    166#define W_L1IND_DRD	0x00
    167#define W_L1IND_LD	0x04
    168#define W_L1IND_ARD	0x08
    169#define W_L1IND_TI	0x0a
    170#define W_L1IND_ATI	0x0b
    171#define W_L1IND_AI8	0x0c
    172#define W_L1IND_AI10	0x0d
    173#define W_L1IND_CD	0x0f
    174
    175/* FIFO thresholds */
    176#define W_D_FIFO_THRESH	64
    177#define W_B_FIFO_THRESH	64