18012Ssaidi@eecs.umich.edu/* 28029Snate@binkert.org * Copyright (c) 1993 The Hewlett-Packard Development Company 38029Snate@binkert.org * All rights reserved. 48013Sbinkertn@umich.edu * 58029Snate@binkert.org * Redistribution and use in source and binary forms, with or without 68029Snate@binkert.org * modification, are permitted provided that the following conditions are 78029Snate@binkert.org * met: redistributions of source code must retain the above copyright 88029Snate@binkert.org * notice, this list of conditions and the following disclaimer; 98029Snate@binkert.org * redistributions in binary form must reproduce the above copyright 108029Snate@binkert.org * notice, this list of conditions and the following disclaimer in the 118029Snate@binkert.org * documentation and/or other materials provided with the distribution; 128029Snate@binkert.org * neither the name of the copyright holders nor the names of its 138029Snate@binkert.org * contributors may be used to endorse or promote products derived from 148029Snate@binkert.org * this software without specific prior written permission. 158013Sbinkertn@umich.edu * 168029Snate@binkert.org * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 178029Snate@binkert.org * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 188029Snate@binkert.org * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 198029Snate@binkert.org * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 208029Snate@binkert.org * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 218029Snate@binkert.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 228029Snate@binkert.org * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 238029Snate@binkert.org * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 248029Snate@binkert.org * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 258029Snate@binkert.org * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 268029Snate@binkert.org * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 278013Sbinkertn@umich.edu */ 288012Ssaidi@eecs.umich.edu 297997Ssaidi@eecs.umich.edu#ifndef EV5_IMPURE_INCLUDED 307997Ssaidi@eecs.umich.edu#define EV5_IMPURE_INCLUDED 317997Ssaidi@eecs.umich.edu 327997Ssaidi@eecs.umich.edu// This uses the Hudson file format from "impure.h" but with the fields from 337997Ssaidi@eecs.umich.edu// the distrubuted palcode "ev5_impure.sdl" .. pboyle Nov/95 347997Ssaidi@eecs.umich.edu 358013Sbinkertn@umich.edu// file: impure.sdl 368013Sbinkertn@umich.edu// 378013Sbinkertn@umich.edu// PAL impure scratch area and logout area data structure definitions for 388013Sbinkertn@umich.edu// Alpha firmware. 398013Sbinkertn@umich.edu// 408013Sbinkertn@umich.edu// 418013Sbinkertn@umich.edu// module $pal_impure; 428013Sbinkertn@umich.edu// 438013Sbinkertn@umich.edu// Edit Date Who Description 448013Sbinkertn@umich.edu// ---- --------- --- --------------------- 458013Sbinkertn@umich.edu// 1 7-Jul-93 JEM Initial Entry 468013Sbinkertn@umich.edu// 2 18-nov-93 JEM Add shadow bc_ctl and pmctr_ctl to impure area 478013Sbinkertn@umich.edu// Delete mvptbr 488013Sbinkertn@umich.edu// Calculate pal$logout from end of impure area 498013Sbinkertn@umich.edu// 3 6-dec-93 JEM Add pmctr_ctl bitfield definitions 508013Sbinkertn@umich.edu// 4 3-feb-94 JEM Remove f31,r31 from impure area; Remove bc_ctl, 518013Sbinkertn@umich.edu// pmctr_ctl; add ic_perr_stat, pmctr, dc_perr_stat, 528013Sbinkertn@umich.edu// sc_stat, sc_addr, sc_ctl, bc_tag_addr, ei_stat, 538013Sbinkertn@umich.edu// ei_addr, fill_syn, ld_lock 548013Sbinkertn@umich.edu// 5 19-feb-94 JEM add gpr constants, and add f31,r31 back in to be 558013Sbinkertn@umich.edu// consistent with ev4 568013Sbinkertn@umich.edu// add cns$ipr_offset 578013Sbinkertn@umich.edu// 6 18-apr-94 JEM Add shadow bc_ctl and pmctr_ctl to impure area again. 588013Sbinkertn@umich.edu// 7 18-jul-94 JEM Add bc_config shadow. Add mchk$sys_base constant 598013Sbinkertn@umich.edu// to mchk logout frame 608013Sbinkertn@umich.edu// 618013Sbinkertn@umich.edu// 628013Sbinkertn@umich.edu// constant REVISION equals 7 prefix IMPURE$; // Revision number of this file 637997Ssaidi@eecs.umich.edu//orig 647997Ssaidi@eecs.umich.edu 658013Sbinkertn@umich.edu/* 667997Ssaidi@eecs.umich.edu** Macros for saving/restoring data to/from the PAL impure scratch 677997Ssaidi@eecs.umich.edu** area. 687997Ssaidi@eecs.umich.edu** 697997Ssaidi@eecs.umich.edu** The console save state area is larger than the addressibility 707997Ssaidi@eecs.umich.edu** of the HW_LD/ST instructions (10-bit signed byte displacement), 717997Ssaidi@eecs.umich.edu** so some adjustments to the base offsets, as well as the offsets 727997Ssaidi@eecs.umich.edu** within each base region, are necessary. 737997Ssaidi@eecs.umich.edu** 747997Ssaidi@eecs.umich.edu** The console save state area is divided into two segments; the 757997Ssaidi@eecs.umich.edu** CPU-specific segment and the platform-specific segment. The 767997Ssaidi@eecs.umich.edu** state that is saved in the CPU-specific segment includes GPRs, 777997Ssaidi@eecs.umich.edu** FPRs, IPRs, halt code, MCHK flag, etc. All other state is saved 787997Ssaidi@eecs.umich.edu** in the platform-specific segment. 797997Ssaidi@eecs.umich.edu** 807997Ssaidi@eecs.umich.edu** The impure pointer will need to be adjusted by a different offset 817997Ssaidi@eecs.umich.edu** value for each region within a given segment. The SAVE and RESTORE 827997Ssaidi@eecs.umich.edu** macros will auto-magically adjust the offsets accordingly. 837997Ssaidi@eecs.umich.edu** 847997Ssaidi@eecs.umich.edu*/ 857997Ssaidi@eecs.umich.edu//#define SEXT10(X) (((X) & 0x200) ? ((X) | 0xfffffffffffffc00) : (X)) 867997Ssaidi@eecs.umich.edu#define SEXT10(X) ((X) & 0x3ff) 877997Ssaidi@eecs.umich.edu//#define SEXT10(X) (((X) << 55) >> 55) 887997Ssaidi@eecs.umich.edu 897997Ssaidi@eecs.umich.edu#define SAVE_GPR(reg,offset,base) \ 907997Ssaidi@eecs.umich.edu stq_p reg, (SEXT10(offset-0x200))(base) 917997Ssaidi@eecs.umich.edu 927997Ssaidi@eecs.umich.edu#define RESTORE_GPR(reg,offset,base) \ 937997Ssaidi@eecs.umich.edu ldq_p reg, (SEXT10(offset-0x200))(base) 947997Ssaidi@eecs.umich.edu 957997Ssaidi@eecs.umich.edu 967997Ssaidi@eecs.umich.edu#define SAVE_FPR(reg,offset,base) \ 977997Ssaidi@eecs.umich.edu stt reg, (SEXT10(offset-0x200))(base) 987997Ssaidi@eecs.umich.edu 997997Ssaidi@eecs.umich.edu#define RESTORE_FPR(reg,offset,base) \ 1007997Ssaidi@eecs.umich.edu ldt reg, (SEXT10(offset-0x200))(base) 1017997Ssaidi@eecs.umich.edu 1027997Ssaidi@eecs.umich.edu#define SAVE_IPR(reg,offset,base) \ 1037997Ssaidi@eecs.umich.edu mfpr v0, reg; \ 1047997Ssaidi@eecs.umich.edu stq_p v0, (SEXT10(offset-CNS_Q_IPR))(base) 1057997Ssaidi@eecs.umich.edu 1067997Ssaidi@eecs.umich.edu#define RESTORE_IPR(reg,offset,base) \ 1077997Ssaidi@eecs.umich.edu ldq_p v0, (SEXT10(offset-CNS_Q_IPR))(base); \ 1087997Ssaidi@eecs.umich.edu mtpr v0, reg 1097997Ssaidi@eecs.umich.edu 1107997Ssaidi@eecs.umich.edu#define SAVE_SHADOW(reg,offset,base) \ 1117997Ssaidi@eecs.umich.edu stq_p reg, (SEXT10(offset-CNS_Q_IPR))(base) 1127997Ssaidi@eecs.umich.edu 1137997Ssaidi@eecs.umich.edu#define RESTORE_SHADOW(reg,offset,base)\ 1147997Ssaidi@eecs.umich.edu ldq_p reg, (SEXT10(offset-CNS_Q_IPR))(base) 1157997Ssaidi@eecs.umich.edu 1168013Sbinkertn@umich.edu/* Structure of the processor-specific impure area */ 1178013Sbinkertn@umich.edu 1188013Sbinkertn@umich.edu/* aggregate impure struct prefix "" tag ""; 1198013Sbinkertn@umich.edu * cns$flag quadword; 1208013Sbinkertn@umich.edu * cns$hlt quadword; 1218013Sbinkertn@umich.edu */ 1227997Ssaidi@eecs.umich.edu 1237997Ssaidi@eecs.umich.edu/* Define base for debug monitor compatibility */ 1247997Ssaidi@eecs.umich.edu#define CNS_Q_BASE 0x000 1257997Ssaidi@eecs.umich.edu#define CNS_Q_FLAG 0x100 1267997Ssaidi@eecs.umich.edu#define CNS_Q_HALT 0x108 1277997Ssaidi@eecs.umich.edu 1287997Ssaidi@eecs.umich.edu 1298013Sbinkertn@umich.edu/* constant ( 1308013Sbinkertn@umich.edu * cns$r0,cns$r1,cns$r2,cns$r3,cns$r4,cns$r5,cns$r6,cns$r7, 1318013Sbinkertn@umich.edu * cns$r8,cns$r9,cns$r10,cns$r11,cns$r12,cns$r13,cns$r14,cns$r15, 1328013Sbinkertn@umich.edu * cns$r16,cns$r17,cns$r18,cns$r19,cns$r20,cns$r21,cns$r22,cns$r23, 1338013Sbinkertn@umich.edu * cns$r24,cns$r25,cns$r26,cns$r27,cns$r28,cns$r29,cns$r30,cns$r31 1348013Sbinkertn@umich.edu * ) equals . increment 8 prefix "" tag ""; 1358013Sbinkertn@umich.edu * cns$gpr quadword dimension 32; 1368013Sbinkertn@umich.edu */ 1378013Sbinkertn@umich.edu 1387997Ssaidi@eecs.umich.edu/* Offset to base of saved GPR area - 32 quadword */ 1397997Ssaidi@eecs.umich.edu#define CNS_Q_GPR 0x110 1407997Ssaidi@eecs.umich.edu#define cns_gpr CNS_Q_GPR 1417997Ssaidi@eecs.umich.edu 1428013Sbinkertn@umich.edu/* constant ( 1438013Sbinkertn@umich.edu * cns$f0,cns$f1,cns$f2,cns$f3,cns$f4,cns$f5,cns$f6,cns$f7, 1448013Sbinkertn@umich.edu * cns$f8,cns$f9,cns$f10,cns$f11,cns$f12,cns$f13,cns$f14,cns$f15, 1458013Sbinkertn@umich.edu * cns$f16,cns$f17,cns$f18,cns$f19,cns$f20,cns$f21,cns$f22,cns$f23, 1468013Sbinkertn@umich.edu * cns$f24,cns$f25,cns$f26,cns$f27,cns$f28,cns$f29,cns$f30,cns$f31 1478013Sbinkertn@umich.edu * ) equals . increment 8 prefix "" tag ""; 1488013Sbinkertn@umich.edu * cns$fpr quadword dimension 32; 1498013Sbinkertn@umich.edu */ 1508013Sbinkertn@umich.edu 1517997Ssaidi@eecs.umich.edu/* Offset to base of saved FPR area - 32 quadwords */ 1527997Ssaidi@eecs.umich.edu#define CNS_Q_FPR 0x210 1537997Ssaidi@eecs.umich.edu 1548013Sbinkertn@umich.edu/* #t=.; 1558013Sbinkertn@umich.edu * cns$mchkflag quadword; 1568013Sbinkertn@umich.edu */ 1577997Ssaidi@eecs.umich.edu#define CNS_Q_MCHK 0x310 1587997Ssaidi@eecs.umich.edu 1598013Sbinkertn@umich.edu/* constant cns$pt_offset equals .; 1608013Sbinkertn@umich.edu * constant ( 1618013Sbinkertn@umich.edu * cns$pt0,cns$pt1,cns$pt2,cns$pt3,cns$pt4,cns$pt5,cns$pt6, 1628013Sbinkertn@umich.edu * cns$pt7,cns$pt8,cns$pt9,cns$pt10,cns$pt11,cns$pt12,cns$pt13, 1638013Sbinkertn@umich.edu * cns$pt14,cns$pt15,cns$pt16,cns$pt17,cns$pt18,cns$pt19,cns$pt20, 1648013Sbinkertn@umich.edu * cns$pt21,cns$pt22,cns$pt23 1658013Sbinkertn@umich.edu * ) equals . increment 8 prefix "" tag ""; 1668013Sbinkertn@umich.edu * cns$pt quadword dimension 24; 1678013Sbinkertn@umich.edu */ 1687997Ssaidi@eecs.umich.edu/* Offset to base of saved PALtemp area - 25 quadwords */ 1697997Ssaidi@eecs.umich.edu#define CNS_Q_PT 0x318 1707997Ssaidi@eecs.umich.edu 1718013Sbinkertn@umich.edu/* cns$shadow8 quadword; 1728013Sbinkertn@umich.edu * cns$shadow9 quadword; 1738013Sbinkertn@umich.edu * cns$shadow10 quadword; 1748013Sbinkertn@umich.edu * cns$shadow11 quadword; 1758013Sbinkertn@umich.edu * cns$shadow12 quadword; 1768013Sbinkertn@umich.edu * cns$shadow13 quadword; 1778013Sbinkertn@umich.edu * cns$shadow14 quadword; 1788013Sbinkertn@umich.edu * cns$shadow25 quadword; 1798013Sbinkertn@umich.edu */ 1807997Ssaidi@eecs.umich.edu/* Offset to base of saved PALshadow area - 8 quadwords */ 1817997Ssaidi@eecs.umich.edu#define CNS_Q_SHADOW 0x3D8 1827997Ssaidi@eecs.umich.edu 1837997Ssaidi@eecs.umich.edu/* Offset to base of saved IPR area */ 1847997Ssaidi@eecs.umich.edu#define CNS_Q_IPR 0x418 1857997Ssaidi@eecs.umich.edu 1868013Sbinkertn@umich.edu/* constant cns$ipr_offset equals .; */ 1878013Sbinkertn@umich.edu/* cns$exc_addr quadword; */ 1887997Ssaidi@eecs.umich.edu#define CNS_Q_EXC_ADDR 0x418 1898013Sbinkertn@umich.edu/* cns$pal_base quadword; */ 1907997Ssaidi@eecs.umich.edu#define CNS_Q_PAL_BASE 0x420 1918013Sbinkertn@umich.edu/* cns$mm_stat quadword; */ 1927997Ssaidi@eecs.umich.edu#define CNS_Q_MM_STAT 0x428 1938013Sbinkertn@umich.edu/* cns$va quadword; */ 1947997Ssaidi@eecs.umich.edu#define CNS_Q_VA 0x430 1958013Sbinkertn@umich.edu/* cns$icsr quadword; */ 1967997Ssaidi@eecs.umich.edu#define CNS_Q_ICSR 0x438 1978013Sbinkertn@umich.edu/* cns$ipl quadword; */ 1987997Ssaidi@eecs.umich.edu#define CNS_Q_IPL 0x440 1998013Sbinkertn@umich.edu/* cns$ps quadword; // Ibox current mode */ 2007997Ssaidi@eecs.umich.edu#define CNS_Q_IPS 0x448 2018013Sbinkertn@umich.edu/* cns$itb_asn quadword; */ 2027997Ssaidi@eecs.umich.edu#define CNS_Q_ITB_ASN 0x450 2038013Sbinkertn@umich.edu/* cns$aster quadword; */ 2047997Ssaidi@eecs.umich.edu#define CNS_Q_ASTER 0x458 2058013Sbinkertn@umich.edu/* cns$astrr quadword; */ 2067997Ssaidi@eecs.umich.edu#define CNS_Q_ASTRR 0x460 2078013Sbinkertn@umich.edu/* cns$isr quadword; */ 2087997Ssaidi@eecs.umich.edu#define CNS_Q_ISR 0x468 2098013Sbinkertn@umich.edu/* cns$ivptbr quadword; */ 2107997Ssaidi@eecs.umich.edu#define CNS_Q_IVPTBR 0x470 2118013Sbinkertn@umich.edu/* cns$mcsr quadword; */ 2127997Ssaidi@eecs.umich.edu#define CNS_Q_MCSR 0x478 2138013Sbinkertn@umich.edu/* cns$dc_mode quadword; */ 2147997Ssaidi@eecs.umich.edu#define CNS_Q_DC_MODE 0x480 2158013Sbinkertn@umich.edu/* cns$maf_mode quadword; */ 2167997Ssaidi@eecs.umich.edu#define CNS_Q_MAF_MODE 0x488 2178013Sbinkertn@umich.edu/* cns$sirr quadword; */ 2187997Ssaidi@eecs.umich.edu#define CNS_Q_SIRR 0x490 2198013Sbinkertn@umich.edu/* cns$fpcsr quadword; */ 2207997Ssaidi@eecs.umich.edu#define CNS_Q_FPCSR 0x498 2218013Sbinkertn@umich.edu/* cns$icperr_stat quadword; */ 2227997Ssaidi@eecs.umich.edu#define CNS_Q_ICPERR_STAT 0x4A0 2238013Sbinkertn@umich.edu/* cns$pmctr quadword; */ 2247997Ssaidi@eecs.umich.edu#define CNS_Q_PM_CTR 0x4A8 2258013Sbinkertn@umich.edu/* cns$exc_sum quadword; */ 2267997Ssaidi@eecs.umich.edu#define CNS_Q_EXC_SUM 0x4B0 2278013Sbinkertn@umich.edu/* cns$exc_mask quadword; */ 2287997Ssaidi@eecs.umich.edu#define CNS_Q_EXC_MASK 0x4B8 2298013Sbinkertn@umich.edu/* cns$intid quadword; */ 2307997Ssaidi@eecs.umich.edu#define CNS_Q_INT_ID 0x4C0 2318013Sbinkertn@umich.edu/* cns$dcperr_stat quadword; */ 2327997Ssaidi@eecs.umich.edu#define CNS_Q_DCPERR_STAT 0x4C8 2338013Sbinkertn@umich.edu/* cns$sc_stat quadword; */ 2347997Ssaidi@eecs.umich.edu#define CNS_Q_SC_STAT 0x4D0 2358013Sbinkertn@umich.edu/* cns$sc_addr quadword; */ 2367997Ssaidi@eecs.umich.edu#define CNS_Q_SC_ADDR 0x4D8 2378013Sbinkertn@umich.edu/* cns$sc_ctl quadword; */ 2387997Ssaidi@eecs.umich.edu#define CNS_Q_SC_CTL 0x4E0 2398013Sbinkertn@umich.edu/* cns$bc_tag_addr quadword; */ 2407997Ssaidi@eecs.umich.edu#define CNS_Q_BC_TAG_ADDR 0x4E8 2418013Sbinkertn@umich.edu/* cns$ei_stat quadword; */ 2427997Ssaidi@eecs.umich.edu#define CNS_Q_EI_STAT 0x4F0 2438013Sbinkertn@umich.edu/* cns$ei_addr quadword; */ 2447997Ssaidi@eecs.umich.edu#define CNS_Q_EI_ADDR 0x4F8 2458013Sbinkertn@umich.edu/* cns$fill_syn quadword; */ 2467997Ssaidi@eecs.umich.edu#define CNS_Q_FILL_SYN 0x500 2478013Sbinkertn@umich.edu/* cns$ld_lock quadword; */ 2487997Ssaidi@eecs.umich.edu#define CNS_Q_LD_LOCK 0x508 2498013Sbinkertn@umich.edu/* cns$bc_ctl quadword; // shadow of on chip bc_ctl */ 2507997Ssaidi@eecs.umich.edu#define CNS_Q_BC_CTL 0x510 2518013Sbinkertn@umich.edu/* cns$pmctr_ctl quadword; // saved frequency select info for performance monitor counter */ 2527997Ssaidi@eecs.umich.edu#define CNS_Q_PM_CTL 0x518 2538013Sbinkertn@umich.edu/* cns$bc_config quadword; // shadow of on chip bc_config */ 2547997Ssaidi@eecs.umich.edu#define CNS_Q_BC_CFG 0x520 2557997Ssaidi@eecs.umich.edu 2568013Sbinkertn@umich.edu/* constant cns$size equals .; 2578013Sbinkertn@umich.edu * 2588013Sbinkertn@umich.edu * constant pal$impure_common_size equals (%x0200 +7) & %xfff8; 2598013Sbinkertn@umich.edu * constant pal$impure_specific_size equals (.+7) & %xfff8; 2608013Sbinkertn@umich.edu * constant cns$mchksize equals (.+7-#t) & %xfff8; 2618013Sbinkertn@umich.edu * constant pal$logout_area equals pal$impure_specific_size ; 2628013Sbinkertn@umich.edu * end impure; 2637997Ssaidi@eecs.umich.edu*/ 2647997Ssaidi@eecs.umich.edu 2657997Ssaidi@eecs.umich.edu/* This next set of stuff came from the old code ..pb */ 2667997Ssaidi@eecs.umich.edu#define CNS_Q_SROM_REV 0x528 2677997Ssaidi@eecs.umich.edu#define CNS_Q_PROC_ID 0x530 2687997Ssaidi@eecs.umich.edu#define CNS_Q_MEM_SIZE 0x538 2697997Ssaidi@eecs.umich.edu#define CNS_Q_CYCLE_CNT 0x540 2707997Ssaidi@eecs.umich.edu#define CNS_Q_SIGNATURE 0x548 2717997Ssaidi@eecs.umich.edu#define CNS_Q_PROC_MASK 0x550 2727997Ssaidi@eecs.umich.edu#define CNS_Q_SYSCTX 0x558 2737997Ssaidi@eecs.umich.edu 2747997Ssaidi@eecs.umich.edu 2757997Ssaidi@eecs.umich.edu 2767997Ssaidi@eecs.umich.edu#define MACHINE_CHECK_CRD_BASE 0 2777997Ssaidi@eecs.umich.edu#define MACHINE_CHECK_SIZE ((CNS_Q_SYSCTX + 7 - CNS_Q_MCHK) & 0xfff8) 2787997Ssaidi@eecs.umich.edu 2797997Ssaidi@eecs.umich.edu 2807997Ssaidi@eecs.umich.edu 2818013Sbinkertn@umich.edu/* 2828013Sbinkertn@umich.edu * aggregate EV5PMCTRCTL_BITS structure fill prefix PMCTR_CTL$; 2838013Sbinkertn@umich.edu * SPROCESS bitfield length 1 ; 2848013Sbinkertn@umich.edu * FILL_0 bitfield length 3 fill tag $$; 2858013Sbinkertn@umich.edu * FRQ2 bitfield length 2 ; 2868013Sbinkertn@umich.edu * FRQ1 bitfield length 2 ; 2878013Sbinkertn@umich.edu * FRQ0 bitfield length 2 ; 2888013Sbinkertn@umich.edu * CTL2 bitfield length 2 ; 2898013Sbinkertn@umich.edu * CTL1 bitfield length 2 ; 2908013Sbinkertn@umich.edu * CTL0 bitfield length 2 ; 2918013Sbinkertn@umich.edu * FILL_1 bitfield length 16 fill tag $$; 2928013Sbinkertn@umich.edu * FILL_2 bitfield length 32 fill tag $$; 2938013Sbinkertn@umich.edu * end EV5PMCTRCTL_BITS; 2948013Sbinkertn@umich.edu * 2958013Sbinkertn@umich.edu * end_module $pal_impure; 2968013Sbinkertn@umich.edu * 2978013Sbinkertn@umich.edu * module $pal_logout; 2988013Sbinkertn@umich.edu * 2998013Sbinkertn@umich.edu * // 3008013Sbinkertn@umich.edu * // Start definition of Corrected Error Frame 3018013Sbinkertn@umich.edu * // 3027997Ssaidi@eecs.umich.edu */ 3037997Ssaidi@eecs.umich.edu 3047997Ssaidi@eecs.umich.edu/* 3058013Sbinkertn@umich.edu * aggregate crd_logout struct prefix "" tag ""; 3067997Ssaidi@eecs.umich.edu */ 3077997Ssaidi@eecs.umich.edu 3087997Ssaidi@eecs.umich.edu#define pal_logout_area 0x600 3097997Ssaidi@eecs.umich.edu#define mchk_crd_base 0 3107997Ssaidi@eecs.umich.edu 3118013Sbinkertn@umich.edu/* mchk$crd_flag quadword; */ 3127997Ssaidi@eecs.umich.edu#define mchk_crd_flag 0 3138013Sbinkertn@umich.edu/* mchk$crd_offsets quadword; */ 3147997Ssaidi@eecs.umich.edu#define mchk_crd_offsets 8 3158013Sbinkertn@umich.edu/* 3168013Sbinkertn@umich.edu * // Pal-specific information */ 3177997Ssaidi@eecs.umich.edu#define mchk_crd_mchk_code 0x10 3188013Sbinkertn@umich.edu/* mchk$crd_mchk_code quadword; 3198013Sbinkertn@umich.edu * 3208013Sbinkertn@umich.edu * // CPU-specific information 3218013Sbinkertn@umich.edu * constant mchk$crd_cpu_base equals . ; 3228013Sbinkertn@umich.edu * mchk$crd_ei_addr quadword; */ 3237997Ssaidi@eecs.umich.edu#define mchk_crd_ei_addr 0x18 3248013Sbinkertn@umich.edu/* mchk$crd_fill_syn quadword; */ 3257997Ssaidi@eecs.umich.edu#define mchk_crd_fill_syn 0x20 3268013Sbinkertn@umich.edu/* mchk$crd_ei_stat quadword; */ 3277997Ssaidi@eecs.umich.edu#define mchk_crd_ei_stat 0x28 3288013Sbinkertn@umich.edu/* mchk$crd_isr quadword; */ 3297997Ssaidi@eecs.umich.edu#define mchk_crd_isr 0x30 3307997Ssaidi@eecs.umich.edu 3317997Ssaidi@eecs.umich.edu/* 3327997Ssaidi@eecs.umich.edu * Hacked up constants for the turbolaser build. Hope 3337997Ssaidi@eecs.umich.edu * this is moreless correct 3347997Ssaidi@eecs.umich.edu */ 3357997Ssaidi@eecs.umich.edu 3367997Ssaidi@eecs.umich.edu#define mchk_crd_whami 0x38 3377997Ssaidi@eecs.umich.edu#define mchk_crd_tldev 0x40 3387997Ssaidi@eecs.umich.edu#define mchk_crd_tlber 0x48 3397997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr0 0x50 3407997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr1 0x58 3417997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr2 0x60 3427997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr3 0x68 3437997Ssaidi@eecs.umich.edu#define mchk_crd_rsvd 0x70 3447997Ssaidi@eecs.umich.edu 3457997Ssaidi@eecs.umich.edu 3467997Ssaidi@eecs.umich.edu/* 3477997Ssaidi@eecs.umich.edu * mchk area seems different for tlaser 3487997Ssaidi@eecs.umich.edu */ 3497997Ssaidi@eecs.umich.edu 3507997Ssaidi@eecs.umich.edu#define mchk_crd_size 0x80 3517997Ssaidi@eecs.umich.edu#define mchk_mchk_base (mchk_crd_size) 3527997Ssaidi@eecs.umich.edu 3537997Ssaidi@eecs.umich.edu#define mchk_tlber 0x0 3547997Ssaidi@eecs.umich.edu#define mchk_tlepaerr 0x8 3557997Ssaidi@eecs.umich.edu#define mchk_tlepderr 0x10 3567997Ssaidi@eecs.umich.edu#define mchk_tlepmerr 0x18 3577997Ssaidi@eecs.umich.edu 3587997Ssaidi@eecs.umich.edu 3598013Sbinkertn@umich.edu/* 3608013Sbinkertn@umich.edu * // System-specific information 3618013Sbinkertn@umich.edu * constant mchk$crd_sys_base equals . ; 3628013Sbinkertn@umich.edu * constant mchk$crd_size equals (.+7) & %xfff8; 3638013Sbinkertn@umich.edu * 3648013Sbinkertn@umich.edu * end crd_logout; 3658013Sbinkertn@umich.edu * // 3668013Sbinkertn@umich.edu * // Start definition of Machine check logout Frame 3678013Sbinkertn@umich.edu * // 3688013Sbinkertn@umich.edu * aggregate logout struct prefix "" tag ""; 3698013Sbinkertn@umich.edu * mchk$flag quadword; */ 3708013Sbinkertn@umich.edu/* mchk$offsets quadword; */ 3718013Sbinkertn@umich.edu/* 3728013Sbinkertn@umich.edu * // Pal-specific information 3738013Sbinkertn@umich.edu * mchk$mchk_code quadword; */ 3747997Ssaidi@eecs.umich.edu/* 3757997Ssaidi@eecs.umich.edu 3768013Sbinkertn@umich.edu * mchk$pt quadword dimension 24; 3778013Sbinkertn@umich.edu * 3788013Sbinkertn@umich.edu * // CPU-specific information 3798013Sbinkertn@umich.edu * constant mchk$cpu_base equals . ; 3808013Sbinkertn@umich.edu * mchk$exc_addr quadword; 3818013Sbinkertn@umich.edu * mchk$exc_sum quadword; 3828013Sbinkertn@umich.edu * mchk$exc_mask quadword; 3838013Sbinkertn@umich.edu * mchk$pal_base quadword; 3848013Sbinkertn@umich.edu * mchk$isr quadword; 3858013Sbinkertn@umich.edu * mchk$icsr quadword; 3868013Sbinkertn@umich.edu * mchk$ic_perr_stat quadword; 3878013Sbinkertn@umich.edu * mchk$dc_perr_stat quadword; 3888013Sbinkertn@umich.edu * mchk$va quadword; 3898013Sbinkertn@umich.edu * mchk$mm_stat quadword; 3908013Sbinkertn@umich.edu * mchk$sc_addr quadword; 3918013Sbinkertn@umich.edu * mchk$sc_stat quadword; 3928013Sbinkertn@umich.edu * mchk$bc_tag_addr quadword; 3938013Sbinkertn@umich.edu * mchk$ei_addr quadword; 3948013Sbinkertn@umich.edu * mchk$fill_syn quadword; 3958013Sbinkertn@umich.edu * mchk$ei_stat quadword; 3968013Sbinkertn@umich.edu * mchk$ld_lock quadword; 3978013Sbinkertn@umich.edu * 3988013Sbinkertn@umich.edu * // System-specific information 3998013Sbinkertn@umich.edu * 4008013Sbinkertn@umich.edu * constant mchk$sys_base equals . ; 4018013Sbinkertn@umich.edu * mchk$sys_ipr1 quadword ; // Holder for system-specific stuff 4028013Sbinkertn@umich.edu * 4038013Sbinkertn@umich.edu * constant mchk$size equals (.+7) & %xfff8; 4048013Sbinkertn@umich.edu * 4058013Sbinkertn@umich.edu * 4068013Sbinkertn@umich.edu * constant mchk$crd_base equals 0 ; 4078013Sbinkertn@umich.edu * constant mchk$mchk_base equals mchk$crd_size ; 4088013Sbinkertn@umich.edu * 4098013Sbinkertn@umich.edu * 4108013Sbinkertn@umich.edu * end logout; 4118013Sbinkertn@umich.edu * 4128013Sbinkertn@umich.edu * end_module $pal_logout; 4137997Ssaidi@eecs.umich.edu*/ 4147997Ssaidi@eecs.umich.edu 4158013Sbinkertn@umich.edu/* 4168013Sbinkertn@umich.edu * this is lingering in the old ladbx code but looks like it was from 4178013Sbinkertn@umich.edu * ev4 days. This was 0x160 in the old days..pb 4188013Sbinkertn@umich.edu */ 4197997Ssaidi@eecs.umich.edu#define LAF_K_SIZE MACHINE_CHECK_SIZE 4207997Ssaidi@eecs.umich.edu#endif 421