1 1.9 andvar /* $NetBSD: am79c930reg.h,v 1.9 2025/08/18 20:59:55 andvar Exp $ */ 2 1.2 sommerfe 3 1.1 sommerfe /*- 4 1.1 sommerfe * Copyright (c) 1999 The NetBSD Foundation, Inc. 5 1.1 sommerfe * All rights reserved. 6 1.1 sommerfe * 7 1.1 sommerfe * This code is derived from software contributed to The NetBSD Foundation 8 1.1 sommerfe * by Bill Sommerfeld 9 1.1 sommerfe * 10 1.1 sommerfe * Redistribution and use in source and binary forms, with or without 11 1.1 sommerfe * modification, are permitted provided that the following conditions 12 1.1 sommerfe * are met: 13 1.1 sommerfe * 1. Redistributions of source code must retain the above copyright 14 1.1 sommerfe * notice, this list of conditions and the following disclaimer. 15 1.1 sommerfe * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 sommerfe * notice, this list of conditions and the following disclaimer in the 17 1.1 sommerfe * documentation and/or other materials provided with the distribution. 18 1.1 sommerfe * 19 1.1 sommerfe * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.1 sommerfe * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.1 sommerfe * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.1 sommerfe * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.1 sommerfe * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.1 sommerfe * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.1 sommerfe * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.1 sommerfe * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.1 sommerfe * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.1 sommerfe * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.1 sommerfe * POSSIBILITY OF SUCH DAMAGE. 30 1.1 sommerfe */ 31 1.1 sommerfe 32 1.1 sommerfe /* 33 1.8 msaitoh * Device register definitions gleaned from the AMD "Am79C930 34 1.1 sommerfe * PCnet(tm)-Mobile Single Chip Wireless LAN Media Access Controller" 35 1.1 sommerfe * data sheet, AMD Pub #20183, Rev B, amendment/0, issue date August 1997. 36 1.1 sommerfe * 37 1.1 sommerfe * As of 1999/10/23, this was available from AMD's web site in PDF 38 1.1 sommerfe * form. 39 1.1 sommerfe */ 40 1.1 sommerfe 41 1.1 sommerfe 42 1.1 sommerfe /* 43 1.1 sommerfe * The 79c930 contains a bus interface unit, a media access 44 1.9 andvar * controller, and a transceiver attachment interface. 45 1.1 sommerfe * The MAC contains an 80188 CPU core. 46 1.1 sommerfe * typical devices built around this chip typically add 32k or 64k of 47 1.1 sommerfe * memory for buffers. 48 1.1 sommerfe * 49 1.1 sommerfe * The 80188 runs firmware which handles most of the 802.11 gorp, and 50 1.1 sommerfe * communicates with the host using shared data structures in this 51 1.1 sommerfe * memory; the specifics of the shared memory layout are not covered 52 1.1 sommerfe * in this source file; see <dev/ic/am80211fw.h> for details of that layer. 53 1.1 sommerfe */ 54 1.1 sommerfe 55 1.1 sommerfe /* 56 1.1 sommerfe * Device Registers 57 1.1 sommerfe */ 58 1.1 sommerfe 59 1.1 sommerfe #define AM79C930_IO_BASE 0 60 1.1 sommerfe #define AM79C930_IO_SIZE 16 61 1.1 sommerfe #define AM79C930_IO_SIZE_BIG 40 62 1.3 onoe #define AM79C930_IO_ALIGN 0x40 /* am79c930 decodes lower 6bits */ 63 1.1 sommerfe 64 1.1 sommerfe 65 1.1 sommerfe #define AM79C930_GCR 0 /* General Config Register */ 66 1.1 sommerfe 67 1.1 sommerfe #define AM79C930_GCR_SWRESET 0x80 /* software reset */ 68 1.1 sommerfe #define AM79C930_GCR_CORESET 0x40 /* core reset */ 69 1.1 sommerfe #define AM79C930_GCR_DISPWDN 0x20 /* disable powerdown */ 70 1.1 sommerfe #define AM79C930_GCR_ECWAIT 0x10 /* embedded controller wait */ 71 1.1 sommerfe #define AM79C930_GCR_ECINT 0x08 /* interrupt from embedded ctrlr */ 72 1.1 sommerfe #define AM79C930_GCR_INT2EC 0x04 /* interrupt to embedded ctrlr */ 73 1.1 sommerfe #define AM79C930_GCR_ENECINT 0x02 /* enable interrupts from e.c. */ 74 1.1 sommerfe #define AM79C930_GCR_DAM 0x01 /* direct access mode (read only) */ 75 1.1 sommerfe 76 1.1 sommerfe #define AM79C930_GCR_BITS "\020\1DAM\2ENECINT\3INT2EC\4ECINT\5ECWAIT\6DISPWDN\7CORESET\010SWRESET" 77 1.1 sommerfe 78 1.1 sommerfe #define AM79C930_BSS 1 /* Bank Switching Select register */ 79 1.1 sommerfe 80 1.1 sommerfe #define AM79C930_BSS_ECATR 0x80 /* E.C. ALE test read */ 81 1.1 sommerfe #define AM79C930_BSS_FS 0x20 /* Flash Select */ 82 1.1 sommerfe #define AM79C930_BSS_MBS 0x18 /* Memory Bank Select */ 83 1.1 sommerfe #define AM79C930_BSS_EIOW 0x04 /* Expand I/O Window */ 84 1.1 sommerfe #define AM79C930_BSS_TBS 0x03 /* TAI Bank Select */ 85 1.1 sommerfe 86 1.1 sommerfe #define AM79C930_LMA_LO 2 /* Local Memory Address register (low byte) */ 87 1.1 sommerfe 88 1.1 sommerfe #define AM79C930_LMA_HI 3 /* Local Memory Address register (high byte) */ 89 1.1 sommerfe 90 1.1 sommerfe /* set this bit to turn off ISAPnP version */ 91 1.5 perry #define AM79C930_LMA_HI_ISAPWRDWN 0x80 92 1.5 perry 93 1.1 sommerfe /* 94 1.4 wiz * mmm, inconsistency in chip documentation: 95 1.1 sommerfe * According to page 79--80, all four of the following are equivalent 96 1.1 sommerfe * and address the single byte pointed at by BSS_{FS,MBS} | LMA_{HI,LO} 97 1.1 sommerfe * According to tables on p63 and p67, they're the LSB through MSB 98 1.1 sommerfe * of a 32-bit word. 99 1.1 sommerfe */ 100 1.1 sommerfe 101 1.1 sommerfe #define AM79C930_IODPA 4 /* I/O Data port A */ 102 1.1 sommerfe #define AM79C930_IODPB 5 /* I/O Data port B */ 103 1.1 sommerfe #define AM79C930_IODPC 6 /* I/O Data port C */ 104 1.1 sommerfe #define AM79C930_IODPD 7 /* I/O Data port D */ 105 1.1 sommerfe 106 1.1 sommerfe 107 1.1 sommerfe /* 108 1.1 sommerfe * Tranceiver Attachment Interface Registers (TIR space) 109 1.1 sommerfe * (omitted for now, since host access to them is for diagnostic 110 1.1 sommerfe * purposes only). 111 1.1 sommerfe */ 112 1.1 sommerfe 113 1.1 sommerfe /* 114 1.1 sommerfe * memory space goo. 115 1.1 sommerfe */ 116 1.1 sommerfe 117 1.1 sommerfe #define AM79C930_MEM_SIZE 0x8000 /* 32k */ 118 1.1 sommerfe #define AM79C930_MEM_BASE 0x0 /* starting at 0 */ 119