1/* 2 * Written by: Garry Forsgren, Unisys Corporation 3 * Natalie Protasevich, Unisys Corporation 4 * This file contains the code to configure and interface 5 * with Unisys ES7000 series hardware system manager. 6 * 7 * Copyright (c) 2003 Unisys Corporation. All Rights Reserved. 8 * 9 * This program is free software; you can redistribute it and/or modify it 10 * under the terms of version 2 of the GNU General Public License as 11 * published by the Free Software Foundation. 12 * 13 * This program is distributed in the hope that it would be useful, but 14 * WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 * 17 * You should have received a copy of the GNU General Public License along 18 * with this program; if not, write the Free Software Foundation, Inc., 59 19 * Temple Place - Suite 330, Boston MA 02111-1307, USA. 20 * 21 * Contact information: Unisys Corporation, Township Line & Union Meeting 22 * Roads-A, Unisys Way, Blue Bell, Pennsylvania, 19424, or: 23 * 24 * http://www.unisys.com 25 */ 26 27/* 28 * ES7000 chipsets 29 */ 30 31#define NON_UNISYS 0 32#define ES7000_CLASSIC 1 33#define ES7000_ZORRO 2 34 35 36#define MIP_REG 1 37#define MIP_PSAI_REG 4 38 39#define MIP_BUSY 1 40#define MIP_SPIN 0xf0000 41#define MIP_VALID 0x0100000000000000ULL 42#define MIP_PORT(VALUE) ((VALUE >> 32) & 0xffff) 43 44#define MIP_RD_LO(VALUE) (VALUE & 0xffffffff) 45 46struct mip_reg_info { 47 unsigned long long mip_info; 48 unsigned long long delivery_info; 49 unsigned long long host_reg; 50 unsigned long long mip_reg; 51}; 52 53struct part_info { 54 unsigned char type; 55 unsigned char length; 56 unsigned char part_id; 57 unsigned char apic_mode; 58 unsigned long snum; 59 char ptype[16]; 60 char sname[64]; 61 char pname[64]; 62}; 63 64struct psai { 65 unsigned long long entry_type; 66 unsigned long long addr; 67 unsigned long long bep_addr; 68}; 69 70struct es7000_mem_info { 71 unsigned char type; 72 unsigned char length; 73 unsigned char resv[6]; 74 unsigned long long start; 75 unsigned long long size; 76}; 77 78struct es7000_oem_table { 79 unsigned long long hdr; 80 struct mip_reg_info mip; 81 struct part_info pif; 82 struct es7000_mem_info shm; 83 struct psai psai; 84}; 85 86#ifdef CONFIG_ACPI 87 88struct oem_table { 89 struct acpi_table_header Header; 90 u32 OEMTableAddr; 91 u32 OEMTableSize; 92}; 93 94extern int find_unisys_acpi_oem_table(unsigned long *oem_addr); 95#endif 96 97struct mip_reg { 98 unsigned long long off_0; 99 unsigned long long off_8; 100 unsigned long long off_10; 101 unsigned long long off_18; 102 unsigned long long off_20; 103 unsigned long long off_28; 104 unsigned long long off_30; 105 unsigned long long off_38; 106}; 107 108#define MIP_SW_APIC 0x1020b 109#define MIP_FUNC(VALUE) (VALUE & 0xff) 110 111extern int parse_unisys_oem (char *oemptr); 112extern void setup_unisys(void); 113extern int es7000_start_cpu(int cpu, unsigned long eip); 114extern void es7000_sw_apic(void); 115