12908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
26070d81eb5f2d4943223c96e7609a53cdc984364Adam Buchbinder * Aic94xx SAS/SATA driver hardware registers definitions.
32908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
42908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Copyright (C) 2004 Adaptec, Inc.  All rights reserved.
52908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Copyright (C) 2004 David Chaw <david_chaw@adaptec.com>
62908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com>
72908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
82908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Luben Tuikov: Some register value updates to make it work with the window
92908d778ab3e244900c310974e1fc1c69066e450James Bottomley * agnostic register r/w functions.  Some register corrections, sizes,
102908d778ab3e244900c310974e1fc1c69066e450James Bottomley * etc.
112908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
122908d778ab3e244900c310974e1fc1c69066e450James Bottomley * This file is licensed under GPLv2.
132908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
142908d778ab3e244900c310974e1fc1c69066e450James Bottomley * This file is part of the aic94xx driver.
152908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
162908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The aic94xx driver is free software; you can redistribute it and/or
172908d778ab3e244900c310974e1fc1c69066e450James Bottomley * modify it under the terms of the GNU General Public License as
182908d778ab3e244900c310974e1fc1c69066e450James Bottomley * published by the Free Software Foundation; version 2 of the
192908d778ab3e244900c310974e1fc1c69066e450James Bottomley * License.
202908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
212908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The aic94xx driver is distributed in the hope that it will be useful,
222908d778ab3e244900c310974e1fc1c69066e450James Bottomley * but WITHOUT ANY WARRANTY; without even the implied warranty of
232908d778ab3e244900c310974e1fc1c69066e450James Bottomley * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
242908d778ab3e244900c310974e1fc1c69066e450James Bottomley * General Public License for more details.
252908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
262908d778ab3e244900c310974e1fc1c69066e450James Bottomley * You should have received a copy of the GNU General Public License
272908d778ab3e244900c310974e1fc1c69066e450James Bottomley * along with the aic94xx driver; if not, write to the Free Software
282908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
292908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
302908d778ab3e244900c310974e1fc1c69066e450James Bottomley * $Id: //depot/aic94xx/aic94xx_reg_def.h#27 $
312908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
322908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#ifndef _ADP94XX_REG_DEF_H_
352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define _ADP94XX_REG_DEF_H_
362908d778ab3e244900c310974e1fc1c69066e450James Bottomley
372908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
382908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Common definitions.
392908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_MODE_PAGE_SIZE	0x200		/* CSEQ mode page size */
412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_MODE_PAGE_SIZE	0x200		/* LmSEQ mode page size */
422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_HOST_REG_SIZE   	0x4000		/* LmSEQ Host Register size */
432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
442908d778ab3e244900c310974e1fc1c69066e450James Bottomley/********************* COM_SAS registers definition *************************/
452908d778ab3e244900c310974e1fc1c69066e450James Bottomley
462908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* The base is REG_BASE_ADDR, defined in aic94xx_reg.h.
472908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
482908d778ab3e244900c310974e1fc1c69066e450James Bottomley
492908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
502908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CHIM Registers, Address Range : (0x00-0xFF)
512908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define COMBIST		(REG_BASE_ADDR + 0x00)
532908d778ab3e244900c310974e1fc1c69066e450James Bottomley
542908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 31:24 */
552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L7BLKRST		0x80000000
562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L6BLKRST		0x40000000
572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L5BLKRST		0x20000000
582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L4BLKRST		0x10000000
592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L3BLKRST		0x08000000
602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L2BLKRST		0x04000000
612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L1BLKRST		0x02000000
622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		L0BLKRST		0x01000000
632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBLKRST		0xFF000000
642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmBLKRST_COMBIST(phyid)		(1 << (24 + phyid))
652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCMBLKRST		0x00400000
672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CTXMEMBLKRST		0x00200000
682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQBLKRST		0x00100000
692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EXSIBLKRST		0x00040000
702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DPIBLKRST		0x00020000
712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DFIFBLKRST		0x00010000
722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HARDRST			0x00000200
732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		COMBLKRST		0x00000100
742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCDFPERR		0x00000080
752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCCIOPERR		0x00000020
762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCBISTERR		0x00000010
772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		COMBISTEN		0x00000004
782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		COMBISTDONE		0x00000002	/* ro */
792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	COMBISTFAIL		0x00000001	/* ro */
802908d778ab3e244900c310974e1fc1c69066e450James Bottomley
812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define COMSTAT		(REG_BASE_ADDR + 0x04)
822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		REQMBXREAD		0x00000040
842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	RSPMBXAVAIL		0x00000020
852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CSBUFPERR		0x00000008
862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYERR			0x00000004
872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CSERR			0x00000002
882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYDMADONE		0x00000001
892908d778ab3e244900c310974e1fc1c69066e450James Bottomley
902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		COMSTAT_MASK		(REQMBXREAD | RSPMBXAVAIL | \
912908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CSBUFPERR | OVLYERR | CSERR |\
922908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 OVLYDMADONE)
932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define COMSTATEN	(REG_BASE_ADDR + 0x08)
952908d778ab3e244900c310974e1fc1c69066e450James Bottomley
962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_REQMBXREAD		0x00000040
972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_RSPMBXAVAIL		0x00000020
982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_CSBUFPERR		0x00000008
992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_OVLYERR		0x00000004
1002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_CSERR		0x00000002
1012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_OVLYDONE		0x00000001
1022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SCBPRO		(REG_BASE_ADDR + 0x0C)
1042908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SCBCONS_MASK		0xFFFF0000
1062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SCBPRO_MASK		0x0000FFFF
1072908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CHIMREQMBX	(REG_BASE_ADDR + 0x10)
1092908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CHIMRSPMBX	(REG_BASE_ADDR + 0x14)
1112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CHIMINT		(REG_BASE_ADDR + 0x18)
1132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EXT_INT0		0x00000800
1152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EXT_INT1		0x00000400
1162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PORRSTDET		0x00000200
1172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HARDRSTDET		0x00000100
1182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DLAVAILQ		0x00000080	/* ro */
1192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HOSTERR			0x00000040
1202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		INITERR			0x00000020
1212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVINT			0x00000010
1222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		COMINT			0x00000008
1232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVTIMER2		0x00000004
1242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVTIMER1		0x00000002
1252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DLAVAIL			0x00000001
1262908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CHIMINT_MASK		(HOSTERR | INITERR | DEVINT | COMINT |\
1282908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 DEVTIMER2 | DEVTIMER1 | DLAVAIL)
1292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	DEVEXCEPT_MASK		(HOSTERR | INITERR | DEVINT | COMINT)
1312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CHIMINTEN	(REG_BASE_ADDR + 0x1C)
1332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_EXT_INT1		0x01000000
1352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_EXT_INT0		0x00800000
1362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_HOSTERR		0x00400000
1372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_INITERR		0x00200000
1382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_DEVINT		0x00100000
1392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_COMINT		0x00080000
1402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_DEVTIMER2	0x00040000
1412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_DEVTIMER1	0x00020000
1422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_EN_DLAVAIL		0x00010000
1432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_EXT_INT1		0x00000100
1442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_EXT_INT0		0x00000080
1452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_HOSTERR		0x00000040
1462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_INITERR		0x00000020
1472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_DEVINT		0x00000010
1482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_COMINT		0x00000008
1492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_DEVTIMER2	0x00000004
1502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_DEVTIMER1	0x00000002
1512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_EN_DLAVAIL		0x00000001
1522908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RST_CHIMINTEN		(RST_EN_HOSTERR | RST_EN_INITERR | \
1542908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 RST_EN_DEVINT | RST_EN_COMINT | \
1552908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 RST_EN_DEVTIMER2 | RST_EN_DEVTIMER1 |\
1562908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 RST_EN_DLAVAIL)
1572908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SET_CHIMINTEN		(SET_EN_HOSTERR | SET_EN_INITERR |\
1592908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 SET_EN_DEVINT | SET_EN_COMINT |\
1602908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 SET_EN_DLAVAIL)
1612908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OVLYDMACTL	(REG_BASE_ADDR + 0x20)
1632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYADR_MASK		0x07FF0000
1652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYLSEQ_MASK		0x0000FF00
1662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYCSEQ		0x00000080
1672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYHALTERR		0x00000040
1682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PIOCMODE		0x00000020
1692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RESETOVLYDMA		0x00000008	/* wo */
1702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STARTOVLYDMA		0x00000004
1712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STOPOVLYDMA		0x00000002	/* wo */
1722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYDMAACT		0x00000001	/* ro */
1732908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OVLYDMACNT	(REG_BASE_ADDR + 0x24)
1752908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYDOMAIN1		0x20000000	/* ro */
1772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYDOMAIN0		0x10000000
1782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYBUFADR_MASK		0x007F0000
1792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYDMACNT_MASK		0x00003FFF
1802908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OVLYDMAADR	(REG_BASE_ADDR + 0x28)
1822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DMAERR		(REG_BASE_ADDR + 0x30)
1842908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OVLYERRSTAT_MASK	0x0000FF00	/* ro */
1862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSERRSTAT_MASK		0x000000FF	/* ro */
1872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SPIODATA	(REG_BASE_ADDR + 0x34)
1892908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1902908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 0x38 - 0x3C are reserved  */
1912908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define T1CNTRLR	(REG_BASE_ADDR + 0x40)
1932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
1942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T1DONE			0x00010000	/* ro */
1952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TIMER64			0x00000400
1962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T1ENABLE		0x00000200
1972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T1RELOAD		0x00000100
1982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T1PRESCALER_MASK	0x00000003
1992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	T1CMPR		(REG_BASE_ADDR + 0x44)
2012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define T1CNTR		(REG_BASE_ADDR + 0x48)
2032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define T2CNTRLR	(REG_BASE_ADDR + 0x4C)
2052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T2DONE			0x00010000	/* ro */
2072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T2ENABLE		0x00000200
2082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T2RELOAD		0x00000100
2092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		T2PRESCALER_MASK	0x00000003
2102908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	T2CMPR		(REG_BASE_ADDR + 0x50)
2122908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define T2CNTR		(REG_BASE_ADDR + 0x54)
2142908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2152908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 0x58h - 0xFCh are reserved */
2162908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2172908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
2182908d778ab3e244900c310974e1fc1c69066e450James Bottomley * DCH_SAS Registers, Address Range : (0x800-0xFFF)
2192908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
2202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMDCTXBASE	(REG_BASE_ADDR + 0x800)
2212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DEVCTXBASE	(REG_BASE_ADDR + 0x808)
2232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CTXDOMAIN	(REG_BASE_ADDR + 0x810)
2252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVCTXDOMAIN1		0x00000008	/* ro */
2272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVCTXDOMAIN0		0x00000004
2282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CMDCTXDOMAIN1		0x00000002	/* ro */
2292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CMDCTXDOMAIN0		0x00000001
2302908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DCHCTL		(REG_BASE_ADDR + 0x814)
2322908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCMBISTREPAIR		0x00080000
2342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCMBISTEN		0x00040000
2352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCMBISTDN		0x00020000	/* ro */
2362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCMBISTFAIL		0x00010000	/* ro */
2372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DDBBISTEN		0x00004000
2382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DDBBISTDN		0x00002000	/* ro */
2392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DDBBISTFAIL		0x00001000	/* ro */
2402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SCBBISTEN		0x00000400
2412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SCBBISTDN		0x00000200	/* ro */
2422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SCBBISTFAIL		0x00000100	/* ro */
2432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_MASK		0x000000E0
2452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_CCM_LSEQ		0x00000000
2462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_CCM_IOP		0x00000020
2472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_CCM_SASCTL	0x00000040
2482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_DCM_LSEQ		0x00000060
2492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_DCM_IOP		0x00000080
2502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEMSEL_OCM		0x000000A0
2512908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCERR			0x00000010
2532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		AUTORLS			0x00000001
2542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DCHREVISION	(REG_BASE_ADDR + 0x818)
2562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DCHREVISION_MASK	0x000000FF
2582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DCHSTATUS	(REG_BASE_ADDR + 0x81C)
2602908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_CFIFTOERR		0x00020000
2622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CFIFTOERR		0x00000200
2632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQINT			0x00000100	/* ro */
2642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ7INT		0x00000080	/* ro */
2652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ6INT		0x00000040	/* ro */
2662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ5INT		0x00000020	/* ro */
2672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ4INT		0x00000010	/* ro */
2682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ3INT		0x00000008	/* ro */
2692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ2INT		0x00000004	/* ro */
2702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ1INT		0x00000002	/* ro */
2712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQ0INT		0x00000001	/* ro */
2722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LSEQINT_MASK		(LSEQ7INT | LSEQ6INT | LSEQ5INT |\
2742908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 LSEQ4INT | LSEQ3INT | LSEQ2INT	|\
2752908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 LSEQ1INT | LSEQ0INT)
2762908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DCHDFIFDEBUG	(REG_BASE_ADDR + 0x820)
2782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ENFAIRMST		0x00FF0000
2792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DISWRMST9		0x00000200
2802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DISWRMST8		0x00000100
2812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DISRDMST		0x000000FF
2822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ATOMICSTATCTL	(REG_BASE_ADDR + 0x824)
2842908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 8 bit wide */
2852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		AUTOINC			0x80
2862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ATOMICERR		0x04
2872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ATOMICWIN		0x02
2882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ATOMICDONE		0x01
2892908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2902908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ALTCIOADR	(REG_BASE_ADDR + 0x828)
2922908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 16 bit; bits 8:0 define CIO addr space of CSEQ */
2932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ASCBPTR		(REG_BASE_ADDR + 0x82C)
2952908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 16 bit wide */
2962908d778ab3e244900c310974e1fc1c69066e450James Bottomley
2972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ADDBPTR		(REG_BASE_ADDR + 0x82E)
2982908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 16 bit wide */
2992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ANEWDATA	(REG_BASE_ADDR + 0x830)
3012908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 16 bit */
3022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define AOLDDATA	(REG_BASE_ADDR + 0x834)
3042908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 16 bit */
3052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CTXACCESS	(REG_BASE_ADDR + 0x838)
3072908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 32 bit */
3082908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3092908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 0x83Ch - 0xFFCh are reserved */
3102908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3112908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
3122908d778ab3e244900c310974e1fc1c69066e450James Bottomley * ARP2 External Processor Registers, Address Range : (0x00-0x1F)
3132908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
3142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ARP2CTL		0x00
3152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCSCRPERR		0x00040000
3172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCARP2PERR		0x00020000
3182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FRCARP2ILLOPC		0x00010000
3192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ENWAITTO		0x00008000
3202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PERRORDIS		0x00004000
3212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FAILDIS			0x00002000
3222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CIOPERRDIS		0x00001000
3232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKEN3		0x00000800
3242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKEN2		0x00000400
3252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKEN1		0x00000200
3262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKEN0		0x00000100
3272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EPAUSE			0x00000008
3282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PAUSED			0x00000004	/* ro */
3292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STEP			0x00000002
3302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2RESET		0x00000001	/* wo */
3312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ARP2INT		0x04
3332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HALTCODE_MASK		0x00FF0000	/* ro */
3352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2WAITTO		0x00000100
3362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2HALTC		0x00000080
3372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2ILLOPC		0x00000040
3382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2PERR		0x00000020
3392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2CIOPERR		0x00000010
3402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2BREAK3		0x00000008
3412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2BREAK2		0x00000004
3422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2BREAK1		0x00000002
3432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARP2BREAK0		0x00000001
3442908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ARP2INTEN	0x08
3462908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2WAITTO		0x00000100
3482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2HALTC		0x00000080
3492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2ILLOPC		0x00000040
3502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2PERR		0x00000020
3512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2CIOPERR		0x00000010
3522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2BREAK3		0x00000008
3532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2BREAK2		0x00000004
3542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2BREAK1		0x00000002
3552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_ARP2BREAK0		0x00000001
3562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ARP2BREAKADR01	0x0C
3582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKADR1_MASK		0x0FFF0000
3602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKADR0_MASK		0x00000FFF
3612908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	ARP2BREAKADR23	0x10
3632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKADR3_MASK		0x0FFF0000
3652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BREAKADR2_MASK		0x00000FFF
3662908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3672908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* 0x14h - 0x1Ch are reserved */
3682908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3692908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
3702908d778ab3e244900c310974e1fc1c69066e450James Bottomley * ARP2 Registers, Address Range : (0x00-0x1F)
3712908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The definitions have the same address offset for CSEQ and LmSEQ
3722908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CIO Bus Registers.
3732908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
3742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MODEPTR		0x00
3752908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DSTMODE			0xF0
3772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRCMODE			0x0F
3782908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ALTMODE		0x01
3802908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ALTDMODE		0xF0
3822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ALTSMODE		0x0F
3832908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ATOMICXCHG	0x02
3852908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define FLAG		0x04
3872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		INTCODE_MASK		0xF0
3892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ALTMODEV2		0x04
3902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CARRY_INT		0x02
3912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CARRY			0x01
3922908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ARP2INTCTL	0x05
3942908d778ab3e244900c310974e1fc1c69066e450James Bottomley
3952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	PAUSEDIS		0x80
3962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RSTINTCTL		0x40
3972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		POPALTMODE		0x08
3982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ALTMODEV		0x04
3992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		INTMASK			0x02
4002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		IRET			0x01
4012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define STACK		0x06
4032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define FUNCTION1	0x07
4052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PRGMCNT		0x08
4072908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ACCUM		0x0A
4092908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SINDEX		0x0C
4112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DINDEX		0x0E
4132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ALLONES		0x10
4152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ALLZEROS	0x11
4172908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SINDIR		0x12
4192908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DINDIR		0x13
4212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define JUMLDIR		0x14
4232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ARP2HALTCODE	0x15
4252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CURRADDR	0x16
4272908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LASTADDR	0x18
4292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define NXTLADDR	0x1A
4312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DBGPORTPTR	0x1C
4332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DBGPORT		0x1D
4352908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4362908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
4372908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CIO Registers.
4382908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The definitions have the same address offset for CSEQ and LmSEQ
4392908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CIO Bus Registers.
4402908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
4412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSCBPTR      	0x20
4422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDDBPTR      	0x22
4442908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SCRATCHPAGE	0x24
4462908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSCRATCHPAGE	0x25
4482908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SCRATCHPAGESV	0x26
4502908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSCRATCHPAGESV	0x27
4522908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDMAERRS	0x46
4542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSGDMAERRS	0x47
4562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSGBUF		0x53
4582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSGDMASTAT	0x5b
4602908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDDMACTL	0x5c	/* RAZOR.rspec.fm rev 1.5 is wrong */
4622908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDDMASTAT	0x5d	/* RAZOR.rspec.fm rev 1.5 is wrong */
4642908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDDMAMODE	0x5e	/* RAZOR.rspec.fm rev 1.5 is wrong */
4662908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDMAENG	0x60
4682908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnPIPECTL	0x61
4702908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSGBADR	0x65
4722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnSCB_SITE	0x100
4742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnDDB_SITE	0x180
4762908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4772908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
4782908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The common definitions below have the same address offset for both
4792908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CSEQ and LmSEQ.
4802908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
4812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define BISTCTL0	0x4C
4822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define BISTCTL1	0x50
4842908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MAPPEDSCR	0x800
4862908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4872908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
4882908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CSEQ Host Register, Address Range : (0x000-0xFFC)
4892908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
4902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_HOST_REG_BASE_ADR		0xB8001000
4912908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2CTL			(CSEQ_HOST_REG_BASE_ADR	+ ARP2CTL)
4932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2INT			(CSEQ_HOST_REG_BASE_ADR	+ ARP2INT)
4952908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2INTEN			(CSEQ_HOST_REG_BASE_ADR	+ ARP2INTEN)
4972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
4982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2BREAKADR01			(CSEQ_HOST_REG_BASE_ADR+ARP2BREAKADR01)
4992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2BREAKADR23			(CSEQ_HOST_REG_BASE_ADR+ARP2BREAKADR23)
5012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CBISTCTL			(CSEQ_HOST_REG_BASE_ADR	+ BISTCTL1)
5032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQRAMBISTEN		0x00000040
5052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQRAMBISTDN		0x00000020	/* ro */
5062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQRAMBISTFAIL		0x00000010	/* ro */
5072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQSCRBISTEN		0x00000004
5082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQSCRBISTDN		0x00000002	/* ro */
5092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSEQSCRBISTFAIL		0x00000001	/* ro */
5102908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMAPPEDSCR			(CSEQ_HOST_REG_BASE_ADR	+ MAPPEDSCR)
5122908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5132908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
5142908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CSEQ CIO Bus Registers, Address Range : (0x0000-0x1FFC)
5152908d778ab3e244900c310974e1fc1c69066e450James Bottomley * 16 modes, each mode is 512 bytes.
5162908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Unless specified, the register should valid for all modes.
5172908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
5182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_CIO_REG_BASE_ADR		REG_BASE_ADDR_CSEQCIO
5192908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQm_CIO_REG(Mode, Reg) \
5212908d778ab3e244900c310974e1fc1c69066e450James Bottomley		(CSEQ_CIO_REG_BASE_ADR  + \
5222908d778ab3e244900c310974e1fc1c69066e450James Bottomley		((u32) (Mode) * CSEQ_MODE_PAGE_SIZE) + (u32) (Reg))
5232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMODEPTR	(CSEQ_CIO_REG_BASE_ADR + MODEPTR)
5252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CALTMODE	(CSEQ_CIO_REG_BASE_ADR + ALTMODE)
5272908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CATOMICXCHG	(CSEQ_CIO_REG_BASE_ADR + ATOMICXCHG)
5292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CFLAG		(CSEQ_CIO_REG_BASE_ADR + FLAG)
5312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2INTCTL	(CSEQ_CIO_REG_BASE_ADR + ARP2INTCTL)
5332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSTACK		(CSEQ_CIO_REG_BASE_ADR + STACK)
5352908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CFUNCTION1	(CSEQ_CIO_REG_BASE_ADR + FUNCTION1)
5372908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CPRGMCNT	(CSEQ_CIO_REG_BASE_ADR + PRGMCNT)
5392908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CACCUM		(CSEQ_CIO_REG_BASE_ADR + ACCUM)
5412908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSINDEX		(CSEQ_CIO_REG_BASE_ADR + SINDEX)
5432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CDINDEX		(CSEQ_CIO_REG_BASE_ADR + DINDEX)
5452908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CALLONES	(CSEQ_CIO_REG_BASE_ADR + ALLONES)
5472908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CALLZEROS	(CSEQ_CIO_REG_BASE_ADR + ALLZEROS)
5492908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSINDIR		(CSEQ_CIO_REG_BASE_ADR + SINDIR)
5512908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CDINDIR		(CSEQ_CIO_REG_BASE_ADR + DINDIR)
5532908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CJUMLDIR	(CSEQ_CIO_REG_BASE_ADR + JUMLDIR)
5552908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CARP2HALTCODE	(CSEQ_CIO_REG_BASE_ADR + ARP2HALTCODE)
5572908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CCURRADDR	(CSEQ_CIO_REG_BASE_ADR + CURRADDR)
5592908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CLASTADDR	(CSEQ_CIO_REG_BASE_ADR + LASTADDR)
5612908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CNXTLADDR	(CSEQ_CIO_REG_BASE_ADR + NXTLADDR)
5632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CDBGPORTPTR	(CSEQ_CIO_REG_BASE_ADR + DBGPORTPTR)
5652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CDBGPORT	(CSEQ_CIO_REG_BASE_ADR + DBGPORT)
5672908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSCRATCHPAGE	(CSEQ_CIO_REG_BASE_ADR + SCRATCHPAGE)
5692908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnSCBPTR(Mode)       CSEQm_CIO_REG(Mode, MnSCBPTR)
5712908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnDDBPTR(Mode)       CSEQm_CIO_REG(Mode, MnDDBPTR)
5732908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnSCRATCHPAGE(Mode)		CSEQm_CIO_REG(Mode, MnSCRATCHPAGE)
5752908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CLINKCON	(CSEQ_CIO_REG_BASE_ADR + 0x28)
5772908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	CCIOAACESS	(CSEQ_CIO_REG_BASE_ADR + 0x2C)
5792908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5802908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-7 */
5812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnREQMBX 0x30
5822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnREQMBX(Mode)			CSEQm_CIO_REG(Mode, 0x30)
5832908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5842908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
5852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQCON				CSEQm_CIO_REG(8, 0x30)
5862908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5872908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-7 */
5882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnRSPMBX 0x34
5892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnRSPMBX(Mode)			CSEQm_CIO_REG(Mode, 0x34)
5902908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5912908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
5922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQCOMCTL			CSEQm_CIO_REG(8, 0x34)
5932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5942908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
5952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQCOMSTAT			CSEQm_CIO_REG(8, 0x35)
5962908d778ab3e244900c310974e1fc1c69066e450James Bottomley
5972908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
5982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQCOMINTEN			CSEQm_CIO_REG(8, 0x36)
5992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6002908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQCOMDMACTL			CSEQm_CIO_REG(8, 0x37)
6022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSHALTERR		0x10
6042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RESETCSDMA		0x08		/* wo */
6052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STARTCSDMA		0x04
6062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STOPCSDMA		0x02		/* wo */
6072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CSDMAACT		0x01		/* ro */
6082908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6092908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-7 */
6102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnINT 0x38
6112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnINT(Mode)			CSEQm_CIO_REG(Mode, 0x38)
6122908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CMnREQMBXE		0x02
6142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CMnRSPMBXF		0x01
6152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CMnINT_MASK		0x00000003
6162908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6172908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQREQMBX			CSEQm_CIO_REG(8, 0x38)
6192908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6202908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-7 */
6212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MnINTEN 0x3C
6222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnINTEN(Mode)			CSEQm_CIO_REG(Mode, 0x3C)
6232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_CMnRSPMBXF		0x01
6252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6262908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQRSPMBX			CSEQm_CIO_REG(8, 0x3C)
6282908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6292908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSDMAADR			CSEQm_CIO_REG(8, 0x40)
6312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6322908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSDMACNT			CSEQm_CIO_REG(8, 0x48)
6342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6352908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQDLCTL			CSEQm_CIO_REG(8, 0x4D)
6372908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTEND		0x10
6392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	DONELISTSIZE_MASK	0x0F
6402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_8ELEM	0x01
6412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_16ELEM	0x02
6422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_32ELEM	0x03
6432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_64ELEM	0x04
6442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_128ELEM	0x05
6452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_256ELEM	0x06
6462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_512ELEM	0x07
6472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_1024ELEM	0x08
6482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_2048ELEM	0x09
6492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_4096ELEM	0x0A
6502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_8192ELEM	0x0B
6512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DONELISTSIZE_16384ELEM	0x0C
6522908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6532908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8 */
6542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQDLOFFS			CSEQm_CIO_REG(8, 0x4E)
6552908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6562908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 11 */
6572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CM11INTVEC0			CSEQm_CIO_REG(11, 0x50)
6582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6592908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 11 */
6602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CM11INTVEC1			CSEQm_CIO_REG(11, 0x52)
6612908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6622908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 11 */
6632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CM11INTVEC2			CSEQm_CIO_REG(11, 0x54)
6642908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	CCONMSK	  			(CSEQ_CIO_REG_BASE_ADR + 0x60)
6662908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	CCONEXIST			(CSEQ_CIO_REG_BASE_ADR + 0x61)
6682908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	CCONMODE			(CSEQ_CIO_REG_BASE_ADR + 0x62)
6702908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CTIMERCALC			(CSEQ_CIO_REG_BASE_ADR + 0x64)
6722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CINTDIS				(CSEQ_CIO_REG_BASE_ADR + 0x68)
6742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6752908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 8, 32x32 bits, 128 bytes of mapped buffer */
6762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSBUFFER			CSEQm_CIO_REG(8, 0x80)
6772908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	CSCRATCH			(CSEQ_CIO_REG_BASE_ADR + 0x1C0)
6792908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6802908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-8 */
6812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CMnSCRATCH(Mode)		CSEQm_CIO_REG(Mode, 0x1E0)
6822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6832908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
6842908d778ab3e244900c310974e1fc1c69066e450James Bottomley * CSEQ Mapped Instruction RAM Page, Address Range : (0x0000-0x1FFC)
6852908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
6862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_RAM_REG_BASE_ADR		0xB8004000
6872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6882908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
6892908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The common definitions below have the same address offset for all the Link
6902908d778ab3e244900c310974e1fc1c69066e450James Bottomley * sequencers.
6912908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
6922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define MODECTL		0x40
6932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define DBGMODE		0x44
6952908d778ab3e244900c310974e1fc1c69066e450James Bottomley
6962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CONTROL		0x48
6972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDTIMER		0x00010000
6982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDTIMERS_10us		0x00000000
6992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDTIMERS_1ms		0x00000800
7002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDTIMERS_100ms		0x00001000
7012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDMODE_TXRX		0x00000000
7022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDMODE_CONNECTED	0x00000200
7032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LEDPOL			0x00000100
7042908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQRAM		0x1000
7062908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7072908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
7082908d778ab3e244900c310974e1fc1c69066e450James Bottomley * LmSEQ Host Registers, Address Range : (0x0000-0x3FFC)
7092908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
7102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ0_HOST_REG_BASE_ADR		0xB8020000
7112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ1_HOST_REG_BASE_ADR		0xB8024000
7122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ2_HOST_REG_BASE_ADR		0xB8028000
7132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ3_HOST_REG_BASE_ADR		0xB802C000
7142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ4_HOST_REG_BASE_ADR		0xB8030000
7152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ5_HOST_REG_BASE_ADR		0xB8034000
7162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ6_HOST_REG_BASE_ADR		0xB8038000
7172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ7_HOST_REG_BASE_ADR		0xB803C000
7182908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2CTL(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7202908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7212908d778ab3e244900c310974e1fc1c69066e450James Bottomley					ARP2CTL)
7222908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2INT(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7242908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7252908d778ab3e244900c310974e1fc1c69066e450James Bottomley					ARP2INT)
7262908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2INTEN(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7282908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7292908d778ab3e244900c310974e1fc1c69066e450James Bottomley					ARP2INTEN)
7302908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmDBGMODE(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7322908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7332908d778ab3e244900c310974e1fc1c69066e450James Bottomley					DBGMODE)
7342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmCONTROL(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7362908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7372908d778ab3e244900c310974e1fc1c69066e450James Bottomley					CONTROL)
7382908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2BREAKADR01(LinkNum)	(LSEQ0_HOST_REG_BASE_ADR +	  \
7402908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7412908d778ab3e244900c310974e1fc1c69066e450James Bottomley					ARP2BREAKADR01)
7422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2BREAKADR23(LinkNum)	(LSEQ0_HOST_REG_BASE_ADR +	  \
7442908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7452908d778ab3e244900c310974e1fc1c69066e450James Bottomley					ARP2BREAKADR23)
7462908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMODECTL(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7482908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7492908d778ab3e244900c310974e1fc1c69066e450James Bottomley					MODECTL)
7502908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAUTODISCI		0x08000000
7522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLBITLT		0x04000000
7532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLANTT		0x02000000
7542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLCRTT		0x01000000
7552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLCONT		0x00000100
7562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmPRIMODE		0x00000080
7572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLHOLD		0x00000040
7582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDISACK		0x00000020
7592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBLIND48		0x00000010
7602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVMODE_MASK		0x0000000C
7612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVMODE_PLD		0x00000000
7622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVMODE_HPC		0x00000004
7632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmDBGMODE(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7652908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7662908d778ab3e244900c310974e1fc1c69066e450James Bottomley					DBGMODE)
7672908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCPERR		0x80000000
7692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMEMSEL_MASK		0x30000000
7702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCRBPERR		0x00000000
7712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCTBPERR		0x10000000
7722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCSGBPERR		0x20000000
7732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCARBPERR		0x30000000
7742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVIDW		0x00080000
7752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmINVDWERR		0x00040000
7762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVDISP		0x00004000
7772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDISPERR		0x00002000
7782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLDSCR		0x00000800
7792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDSBLSCR		0x00000400
7802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCNAK		0x00000200
7812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCROFS		0x00000100
7822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRCCRC		0x00000080
7832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRMTYPE_MASK		0x00000070
7842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_DATA		0x00000000
7852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_COMMAND		0x00000010
7862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_TASK		0x00000020
7872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_TGTXFER		0x00000030
7882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_RESPONSE		0x00000040
7892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_IDENADDR		0x00000050
7902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSG_OPENADDR		0x00000060
7912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDISCRCGEN		0x00000008
7922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDISCRCCHK		0x00000004
7932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSSXMTFRM		0x00000002
7942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSSRCVFRM		0x00000001
7952908d778ab3e244900c310974e1fc1c69066e450James Bottomley
7962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmCONTROL(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
7972908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
7982908d778ab3e244900c310974e1fc1c69066e450James Bottomley					CONTROL)
7992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSTEPXMTFRM		0x00000002
8012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSTEPRCVFRM		0x00000001
8022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmBISTCTL0(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	  \
8042908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) + \
8052908d778ab3e244900c310974e1fc1c69066e450James Bottomley					BISTCTL0)
8062908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARBBISTEN		0x40000000
8082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARBBISTDN		0x20000000	/* ro */
8092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ARBBISTFAIL		0x10000000	/* ro */
8102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TBBISTEN		0x00000400
8112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TBBISTDN		0x00000200	/* ro */
8122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TBBISTFAIL		0x00000100	/* ro */
8132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RBBISTEN		0x00000040
8142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RBBISTDN		0x00000020	/* ro */
8152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RBBISTFAIL		0x00000010	/* ro */
8162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SGBISTEN		0x00000004
8172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SGBISTDN		0x00000002	/* ro */
8182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SGBISTFAIL		0x00000001	/* ro */
8192908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmBISTCTL1(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	 \
8212908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum)*LmSEQ_HOST_REG_SIZE) +\
8222908d778ab3e244900c310974e1fc1c69066e450James Bottomley					BISTCTL1)
8232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRAMPAGE1		0x00000200
8252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRAMPAGE0		0x00000100
8262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmIMEMBISTEN		0x00000040
8272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmIMEMBISTDN		0x00000020	/* ro */
8282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmIMEMBISTFAIL		0x00000010	/* ro */
8292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSCRBISTEN		0x00000004
8302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSCRBISTDN		0x00000002	/* ro */
8312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSCRBISTFAIL		0x00000001	/* ro */
8322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRAMPAGE		(LmRAMPAGE1 + LmRAMPAGE0)
8332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRAMPAGE_LSHIFT	0x8
8342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSCRATCH(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	   \
8362908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum) * LmSEQ_HOST_REG_SIZE) +\
8372908d778ab3e244900c310974e1fc1c69066e450James Bottomley					MAPPEDSCR)
8382908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQRAM(LinkNum)		(LSEQ0_HOST_REG_BASE_ADR +	   \
8402908d778ab3e244900c310974e1fc1c69066e450James Bottomley					((LinkNum) * LmSEQ_HOST_REG_SIZE) +\
8412908d778ab3e244900c310974e1fc1c69066e450James Bottomley					LSEQRAM)
8422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8432908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
8442908d778ab3e244900c310974e1fc1c69066e450James Bottomley * LmSEQ CIO Bus Register, Address Range : (0x0000-0xFFC)
8452908d778ab3e244900c310974e1fc1c69066e450James Bottomley * 8 modes, each mode is 512 bytes.
8462908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Unless specified, the register should valid for all modes.
8472908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
8482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_CIOBUS_REG_BASE		0x2000
8492908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define  LmSEQ_PHY_BASE(Mode, LinkNum) \
8512908d778ab3e244900c310974e1fc1c69066e450James Bottomley		(LSEQ0_HOST_REG_BASE_ADR + \
8522908d778ab3e244900c310974e1fc1c69066e450James Bottomley		(LmSEQ_HOST_REG_SIZE * (u32) (LinkNum)) + \
8532908d778ab3e244900c310974e1fc1c69066e450James Bottomley		LmSEQ_CIOBUS_REG_BASE + \
8542908d778ab3e244900c310974e1fc1c69066e450James Bottomley		((u32) (Mode) * LmSEQ_MODE_PAGE_SIZE))
8552908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define  LmSEQ_PHY_REG(Mode, LinkNum, Reg) \
8572908d778ab3e244900c310974e1fc1c69066e450James Bottomley                 (LmSEQ_PHY_BASE(Mode, LinkNum) + (u32) (Reg))
8582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMODEPTR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, MODEPTR)
8602908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmALTMODE(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ALTMODE)
8622908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmATOMICXCHG(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ATOMICXCHG)
8642908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmFLAG(LinkNum)			LmSEQ_PHY_REG(0, LinkNum, FLAG)
8662908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2INTCTL(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ARP2INTCTL)
8682908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSTACK(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, STACK)
8702908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmFUNCTION1(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, FUNCTION1)
8722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRGMCNT(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, PRGMCNT)
8742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmACCUM(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ACCUM)
8762908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSINDEX(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, SINDEX)
8782908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmDINDEX(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, DINDEX)
8802908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmALLONES(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ALLONES)
8822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmALLZEROS(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ALLZEROS)
8842908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSINDIR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, SINDIR)
8862908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmDINDIR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, DINDIR)
8882908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmJUMLDIR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, JUMLDIR)
8902908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmARP2HALTCODE(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, ARP2HALTCODE)
8922908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmCURRADDR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, CURRADDR)
8942908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmLASTADDR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, LASTADDR)
8962908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmNXTLADDR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, NXTLADDR)
8982908d778ab3e244900c310974e1fc1c69066e450James Bottomley
8992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmDBGPORTPTR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, DBGPORTPTR)
9002908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmDBGPORT(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, DBGPORT)
9022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSCRATCHPAGE(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, SCRATCHPAGE)
9042908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnSCRATCHPAGE(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 	\
9062908d778ab3e244900c310974e1fc1c69066e450James Bottomley						      MnSCRATCHPAGE)
9072908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmTIMERCALC(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x28)
9092908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmREQMBX(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x30)
9112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmRSPMBX(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x34)
9132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnINT(LinkNum, Mode)		LmSEQ_PHY_REG(Mode, LinkNum, 0x38)
9152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CTXMEMSIZE		0x80000000	/* ro */
9172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmACKREQ		0x08000000
9182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmNAKREQ		0x04000000
9192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXMTERR		0x02000000
9202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM5OOBSVC		0x01000000
9212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmHWTINT		0x00800000
9222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCTXDONE		0x00100000
9232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM2REQMBXF		0x00080000
9242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM2RSPMBXE		0x00040000
9252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDMAERR		0x00020000
9262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVPRIM		0x00010000
9272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRCVERR		0x00008000
9282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmADDRRCV		0x00004000
9292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnHDRMISS		0x00002000
9302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnWAITSCB		0x00001000
9312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnRLSSCB		0x00000800
9322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnSAVECTX		0x00000400
9332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnFETCHSG		0x00000200
9342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnLOADCTX		0x00000100
9352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGICL		0x00000080
9362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGSATA		0x00000040
9372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGEXPSATA		0x00000020
9382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGCMPLT		0x00000010
9392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGRBUF		0x00000008
9402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnSAVETTR		0x00000004
9412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGRDAT		0x00000002
9422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCFGHDR		0x00000001
9432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnINTEN(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x3C)
9452908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmACKREQ		0x08000000
9472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmNAKREQ		0x04000000
9482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnXMTERR		0x02000000
9492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmM5OOBSVC		0x01000000
9502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmHWTINT		0x00800000
9512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCTXDONE		0x00100000
9522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmM2REQMBXF		0x00080000
9532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmM2RSPMBXE		0x00040000
9542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnDMAERR		0x00020000
9552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmRCVPRIM		0x00010000
9562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmRCVERR		0x00008000
9572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmADDRRCV		0x00004000
9582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnHDRMISS		0x00002000
9592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnWAITSCB		0x00001000
9602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnRLSSCB		0x00000800
9612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnSAVECTX		0x00000400
9622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnFETCHSG		0x00000200
9632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnLOADCTX		0x00000100
9642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGICL		0x00000080
9652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGSATA		0x00000040
9662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGEXPSATA	0x00000020
9672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGCMPLT		0x00000010
9682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGRBUF		0x00000008
9692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnSAVETTR		0x00000004
9702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGRDAT		0x00000002
9712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmMnCFGHDR		0x00000001
9722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM0INTEN_MASK		(EN_LmMnCFGCMPLT | EN_LmMnCFGRBUF | \
9742908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnSAVETTR | EN_LmMnCFGRDAT | \
9752908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnCFGHDR | EN_LmRCVERR | \
9762908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmADDRRCV | EN_LmMnHDRMISS | \
9772908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnRLSSCB | EN_LmMnSAVECTX | \
9782908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnFETCHSG | EN_LmMnLOADCTX | \
9792908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmHWTINT | EN_LmMnCTXDONE | \
9802908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmRCVPRIM | EN_LmMnCFGSATA | \
9812908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnCFGEXPSATA | EN_LmMnDMAERR)
9822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM1INTEN_MASK		(EN_LmMnCFGCMPLT | EN_LmADDRRCV | \
9842908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnRLSSCB | EN_LmMnSAVECTX | \
9852908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnFETCHSG | EN_LmMnLOADCTX | \
9862908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnXMTERR | EN_LmHWTINT | \
9872908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMnCTXDONE | EN_LmRCVPRIM | \
9882908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmRCVERR | EN_LmMnDMAERR)
9892908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM2INTEN_MASK		(EN_LmADDRRCV | EN_LmHWTINT | \
9912908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmM2REQMBXF | EN_LmRCVPRIM | \
9922908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmRCVERR)
9932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmM5INTEN_MASK		(EN_LmADDRRCV | EN_LmM5OOBSVC | \
9952908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmHWTINT | EN_LmRCVPRIM | \
9962908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmRCVERR)
9972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
9982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmXMTPRIMD(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x40)
9992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmXMTPRIMCS(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x44)
10012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmCONSTAT(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x45)
10032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDMAERRS(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x46)
10052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnSGDMAERRS(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x47)
10072908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM0EXPHDRP(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x48)
10092908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM1SASALIGN(LinkNum)		LmSEQ_PHY_REG(1, LinkNum, 0x48)
10112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SAS_ALIGN_DEFAULT		0xFF
10122908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM0MSKHDRP(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x49)
10142908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM1STPALIGN(LinkNum)		LmSEQ_PHY_REG(1, LinkNum, 0x49)
10162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define STP_ALIGN_DEFAULT		0x1F
10172908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM0RCVHDRP(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x4A)
10192908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM1XMTHDRP(LinkNum)		LmSEQ_PHY_REG(1, LinkNum, 0x4A)
10212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM0ICLADR(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x4B)
10232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM1ALIGNMODE(LinkNum)		LmSEQ_PHY_REG(1, LinkNum, 0x4B)
10252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDISALIGN		0x20
10272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmROTSTPALIGN		0x10
10282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSTPALIGN		0x08
10292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmROTNOTIFY		0x04
10302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDUALALIGN		0x02
10312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmROTALIGN		0x01
10322908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM0EXPRCVNT(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x4C)
10342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM1XMTCNT(LinkNum)		LmSEQ_PHY_REG(1, LinkNum, 0x4C)
10362908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnBUFSTAT(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x4E)
10382908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnBUFPERR		0x01
10402908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10412908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
10422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnXFRLVL(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x59)
10432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXFRLVL_128		0x05
10452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXFRLVL_256		0x04
10462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXFRLVL_512		0x03
10472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXFRLVL_1024		0x02
10482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXFRLVL_1536		0x01
10492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnXFRLVL_2048		0x00
10502908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10512908d778ab3e244900c310974e1fc1c69066e450James Bottomley /* mode 0-1 */
10522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnSGDMACTL(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x5A)
10532908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnRESETSG		0x04
10552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnSTOPSG		0x02
10562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnSTARTSG		0x01
10572908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10582908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
10592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnSGDMASTAT(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x5B)
10602908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10612908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
10622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDDMACTL(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x5C)
10632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnFLUSH		0x40		/* wo */
10652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnRLSRTRY		0x20		/* wo */
10662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDISCARD		0x10		/* wo */
10672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnRESETDAT		0x08		/* wo */
10682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnSUSDAT		0x04		/* wo */
10692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnSTOPDAT		0x02		/* wo */
10702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnSTARTDAT		0x01		/* wo */
10712908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10722908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
10732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDDMASTAT(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x5D)
10742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDPEMPTY		0x80
10762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnFLUSHING		0x40
10772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDDMAREQ		0x20
10782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnHDMAREQ		0x10
10792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDATFREE		0x08
10802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDATSUS		0x04
10812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDATACT		0x02
10822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnDATEN		0x01
10832908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10842908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
10852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDDMAMODE(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x5E)
10862908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDMATYPE_NORMAL		0x0000
10882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDMATYPE_HOST_ONLY_TX	0x0001
10892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDMATYPE_DEVICE_ONLY_TX	0x0002
10902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDMATYPE_INVALID		0x0003
10912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDMATYPE_MASK	0x0003
10922908d778ab3e244900c310974e1fc1c69066e450James Bottomley
10932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDMAWRAP		0x0004
10942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnBITBUCKET		0x0008
10952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDISHDR		0x0010
10962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnSTPCRC		0x0020
10972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmXTEST			0x0040
10982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDISCRC		0x0080
10992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnENINTLK		0x0100
11002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnADDRFRM		0x0400
11012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnENXMTCRC		0x0800
11022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11032908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
11042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnXFRCNT(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x70)
11052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11062908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
11072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDPSEL(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x7B)
11082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDPSEL_MASK		0x07
11092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnEOLPRE		0x40
11102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnEOSPRE		0x80
11112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11122908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Registers used in conjunction with LmMnDPSEL and LmMnDPACC registers */
11132908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Receive Mode n = 0 */
11142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnHRADDR			0x00
11152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnHBYTECNT			0x01
11162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnHREWIND			0x02
11172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDWADDR			0x03
11182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDSPACECNT			0x04
11192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDFRMSIZE			0x05
11202908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11212908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Registers used in conjunction with LmMnDPSEL and LmMnDPACC registers */
11222908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Transmit Mode n = 1 */
11232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnHWADDR			0x00
11242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnHSPACECNT			0x01
11252908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* #define LmMnHREWIND			0x02 */
11262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDRADDR			0x03
11272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDBYTECNT			0x04
11282908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* #define LmMnDFRMSIZE			0x05 */
11292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11302908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
11312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDPACC(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x78)
11322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnDPACC_MASK		0x00FFFFFF
11332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11342908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0-1 */
11352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnHOLDLVL(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x7D)
11362908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT0(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x80)
11382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT0BYTE0			0x80
11392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT0BYTE1			0x81
11402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT0BYTE2			0x82
11412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT0BYTE3			0x83
11422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRAMERCVD		0x80000000
11442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmXFRRDYRCVD		0x40000000
11452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmUNKNOWNP		0x20000000
11462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBREAK			0x10000000
11472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDONE			0x08000000
11482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmOPENACPT		0x04000000
11492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmOPENRJCT		0x02000000
11502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmOPENRTRY		0x01000000
11512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmCLOSERV1		0x00800000
11522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmCLOSERV0		0x00400000
11532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmCLOSENORM		0x00200000
11542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmCLOSECLAF		0x00100000
11552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmNOTIFYRV2		0x00080000
11562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmNOTIFYRV1		0x00040000
11572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmNOTIFYRV0		0x00020000
11582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmNOTIFYSPIN		0x00010000
11592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADRV4		0x00008000
11602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADRV3		0x00004000
11612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADRV2		0x00002000
11622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADRV1		0x00001000
11632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADSES		0x00000800
11642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADRVCH1		0x00000400
11652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADRVCH0		0x00000200
11662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADCH		0x00000100
11672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPRVWP		0x00000080
11682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPWP			0x00000040
11692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPWD			0x00000020
11702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPWC			0x00000010
11712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPRV2		0x00000008
11722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPRV1		0x00000004
11732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPRV0		0x00000002
11742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmAIPNRML		0x00000001
11752908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBROADCAST_MASK	(LmBROADCH | LmBROADRVCH0 | \
11772908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 LmBROADRVCH1)
11782908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT1(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0x84)
11802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT1BYTE0			0x84
11812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT1BYTE1			0x85
11822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT1BYTE2			0x86
11832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRMSTAT1BYTE3			0x87
11842908d778ab3e244900c310974e1fc1c69066e450James Bottomley
11852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmFRMRCVDSTAT		0x80000000
11862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBREAK_DET		0x04000000
11872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmCLOSE_DET		0x02000000
11882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDONE_DET		0x01000000
11892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmXRDY			0x00040000
11902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmSYNCSRST		0x00020000
11912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmSYNC			0x00010000
11922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmXHOLD			0x00008000
11932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmRRDY			0x00004000
11942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmHOLD			0x00002000
11952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmROK			0x00001000
11962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmRIP			0x00000800
11972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmCRBLK			0x00000400
11982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmACK			0x00000200
11992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmNAK			0x00000100
12002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmHARDRST		0x00000080
12012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmERROR			0x00000040
12022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmRERR			0x00000020
12032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmPMREQP		0x00000010
12042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmPMREQS		0x00000008
12052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmPMACK			0x00000004
12062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmPMNAK			0x00000002
12072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmDMAT			0x00000001
12082908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12092908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 1 */
12102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	LmMnSATAFS(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x7E)
12112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	LmMnXMTSIZE(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0x93)
12122908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12132908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* mode 0 */
12142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnFRMERR(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0xB0)
12152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmACRCERR		0x00000800
12172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmPHYOVRN		0x00000400
12182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmOBOVRN		0x00000200
12192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmMnZERODATA		0x00000100
12202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmSATAINTLK		0x00000080
12212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMnCRCERR		0x00000020
12222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmRRDYOVRN		0x00000010
12232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMISSSOAF		0x00000008
12242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMISSSOF		0x00000004
12252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMISSEOAF		0x00000002
12262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmMISSEOF		0x00000001
12272908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmFRMERREN(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0xB4)
12292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmACRCERR		0x00000800
12312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmPHYOVRN		0x00000400
12322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmOBOVRN		0x00000200
12332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmMnZERODATA		0x00000100
12342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmSATAINTLK		0x00000080
12352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmFRMBAD		0x00000040
12362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmMnCRCERR		0x00000020
12372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmRRDYOVRN		0x00000010
12382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmMISSSOAF		0x00000008
12392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmMISSSOF		0x00000004
12402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmMISSEOAF		0x00000002
12412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmMISSEOF		0x00000001
12422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	LmFRMERREN_MASK  	(EN_LmSATAINTLK | EN_LmMnCRCERR | \
12442908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmRRDYOVRN | EN_LmMISSSOF | \
12452908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmMISSEOAF | EN_LmMISSEOF | \
12462908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmACRCERR | LmPHYOVRN | \
12472908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmOBOVRN | EN_LmMnZERODATA)
12482908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmHWTSTATEN(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0xC5)
12502908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmDONETO		0x80
12522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmINVDISP		0x40
12532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmINVDW		0x20
12542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmDWSEVENT		0x08
12552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmCRTTTO		0x04
12562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmANTTTO		0x02
12572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmBITLTTO		0x01
12582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmHWTSTATEN_MASK	(EN_LmINVDISP | EN_LmINVDW | \
12602908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmDWSEVENT | EN_LmCRTTTO | \
12612908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmANTTTO | EN_LmDONETO | \
12622908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmBITLTTO)
12632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmHWTSTAT(LinkNum) 		LmSEQ_PHY_REG(0, LinkNum, 0xC7)
12652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDONETO		0x80
12672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmINVDISP		0x40
12682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmINVDW			0x20
12692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDWSEVENT		0x08
12702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmCRTTTO		0x04
12712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmANTTTO		0x02
12722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmBITLTTO		0x01
12732908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDATABUFADR(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0xC8)
12752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmDATABUFADR_MASK	0x0FFF
12762908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmMnDATABUF(LinkNum, Mode)	LmSEQ_PHY_REG(Mode, LinkNum, 0xCA)
12782908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	LmPRIMSTAT0EN(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0xE0)
12802908d778ab3e244900c310974e1fc1c69066e450James Bottomley
12812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmUNKNOWNP 		0x20000000
12822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBREAK		0x10000000
12832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmDONE		0x08000000
12842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmOPENACPT		0x04000000
12852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmOPENRJCT		0x02000000
12862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmOPENRTRY		0x01000000
12872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmCLOSERV1		0x00800000
12882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmCLOSERV0		0x00400000
12892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmCLOSENORM		0x00200000
12902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmCLOSECLAF		0x00100000
12912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmNOTIFYRV2		0x00080000
12922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmNOTIFYRV1		0x00040000
12932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmNOTIFYRV0		0x00020000
12942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmNOTIFYSPIN		0x00010000
12952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRV4		0x00008000
12962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRV3		0x00004000
12972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRV2		0x00002000
12982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRV1		0x00001000
12992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRV0		0x00000800
13002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRVCH1		0x00000400
13012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADRVCH0		0x00000200
13022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmBROADCH		0x00000100
13032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPRVWP		0x00000080
13042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPWP		0x00000040
13052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPWD		0x00000020
13062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPWC		0x00000010
13072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPRV2		0x00000008
13082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPRV1		0x00000004
13092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPRV0		0x00000002
13102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmAIPNRML		0x00000001
13112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LmPRIMSTAT0EN_MASK	(EN_LmBREAK | \
13132908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmDONE | EN_LmOPENACPT | \
13142908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmOPENRJCT | EN_LmOPENRTRY | \
13152908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmCLOSERV1 | EN_LmCLOSERV0 | \
13162908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmCLOSENORM | EN_LmCLOSECLAF | \
13172908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmBROADRV4 | EN_LmBROADRV3 | \
13182908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmBROADRV2 | EN_LmBROADRV1 | \
13192908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmBROADRV0 | EN_LmBROADRVCH1 | \
13202908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmBROADRVCH0 | EN_LmBROADCH | \
13212908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmAIPRVWP | EN_LmAIPWP | \
13222908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmAIPWD | EN_LmAIPWC | \
13232908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmAIPRV2 | EN_LmAIPRV1 | \
13242908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmAIPRV0 | EN_LmAIPNRML)
13252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRIMSTAT1EN(LinkNum)		LmSEQ_PHY_REG(0, LinkNum, 0xE4)
13272908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmXRDY		0x00040000
13292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmSYNCSRST		0x00020000
13302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		EN_LmSYNC		0x00010000
13312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmXHOLD		0x00008000
13322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmRRDY		0x00004000
13332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmHOLD		0x00002000
13342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmROK		0x00001000
13352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmRIP		0x00000800
13362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmCRBLK		0x00000400
13372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmACK		0x00000200
13382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmNAK		0x00000100
13392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmHARDRST		0x00000080
13402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmERROR		0x00000040
13412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmRERR		0x00000020
13422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmPMREQP		0x00000010
13432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmPMREQS		0x00000008
13442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmPMACK		0x00000004
13452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmPMNAK		0x00000002
13462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	EN_LmDMAT		0x00000001
13472908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmPRIMSTAT1EN_MASK		(EN_LmHARDRST | \
13492908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmSYNCSRST | \
13502908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmPMREQP | EN_LmPMREQS | \
13512908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 EN_LmPMACK | EN_LmPMNAK)
13522908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSMSTATE(LinkNum) 		LmSEQ_PHY_REG(0, LinkNum, 0xE8)
13542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSMSTATEBRK(LinkNum) 		LmSEQ_PHY_REG(0, LinkNum, 0xEC)
13562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSMDBGCTL(LinkNum) 		LmSEQ_PHY_REG(0, LinkNum, 0xF0)
13582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13592908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13602908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
13612908d778ab3e244900c310974e1fc1c69066e450James Bottomley * LmSEQ CIO Bus Mode 3 Register.
13622908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Mode 3: Configuration and Setup, IOP Context SCB.
13632908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
13642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3SATATIMER(LinkNum) 		LmSEQ_PHY_REG(3, LinkNum, 0x48)
13652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC0(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x90)
13672908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC1(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x92)
13692908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC2(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x94)
13712908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC3(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x96)
13732908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC4(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x98)
13752908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC5(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x9A)
13772908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC6(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x9C)
13792908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC7(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0x9E)
13812908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC8(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0xA4)
13832908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC9(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0xA6)
13852908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3INTVEC10(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0xB0)
13872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmM3FRMGAP(LinkNum)		LmSEQ_PHY_REG(3, LinkNum, 0xB4)
13892908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmBITL_TIMER(LinkNum) 		LmSEQ_PHY_REG(0, LinkNum, 0xA2)
13912908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmWWN(LinkNum) 			LmSEQ_PHY_REG(0, LinkNum, 0xA8)
13932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13942908d778ab3e244900c310974e1fc1c69066e450James Bottomley
13952908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
13962908d778ab3e244900c310974e1fc1c69066e450James Bottomley * LmSEQ CIO Bus Mode 5 Registers.
13972908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Mode 5: Phy/OOB Control and Status.
13982908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
13992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_OOB_REG(phy_id, reg)	LmSEQ_PHY_REG(5, (phy_id), (reg))
14002908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_BFLTR	0x100
14022908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BFLTR_THR_MASK		0xF0
14042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BFLTR_TC_MASK		0x0F
14052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_INIT_MIN	0x102
14072908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_INIT_MAX	0x104
14092908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_INIT_NEG	0x106
14112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	OOB_SAS_MIN	0x108
14132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_SAS_MAX	0x10A
14152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_SAS_NEG	0x10C
14172908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_WAKE_MIN	0x10E
14192908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_WAKE_MAX	0x110
14212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_WAKE_NEG	0x112
14232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_IDLE_MAX	0x114
14252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_BURST_MAX	0x116
14272908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_DATA_KBITS	0x126
14292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_ALIGN_0_DATA	0x12C
14312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_ALIGN_1_DATA	0x130
14332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define D10_2_DATA_k		0x00
14352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SYNC_DATA_k		0x02
14362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ALIGN_1_DATA_k		0x04
14372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ALIGN_0_DATA_k		0x08
14382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define BURST_DATA_k		0x10
14392908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_PHY_RESET_COUNT	0x13C
14412908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_SIG_GEN	0x140
14432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		START_OOB		0x80
14452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		START_DWS		0x40
14462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ALIGN_CNT3		0x30
14472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	ALIGN_CNT2		0x20
14482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	ALIGN_CNT1		0x10
14492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	ALIGN_CNT4		0x00
14502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STOP_DWS		0x08
14512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEND_COMSAS		0x04
14522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEND_COMINIT		0x02
14532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEND_COMWAKE		0x01
14542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_XMIT	0x141
14562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TX_ENABLE		0x80
14582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XMIT_OOB_BURST		0x10
14592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XMIT_D10_2		0x08
14602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XMIT_SYNC		0x04
14612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XMIT_ALIGN_1		0x02
14622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XMIT_ALIGN_0		0x01
14632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define FUNCTION_MASK	0x142
14652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_MODE_DIS		0x80
14672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_MODE_DIS		0x40
14682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SPINUP_HOLD_DIS		0x20
14692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HOT_PLUG_DIS		0x10
14702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PS_DIS		0x08
14712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FUNCTION_MASK_DEFAULT	(SPINUP_HOLD_DIS | SATA_PS_DIS)
14722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_MODE	0x143
14742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_MODE		0x80
14762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_MODE		0x40
14772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SLOW_CLK		0x20
14782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FORCE_XMIT_15		0x08
14792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_SPEED_60		0x04
14802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_SPEED_30		0x02
14812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_SPEED_15		0x01
14822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	CURRENT_STATUS	0x144
14842908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_OOB_DONE	0x80
14862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_LOSS_OF_SIGNAL	0x40
14872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_SPINUP_HOLD	0x20
14882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_HOT_PLUG_CNCT	0x10
14892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_GTO_TIMEOUT	0x08
14902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_OOB_TIMEOUT	0x04
14912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_DEVICE_PRESENT	0x02
14922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_OOB_ERROR	0x01
14932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CURRENT_OOB1_ERROR	(CURRENT_HOT_PLUG_CNCT | \
14952908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_GTO_TIMEOUT)
14962908d778ab3e244900c310974e1fc1c69066e450James Bottomley
14972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CURRENT_OOB2_ERROR	(CURRENT_HOT_PLUG_CNCT | \
14982908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_OOB_ERROR)
14992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVICE_ADDED_W_CNT	(CURRENT_OOB_DONE | \
15012908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_HOT_PLUG_CNCT | \
15022908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_DEVICE_PRESENT)
15032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVICE_ADDED_WO_CNT	(CURRENT_OOB_DONE | \
15052908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_DEVICE_PRESENT)
15062908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	DEVICE_REMOVED		CURRENT_LOSS_OF_SIGNAL
15082908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_PHY_MASK	(CURRENT_OOB_DONE | \
15102908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_LOSS_OF_SIGNAL | \
15112908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_SPINUP_HOLD | \
15122908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_HOT_PLUG_CNCT | \
15132908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_GTO_TIMEOUT | \
15142908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_DEVICE_PRESENT | \
15152908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_OOB_ERROR )
15162908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CURRENT_ERR_MASK	(CURRENT_LOSS_OF_SIGNAL | \
15182908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_GTO_TIMEOUT | \
15192908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_OOB_TIMEOUT | \
15202908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 CURRENT_OOB_ERROR )
15212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SPEED_MASK	0x145
15232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_SPEED_30_DIS	0x10
15252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_SPEED_15_DIS	0x08
15262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SPEED_60_DIS	0x04
15272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SPEED_30_DIS	0x02
15282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SPEED_15_DIS	0x01
15292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SPEED_MASK_DEFAULT	0x00
15302908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_TIMER_ENABLE	0x14D
15322908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HOT_PLUG_EN		0x80
15342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RCD_EN			0x40
15352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	COMTIMER_EN		0x20
15362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SNTT_EN			0x10
15372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SNLT_EN			0x04
15382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SNWT_EN			0x02
15392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ALIGN_EN		0x01
15402908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_STATUS		0x14E
15422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_DONE		0x80
15442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LOSS_OF_SIGNAL		0x40		/* ro */
15452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SPINUP_HOLD		0x20
15462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HOT_PLUG_CNCT		0x10		/* ro */
15472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		GTO_TIMEOUT		0x08		/* ro */
15482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_TIMEOUT		0x04		/* ro */
15492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVICE_PRESENT		0x02		/* ro */
15502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_ERROR		0x01		/* ro */
15512908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_STATUS_ERROR_MASK	(LOSS_OF_SIGNAL | GTO_TIMEOUT | \
15532908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 OOB_TIMEOUT | OOB_ERROR)
15542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define OOB_STATUS_CLEAR	0x14F
15562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_DONE_CLR		0x80
15582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LOSS_OF_SIGNAL_CLR 	0x40
15592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SPINUP_HOLD_CLR		0x20
15602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HOT_PLUG_CNCT_CLR     	0x10
15612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		GTO_TIMEOUT_CLR		0x08
15622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_TIMEOUT_CLR		0x04
15632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_ERROR_CLR		0x01
15642908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define HOT_PLUG_DELAY		0x150
15662908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* In 5 ms units. 20 = 100 ms. */
15672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	HOTPLUG_DELAY_TIMEOUT		20
15682908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15692908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define INT_ENABLE_2		0x15A
15712908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_DONE_EN		0x80
15732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		LOSS_OF_SIGNAL_EN	0x40
15742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SPINUP_HOLD_EN		0x20
15752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HOT_PLUG_CNCT_EN	0x10
15762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		GTO_TIMEOUT_EN		0x08
15772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_TIMEOUT_EN		0x04
15782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DEVICE_PRESENT_EN	0x02
15792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OOB_ERROR_EN		0x01
15802908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PHY_CONTROL_0		0x160
15822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_LOWPWREN_TX		0x80
15842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_LOWPWREN_RX		0x40
15852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SPARE_REG_160_B5	0x20
15862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OFFSET_CANCEL_RX	0x10
15872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15882908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 3:2 */
15892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_RXCOMCENTER_60V	0x00
15902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_RXCOMCENTER_70V	0x04
15912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_RXCOMCENTER_80V	0x08
15922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_RXCOMCENTER_90V	0x0C
15932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	PHY_RXCOMCENTER_MASK	0x0C
15942908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_RESET		0x02
15962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEFAULT_SEL		0x01
15972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
15982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PHY_CONTROL_1		0x161
15992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16002908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 2:0 */
16012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_50mv	0x00
16022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_75mv	0x01
16032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_100mv	0x02
16042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_125mv	0x03
16052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_150mv	0x04
16062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_175mv	0x05
16072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_200mv	0x06
16082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_225mv	0x07
16092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DETLEVEL_MASK	0x07
16102908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16112908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 5:3 */
16122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_50mv	0x00
16132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_75mv	0x08
16142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_100mv	0x10
16152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_125mv	0x11
16162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_150mv	0x20
16172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_175mv	0x21
16182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_200mv	0x30
16192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_225mv	0x31
16202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DETLEVEL_MASK	0x38
16212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PHY_CONTROL_2		0x162
16232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16242908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 7:5 */
16252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_400mv	0x00
16262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_450mv	0x20
16272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_500mv	0x40
16282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_550mv	0x60
16292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_600mv	0x80
16302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_650mv	0xA0
16312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_725mv	0xC0
16322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PHY_DRV_800mv	0xE0
16332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SATA_PHY_DRV_MASK	0xE0
16342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16352908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 4:3 */
16362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PREEMP_0		0x00
16372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PREEMP_1		0x08
16382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PREEMP_2		0x10
16392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PREEMP_3		0x18
16402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_PREEMP_MASK	0x18
16412908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_CMSH1P5		0x04
16432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16442908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 1:0 */
16452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_SLEW_0		0x00
16462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_SLEW_1		0x01
16472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_SLEW_2		0x02
16482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_SLEW_3		0x03
16492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SATA_SLEW_MASK		0x03
16502908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PHY_CONTROL_3		0x163
16522908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16532908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 7:5 */
16542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_400mv	0x00
16552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_450mv	0x20
16562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_500mv	0x40
16572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_550mv	0x60
16582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_600mv	0x80
16592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_650mv	0xA0
16602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_725mv	0xC0
16612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PHY_DRV_800mv	0xE0
16622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DRV_MASK	0xE0
16632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16642908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 4:3 */
16652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PREEMP_0		0x00
16662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PREEMP_1		0x08
16672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PREEMP_2		0x10
16682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PREEMP_3		0x18
16692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_PREEMP_MASK		0x18
16702908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_CMSH1P5		0x04
16722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16732908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* bits 1:0 */
16742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_SLEW_0		0x00
16752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_SLEW_1		0x01
16762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_SLEW_2		0x02
16772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_SLEW_3		0x03
16782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SAS_SLEW_MASK		0x03
16792908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PHY_CONTROL_4		0x168
16812908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_DONE_CAL_TX		0x80
16832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_DONE_CAL_RX		0x40
16842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		RX_TERM_LOAD_DIS	0x20
16852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TX_TERM_LOAD_DIS	0x10
16862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		AUTO_TERM_CAL_DIS	0x08
16872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_SIGDET_FLTR_EN	0x04
16882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OSC_FREQ		0x02
16892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PHY_START_CAL		0x01
16902908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16912908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
1692b595076a180a56d1bb170e6eceda6eb9d76f4cd3Uwe Kleine-König * HST_PCIX2 Registers, Address Range: (0x00-0xFC)
16932908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
16942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIX_REG_BASE_ADR		0xB8040000
16952908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_VENDOR_ID	0x00
16972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
16982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_DEVICE_ID	0x02
16992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_COMMAND	0x04
17012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		INT_DIS			0x0400
17032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FBB_EN			0x0200		/* ro */
17042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SERR_EN			0x0100
17052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		STEP_EN			0x0080		/* ro */
17062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PERR_EN			0x0040
17072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		VGA_EN			0x0020		/* ro */
17082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MWI_EN			0x0010
17092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SPC_EN			0x0008
17102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MST_EN			0x0004
17112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MEM_EN			0x0002
17122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		IO_EN			0x0001
17132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_STATUS	0x06
17152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PERR_DET		0x8000
17172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SERR_GEN		0x4000
17182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MABT_DET		0x2000
17192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TABT_DET		0x1000
17202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		TABT_GEN		0x0800
17212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		DPERR_DET		0x0100
17222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		CAP_LIST		0x0010
17232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		INT_STAT		0x0008
17242908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_DEVREV_ID	0x08
17262908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_CLASS_CODE	0x09
17282908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_CACHELINE_SIZE	0x0C
17302908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_MBAR0	0x10
17322908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	PCIC_MBAR0_OFFSET	0
17342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_MBAR1	0x18
17362908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	PCIC_MBAR1_OFFSET	2
17382908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_IOBAR	0x20
17402908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	PCIC_IOBAR_OFFSET	4
17422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	PCIC_SUBVENDOR_ID	0x2C
17442908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_SUBSYTEM_ID	0x2E
17462908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIX_STATUS		0x44
17482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	RCV_SCE		0x20000000
17492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	UNEXP_SC	0x00080000
17502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SC_DISCARD	0x00040000
17512908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ECC_CTRL_STAT		0x48
17532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	UNCOR_ECCERR	0x00000008
17542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_PM_CSR		0x5C
17562908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PWR_STATE_D0		0
17582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PWR_STATE_D1		1	/* not supported */
17592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PWR_STATE_D2		2 	/* not supported */
17602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PWR_STATE_D3		3
17612908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_BASE1	0x6C	/* internal use only */
17632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BASE1_RSVD		0xFFFFFFF8
17652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_BASEA	0x70	/* internal use only */
17672908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BASEA_RSVD		0xFFFFFFC0
17692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	BASEA_START		0
17702908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_BASEB	0x74	/* internal use only */
17722908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BASEB_RSVD		0xFFFFFF80
17742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BASEB_IOMAP_MASK	0x7F
17752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	BASEB_START		0x80
17762908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_BASEC	0x78	/* internal use only */
17782908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		BASEC_RSVD		0xFFFFFFFC
17802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	BASEC_MASK		0x03
17812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	BASEC_START		0x58
17822908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_MBAR_KEY	0x7C	/* internal use only */
17842908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	MBAR_KEY_MASK		0xFFFFFFFF
17862908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_HSTPCIX_CNTRL	0xA0
17882908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	REWIND_DIS		0x0800
17902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SC_TMR_DIS		0x04000000
17912908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_MBAR0_MASK	0xA8
17932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PCIC_MBAR0_SIZE_MASK 	0x1FFFE000
17942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PCIC_MBAR0_SIZE_SHIFT 	13
17952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PCIC_MBAR0_SIZE(val)	\
17962908d778ab3e244900c310974e1fc1c69066e450James Bottomley		    (((val) & PCIC_MBAR0_SIZE_MASK) >> PCIC_MBAR0_SIZE_SHIFT)
17972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
17982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_FLASH_MBAR	0xB8
17992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_INTRPT_STAT 0xD4
18012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PCIC_TP_CTRL	0xFC
18032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18042908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
1805b595076a180a56d1bb170e6eceda6eb9d76f4cd3Uwe Kleine-König * EXSI Registers, Address Range: (0x00-0xFC)
18062908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
18072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define EXSI_REG_BASE_ADR		REG_BASE_ADDR_EXSI
18082908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	EXSICNFGR	(EXSI_REG_BASE_ADR + 0x00)
18102908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCMINITIALIZED		0x80000000
18122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		ASIEN			0x00400000
18132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		HCMODE			0x00200000
18142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		PCIDEF			0x00100000
18152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		COMSTOCK		0x00080000
18162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEEPROMEND		0x00040000
18172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MSTTIMEN		0x00020000
18182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XREGEX			0x00000200
18192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		NVRAMW			0x00000100
18202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		NVRAMEX			0x00000080
18212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRAMW			0x00000040
18222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRAMEX			0x00000020
18232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLASHW			0x00000010
18242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLASHEX			0x00000008
18252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEEPROMCFG		0x00000004
18262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEEPROMTYP		0x00000002
18272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SEEPROMEX		0x00000001
18282908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define EXSICNTRLR	(EXSI_REG_BASE_ADR + 0x04)
18312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		MODINT_EN		0x00000001
18332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define PMSTATR		(EXSI_REG_BASE_ADR + 0x10)
18362908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLASHRST		0x00000002
18382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLASHRDY		0x00000001
18392908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18402908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define FLCNFGR		(EXSI_REG_BASE_ADR + 0x14)
18422908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLWEH_MASK		0x30000000
18442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLWESU_MASK		0x0C000000
18452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLWEPW_MASK		0x03F00000
18462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		FLOEH_MASK		0x000C0000
18472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	FLOESU_MASK		0x00030000
18482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	FLOEPW_MASK		0x0000FC00
18492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	FLCSH_MASK		0x00000300
18502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	FLCSSU_MASK		0x000000C0
18512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	FLCSPW_MASK		0x0000003F
18522908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SRCNFGR		(EXSI_REG_BASE_ADR + 0x18)
18542908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRWEH_MASK		0x30000000
18562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRWESU_MASK		0x0C000000
18572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRWEPW_MASK		0x03F00000
18582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SROEH_MASK		0x000C0000
18602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SROESU_MASK		0x00030000
18612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SROEPW_MASK		0x0000FC00
18622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRCSH_MASK		0x00000300
18632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRCSSU_MASK		0x000000C0
18642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SRCSPW_MASK		0x0000003F
18652908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define NVCNFGR		(EXSI_REG_BASE_ADR + 0x1C)
18672908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVWEH_MASK		0x30000000
18692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVWESU_MASK		0x0C000000
18702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVWEPW_MASK		0x03F00000
18712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVOEH_MASK		0x000C0000
18722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVOESU_MASK		0x00030000
18732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVOEPW_MASK		0x0000FC00
18742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVCSH_MASK		0x00000300
18752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVCSSU_MASK		0x000000C0
18762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	NVCSPW_MASK		0x0000003F
18772908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define XRCNFGR		(EXSI_REG_BASE_ADR + 0x20)
18792908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XRWEH_MASK		0x30000000
18812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XRWESU_MASK		0x0C000000
18822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XRWEPW_MASK		0x03F00000
18832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XROEH_MASK		0x000C0000
18842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XROESU_MASK		0x00030000
18852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XROEPW_MASK		0x0000FC00
18862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XRCSH_MASK		0x00000300
18872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XRCSSU_MASK		0x000000C0
18882908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XRCSPW_MASK		0x0000003F
18892908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define XREGADDR	(EXSI_REG_BASE_ADR + 0x24)
18912908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XRADDRINCEN		0x80000000
18932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	XREGADD_MASK		0x007FFFFF
18942908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18952908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define XREGDATAR	(EXSI_REG_BASE_ADR + 0x28)
18972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
18982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		XREGDATA_MASK 		0x0000FFFF
18992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define GPIOOER		(EXSI_REG_BASE_ADR + 0x40)
19012908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define GPIOODENR	(EXSI_REG_BASE_ADR + 0x44)
19032908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define GPIOINVR	(EXSI_REG_BASE_ADR + 0x48)
19052908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define GPIODATAOR	(EXSI_REG_BASE_ADR + 0x4C)
19072908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define GPIODATAIR	(EXSI_REG_BASE_ADR + 0x50)
19092908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define GPIOCNFGR	(EXSI_REG_BASE_ADR + 0x54)
19112908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		GPIO_EXTSRC		0x00000001
19132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SCNTRLR		(EXSI_REG_BASE_ADR + 0xA0)
19152908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SXFERDONE		0x00000100
19172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SXFERCNT_MASK		0x000000E0
19182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SCMDTYP_MASK		0x0000001C
19192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SXFERSTART		0x00000002
19202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SXFEREN			0x00000001
19212908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	SRATER		(EXSI_REG_BASE_ADR + 0xA4)
19232908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	SADDRR		(EXSI_REG_BASE_ADR + 0xA8)
19252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	SADDR_MASK		0x0000FFFF
19272908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAOR		(EXSI_REG_BASE_ADR + 0xAC)
19292908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define	SDATAOR0	(EXSI_REG_BASE_ADR + 0xAC)
19312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAOR1	(EXSI_REG_BASE_ADR + 0xAD)
19322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAOR2	(EXSI_REG_BASE_ADR + 0xAE)
19332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAOR3	(EXSI_REG_BASE_ADR + 0xAF)
19342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAIR		(EXSI_REG_BASE_ADR + 0xB0)
19362908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAIR0	(EXSI_REG_BASE_ADR + 0xB0)
19382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAIR1	(EXSI_REG_BASE_ADR + 0xB1)
19392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAIR2	(EXSI_REG_BASE_ADR + 0xB2)
19402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define SDATAIR3	(EXSI_REG_BASE_ADR + 0xB3)
19412908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ASISTAT0R	(EXSI_REG_BASE_ADR + 0xD0)
19432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	ASIFMTERR		0x00000400
19442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	ASISEECHKERR		0x00000200
19452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	ASIERR			0x00000100
19462908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ASISTAT1R	(EXSI_REG_BASE_ADR + 0xD4)
19482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CHECKSUM_MASK		0x0000FFFF
19492908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ASIERRADDR	(EXSI_REG_BASE_ADR + 0xD8)
19512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ASIERRDATAR	(EXSI_REG_BASE_ADR + 0xDC)
19522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define ASIERRSTATR	(EXSI_REG_BASE_ADR + 0xE0)
19532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CPI2ASIBYTECNT_MASK	0x00070000
19542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CPI2ASIBYTEEN_MASK      0x0000F000
19552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CPI2ASITARGERR_MASK	0x00000F00
19562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CPI2ASITARGMID_MASK	0x000000F0
19572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define 	CPI2ASIMSTERR_MASK	0x0000000F
19582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19592908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
19602908d778ab3e244900c310974e1fc1c69066e450James Bottomley * XSRAM, External SRAM (DWord and any BE pattern accessible)
19612908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
19622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define XSRAM_REG_BASE_ADDR             0xB8100000
19632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define XSRAM_SIZE                        0x100000
19642908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19652908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
19662908d778ab3e244900c310974e1fc1c69066e450James Bottomley * NVRAM Registers, Address Range: (0x00000 - 0x3FFFF).
19672908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
19682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		NVRAM_REG_BASE_ADR	0xBF800000
19692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		NVRAM_MAX_BASE_ADR	0x003FFFFF
19702908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19712908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* OCM base address */
19722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCM_BASE_ADDR		0xA0000000
19732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		OCM_MAX_SIZE		0x20000
19742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19752908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
19762908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Sequencers (Central and Link) Scratch RAM page definitions.
19772908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
19782908d778ab3e244900c310974e1fc1c69066e450James Bottomley
19792908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
19802908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The Central Management Sequencer (CSEQ) Scratch Memory is a 1024
19812908d778ab3e244900c310974e1fc1c69066e450James Bottomley * byte memory.  It is dword accessible and has byte parity
19822908d778ab3e244900c310974e1fc1c69066e450James Bottomley * protection. The CSEQ accesses it in 32 byte windows, either as mode
19832908d778ab3e244900c310974e1fc1c69066e450James Bottomley * dependent or mode independent memory. Each mode has 96 bytes,
19842908d778ab3e244900c310974e1fc1c69066e450James Bottomley * (three 32 byte pages 0-2, not contiguous), leaving 128 bytes of
19852908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Mode Independent memory (four 32 byte pages 3-7). Note that mode
19862908d778ab3e244900c310974e1fc1c69066e450James Bottomley * dependent scratch memory, Mode 8, page 0-3 overlaps mode
19872908d778ab3e244900c310974e1fc1c69066e450James Bottomley * independent scratch memory, pages 0-3.
19882908d778ab3e244900c310974e1fc1c69066e450James Bottomley * - 896 bytes of mode dependent scratch, 96 bytes per Modes 0-7, and
19892908d778ab3e244900c310974e1fc1c69066e450James Bottomley * 128 bytes in mode 8,
19902908d778ab3e244900c310974e1fc1c69066e450James Bottomley * - 259 bytes of mode independent scratch, common to modes 0-15.
19912908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
19922908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Sequencer scratch RAM is 1024 bytes.  This scratch memory is
19932908d778ab3e244900c310974e1fc1c69066e450James Bottomley * divided into mode dependent and mode independent scratch with this
19942908d778ab3e244900c310974e1fc1c69066e450James Bottomley * memory further subdivided into pages of size 32 bytes. There are 5
19952908d778ab3e244900c310974e1fc1c69066e450James Bottomley * pages (160 bytes) of mode independent scratch and 3 pages of
19962908d778ab3e244900c310974e1fc1c69066e450James Bottomley * dependent scratch memory for modes 0-7 (768 bytes). Mode 8 pages
19972908d778ab3e244900c310974e1fc1c69066e450James Bottomley * 0-2 dependent scratch overlap with pages 0-2 of mode independent
19982908d778ab3e244900c310974e1fc1c69066e450James Bottomley * scratch memory.
19992908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
20002908d778ab3e244900c310974e1fc1c69066e450James Bottomley * The host accesses this scratch in a different manner from the
20012908d778ab3e244900c310974e1fc1c69066e450James Bottomley * central sequencer. The sequencer has to use CSEQ registers CSCRPAGE
20022908d778ab3e244900c310974e1fc1c69066e450James Bottomley * and CMnSCRPAGE to access the scratch memory. A flat mapping of the
20030779bf2d2ecc4d9b1e9437ae659f50e6776a7666Matt LaPlante * scratch memory is available for software convenience and to prevent
20042908d778ab3e244900c310974e1fc1c69066e450James Bottomley * corruption while the sequencer is running. This memory is mapped
20052908d778ab3e244900c310974e1fc1c69066e450James Bottomley * onto addresses 800h - BFFh, total of 400h bytes.
20062908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
20072908d778ab3e244900c310974e1fc1c69066e450James Bottomley * These addresses are mapped as follows:
20082908d778ab3e244900c310974e1fc1c69066e450James Bottomley *
20092908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        800h-83Fh   Mode Dependent Scratch Mode 0 Pages 0-1
20102908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        840h-87Fh   Mode Dependent Scratch Mode 1 Pages 0-1
20112908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        880h-8BFh   Mode Dependent Scratch Mode 2 Pages 0-1
20122908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        8C0h-8FFh   Mode Dependent Scratch Mode 3 Pages 0-1
20132908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        900h-93Fh   Mode Dependent Scratch Mode 4 Pages 0-1
20142908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        940h-97Fh   Mode Dependent Scratch Mode 5 Pages 0-1
20152908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        980h-9BFh   Mode Dependent Scratch Mode 6 Pages 0-1
20162908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        9C0h-9FFh   Mode Dependent Scratch Mode 7 Pages 0-1
20172908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        A00h-A5Fh   Mode Dependent Scratch Mode 8 Pages 0-2
20182908d778ab3e244900c310974e1fc1c69066e450James Bottomley *                    Mode Independent Scratch Pages 0-2
20192908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        A60h-A7Fh   Mode Dependent Scratch Mode 8 Page 3
20202908d778ab3e244900c310974e1fc1c69066e450James Bottomley *                    Mode Independent Scratch Page 3
20212908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        A80h-AFFh   Mode Independent Scratch Pages 4-7
20222908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        B00h-B1Fh   Mode Dependent Scratch Mode 0 Page 2
20232908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        B20h-B3Fh   Mode Dependent Scratch Mode 1 Page 2
20242908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        B40h-B5Fh   Mode Dependent Scratch Mode 2 Page 2
20252908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        B60h-B7Fh   Mode Dependent Scratch Mode 3 Page 2
20262908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        B80h-B9Fh   Mode Dependent Scratch Mode 4 Page 2
20272908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        BA0h-BBFh   Mode Dependent Scratch Mode 5 Page 2
20282908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        BC0h-BDFh   Mode Dependent Scratch Mode 6 Page 2
20292908d778ab3e244900c310974e1fc1c69066e450James Bottomley *        BE0h-BFFh   Mode Dependent Scratch Mode 7 Page 2
20302908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
20312908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20322908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* General macros */
20332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_PAGE_SIZE			32  /* Scratch page size (in bytes) */
20342908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20352908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* All macros start with offsets from base + 0x800 (CMAPPEDSCR).
20362908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Mode dependent scratch page 0, mode 0.
20372908d778ab3e244900c310974e1fc1c69066e450James Bottomley * For modes 1-7 you have to do arithmetic. */
20382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_LRM_SAVE_SINDEX		(CMAPPEDSCR + 0x0000)
20392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_LRM_SAVE_SCBPTR		(CMAPPEDSCR + 0x0002)
20402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_LINK_HEAD		(CMAPPEDSCR + 0x0004)
20412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_LINK_TAIL		(CMAPPEDSCR + 0x0006)
20422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_LRM_SAVE_SCRPAGE		(CMAPPEDSCR + 0x0008)
20432908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20442908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 0 mode 8 macros. */
20452908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_RET_ADDR			(CMAPPEDSCR + 0x0200)
20462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_RET_SCBPTR			(CMAPPEDSCR + 0x0202)
20472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_SAVE_SCBPTR		(CMAPPEDSCR + 0x0204)
20482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EMPTY_TRANS_CTX		(CMAPPEDSCR + 0x0206)
20492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_RESP_LEN			(CMAPPEDSCR + 0x0208)
20502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_TMF_SCBPTR			(CMAPPEDSCR + 0x020A)
20512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_GLOBAL_PREV_SCB		(CMAPPEDSCR + 0x020C)
20522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_GLOBAL_HEAD		(CMAPPEDSCR + 0x020E)
20532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_CLEAR_LU_HEAD		(CMAPPEDSCR + 0x0210)
20542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_TMF_OPCODE			(CMAPPEDSCR + 0x0212)
20552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_SCRATCH_FLAGS		(CMAPPEDSCR + 0x0213)
20562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_HSB_SITE                   (CMAPPEDSCR + 0x021A)
20572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_FIRST_INV_SCB_SITE		(CMAPPEDSCR + 0x021C)
20582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_FIRST_INV_DDB_SITE		(CMAPPEDSCR + 0x021E)
20592908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20602908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 1 mode 8 macros. */
20612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_LUN_TO_CLEAR		(CMAPPEDSCR + 0x0220)
20622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_LUN_TO_CHECK		(CMAPPEDSCR + 0x0228)
20632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20642908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 2 mode 8 macros */
20652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_HQ_NEW_POINTER		(CMAPPEDSCR + 0x0240)
20662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_HQ_DONE_BASE		(CMAPPEDSCR + 0x0248)
20672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_HQ_DONE_POINTER		(CMAPPEDSCR + 0x0250)
20682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_HQ_DONE_PASS		(CMAPPEDSCR + 0x0254)
20692908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20702908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 4 macros. */
20712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_EXE_HEAD			(CMAPPEDSCR + 0x0280)
20722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_EXE_TAIL			(CMAPPEDSCR + 0x0282)
20732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_DONE_HEAD                (CMAPPEDSCR + 0x0284)
20742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_DONE_TAIL                (CMAPPEDSCR + 0x0286)
20752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_SEND_HEAD		(CMAPPEDSCR + 0x0288)
20762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_SEND_TAIL		(CMAPPEDSCR + 0x028A)
20772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_DMA2CHIM_HEAD		(CMAPPEDSCR + 0x028C)
20782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_DMA2CHIM_TAIL		(CMAPPEDSCR + 0x028E)
20792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_COPY_HEAD		(CMAPPEDSCR + 0x0290)
20802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_COPY_TAIL		(CMAPPEDSCR + 0x0292)
20812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_REG0			(CMAPPEDSCR + 0x0294)
20822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_REG1			(CMAPPEDSCR + 0x0296)
20832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_REG2			(CMAPPEDSCR + 0x0298)
20842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_LINK_CTL_Q_MAP		(CMAPPEDSCR + 0x029C)
20852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_MAX_CSEQ_MODE		(CMAPPEDSCR + 0x029D)
20862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_FREE_LIST_HACK_COUNT	(CMAPPEDSCR + 0x029E)
20872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20882908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 5 macros. */
20892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EST_NEXUS_REQ_QUEUE	(CMAPPEDSCR + 0x02A0)
20902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EST_NEXUS_REQ_COUNT	(CMAPPEDSCR + 0x02A8)
20912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_EST_NEXUS_HEAD		(CMAPPEDSCR + 0x02B0)
20922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_EST_NEXUS_TAIL		(CMAPPEDSCR + 0x02B2)
20932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_NEED_EST_NEXUS_SCB		(CMAPPEDSCR + 0x02B4)
20942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EST_NEXUS_REQ_HEAD		(CMAPPEDSCR + 0x02B6)
20952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EST_NEXUS_REQ_TAIL		(CMAPPEDSCR + 0x02B7)
20962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EST_NEXUS_SCB_OFFSET	(CMAPPEDSCR + 0x02B8)
20972908d778ab3e244900c310974e1fc1c69066e450James Bottomley
20982908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 6 macros. */
20992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_INT_ROUT_RET_ADDR0		(CMAPPEDSCR + 0x02C0)
21002908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_INT_ROUT_RET_ADDR1		(CMAPPEDSCR + 0x02C2)
21012908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_INT_ROUT_SCBPTR		(CMAPPEDSCR + 0x02C4)
21022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_INT_ROUT_MODE		(CMAPPEDSCR + 0x02C6)
21032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_ISR_SCRATCH_FLAGS		(CMAPPEDSCR + 0x02C7)
21042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_ISR_SAVE_SINDEX		(CMAPPEDSCR + 0x02C8)
21052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_ISR_SAVE_DINDEX		(CMAPPEDSCR + 0x02CA)
21062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_MONIRTT_HEAD		(CMAPPEDSCR + 0x02D0)
21072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_MONIRTT_TAIL		(CMAPPEDSCR + 0x02D2)
21082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_FREE_SCB_MASK		(CMAPPEDSCR + 0x02D5)
21092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_BUILTIN_FREE_SCB_HEAD	(CMAPPEDSCR + 0x02D6)
21102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_BUILTIN_FREE_SCB_TAIL	(CMAPPEDSCR + 0x02D8)
21112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EXTENDED_FREE_SCB_HEAD	(CMAPPEDSCR + 0x02DA)
21122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EXTENDED_FREE_SCB_TAIL	(CMAPPEDSCR + 0x02DC)
21132908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21142908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 7 macros. */
21152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EMPTY_REQ_QUEUE		(CMAPPEDSCR + 0x02E0)
21162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EMPTY_REQ_COUNT		(CMAPPEDSCR + 0x02E8)
21172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_EMPTY_HEAD		(CMAPPEDSCR + 0x02F0)
21182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_Q_EMPTY_TAIL		(CMAPPEDSCR + 0x02F2)
21192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_NEED_EMPTY_SCB		(CMAPPEDSCR + 0x02F4)
21202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EMPTY_REQ_HEAD		(CMAPPEDSCR + 0x02F6)
21212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EMPTY_REQ_TAIL		(CMAPPEDSCR + 0x02F7)
21222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_EMPTY_SCB_OFFSET		(CMAPPEDSCR + 0x02F8)
21232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_PRIMITIVE_DATA		(CMAPPEDSCR + 0x02FA)
21242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define CSEQ_TIMEOUT_CONST		(CMAPPEDSCR + 0x02FC)
21252908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21262908d778ab3e244900c310974e1fc1c69066e450James Bottomley/***************************************************************************
21272908d778ab3e244900c310974e1fc1c69066e450James Bottomley* Link m Sequencer scratch RAM is 512 bytes.
21282908d778ab3e244900c310974e1fc1c69066e450James Bottomley* This scratch memory is divided into mode dependent and mode
21292908d778ab3e244900c310974e1fc1c69066e450James Bottomley* independent scratch with this memory further subdivided into
21302908d778ab3e244900c310974e1fc1c69066e450James Bottomley* pages of size 32 bytes. There are 4 pages (128 bytes) of
21312908d778ab3e244900c310974e1fc1c69066e450James Bottomley* mode independent scratch and 4 pages of dependent scratch
21322908d778ab3e244900c310974e1fc1c69066e450James Bottomley* memory for modes 0-2 (384 bytes).
21332908d778ab3e244900c310974e1fc1c69066e450James Bottomley*
21342908d778ab3e244900c310974e1fc1c69066e450James Bottomley* The host accesses this scratch in a different manner from the
21352908d778ab3e244900c310974e1fc1c69066e450James Bottomley* link sequencer. The sequencer has to use LSEQ registers
21362908d778ab3e244900c310974e1fc1c69066e450James Bottomley* LmSCRPAGE and LmMnSCRPAGE to access the scratch memory. A flat
213725985edcedea6396277003854657b5f3cb31a628Lucas De Marchi* mapping of the scratch memory is available for software
21382908d778ab3e244900c310974e1fc1c69066e450James Bottomley* convenience and to prevent corruption while the sequencer is
21392908d778ab3e244900c310974e1fc1c69066e450James Bottomley* running. This memory is mapped onto addresses 800h - 9FFh.
21402908d778ab3e244900c310974e1fc1c69066e450James Bottomley*
21412908d778ab3e244900c310974e1fc1c69066e450James Bottomley* These addresses are mapped as follows:
21422908d778ab3e244900c310974e1fc1c69066e450James Bottomley*
21432908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        800h-85Fh   Mode Dependent Scratch Mode 0 Pages 0-2
21442908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        860h-87Fh   Mode Dependent Scratch Mode 0 Page 3
21452908d778ab3e244900c310974e1fc1c69066e450James Bottomley*                    Mode Dependent Scratch Mode 5 Page 0
21462908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        880h-8DFh   Mode Dependent Scratch Mode 1 Pages 0-2
21472908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        8E0h-8FFh   Mode Dependent Scratch Mode 1 Page 3
21482908d778ab3e244900c310974e1fc1c69066e450James Bottomley*                    Mode Dependent Scratch Mode 5 Page 1
21492908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        900h-95Fh   Mode Dependent Scratch Mode 2 Pages 0-2
21502908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        960h-97Fh   Mode Dependent Scratch Mode 2 Page 3
21512908d778ab3e244900c310974e1fc1c69066e450James Bottomley*                    Mode Dependent Scratch Mode 5 Page 2
21522908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        980h-9DFh   Mode Independent Scratch Pages 0-3
21532908d778ab3e244900c310974e1fc1c69066e450James Bottomley*        9E0h-9FFh   Mode Independent Scratch Page 3
21542908d778ab3e244900c310974e1fc1c69066e450James Bottomley*                    Mode Dependent Scratch Mode 5 Page 3
21552908d778ab3e244900c310974e1fc1c69066e450James Bottomley*
21562908d778ab3e244900c310974e1fc1c69066e450James Bottomley****************************************************************************/
21572908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* General macros */
21582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ_MODE_SCRATCH_SIZE		0x80 /* Size of scratch RAM per mode */
21592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ_PAGE_SIZE			0x20 /* Scratch page size (in bytes) */
21602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LSEQ_MODE5_PAGE0_OFFSET 	0x60
21612908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21622908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Common mode dependent scratch page 0 macros for modes 0,1,2, and 5 */
21632908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Indexed using LSEQ_MODE_SCRATCH_SIZE * mode, for modes 0,1,2. */
21642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RET_ADDR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0000)
21652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_REG0_MODE(LinkNum)	(LmSCRATCH(LinkNum) + 0x0002)
21662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_MODE_FLAGS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0004)
21672908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21682908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode flag macros (byte 0) */
21692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SAVECTX_OCCURRED		0x80
21702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_OOBSVC_OCCURRED		0x40
21712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_OOB_DEVICE_PRESENT		0x20
21722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_CFGHDR_OCCURRED		0x10
21732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_RCV_INTS_ARE_DISABLED	0x08
21742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_OOB_HOT_PLUG_CNCT		0x04
21752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_AWAIT_OPEN_CONNECTION	0x02
21762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_CFGCMPLT_OCCURRED		0x01
21772908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21782908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode flag macros (byte 1) */
21792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_RLSSCB_OCCURRED		0x80
21802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_FORCED_HEADER_MISS		0x40
21812908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RET_ADDR2(LinkNum)	(LmSCRATCH(LinkNum) + 0x0006)
21832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RET_ADDR1(LinkNum)	(LmSCRATCH(LinkNum) + 0x0008)
21842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_OPCODE_TO_CSEQ(LinkNum)	(LmSCRATCH(LinkNum) + 0x000B)
21852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DATA_TO_CSEQ(LinkNum)	(LmSCRATCH(LinkNum) + 0x000C)
21862908d778ab3e244900c310974e1fc1c69066e450James Bottomley
21872908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 0 macros for mode 0 (non-common) */
21882908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
21892908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_FIRST_INV_DDB_SITE(LinkNum)	(LmSCRATCH(LinkNum) + 0x000E)
21902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_TRANS_CTX(LinkNum)		(LmSCRATCH(LinkNum) + 0x0010)
21912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RESP_LEN(LinkNum)			(LmSCRATCH(LinkNum) + 0x0012)
21922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_FIRST_INV_SCB_SITE(LinkNum)	(LmSCRATCH(LinkNum) + 0x0014)
21932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_INTEN_SAVE(LinkNum)		(LmSCRATCH(LinkNum) + 0x0016)
21942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LINK_RST_FRM_LEN(LinkNum)		(LmSCRATCH(LinkNum) + 0x001A)
21952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LINK_RST_PROTOCOL(LinkNum)	(LmSCRATCH(LinkNum) + 0x001B)
21962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RESP_STATUS(LinkNum)		(LmSCRATCH(LinkNum) + 0x001C)
21972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LAST_LOADED_SGE(LinkNum)		(LmSCRATCH(LinkNum) + 0x001D)
21982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SAVE_SCBPTR(LinkNum)		(LmSCRATCH(LinkNum) + 0x001E)
21992908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22002908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 0 macros for mode 1 (non-common) */
22012908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
22022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_Q_XMIT_HEAD(LinkNum)		(LmSCRATCH(LinkNum) + 0x008E)
22032908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_M1_EMPTY_TRANS_CTX(LinkNum)	(LmSCRATCH(LinkNum) + 0x0090)
22042908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_INI_CONN_TAG(LinkNum)		(LmSCRATCH(LinkNum) + 0x0092)
22052908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_FAILED_OPEN_STATUS(LinkNum)	(LmSCRATCH(LinkNum) + 0x009A)
22062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_XMIT_REQUEST_TYPE(LinkNum)	(LmSCRATCH(LinkNum) + 0x009B)
22072908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_M1_RESP_STATUS(LinkNum)		(LmSCRATCH(LinkNum) + 0x009C)
22082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_M1_LAST_LOADED_SGE(LinkNum)	(LmSCRATCH(LinkNum) + 0x009D)
22092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_M1_SAVE_SCBPTR(LinkNum)		(LmSCRATCH(LinkNum) + 0x009E)
22102908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22112908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 0 macros for mode 2 (non-common) */
22122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_PORT_COUNTER(LinkNum)		(LmSCRATCH(LinkNum) + 0x010E)
22132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_PM_TABLE_PTR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0110)
22142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SATA_INTERLOCK_TMR_SAVE(LinkNum)	(LmSCRATCH(LinkNum) + 0x0112)
22152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_IP_BITL(LinkNum)			(LmSCRATCH(LinkNum) + 0x0114)
22162908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_COPY_SMP_CONN_TAG(LinkNum)	(LmSCRATCH(LinkNum) + 0x0116)
22172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_P0M2_OFFS1AH(LinkNum)		(LmSCRATCH(LinkNum) + 0x011A)
22182908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22192908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 0 macros for modes 4/5 (non-common) */
22202908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
22212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SAVED_OOB_STATUS(LinkNum)		(LmSCRATCH(LinkNum) + 0x006E)
22222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SAVED_OOB_MODE(LinkNum)		(LmSCRATCH(LinkNum) + 0x006F)
22232908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_Q_LINK_HEAD(LinkNum)		(LmSCRATCH(LinkNum) + 0x0070)
22242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LINK_RST_ERR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0072)
22252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SAVED_OOB_SIGNALS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0073)
22262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SAS_RESET_MODE(LinkNum)		(LmSCRATCH(LinkNum) + 0x0074)
22272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LINK_RESET_RETRY_COUNT(LinkNum)	(LmSCRATCH(LinkNum) + 0x0075)
22282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_NUM_LINK_RESET_RETRIES(LinkNum)	(LmSCRATCH(LinkNum) + 0x0076)
2229083d1631be7c36309359792ecf61aaf88559043fWu, Gilbert#define LmSEQ_OOB_INT_ENABLES(LinkNum)		(LmSCRATCH(LinkNum) + 0x0078)
2230083d1631be7c36309359792ecf61aaf88559043fWu, Gilbert#define LmSEQ_NOTIFY_TIMER_DOWN_COUNT(LinkNum)	(LmSCRATCH(LinkNum) + 0x007A)
22312908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_NOTIFY_TIMER_TIMEOUT(LinkNum)	(LmSCRATCH(LinkNum) + 0x007C)
2232083d1631be7c36309359792ecf61aaf88559043fWu, Gilbert#define LmSEQ_NOTIFY_TIMER_INITIAL_COUNT(LinkNum) (LmSCRATCH(LinkNum) + 0x007E)
22332908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22342908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 1, mode 0 and mode 1 */
22352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SG_LIST_PTR_ADDR0(LinkNum)        (LmSCRATCH(LinkNum) + 0x0020)
22362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SG_LIST_PTR_ADDR1(LinkNum)        (LmSCRATCH(LinkNum) + 0x0030)
22372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_M1_SG_LIST_PTR_ADDR0(LinkNum)     (LmSCRATCH(LinkNum) + 0x00A0)
22382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_M1_SG_LIST_PTR_ADDR1(LinkNum)     (LmSCRATCH(LinkNum) + 0x00B0)
22392908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22402908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 1 macros for mode 2 */
22412908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
22422908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_INVALID_DWORD_COUNT(LinkNum)	(LmSCRATCH(LinkNum) + 0x0120)
22432908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DISPARITY_ERROR_COUNT(LinkNum) 	(LmSCRATCH(LinkNum) + 0x0124)
22442908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LOSS_OF_SYNC_COUNT(LinkNum)	(LmSCRATCH(LinkNum) + 0x0128)
22452908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22462908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 1 macros for mode 4/5 */
22472908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_FRAME_TYPE_MASK(LinkNum)	      (LmSCRATCH(LinkNum) + 0x00E0)
22482908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_HASHED_DEST_ADDR_MASK(LinkNum)  (LmSCRATCH(LinkNum) + 0x00E1)
22492908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_HASHED_SRC_ADDR_MASK_PRINT(LinkNum) (LmSCRATCH(LinkNum) + 0x00E4)
22502908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_HASHED_SRC_ADDR_MASK(LinkNum)   (LmSCRATCH(LinkNum) + 0x00E5)
22512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_NUM_FILL_BYTES_MASK(LinkNum)    (LmSCRATCH(LinkNum) + 0x00EB)
22522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_TAG_MASK(LinkNum)		      (LmSCRATCH(LinkNum) + 0x00F0)
22532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_TARGET_PORT_XFER_TAG(LinkNum)   (LmSCRATCH(LinkNum) + 0x00F2)
22542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DATA_OFFSET(LinkNum)	      (LmSCRATCH(LinkNum) + 0x00F4)
22552908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22562908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 2 macros for mode 0 */
22572908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
22582908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SMP_RCV_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0040)
22592908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DEVICE_BITS(LinkNum)		(LmSCRATCH(LinkNum) + 0x005B)
22602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SDB_DDB(LinkNum)			(LmSCRATCH(LinkNum) + 0x005C)
22612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SDB_NUM_TAGS(LinkNum)		(LmSCRATCH(LinkNum) + 0x005E)
22622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SDB_CURR_TAG(LinkNum)		(LmSCRATCH(LinkNum) + 0x005F)
22632908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22642908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 2 macros for mode 1 */
22652908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
22662908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* byte 0 bits 1-0 are domain select. */
22672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_TX_ID_ADDR_FRAME(LinkNum)		(LmSCRATCH(LinkNum) + 0x00C0)
22682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_OPEN_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x00C8)
22692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SRST_AS_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x00CC)
22702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LAST_LOADED_SG_EL(LinkNum)	(LmSCRATCH(LinkNum) + 0x00D4)
22712908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22722908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 2 macros for mode 2 */
22732908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Absolute offsets */
22742908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_STP_SHUTDOWN_TIMER_TERM_TS(LinkNum) (LmSCRATCH(LinkNum) + 0x0140)
22752908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_CLOSE_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0144)
22762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_BREAK_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0148)
22772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DWS_RESET_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x014C)
22782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SATA_INTERLOCK_TIMER_TERM_TS(LinkNum) \
22792908d778ab3e244900c310974e1fc1c69066e450James Bottomley						(LmSCRATCH(LinkNum) + 0x0150)
22802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_MCTL_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0154)
22812908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22822908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 2 macros for mode 5 */
22832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_COMINIT_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0160)
22842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RCV_ID_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0164)
22852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RCV_FIS_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0168)
22862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DEV_PRES_TIMER_TERM_TS(LinkNum)	(LmSCRATCH(LinkNum) + 0x016C)
22872908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22882908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 3 macros for modes 0 and 1 */
22892908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* None defined */
22902908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22912908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode dependent scratch page 3 macros for modes 2 and 5 */
22922908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* None defined */
22932908d778ab3e244900c310974e1fc1c69066e450James Bottomley
22942908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode Independent Scratch page 0 macros. */
22952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_Q_TGTXFR_HEAD(LinkNum)	(LmSCRATCH(LinkNum) + 0x0180)
22962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_Q_TGTXFR_TAIL(LinkNum)	(LmSCRATCH(LinkNum) + 0x0182)
22972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_LINK_NUMBER(LinkNum)	(LmSCRATCH(LinkNum) + 0x0186)
22982908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SCRATCH_FLAGS(LinkNum)	(LmSCRATCH(LinkNum) + 0x0187)
22992908d778ab3e244900c310974e1fc1c69066e450James Bottomley/*
23002908d778ab3e244900c310974e1fc1c69066e450James Bottomley * Currently only bit 0, SAS_DWSAQD, is used.
23012908d778ab3e244900c310974e1fc1c69066e450James Bottomley */
23022908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DWSAQD			0x01  /*
23032908d778ab3e244900c310974e1fc1c69066e450James Bottomley						       * DWSSTATUS: DWSAQD
23042908d778ab3e244900c310974e1fc1c69066e450James Bottomley						       * bit las read in ISR.
23052908d778ab3e244900c310974e1fc1c69066e450James Bottomley						       */
23062908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define  LmSEQ_CONNECTION_STATE(LinkNum) (LmSCRATCH(LinkNum) + 0x0188)
23072908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Connection states (byte 0) */
23082908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_WE_OPENED_CS		0x01
23092908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_OPENED_CS		0x02
23102908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_WE_SENT_DONE_CS		0x04
23112908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_DONE_CS		0x08
23122908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_WE_SENT_CLOSE_CS		0x10
23132908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_CLOSE_CS	0x20
23142908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_WE_SENT_BREAK_CS		0x40
23152908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_BREAK_CS	0x80
23162908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Connection states (byte 1) */
23172908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_OPN_TIMEOUT_OR_OPN_RJCT_CS	0x01
23182908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_AIP_RECEIVED_CS		0x02
23192908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_CREDIT_TIMEOUT_OCCURRED_CS	0x04
23202908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_ACKNAK_TIMEOUT_OCCURRED_CS	0x08
23212908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SMPRSP_TIMEOUT_OCCURRED_CS	0x10
23222908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DONE_TIMEOUT_OCCURRED_CS	0x20
23232908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Connection states (byte 2) */
23242908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_SMP_RESPONSE_RECEIVED_CS	0x01
23252908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_INTLK_TIMEOUT_OCCURRED_CS	0x02
23262908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_DMAT_CS		0x04
23272908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_SYNCSRST_CS	0x08
23282908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_CLEARING_AFFILIATION_CS	0x20
23292908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_RXTASK_ACTIVE_CS		0x40
23302908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_TXTASK_ACTIVE_CS		0x80
23312908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Connection states (byte 3) */
23322908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_LOSS_OF_SIGNAL_CS	0x01
23332908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DWS_TIMER_EXPIRED_CS	0x02
23342908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_LINK_RESET_NOT_COMPLETE_CS	0x04
23352908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_DISABLED_CS		0x08
23362908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_LINK_CTL_TASK_ACTIVE_CS	0x10
23372908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_PHY_EVENT_TASK_ACTIVE_CS	0x20
23382908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_ID_FRAME_CS	0x40
23392908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_REG_FIS_CS	0x40
23402908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_DEVICE_SENT_HARD_RESET_CS	0x80
23412908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define  	SAS_PHY_IS_DOWN_FLAGS	(SAS_PHY_LOSS_OF_SIGNAL_CS|\
23422908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 SAS_DWS_TIMER_EXPIRED_CS |\
23432908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 SAS_LINK_RESET_NOT_COMPLETE_CS|\
23442908d778ab3e244900c310974e1fc1c69066e450James Bottomley					 SAS_PHY_DISABLED_CS)
23452908d778ab3e244900c310974e1fc1c69066e450James Bottomley
23462908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define		SAS_LINK_CTL_PHY_EVENT_FLAGS   (SAS_LINK_CTL_TASK_ACTIVE_CS |\
23472908d778ab3e244900c310974e1fc1c69066e450James Bottomley						SAS_PHY_EVENT_TASK_ACTIVE_CS |\
23482908d778ab3e244900c310974e1fc1c69066e450James Bottomley						SAS_DEVICE_SENT_ID_FRAME_CS  |\
23492908d778ab3e244900c310974e1fc1c69066e450James Bottomley						SAS_DEVICE_SENT_HARD_RESET_CS)
23502908d778ab3e244900c310974e1fc1c69066e450James Bottomley
23512908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_CONCTL(LinkNum)		(LmSCRATCH(LinkNum) + 0x018C)
23522908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_CONSTAT(LinkNum)		(LmSCRATCH(LinkNum) + 0x018E)
23532908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_CONNECTION_MODES(LinkNum)	(LmSCRATCH(LinkNum) + 0x018F)
23542908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_REG1_ISR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0192)
23552908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_REG2_ISR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0194)
23562908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_REG3_ISR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0196)
23572908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_REG0_ISR(LinkNum)		(LmSCRATCH(LinkNum) + 0x0198)
23582908d778ab3e244900c310974e1fc1c69066e450James Bottomley
23592908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 1 macros. */
23602908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCBPTR0(LinkNum)	(LmSCRATCH(LinkNum) + 0x01A0)
23612908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCBPTR1(LinkNum)	(LmSCRATCH(LinkNum) + 0x01A2)
23622908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCBPTR2(LinkNum)	(LmSCRATCH(LinkNum) + 0x01A4)
23632908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCBPTR3(LinkNum)	(LmSCRATCH(LinkNum) + 0x01A6)
23642908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCB_OPCODE0(LinkNum)	(LmSCRATCH(LinkNum) + 0x01A8)
23652908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCB_OPCODE1(LinkNum)	(LmSCRATCH(LinkNum) + 0x01A9)
23662908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCB_OPCODE2(LinkNum)	(LmSCRATCH(LinkNum) + 0x01AA)
23672908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCB_OPCODE3(LinkNum)	(LmSCRATCH(LinkNum) + 0x01AB)
23682908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCB_HEAD(LinkNum)	(LmSCRATCH(LinkNum) + 0x01AC)
23692908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_SCB_TAIL(LinkNum)	(LmSCRATCH(LinkNum) + 0x01AD)
23702908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EST_NEXUS_BUF_AVAIL(LinkNum)	(LmSCRATCH(LinkNum) + 0x01AE)
23712908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_TIMEOUT_CONST(LinkNum)		(LmSCRATCH(LinkNum) + 0x01B8)
23722908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_ISR_SAVE_SINDEX(LinkNum)	        (LmSCRATCH(LinkNum) + 0x01BC)
23732908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_ISR_SAVE_DINDEX(LinkNum)	        (LmSCRATCH(LinkNum) + 0x01BE)
23742908d778ab3e244900c310974e1fc1c69066e450James Bottomley
23752908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 2 macros. */
23762908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_PTR0(LinkNum)	(LmSCRATCH(LinkNum) + 0x01C0)
23772908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_PTR1(LinkNum)	(LmSCRATCH(LinkNum) + 0x01C2)
23782908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_PTR2(LinkNum)	(LmSCRATCH(LinkNum) + 0x01C4)
23792908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_PTR3(LinkNum)	(LmSCRATCH(LinkNum) + 0x01C6)
23802908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_OPCD0(LinkNum)	(LmSCRATCH(LinkNum) + 0x01C8)
23812908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_OPCD1(LinkNum)	(LmSCRATCH(LinkNum) + 0x01C9)
23822908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_OPCD2(LinkNum)	(LmSCRATCH(LinkNum) + 0x01CA)
23832908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_OPCD3(LinkNum)	(LmSCRATCH(LinkNum) + 0x01CB)
23842908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_HEAD(LinkNum)	(LmSCRATCH(LinkNum) + 0x01CC)
23852908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_SCB_TAIL(LinkNum)	(LmSCRATCH(LinkNum) + 0x01CD)
23862908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_EMPTY_BUFS_AVAIL(LinkNum)	(LmSCRATCH(LinkNum) + 0x01CE)
23872908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_ATA_SCR_REGS(LinkNum)	(LmSCRATCH(LinkNum) + 0x01D4)
23882908d778ab3e244900c310974e1fc1c69066e450James Bottomley
23892908d778ab3e244900c310974e1fc1c69066e450James Bottomley/* Mode independent scratch page 3 macros. */
23902908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_DEV_PRES_TMR_TOUT_CONST(LinkNum)	(LmSCRATCH(LinkNum) + 0x01E0)
23912908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SATA_INTERLOCK_TIMEOUT(LinkNum)	(LmSCRATCH(LinkNum) + 0x01E4)
23922908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_STP_SHUTDOWN_TIMEOUT(LinkNum)	(LmSCRATCH(LinkNum) + 0x01E8)
23932908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SRST_ASSERT_TIMEOUT(LinkNum)	(LmSCRATCH(LinkNum) + 0x01EC)
23942908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_RCV_FIS_TIMEOUT(LinkNum)		(LmSCRATCH(LinkNum) + 0x01F0)
23952908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_ONE_MILLISEC_TIMEOUT(LinkNum)	(LmSCRATCH(LinkNum) + 0x01F4)
23962908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_TEN_MS_COMINIT_TIMEOUT(LinkNum)	(LmSCRATCH(LinkNum) + 0x01F8)
23972908d778ab3e244900c310974e1fc1c69066e450James Bottomley#define LmSEQ_SMP_RCV_TIMEOUT(LinkNum)		(LmSCRATCH(LinkNum) + 0x01FC)
23982908d778ab3e244900c310974e1fc1c69066e450James Bottomley
23992908d778ab3e244900c310974e1fc1c69066e450James Bottomley#endif
2400