1cde9b937SSascha Wildner /*-
2cde9b937SSascha Wildner * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3cde9b937SSascha Wildner * All rights reserved.
4cde9b937SSascha Wildner *
5cde9b937SSascha Wildner * Redistribution and use in source and binary forms, with or without
6cde9b937SSascha Wildner * modification, are permitted provided that the following conditions
7cde9b937SSascha Wildner * are met:
8cde9b937SSascha Wildner * 1. Redistributions of source code must retain the above copyright
9cde9b937SSascha Wildner * notice, this list of conditions and the following disclaimer,
10cde9b937SSascha Wildner * without modification.
11cde9b937SSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12cde9b937SSascha Wildner * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13cde9b937SSascha Wildner * redistribution must be conditioned upon including a substantially
14cde9b937SSascha Wildner * similar Disclaimer requirement for further binary redistribution.
15cde9b937SSascha Wildner *
16cde9b937SSascha Wildner * NO WARRANTY
17cde9b937SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18cde9b937SSascha Wildner * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19*df052c2aSSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY
20cde9b937SSascha Wildner * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21cde9b937SSascha Wildner * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22cde9b937SSascha Wildner * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23cde9b937SSascha Wildner * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24cde9b937SSascha Wildner * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25cde9b937SSascha Wildner * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26cde9b937SSascha Wildner * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27cde9b937SSascha Wildner * THE POSSIBILITY OF SUCH DAMAGES.
28cde9b937SSascha Wildner *
29cde9b937SSascha Wildner * $FreeBSD: src/tools/tools/ath/common/dumpregs_5210.c,v 1.1 2009/03/11 17:46:01 sam Exp $
30cde9b937SSascha Wildner */
31cde9b937SSascha Wildner #include "diag.h"
32cde9b937SSascha Wildner
33cde9b937SSascha Wildner #include "ah.h"
34cde9b937SSascha Wildner #include "ah_internal.h"
35cde9b937SSascha Wildner #include "ar5210/ar5210reg.h"
36cde9b937SSascha Wildner #include "ar5210/ar5210phy.h"
37cde9b937SSascha Wildner
38cde9b937SSascha Wildner #include "dumpregs.h"
39cde9b937SSascha Wildner
40cde9b937SSascha Wildner #define N(a) (sizeof(a) / sizeof(a[0]))
41cde9b937SSascha Wildner
42cde9b937SSascha Wildner static struct dumpreg ar5210regs[] = {
43cde9b937SSascha Wildner DEFBASIC(AR_TXDP0, "TXDP0"),
44cde9b937SSascha Wildner DEFBASIC(AR_TXDP1, "TXDP1"),
45cde9b937SSascha Wildner DEFBASICfmt(AR_CR, "CR", AR_CR_BITS),
46cde9b937SSascha Wildner DEFBASIC(AR_RXDP, "RXDP"),
47cde9b937SSascha Wildner DEFBASICfmt(AR_CFG, "CFG", AR_CFG_BITS),
48cde9b937SSascha Wildner /* NB: read clears pending interrupts */
49cde9b937SSascha Wildner DEFVOIDfmt(AR_ISR, "ISR", AR_ISR_BITS),
50cde9b937SSascha Wildner DEFBASICfmt(AR_IMR, "IMR", AR_IMR_BITS),
51cde9b937SSascha Wildner DEFBASICfmt(AR_IER, "IER", AR_IER_BITS),
52cde9b937SSascha Wildner DEFBASICfmt(AR_BCR, "BCR", AR_BCR_BITS),
53cde9b937SSascha Wildner DEFBASICfmt(AR_BSR, "BSR", AR_BSR_BITS),
54cde9b937SSascha Wildner DEFBASICfmt(AR_TXCFG, "TXCFG", AR_TXCFG_BITS),
55cde9b937SSascha Wildner DEFBASIC(AR_RXCFG, "RXCFG"),
56cde9b937SSascha Wildner DEFBASIC(AR_MIBC, "MIBC"),
57cde9b937SSascha Wildner DEFBASIC(AR_TOPS, "TOPS"),
58cde9b937SSascha Wildner DEFBASIC(AR_RXNOFRM, "RXNOFR"),
59cde9b937SSascha Wildner DEFBASIC(AR_TXNOFRM, "TXNOFR"),
60cde9b937SSascha Wildner DEFBASIC(AR_RPGTO, "RPGTO"),
61cde9b937SSascha Wildner DEFBASIC(AR_RFCNT, "RFCNT"),
62cde9b937SSascha Wildner DEFBASIC(AR_MISC, "MISC"),
63cde9b937SSascha Wildner DEFBASICfmt(AR_RC, "RC", AR_RC_BITS),
64cde9b937SSascha Wildner DEFBASICfmt(AR_SCR, "SCR", AR_SCR_BITS),
65cde9b937SSascha Wildner DEFBASICfmt(AR_INTPEND, "INTPEND", AR_INTPEND_BITS),
66cde9b937SSascha Wildner DEFBASIC(AR_SFR, "SFR"),
67cde9b937SSascha Wildner DEFBASICfmt(AR_PCICFG, "PCICFG", AR_PCICFG_BITS),
68cde9b937SSascha Wildner DEFBASIC(AR_GPIOCR, "GPIOCR"),
69cde9b937SSascha Wildner DEFVOID(AR_GPIODO, "GPIODO"),
70cde9b937SSascha Wildner DEFVOID(AR_GPIODI, "GPIODI"),
71cde9b937SSascha Wildner DEFBASIC(AR_SREV, "SREV"),
72cde9b937SSascha Wildner DEFBASIC(AR_STA_ID0, "STA_ID0"),
73cde9b937SSascha Wildner DEFBASICfmt(AR_STA_ID1, "STA_ID1", AR_STA_ID1_BITS),
74cde9b937SSascha Wildner DEFBASIC(AR_BSS_ID0, "BSS_ID0"),
75cde9b937SSascha Wildner DEFBASIC(AR_BSS_ID1, "BSS_ID1"),
76cde9b937SSascha Wildner DEFBASIC(AR_SLOT_TIME, "SLOTTIME"),
77cde9b937SSascha Wildner DEFBASIC(AR_TIME_OUT, "TIME_OUT"),
78cde9b937SSascha Wildner DEFBASIC(AR_RSSI_THR, "RSSI_THR"),
79cde9b937SSascha Wildner DEFBASIC(AR_RETRY_LMT, "RETRY_LM"),
80cde9b937SSascha Wildner DEFBASIC(AR_USEC, "USEC"),
81cde9b937SSascha Wildner DEFBASICfmt(AR_BEACON, "BEACON", AR_BEACON_BITS),
82cde9b937SSascha Wildner DEFBASIC(AR_CFP_PERIOD, "CFP_PER"),
83cde9b937SSascha Wildner DEFBASIC(AR_TIMER0, "TIMER0"),
84cde9b937SSascha Wildner DEFBASIC(AR_TIMER1, "TIMER1"),
85cde9b937SSascha Wildner DEFBASIC(AR_TIMER2, "TIMER2"),
86cde9b937SSascha Wildner DEFBASIC(AR_TIMER3, "TIMER3"),
87cde9b937SSascha Wildner DEFBASIC(AR_IFS0, "IFS0"),
88cde9b937SSascha Wildner DEFBASIC(AR_IFS1, "IFS1" ),
89cde9b937SSascha Wildner DEFBASIC(AR_CFP_DUR, "CFP_DUR"),
90cde9b937SSascha Wildner DEFBASICfmt(AR_RX_FILTER, "RXFILTER", AR_BEACON_BITS),
91cde9b937SSascha Wildner DEFBASIC(AR_MCAST_FIL0, "MCAST_0"),
92cde9b937SSascha Wildner DEFBASIC(AR_MCAST_FIL1, "MCAST_1"),
93cde9b937SSascha Wildner DEFBASIC(AR_TX_MASK0, "TX_MASK0"),
94cde9b937SSascha Wildner DEFBASIC(AR_TX_MASK1, "TX_MASK1"),
95cde9b937SSascha Wildner DEFVOID(AR_CLR_TMASK, "CLR_TMASK"),
96cde9b937SSascha Wildner DEFBASIC(AR_TRIG_LEV, "TRIG_LEV"),
97cde9b937SSascha Wildner DEFBASICfmt(AR_DIAG_SW, "DIAG_SW", AR_DIAG_SW_BITS),
98cde9b937SSascha Wildner DEFBASIC(AR_TSF_L32, "TSF_L32"),
99cde9b937SSascha Wildner DEFBASIC(AR_TSF_U32, "TSF_U32"),
100cde9b937SSascha Wildner DEFBASIC(AR_LAST_TSTP, "LAST_TST"),
101cde9b937SSascha Wildner DEFBASIC(AR_RETRY_CNT, "RETRYCNT"),
102cde9b937SSascha Wildner DEFBASIC(AR_BACKOFF, "BACKOFF"),
103cde9b937SSascha Wildner DEFBASIC(AR_NAV, "NAV"),
104cde9b937SSascha Wildner DEFBASIC(AR_RTS_OK, "RTS_OK"),
105cde9b937SSascha Wildner DEFBASIC(AR_RTS_FAIL, "RTS_FAIL"),
106cde9b937SSascha Wildner DEFBASIC(AR_ACK_FAIL, "ACK_FAIL"),
107cde9b937SSascha Wildner DEFBASIC(AR_FCS_FAIL, "FCS_FAIL"),
108cde9b937SSascha Wildner DEFBASIC(AR_BEACON_CNT, "BEAC_CNT"),
109cde9b937SSascha Wildner
110cde9b937SSascha Wildner DEFVOIDfmt(AR_PHY_FRCTL, "PHY_FRCTL", AR_PHY_FRCTL_BITS),
111cde9b937SSascha Wildner DEFVOIDfmt(AR_PHY_AGC, "PHY_AGC", AR_PHY_AGC_BITS),
112cde9b937SSascha Wildner DEFVOID(AR_PHY_CHIPID, "PHY_CHIPID"),
113cde9b937SSascha Wildner DEFVOIDfmt(AR_PHY_ACTIVE, "PHY_ACTIVE", AR_PHY_ACTIVE_BITS),
114cde9b937SSascha Wildner DEFVOIDfmt(AR_PHY_AGCCTL, "PHY_AGCCTL", AR_PHY_AGCCTL_BITS),
115cde9b937SSascha Wildner };
116cde9b937SSascha Wildner
117cde9b937SSascha Wildner static __constructor void
ar5210_ctor(void)118cde9b937SSascha Wildner ar5210_ctor(void)
119cde9b937SSascha Wildner {
120cde9b937SSascha Wildner #define MAC5210 SREV(1,0), SREV(2,0)
121cde9b937SSascha Wildner register_regs(ar5210regs, N(ar5210regs), MAC5210, PHYANY);
122cde9b937SSascha Wildner register_keycache(64, MAC5210, PHYANY);
123cde9b937SSascha Wildner
124cde9b937SSascha Wildner register_range(0x9800, 0x9840, DUMP_BASEBAND, MAC5210, PHYANY);
125cde9b937SSascha Wildner }
126