1633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* 2633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Definitions for the SGI CRIME (CPU, Rendering, Interconnect and Memory 3633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Engine) 4633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 5633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * This file is subject to the terms and conditions of the GNU General Public 6633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * License. See the file "COPYING" in the main directory of this archive 7633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * for more details. 8633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * 9633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Copyright (C) 2000 Harald Koerfgen 10633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham */ 11633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 12633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#ifndef __ASM_CRIME_H__ 13633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define __ASM_CRIME_H__ 14633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 15633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* 16633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham * Address map 17633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham */ 18633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_BASE 0x14000000 /* physical */ 19633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 20633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamstruct sgi_crime { 21633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long id; 22633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_ID_MASK 0xff 23633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_ID_IDBITS 0xf0 24633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_ID_IDVALUE 0xa0 25633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_ID_REV 0x0f 26633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_REV_PETTY 0x00 27633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_REV_11 0x11 28633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_REV_13 0x13 29633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_REV_14 0x14 30633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 31633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long control; 32633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_MASK 0x3fff 33633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_TRITON_SYSADC 0x2000 34633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_CRIME_SYSADC 0x1000 35633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_HARD_RESET 0x0800 36633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_SOFT_RESET 0x0400 37633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_DOG_ENA 0x0200 38633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_ENDIANESS 0x0100 39633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_ENDIAN_BIG 0x0100 40633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_ENDIAN_LITTLE 0x0000 41633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_CQUEUE_HWM 0x000f 42633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_CQUEUE_SHFT 0 43633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_WBUF_HWM 0x00f0 44633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CONTROL_WBUF_SHFT 8 45633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 46633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long istat; 47633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long imask; 48633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long soft_int; 49633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long hard_int; 50633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_VID_IN1_INT BIT(0) 51633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_VID_IN2_INT BIT(1) 52633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_VID_OUT_INT BIT(2) 53633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_ETHERNET_INT BIT(3) 54633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_SUPERIO_INT BIT(4) 55633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_MISC_INT BIT(5) 56633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_AUDIO_INT BIT(6) 57633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACE_PCI_BRIDGE_INT BIT(7) 58633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SCSI0_INT BIT(8) 59633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SCSI1_INT BIT(9) 60633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SLOT0_INT BIT(10) 61633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SLOT1_INT BIT(11) 62633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SLOT2_INT BIT(12) 63633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SHARED0_INT BIT(13) 64633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SHARED1_INT BIT(14) 65633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define MACEPCI_SHARED2_INT BIT(15) 66633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_GBE0_INT BIT(16) 67633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_GBE1_INT BIT(17) 68633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_GBE2_INT BIT(18) 69633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_GBE3_INT BIT(19) 70633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CPUERR_INT BIT(20) 71633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEMERR_INT BIT(21) 72633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_RE_EMPTY_E_INT BIT(22) 73633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_RE_FULL_E_INT BIT(23) 74633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_RE_IDLE_E_INT BIT(24) 75633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_RE_EMPTY_L_INT BIT(25) 76633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_RE_FULL_L_INT BIT(26) 77633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_RE_IDLE_L_INT BIT(27) 78633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_SOFT0_INT BIT(28) 79633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_SOFT1_INT BIT(29) 80633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_SOFT2_INT BIT(30) 81633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_SYSCORERR_INT CRIME_SOFT2_INT 82633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_VICE_INT BIT(31) 83633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham/* Masks for deciding who handles the interrupt */ 84633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MACE_INT_MASK 0x8f 85633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MACEISA_INT_MASK 0x70 86633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MACEPCI_INT_MASK 0xff00 87633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CRIME_INT_MASK 0xffff0000 88633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 89633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long watchdog; 90633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_DOG_POWER_ON_RESET 0x00010000 91633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_DOG_WARM_RESET 0x00080000 92633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_DOG_TIMEOUT (CRIME_DOG_POWER_ON_RESET|CRIME_DOG_WARM_RESET) 93633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_DOG_VALUE 0x00007fff 94633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 95633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long timer; 96633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MASTER_FREQ 66666500 /* Crime upcounter frequency */ 97633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_NS_PER_TICK 15 /* for delay_calibrate */ 98633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 99633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long cpu_error_addr; 100633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CPU_ERROR_ADDR_MASK 0x3ffffffff 101633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 102633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long cpu_error_stat; 103633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CPU_ERROR_MASK 0x7 /* cpu error stat is 3 bits */ 104633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CPU_ERROR_CPU_ILL_ADDR 0x4 105633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CPU_ERROR_VICE_WRT_PRTY 0x2 106633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_CPU_ERROR_CPU_WRT_PRTY 0x1 107633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 108633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham unsigned long _pad0[54]; 109633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 110633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mc_ctrl; 111633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long bank_ctrl[8]; 112633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_BANK_CONTROL_MASK 0x11f /* 9 bits 7:5 reserved */ 113633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_BANK_CONTROL_ADDR 0x01f 114633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_BANK_CONTROL_SDRAM_SIZE 0x100 115633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MAXBANKS 8 116633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 117633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mem_ref_counter; 118633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_REF_COUNTER_MASK 0x3ff /* 10bit */ 119633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 120633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mem_error_stat; 121633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_STAT_MASK 0x0ff7ffff /* 28-bit register */ 122633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_MACE_ID 0x0000007f 123633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_MACE_ACCESS 0x00000080 124633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_RE_ID 0x00007f00 125633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_RE_ACCESS 0x00008000 126633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_GBE_ACCESS 0x00010000 127633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_VICE_ACCESS 0x00020000 128633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_CPU_ACCESS 0x00040000 129633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_RESERVED 0x00080000 130633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_SOFT_ERR 0x00100000 131633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_HARD_ERR 0x00200000 132633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_MULTIPLE 0x00400000 133633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_ECC 0x01800000 134633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_MEM_ECC_RD 0x00800000 135633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_MEM_ECC_RMW 0x01000000 136633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_INV 0x0e000000 137633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_INV_MEM_ADDR_RD 0x02000000 138633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_INV_MEM_ADDR_WR 0x04000000 139633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_INV_MEM_ADDR_RMW 0x08000000 140633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 141633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mem_error_addr; 142633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_ADDR_MASK 0x3fffffff 143633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 144633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mem_ecc_syn; 145633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_ECC_SYN_MASK 0xffffffff 146633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 147633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mem_ecc_chk; 148633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_ECC_CHK_MASK 0xffffffff 149633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 150633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham volatile unsigned long mem_ecc_repl; 151633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_MEM_ERROR_ECC_REPL_MASK 0xffffffff 152633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham}; 153633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 154633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandhamextern struct sgi_crime __iomem *crime; 155633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 156633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#define CRIME_HI_MEM_BASE 0x40000000 /* this is where whole 1G of RAM is mapped */ 157633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham 158633c3473533ad9f2cca069b22cc5d95cd4e3510bRaghu Gandham#endif /* __ASM_CRIME_H__ */ 159