1 1.3 andvar /* $NetBSD: sbd_tr2a.h,v 1.3 2024/02/08 20:30:39 andvar Exp $ */ 2 1.1 tsutsui 3 1.1 tsutsui /*- 4 1.1 tsutsui * Copyright (c) 2004 The NetBSD Foundation, Inc. 5 1.1 tsutsui * All rights reserved. 6 1.1 tsutsui * 7 1.1 tsutsui * This code is derived from software contributed to The NetBSD Foundation 8 1.1 tsutsui * by UCHIYAMA Yasushi. 9 1.1 tsutsui * 10 1.1 tsutsui * Redistribution and use in source and binary forms, with or without 11 1.1 tsutsui * modification, are permitted provided that the following conditions 12 1.1 tsutsui * are met: 13 1.1 tsutsui * 1. Redistributions of source code must retain the above copyright 14 1.1 tsutsui * notice, this list of conditions and the following disclaimer. 15 1.1 tsutsui * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 tsutsui * notice, this list of conditions and the following disclaimer in the 17 1.1 tsutsui * documentation and/or other materials provided with the distribution. 18 1.1 tsutsui * 19 1.1 tsutsui * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.1 tsutsui * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.1 tsutsui * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.1 tsutsui * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.1 tsutsui * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.1 tsutsui * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.1 tsutsui * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.1 tsutsui * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.1 tsutsui * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.1 tsutsui * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.1 tsutsui * POSSIBILITY OF SUCH DAMAGE. 30 1.1 tsutsui */ 31 1.1 tsutsui 32 1.1 tsutsui #ifndef _SBD_TR2A_PRIVATE 33 1.3 andvar #error "Don't include this file except for TR2A implementation" 34 1.1 tsutsui #endif /* !_SBD_TR2A_PRIVATE */ 35 1.1 tsutsui 36 1.1 tsutsui #ifndef _EWS4800MIPS_SBD_TR2A_H_ 37 1.1 tsutsui #define _EWS4800MIPS_SBD_TR2A_H_ 38 1.1 tsutsui /* 39 1.1 tsutsui * EWS4800/360 (TR2A) specific system board definition 40 1.1 tsutsui */ 41 1.1 tsutsui /* 42 1.1 tsutsui * [interrupt overview] 43 1.1 tsutsui * 44 1.1 tsutsui * +-----+ 45 1.1 tsutsui * | CPU | 46 1.1 tsutsui * +--+--+ 47 1.1 tsutsui * | 48 1.1 tsutsui * +----+----+-+--+----+----+ 49 1.1 tsutsui * INT5 INT4 INT3 INT2 INT1 INT0 50 1.1 tsutsui * | | | | | | 51 1.1 tsutsui * +-+----+----+----+----+----+-+ 52 1.1 tsutsui * | INTC | 53 1.1 tsutsui * | mask: 0xbe000008 | 54 1.1 tsutsui * | status: 0xbe000004 | 55 1.1 tsutsui * | clear: 0xbe000000 | +-------------------+ 56 1.1 tsutsui * +-+----+----+----+----+----+-+ | APbus | 57 1.1 tsutsui * | | | | +----+---------+Lo | 58 1.1 tsutsui * CLOCK---+ | +----+---------+---------+Hi | 59 1.1 tsutsui * 0xbe4a0008 | | | | | 60 1.1 tsutsui * (0x80) +-+---------+---------+-+ +-------------------+ 61 1.1 tsutsui * | ASObus | 62 1.1 tsutsui * | mask: 0xbe40a00c | 63 1.1 tsutsui * | status: 0xbe40a010 | 64 1.1 tsutsui * | DMA int:0xbe408000 | 65 1.1 tsutsui * +-+---------+---------+-+ 66 1.1 tsutsui * | | | 67 1.1 tsutsui * 0xbe440000 ZS-+ | | 68 1.1 tsutsui * 0xbe480000 KBMS | | 69 1.1 tsutsui * | | 70 1.1 tsutsui * 0xbe500000 SCSI-A-------+ | 71 1.1 tsutsui * 0xbe510000 SCSI-B-------+ | 72 1.1 tsutsui * 0xbe400000 LANCE--------+ | 73 1.1 tsutsui * | 74 1.1 tsutsui * NMI-------------------------+ 75 1.1 tsutsui * 76 1.1 tsutsui * [INTC interrupt mask] 0xbe000008 77 1.1 tsutsui * 0x80000000 INT5 78 1.1 tsutsui * 0x04000000 INT4 79 1.1 tsutsui * 0x00200000 INT3 80 1.1 tsutsui * 0x00010000 INT2 81 1.1 tsutsui * 0x00000800 INT1 82 1.1 tsutsui * 0x00000020 INT0 83 1.1 tsutsui * 84 1.1 tsutsui * [ASObus interrupt mask] 0xbe40a00c 85 1.1 tsutsui * TR2A 86 1.1 tsutsui * 0x00800000 INT4 - 87 1.1 tsutsui * 0x00400000 INT4 - 88 1.1 tsutsui * 0x00300010 INT4 ZS 89 1.1 tsutsui * 0x00000040 INT4 KBMS 90 1.1 tsutsui * 0x00000020 INT4 - 91 1.1 tsutsui * 0x00000100 INT2 simd2 A 92 1.1 tsutsui * 0x00000200 INT2 simd2 B 93 1.1 tsutsui * 0x00000001 INT2 limd2 94 1.1 tsutsui * 0x00008000 INT0 NMI 95 1.1 tsutsui * 0x00000008 INT0 - 96 1.1 tsutsui * 0x00000004 INT0 - 97 1.1 tsutsui * 0x00f0837d 0x00300351 98 1.1 tsutsui */ 99 1.1 tsutsui 100 1.1 tsutsui /* ROM */ 101 1.1 tsutsui #define TR2A_ROM_FONT_ADDR 0xbfc0ec00 102 1.1 tsutsui #define TR2A_SCSIROM_ADDR 0xbfc80000 103 1.1 tsutsui #define TR2A_GAROM_ADDR 0xbfc82000 104 1.1 tsutsui 105 1.1 tsutsui #define TR2A_ROM_KEYMAP_NORMAL ((uint8_t *)0xbfc39140) 106 1.1 tsutsui #define TR2A_ROM_KEYMAP_SHIFTED ((uint8_t *)0xbfc38e40) 107 1.1 tsutsui #define TR2A_ROM_KEYMAP_CONTROL ((uint8_t *)0xbfc38ec0) 108 1.1 tsutsui #define TR2A_ROM_KEYMAP_CAPSLOCK ((uint8_t *)0xbfc39040) 109 1.1 tsutsui 110 1.1 tsutsui /* System board I/O devices */ 111 1.1 tsutsui #define TR2A_IOBASE_ADDR 0xbe000000 112 1.1 tsutsui #define TR2A_LANCE_BASE 0xbe400000 /* Ether AM79C90 */ 113 1.1 tsutsui #define TR2A_SIO_BASE 0xbe440000 /* SIO1 85230 */ 114 1.1 tsutsui #define TR2A_KBMS_BASE 0xbe480000 /* SIO0 85230 */ 115 1.1 tsutsui #define TR2A_NVSRAM_BASE 0xbe490000 /* NVSRAM */ 116 1.1 tsutsui #define TR2A_SCSIA_BASE 0xbe500000 /* SCSI-A NCR53C710 */ 117 1.1 tsutsui #define TR2A_SCSIB_BASE 0xbe510000 /* SCSI-B NCR53C710 */ 118 1.1 tsutsui #if 0 119 1.1 tsutsui #define TR2A_FDC_BASE 0xbe420000 120 1.1 tsutsui #define TR2A_LPT_BASE 0xbe430000 121 1.1 tsutsui #define TR2A_APBUS_INTC_MASK 0xbe806000 122 1.1 tsutsui #define TR2A_VMECHK 0xbe000040 123 1.1 tsutsui #define TR2A_CLK 0xbe000024 124 1.1 tsutsui #endif 125 1.1 tsutsui 126 1.1 tsutsui /* APbus */ 127 1.1 tsutsui #define TR2A_APBUS_ADDR 0xe0000000 128 1.1 tsutsui #define TR2A_APBUS_SIZE 0x18000000 129 1.1 tsutsui 130 1.1 tsutsui /* NVSRAM */ 131 1.1 tsutsui #define TR2A_NVSRAM_ADDR 0xbe490000 132 1.1 tsutsui #define NVSRAM_SIGNATURE 0xbe490000 133 1.1 tsutsui #define NVSRAM_MACHINEID 0xbe490010 134 1.1 tsutsui #define NVSRAM_ETHERADDR 0xbe491008 135 1.1 tsutsui #define NVSRAM_TF_PROGRESS 0xbe493010 136 1.1 tsutsui #define NVSRAM_TF_ERROR 0xbe493028 137 1.1 tsutsui #define NVSRAM_BOOTDEV ((uint8_t *)0xbe493030) 138 1.1 tsutsui #define NVSRAM_CONSTYPE ((uint8_t *)0xbe4932a0) 139 1.1 tsutsui #define NVSRAM_BOOTUNIT 0xbe493414 140 1.1 tsutsui #define NVSRAM_SBDINIT_0 0xbe493450 141 1.1 tsutsui #define NVSRAM_SBDINIT_1 0xbe493454 142 1.1 tsutsui #define NVSRAM_SBDINIT_2 0xbe493458 143 1.1 tsutsui #define NVSRAM_SBDINIT_3 0xbe49345c 144 1.1 tsutsui 145 1.1 tsutsui /* Frame buffer */ 146 1.1 tsutsui #define TR2A_GAFB_ADDR 0xf0000000 147 1.1 tsutsui #define TR2A_GAFB_SIZE 0x04000000 148 1.1 tsutsui #define TR2A_GAREG_ADDR 0xf5f00000 149 1.1 tsutsui #define TR2A_GAREG_SIZE 0x00001000 150 1.1 tsutsui 151 1.1 tsutsui #define SOFTRESET_REG ((volatile uint8_t *)0xba000004) 152 1.1 tsutsui #define SOFTRESET_FLAG ((volatile uint32_t *)0xbe000064) 153 1.1 tsutsui 154 1.1 tsutsui #define CLOCK_REG ((volatile uint8_t *)0xbe4a0008) 155 1.1 tsutsui #define POWEROFF_REG ((volatile uint8_t *)0xbe4a0030) 156 1.1 tsutsui #define LED_TF_REG ((volatile uint8_t *)0xbe4a0040) 157 1.1 tsutsui #define LED_TF_ON 1 158 1.1 tsutsui #define LED_TF_OFF 0 159 1.1 tsutsui #define TF_ERROR_CODE ((volatile uint8_t *)0xbe4a0044) 160 1.1 tsutsui #define BUZZER_REG ((volatile uint8_t *)0xbe4a0050) 161 1.1 tsutsui 162 1.1 tsutsui /* Keyboard/Mouse Z85230 */ 163 1.1 tsutsui #define KBD_STATUS ((volatile uint8_t *)0xbe480000) 164 1.1 tsutsui #define KBD_DATA ((volatile uint8_t *)0xbe480004) 165 1.1 tsutsui 166 1.1 tsutsui /* RTC */ 167 1.1 tsutsui #define RTC_MK48T18_ADDR ((volatile uint8_t *)0xbe493fe0) 168 1.1 tsutsui #define RTC_MK48T18_NVSRAM_ADDR 0xbe490000 169 1.1 tsutsui 170 1.1 tsutsui /* INTC */ 171 1.1 tsutsui #define INTC_CLEAR_REG ((volatile uint32_t *)0xbe000000) 172 1.1 tsutsui #define INTC_STATUS_REG ((volatile uint32_t *)0xbe000004) 173 1.1 tsutsui #define INTC_MASK_REG ((volatile uint32_t *)0xbe000008) 174 1.1 tsutsui #define INTC_INT5 0x80000000 175 1.1 tsutsui #define INTC_INT4 0x04000000 176 1.1 tsutsui #define INTC_INT3 0x00200000 177 1.1 tsutsui #define INTC_INT2 0x00010000 178 1.1 tsutsui #define INTC_INT1 0x00000800 179 1.1 tsutsui #define INTC_INT0 0x00000020 180 1.1 tsutsui 181 1.1 tsutsui /* ASO */ 182 1.1 tsutsui #define ASO_DMAINT_STATUS_REG ((volatile uint32_t *)0xbe408000) 183 1.1 tsutsui #define ASO_INT_MASK_REG ((volatile uint32_t *)0xbe40a00c) 184 1.1 tsutsui #define ASO_INT_STATUS_REG ((volatile uint32_t *)0xbe40a010) 185 1.1 tsutsui 186 1.1 tsutsui #define TR2A_ASO_INTMASK_ALL 0x00f0837d 187 1.1 tsutsui 188 1.1 tsutsui /* Graphic adapter */ 189 1.1 tsutsui #include <machine/gareg.h> 190 1.1 tsutsui 191 1.1 tsutsui #endif /* !_EWS4800MIPS_SBD_TR2_H_ */ 192