1633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* 2633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * lasat.h 3633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 4633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Thomas Horsten <thh@lasat.com> 5633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Copyright (C) 2000 LASAT Networks A/S. 6633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 7633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * This program is free software; you can distribute it and/or modify it 8633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * under the terms of the GNU General Public License (Version 2) as 9633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * published by the Free Software Foundation. 10633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 11633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * This program is distributed in the hope it will be useful, but WITHOUT 12633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * for more details. 15633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 16633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * You should have received a copy of the GNU General Public License along 17633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * with this program; if not, write to the Free Software Foundation, Inc., 18633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 19633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 20633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Configuration for LASAT boards, loads the appropriate include files. 21633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham */ 22633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#ifndef _LASAT_H 23633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define _LASAT_H 24633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 25633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#ifndef _LANGUAGE_ASSEMBLY 26633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 27633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamextern struct lasat_misc { 28633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile u32 *reset_reg; 29633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile u32 *flash_wp_reg; 30633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham u32 flash_wp_bit; 31633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham} *lasat_misc; 32633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 33633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamenum lasat_mtdparts { 34633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham LASAT_MTD_BOOTLOADER, 35633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham LASAT_MTD_SERVICE, 36633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham LASAT_MTD_NORMAL, 37633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham LASAT_MTD_CONFIG, 38633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham LASAT_MTD_FS, 39633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham LASAT_MTD_LAST 40633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham}; 41633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 42633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* 43633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * The format of the data record in the EEPROM. 44633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * See Documentation/LASAT/eeprom.txt for a detailed description 45633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * of the fields in this struct, and the LASAT Hardware Configuration 46633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * field specification for a detailed description of the config 47633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * field. 48633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham */ 49633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#include <linux/types.h> 50633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 51633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_EEPROM_VERSION 7 52633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstruct lasat_eeprom_struct { 53633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int version; 54633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int cfg[3]; 55633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char hwaddr[6]; 56633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char print_partno[12]; 57633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term0; 58633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char print_serial[14]; 59633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term1; 60633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char prod_partno[12]; 61633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term2; 62633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char prod_serial[14]; 63633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term3; 64633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char passwd_hash[16]; 65633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char pwdnull; 66633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char vendid; 67633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char ts_ref; 68633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char ts_signoff; 69633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char reserved[11]; 70633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char debugaccess; 71633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned short prid; 72633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int serviceflag; 73633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int ipaddr; 74633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int netmask; 75633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int crc32; 76633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham}; 77633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 78633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstruct lasat_eeprom_struct_pre7 { 79633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int version; 80633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int flags[3]; 81633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char hwaddr0[6]; 82633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char hwaddr1[6]; 83633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char print_partno[9]; 84633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term0; 85633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char print_serial[14]; 86633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term1; 87633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char prod_partno[9]; 88633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term2; 89633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char prod_serial[14]; 90633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char term3; 91633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char passwd_hash[24]; 92633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char pwdnull; 93633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char vendor; 94633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char ts_ref; 95633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char ts_signoff; 96633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char reserved[6]; 97633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int writecount; 98633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int ipaddr; 99633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int netmask; 100633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int crc32; 101633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham}; 102633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 103633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Configuration descriptor encoding - see the doc for details */ 104633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 105633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_DSCTYPE(v) (((v)) & 0xf) 106633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_BMID(v) (((v) >> 0x04) & 0xf) 107633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_CPUTYPE(v) (((v) >> 0x08) & 0xf) 108633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_BUSSPEED(v) (((v) >> 0x0c) & 0xf) 109633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_CPUCLK(v) (((v) >> 0x10) & 0xf) 110633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_SDRAMBANKSZ(v) (((v) >> 0x14) & 0xf) 111633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_SDRAMBANKS(v) (((v) >> 0x18) & 0xf) 112633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W0_L2CACHE(v) (((v) >> 0x1c) & 0xf) 113633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 114633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_EDHAC(v) (((v)) & 0xf) 115633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_HIFN(v) (((v) >> 0x04) & 0x1) 116633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_ISDN(v) (((v) >> 0x05) & 0x1) 117633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_IDE(v) (((v) >> 0x06) & 0x1) 118633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_HDLC(v) (((v) >> 0x07) & 0x1) 119633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_USVERSION(v) (((v) >> 0x08) & 0x1) 120633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_4MACS(v) (((v) >> 0x09) & 0x1) 121633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_EXTSERIAL(v) (((v) >> 0x0a) & 0x1) 122633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_FLASHSIZE(v) (((v) >> 0x0c) & 0xf) 123633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_PCISLOTS(v) (((v) >> 0x10) & 0xf) 124633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_PCI1OPT(v) (((v) >> 0x14) & 0xf) 125633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_PCI2OPT(v) (((v) >> 0x18) & 0xf) 126633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_W1_PCI3OPT(v) (((v) >> 0x1c) & 0xf) 127633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 128633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Routines specific to LASAT boards */ 129633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 130633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_MASQUERADE2 0 131633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_MASQUERADEPRO 1 132633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE25 2 133633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE50 3 134633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE100 4 135633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE5000 5 136633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE7000 6 137633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE1000 7 138633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#if 0 139633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE30 7 140633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE5100 8 141633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_SAFEPIPE7100 9 142633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#endif 143633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_BMID_UNKNOWN 0xf 144633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_MAX_BMID_NAMES 9 /* no larger than 15! */ 145633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 146633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_HAS_EDHAC (1 << 0) 147633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_EDHAC_FAST (1 << 1) 148633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_HAS_EADI (1 << 2) 149633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_HAS_HIFN (1 << 3) 150633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_HAS_ISDN (1 << 4) 151633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_HAS_LEASEDLINE_IF (1 << 5) 152633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_HAS_HDC (1 << 6) 153633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 154633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_MASQUERADE2 0 155633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_MASQUERADEPRO 1 156633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE25 2 157633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE50 3 158633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE100 4 159633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE5000 5 160633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE7000 6 161633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE30 7 162633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE5100 8 163633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE7100 9 164633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 165633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE1110 10 166633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE3020 11 167633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE3030 12 168633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE5020 13 169633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE5030 14 170633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE1120 15 171633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE1130 16 172633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE6010 17 173633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE6110 18 174633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE6210 19 175633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE1020 20 176633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE1040 21 177633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_PRID_SAFEPIPE1060 22 178633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 179633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstruct lasat_info { 180633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_cpu_hz; 181633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_bus_hz; 182633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_bmid; 183633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_memsize; 184633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_flash_size; 185633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_prid; 186633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char li_bmstr[16]; 187633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char li_namestr[32]; 188633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned char li_typestr[16]; 189633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham /* Info on the Flash layout */ 190633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_flash_base; 191633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned long li_flashpart_base[LASAT_MTD_LAST]; 192633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned long li_flashpart_size[LASAT_MTD_LAST]; 193633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham struct lasat_eeprom_struct li_eeprom_info; 194633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_eeprom_upgrade_version; 195633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned int li_debugaccess; 196633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham}; 197633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 198633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamextern struct lasat_info lasat_board_info; 199633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 200633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstatic inline unsigned long lasat_flash_partition_start(int partno) 201633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham{ 202633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham if (partno < 0 || partno >= LASAT_MTD_LAST) 203633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham return 0; 204633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 205633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham return lasat_board_info.li_flashpart_base[partno]; 206633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham} 207633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 208633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstatic inline unsigned long lasat_flash_partition_size(int partno) 209633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham{ 210633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham if (partno < 0 || partno >= LASAT_MTD_LAST) 211633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham return 0; 212633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 213633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham return lasat_board_info.li_flashpart_size[partno]; 214633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham} 215633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 216633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Called from setup() to initialize the global board_info struct */ 217633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamextern int lasat_init_board_info(void); 218633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 219633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Write the modified EEPROM info struct */ 220633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamextern void lasat_write_eeprom_info(void); 221633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 222633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define N_MACHTYPES 2 223633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* for calibration of delays */ 224633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 225633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* the lasat_ndelay function is necessary because it is used at an 226633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * early stage of the boot process where ndelay is not calibrated. 227633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * It is used for the bit-banging rtc and eeprom drivers */ 228633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 229633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#include <linux/delay.h> 230633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 231633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* calculating with the slowest board with 100 MHz clock */ 232633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_100_DIVIDER 20 233633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* All 200's run at 250 MHz clock */ 234633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_200_DIVIDER 8 235633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 236633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamextern unsigned int lasat_ndelay_divider; 237633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 238633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstatic inline void lasat_ndelay(unsigned int ns) 239633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham{ 240633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham __delay(ns / lasat_ndelay_divider); 241633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham} 242633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 243633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define IS_LASAT_200() (current_cpu_data.cputype == CPU_R5000) 244633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 245633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#endif /* !defined (_LANGUAGE_ASSEMBLY) */ 246633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 247633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_SERVICEMODE_MAGIC_1 0xdeadbeef 248633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_SERVICEMODE_MAGIC_2 0xfedeabba 249633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 250633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Lasat 100 boards */ 251633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define LASAT_GT_BASE (KSEG1ADDR(0x14000000)) 252633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 253633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Lasat 200 boards */ 254633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define Vrc5074_PHYS_BASE 0x1fa00000 255633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define Vrc5074_BASE (KSEG1ADDR(Vrc5074_PHYS_BASE)) 256633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define PCI_WINDOW1 0x1a000000 257633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 258633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#endif /* _LASAT_H */ 259