ev5_impure.h revision 8012
18012Ssaidi@eecs.umich.edu/* 28012Ssaidi@eecs.umich.eduCopyright 1993 Hewlett-Packard Development Company, L.P. 38012Ssaidi@eecs.umich.edu 48012Ssaidi@eecs.umich.eduPermission is hereby granted, free of charge, to any person obtaining a copy of 58012Ssaidi@eecs.umich.eduthis software and associated documentation files (the "Software"), to deal in 68012Ssaidi@eecs.umich.eduthe Software without restriction, including without limitation the rights to 78012Ssaidi@eecs.umich.eduuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 88012Ssaidi@eecs.umich.eduof the Software, and to permit persons to whom the Software is furnished to do 98012Ssaidi@eecs.umich.eduso, subject to the following conditions: 108012Ssaidi@eecs.umich.edu 118012Ssaidi@eecs.umich.eduThe above copyright notice and this permission notice shall be included in all 128012Ssaidi@eecs.umich.educopies or substantial portions of the Software. 138012Ssaidi@eecs.umich.edu 148012Ssaidi@eecs.umich.eduTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 158012Ssaidi@eecs.umich.eduIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 168012Ssaidi@eecs.umich.eduFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 178012Ssaidi@eecs.umich.eduAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 188012Ssaidi@eecs.umich.eduLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 198012Ssaidi@eecs.umich.eduOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 208012Ssaidi@eecs.umich.eduSOFTWARE. 218012Ssaidi@eecs.umich.edu*/ 228012Ssaidi@eecs.umich.edu 237997Ssaidi@eecs.umich.edu#ifndef EV5_IMPURE_INCLUDED 247997Ssaidi@eecs.umich.edu#define EV5_IMPURE_INCLUDED 257997Ssaidi@eecs.umich.edu 267997Ssaidi@eecs.umich.edu/* 277997Ssaidi@eecs.umich.edu// This uses the Hudson file format from "impure.h" but with the fields from 287997Ssaidi@eecs.umich.edu// the distrubuted palcode "ev5_impure.sdl" .. pboyle Nov/95 297997Ssaidi@eecs.umich.edu 307997Ssaidi@eecs.umich.edu//orig file: impure.sdl 317997Ssaidi@eecs.umich.edu//orig 327997Ssaidi@eecs.umich.edu//orig Abstract: PAL impure scratch area and logout area data structure definitions for 337997Ssaidi@eecs.umich.edu//orig Alpha firmware. 347997Ssaidi@eecs.umich.edu//orig 357997Ssaidi@eecs.umich.edu//orig 367997Ssaidi@eecs.umich.edu//orig module $pal_impure; 377997Ssaidi@eecs.umich.edu//orig 387997Ssaidi@eecs.umich.edu//orig Edit Date Who Description 397997Ssaidi@eecs.umich.edu//orig ---- --------- --- --------------------- 407997Ssaidi@eecs.umich.edu//orig 1 7-Jul-93 JEM Initial Entry 417997Ssaidi@eecs.umich.edu//orig 2 18-nov-93 JEM Add shadow bc_ctl and pmctr_ctl to impure area 427997Ssaidi@eecs.umich.edu//orig Delete mvptbr 437997Ssaidi@eecs.umich.edu//orig Calculate pal$logout from end of impure area 447997Ssaidi@eecs.umich.edu//orig 3 6-dec-93 JEM Add pmctr_ctl bitfield definitions 457997Ssaidi@eecs.umich.edu//orig 4 3-feb-94 JEM Remove f31,r31 from impure area; Remove bc_ctl, pmctr_ctl; 467997Ssaidi@eecs.umich.edu//orig add ic_perr_stat, pmctr, dc_perr_stat, sc_stat, sc_addr, sc_ctl, 477997Ssaidi@eecs.umich.edu//orig bc_tag_addr, ei_stat, ei_addr, fill_syn, ld_lock 487997Ssaidi@eecs.umich.edu//orig 5 19-feb-94 JEM add gpr constants, and add f31,r31 back in to be consistent with ev4 497997Ssaidi@eecs.umich.edu//orig add cns$ipr_offset 507997Ssaidi@eecs.umich.edu//orig 6 18-apr-94 JEM Add shadow bc_ctl and pmctr_ctl to impure area again. 517997Ssaidi@eecs.umich.edu//orig 7 18-jul-94 JEM Add bc_config shadow. Add mchk$sys_base constant to mchk logout frame 527997Ssaidi@eecs.umich.edu//orig 537997Ssaidi@eecs.umich.edu//orig 547997Ssaidi@eecs.umich.edu//orig constant REVISION equals 7 prefix IMPURE$; // Revision number of this file 557997Ssaidi@eecs.umich.edu//orig 567997Ssaidi@eecs.umich.edu 577997Ssaidi@eecs.umich.edu** Macros for saving/restoring data to/from the PAL impure scratch 587997Ssaidi@eecs.umich.edu** area. 597997Ssaidi@eecs.umich.edu** 607997Ssaidi@eecs.umich.edu** The console save state area is larger than the addressibility 617997Ssaidi@eecs.umich.edu** of the HW_LD/ST instructions (10-bit signed byte displacement), 627997Ssaidi@eecs.umich.edu** so some adjustments to the base offsets, as well as the offsets 637997Ssaidi@eecs.umich.edu** within each base region, are necessary. 647997Ssaidi@eecs.umich.edu** 657997Ssaidi@eecs.umich.edu** The console save state area is divided into two segments; the 667997Ssaidi@eecs.umich.edu** CPU-specific segment and the platform-specific segment. The 677997Ssaidi@eecs.umich.edu** state that is saved in the CPU-specific segment includes GPRs, 687997Ssaidi@eecs.umich.edu** FPRs, IPRs, halt code, MCHK flag, etc. All other state is saved 697997Ssaidi@eecs.umich.edu** in the platform-specific segment. 707997Ssaidi@eecs.umich.edu** 717997Ssaidi@eecs.umich.edu** The impure pointer will need to be adjusted by a different offset 727997Ssaidi@eecs.umich.edu** value for each region within a given segment. The SAVE and RESTORE 737997Ssaidi@eecs.umich.edu** macros will auto-magically adjust the offsets accordingly. 747997Ssaidi@eecs.umich.edu** 757997Ssaidi@eecs.umich.edu*/ 767997Ssaidi@eecs.umich.edu#if 0 777997Ssaidi@eecs.umich.edu#define SAVE_GPR(reg,offset,base) \ 787997Ssaidi@eecs.umich.edu stq_p reg, ((offset-0x200)&0x3FF)(base) 797997Ssaidi@eecs.umich.edu 807997Ssaidi@eecs.umich.edu#define RESTORE_GPR(reg,offset,base) \ 817997Ssaidi@eecs.umich.edu ldq_p reg, ((offset-0x200)&0x3FF)(base) 827997Ssaidi@eecs.umich.edu 837997Ssaidi@eecs.umich.edu 847997Ssaidi@eecs.umich.edu#define SAVE_FPR(reg,offset,base) \ 857997Ssaidi@eecs.umich.edu stt reg, ((offset-0x200)&0x3FF)(base) 867997Ssaidi@eecs.umich.edu 877997Ssaidi@eecs.umich.edu#define RESTORE_FPR(reg,offset,base) \ 887997Ssaidi@eecs.umich.edu ldt reg, ((offset-0x200)&0x3FF)(base) 897997Ssaidi@eecs.umich.edu 907997Ssaidi@eecs.umich.edu#define SAVE_IPR(reg,offset,base) \ 917997Ssaidi@eecs.umich.edu mfpr v0, reg; \ 927997Ssaidi@eecs.umich.edu stq_p v0, ((offset-CNS_Q_IPR)&0x3FF)(base) 937997Ssaidi@eecs.umich.edu 947997Ssaidi@eecs.umich.edu#define RESTORE_IPR(reg,offset,base) \ 957997Ssaidi@eecs.umich.edu ldq_p v0, ((offset-CNS_Q_IPR)&0x3FF)(base); \ 967997Ssaidi@eecs.umich.edu mtpr v0, reg 977997Ssaidi@eecs.umich.edu 987997Ssaidi@eecs.umich.edu#define SAVE_SHADOW(reg,offset,base) \ 997997Ssaidi@eecs.umich.edu stq_p reg, ((offset-CNS_Q_IPR)&0x3FF)(base) 1007997Ssaidi@eecs.umich.edu 1017997Ssaidi@eecs.umich.edu#define RESTORE_SHADOW(reg,offset,base)\ 1027997Ssaidi@eecs.umich.edu ldq_p reg, ((offset-CNS_Q_IPR)&0x3FF)(base) 1037997Ssaidi@eecs.umich.edu#else 1047997Ssaidi@eecs.umich.edu//#define SEXT10(X) (((X) & 0x200) ? ((X) | 0xfffffffffffffc00) : (X)) 1057997Ssaidi@eecs.umich.edu#define SEXT10(X) ((X) & 0x3ff) 1067997Ssaidi@eecs.umich.edu//#define SEXT10(X) (((X) << 55) >> 55) 1077997Ssaidi@eecs.umich.edu 1087997Ssaidi@eecs.umich.edu#define SAVE_GPR(reg,offset,base) \ 1097997Ssaidi@eecs.umich.edu stq_p reg, (SEXT10(offset-0x200))(base) 1107997Ssaidi@eecs.umich.edu 1117997Ssaidi@eecs.umich.edu#define RESTORE_GPR(reg,offset,base) \ 1127997Ssaidi@eecs.umich.edu ldq_p reg, (SEXT10(offset-0x200))(base) 1137997Ssaidi@eecs.umich.edu 1147997Ssaidi@eecs.umich.edu 1157997Ssaidi@eecs.umich.edu#define SAVE_FPR(reg,offset,base) \ 1167997Ssaidi@eecs.umich.edu stt reg, (SEXT10(offset-0x200))(base) 1177997Ssaidi@eecs.umich.edu 1187997Ssaidi@eecs.umich.edu#define RESTORE_FPR(reg,offset,base) \ 1197997Ssaidi@eecs.umich.edu ldt reg, (SEXT10(offset-0x200))(base) 1207997Ssaidi@eecs.umich.edu 1217997Ssaidi@eecs.umich.edu#define SAVE_IPR(reg,offset,base) \ 1227997Ssaidi@eecs.umich.edu mfpr v0, reg; \ 1237997Ssaidi@eecs.umich.edu stq_p v0, (SEXT10(offset-CNS_Q_IPR))(base) 1247997Ssaidi@eecs.umich.edu 1257997Ssaidi@eecs.umich.edu#define RESTORE_IPR(reg,offset,base) \ 1267997Ssaidi@eecs.umich.edu ldq_p v0, (SEXT10(offset-CNS_Q_IPR))(base); \ 1277997Ssaidi@eecs.umich.edu mtpr v0, reg 1287997Ssaidi@eecs.umich.edu 1297997Ssaidi@eecs.umich.edu#define SAVE_SHADOW(reg,offset,base) \ 1307997Ssaidi@eecs.umich.edu stq_p reg, (SEXT10(offset-CNS_Q_IPR))(base) 1317997Ssaidi@eecs.umich.edu 1327997Ssaidi@eecs.umich.edu#define RESTORE_SHADOW(reg,offset,base)\ 1337997Ssaidi@eecs.umich.edu ldq_p reg, (SEXT10(offset-CNS_Q_IPR))(base) 1347997Ssaidi@eecs.umich.edu#endif 1357997Ssaidi@eecs.umich.edu/* orig Structure of the processor-specific impure area */ 1367997Ssaidi@eecs.umich.edu 1377997Ssaidi@eecs.umich.edu/* orig aggregate impure struct prefix "" tag ""; 1387997Ssaidi@eecs.umich.edu * orig cns$flag quadword; 1397997Ssaidi@eecs.umich.edu * orig cns$hlt quadword; 1407997Ssaidi@eecs.umich.edu*/ 1417997Ssaidi@eecs.umich.edu 1427997Ssaidi@eecs.umich.edu/* Define base for debug monitor compatibility */ 1437997Ssaidi@eecs.umich.edu#define CNS_Q_BASE 0x000 1447997Ssaidi@eecs.umich.edu#define CNS_Q_FLAG 0x100 1457997Ssaidi@eecs.umich.edu#define CNS_Q_HALT 0x108 1467997Ssaidi@eecs.umich.edu 1477997Ssaidi@eecs.umich.edu 1487997Ssaidi@eecs.umich.edu/* orig constant ( 1497997Ssaidi@eecs.umich.edu * orig cns$r0,cns$r1,cns$r2,cns$r3,cns$r4,cns$r5,cns$r6,cns$r7, 1507997Ssaidi@eecs.umich.edu * orig cns$r8,cns$r9,cns$r10,cns$r11,cns$r12,cns$r13,cns$r14,cns$r15, 1517997Ssaidi@eecs.umich.edu * orig cns$r16,cns$r17,cns$r18,cns$r19,cns$r20,cns$r21,cns$r22,cns$r23, 1527997Ssaidi@eecs.umich.edu * orig cns$r24,cns$r25,cns$r26,cns$r27,cns$r28,cns$r29,cns$r30,cns$r31 1537997Ssaidi@eecs.umich.edu * orig ) equals . increment 8 prefix "" tag ""; 1547997Ssaidi@eecs.umich.edu * orig cns$gpr quadword dimension 32; 1557997Ssaidi@eecs.umich.edu*/ 1567997Ssaidi@eecs.umich.edu/* Offset to base of saved GPR area - 32 quadword */ 1577997Ssaidi@eecs.umich.edu#define CNS_Q_GPR 0x110 1587997Ssaidi@eecs.umich.edu#define cns_gpr CNS_Q_GPR 1597997Ssaidi@eecs.umich.edu 1607997Ssaidi@eecs.umich.edu/* orig constant ( 1617997Ssaidi@eecs.umich.edu * orig cns$f0,cns$f1,cns$f2,cns$f3,cns$f4,cns$f5,cns$f6,cns$f7, 1627997Ssaidi@eecs.umich.edu * orig cns$f8,cns$f9,cns$f10,cns$f11,cns$f12,cns$f13,cns$f14,cns$f15, 1637997Ssaidi@eecs.umich.edu * orig cns$f16,cns$f17,cns$f18,cns$f19,cns$f20,cns$f21,cns$f22,cns$f23, 1647997Ssaidi@eecs.umich.edu * orig cns$f24,cns$f25,cns$f26,cns$f27,cns$f28,cns$f29,cns$f30,cns$f31 1657997Ssaidi@eecs.umich.edu * orig ) equals . increment 8 prefix "" tag ""; 1667997Ssaidi@eecs.umich.edu * orig cns$fpr quadword dimension 32; 1677997Ssaidi@eecs.umich.edu*/ 1687997Ssaidi@eecs.umich.edu/* Offset to base of saved FPR area - 32 quadwords */ 1697997Ssaidi@eecs.umich.edu#define CNS_Q_FPR 0x210 1707997Ssaidi@eecs.umich.edu 1717997Ssaidi@eecs.umich.edu/* orig #t=.; 1727997Ssaidi@eecs.umich.edu * orig cns$mchkflag quadword; 1737997Ssaidi@eecs.umich.edu*/ 1747997Ssaidi@eecs.umich.edu#define CNS_Q_MCHK 0x310 1757997Ssaidi@eecs.umich.edu 1767997Ssaidi@eecs.umich.edu/* orig constant cns$pt_offset equals .; 1777997Ssaidi@eecs.umich.edu * orig constant ( 1787997Ssaidi@eecs.umich.edu * orig cns$pt0,cns$pt1,cns$pt2,cns$pt3,cns$pt4,cns$pt5,cns$pt6, 1797997Ssaidi@eecs.umich.edu * orig cns$pt7,cns$pt8,cns$pt9,cns$pt10,cns$pt11,cns$pt12,cns$pt13, 1807997Ssaidi@eecs.umich.edu * orig cns$pt14,cns$pt15,cns$pt16,cns$pt17,cns$pt18,cns$pt19,cns$pt20, 1817997Ssaidi@eecs.umich.edu * orig cns$pt21,cns$pt22,cns$pt23 1827997Ssaidi@eecs.umich.edu * orig ) equals . increment 8 prefix "" tag ""; 1837997Ssaidi@eecs.umich.edu * orig cns$pt quadword dimension 24; 1847997Ssaidi@eecs.umich.edu*/ 1857997Ssaidi@eecs.umich.edu/* Offset to base of saved PALtemp area - 25 quadwords */ 1867997Ssaidi@eecs.umich.edu#define CNS_Q_PT 0x318 1877997Ssaidi@eecs.umich.edu 1887997Ssaidi@eecs.umich.edu/* orig cns$shadow8 quadword; 1897997Ssaidi@eecs.umich.edu * orig cns$shadow9 quadword; 1907997Ssaidi@eecs.umich.edu * orig cns$shadow10 quadword; 1917997Ssaidi@eecs.umich.edu * orig cns$shadow11 quadword; 1927997Ssaidi@eecs.umich.edu * orig cns$shadow12 quadword; 1937997Ssaidi@eecs.umich.edu * orig cns$shadow13 quadword; 1947997Ssaidi@eecs.umich.edu * orig cns$shadow14 quadword; 1957997Ssaidi@eecs.umich.edu * orig cns$shadow25 quadword; 1967997Ssaidi@eecs.umich.edu*/ 1977997Ssaidi@eecs.umich.edu/* Offset to base of saved PALshadow area - 8 quadwords */ 1987997Ssaidi@eecs.umich.edu#define CNS_Q_SHADOW 0x3D8 1997997Ssaidi@eecs.umich.edu 2007997Ssaidi@eecs.umich.edu/* Offset to base of saved IPR area */ 2017997Ssaidi@eecs.umich.edu#define CNS_Q_IPR 0x418 2027997Ssaidi@eecs.umich.edu 2037997Ssaidi@eecs.umich.edu/* orig constant cns$ipr_offset equals .; */ 2047997Ssaidi@eecs.umich.edu/* orig cns$exc_addr quadword; */ 2057997Ssaidi@eecs.umich.edu#define CNS_Q_EXC_ADDR 0x418 2067997Ssaidi@eecs.umich.edu/* orig cns$pal_base quadword; */ 2077997Ssaidi@eecs.umich.edu#define CNS_Q_PAL_BASE 0x420 2087997Ssaidi@eecs.umich.edu/* orig cns$mm_stat quadword; */ 2097997Ssaidi@eecs.umich.edu#define CNS_Q_MM_STAT 0x428 2107997Ssaidi@eecs.umich.edu/* orig cns$va quadword; */ 2117997Ssaidi@eecs.umich.edu#define CNS_Q_VA 0x430 2127997Ssaidi@eecs.umich.edu/* orig cns$icsr quadword; */ 2137997Ssaidi@eecs.umich.edu#define CNS_Q_ICSR 0x438 2147997Ssaidi@eecs.umich.edu/* orig cns$ipl quadword; */ 2157997Ssaidi@eecs.umich.edu#define CNS_Q_IPL 0x440 2167997Ssaidi@eecs.umich.edu/* orig cns$ps quadword; // Ibox current mode */ 2177997Ssaidi@eecs.umich.edu#define CNS_Q_IPS 0x448 2187997Ssaidi@eecs.umich.edu/* orig cns$itb_asn quadword; */ 2197997Ssaidi@eecs.umich.edu#define CNS_Q_ITB_ASN 0x450 2207997Ssaidi@eecs.umich.edu/* orig cns$aster quadword; */ 2217997Ssaidi@eecs.umich.edu#define CNS_Q_ASTER 0x458 2227997Ssaidi@eecs.umich.edu/* orig cns$astrr quadword; */ 2237997Ssaidi@eecs.umich.edu#define CNS_Q_ASTRR 0x460 2247997Ssaidi@eecs.umich.edu/* orig cns$isr quadword; */ 2257997Ssaidi@eecs.umich.edu#define CNS_Q_ISR 0x468 2267997Ssaidi@eecs.umich.edu/* orig cns$ivptbr quadword; */ 2277997Ssaidi@eecs.umich.edu#define CNS_Q_IVPTBR 0x470 2287997Ssaidi@eecs.umich.edu/* orig cns$mcsr quadword; */ 2297997Ssaidi@eecs.umich.edu#define CNS_Q_MCSR 0x478 2307997Ssaidi@eecs.umich.edu/* orig cns$dc_mode quadword; */ 2317997Ssaidi@eecs.umich.edu#define CNS_Q_DC_MODE 0x480 2327997Ssaidi@eecs.umich.edu/* orig cns$maf_mode quadword; */ 2337997Ssaidi@eecs.umich.edu#define CNS_Q_MAF_MODE 0x488 2347997Ssaidi@eecs.umich.edu/* orig cns$sirr quadword; */ 2357997Ssaidi@eecs.umich.edu#define CNS_Q_SIRR 0x490 2367997Ssaidi@eecs.umich.edu/* orig cns$fpcsr quadword; */ 2377997Ssaidi@eecs.umich.edu#define CNS_Q_FPCSR 0x498 2387997Ssaidi@eecs.umich.edu/* orig cns$icperr_stat quadword; */ 2397997Ssaidi@eecs.umich.edu#define CNS_Q_ICPERR_STAT 0x4A0 2407997Ssaidi@eecs.umich.edu/* orig cns$pmctr quadword; */ 2417997Ssaidi@eecs.umich.edu#define CNS_Q_PM_CTR 0x4A8 2427997Ssaidi@eecs.umich.edu/* orig cns$exc_sum quadword; */ 2437997Ssaidi@eecs.umich.edu#define CNS_Q_EXC_SUM 0x4B0 2447997Ssaidi@eecs.umich.edu/* orig cns$exc_mask quadword; */ 2457997Ssaidi@eecs.umich.edu#define CNS_Q_EXC_MASK 0x4B8 2467997Ssaidi@eecs.umich.edu/* orig cns$intid quadword; */ 2477997Ssaidi@eecs.umich.edu#define CNS_Q_INT_ID 0x4C0 2487997Ssaidi@eecs.umich.edu/* orig cns$dcperr_stat quadword; */ 2497997Ssaidi@eecs.umich.edu#define CNS_Q_DCPERR_STAT 0x4C8 2507997Ssaidi@eecs.umich.edu/* orig cns$sc_stat quadword; */ 2517997Ssaidi@eecs.umich.edu#define CNS_Q_SC_STAT 0x4D0 2527997Ssaidi@eecs.umich.edu/* orig cns$sc_addr quadword; */ 2537997Ssaidi@eecs.umich.edu#define CNS_Q_SC_ADDR 0x4D8 2547997Ssaidi@eecs.umich.edu/* orig cns$sc_ctl quadword; */ 2557997Ssaidi@eecs.umich.edu#define CNS_Q_SC_CTL 0x4E0 2567997Ssaidi@eecs.umich.edu/* orig cns$bc_tag_addr quadword; */ 2577997Ssaidi@eecs.umich.edu#define CNS_Q_BC_TAG_ADDR 0x4E8 2587997Ssaidi@eecs.umich.edu/* orig cns$ei_stat quadword; */ 2597997Ssaidi@eecs.umich.edu#define CNS_Q_EI_STAT 0x4F0 2607997Ssaidi@eecs.umich.edu/* orig cns$ei_addr quadword; */ 2617997Ssaidi@eecs.umich.edu#define CNS_Q_EI_ADDR 0x4F8 2627997Ssaidi@eecs.umich.edu/* orig cns$fill_syn quadword; */ 2637997Ssaidi@eecs.umich.edu#define CNS_Q_FILL_SYN 0x500 2647997Ssaidi@eecs.umich.edu/* orig cns$ld_lock quadword; */ 2657997Ssaidi@eecs.umich.edu#define CNS_Q_LD_LOCK 0x508 2667997Ssaidi@eecs.umich.edu/* orig cns$bc_ctl quadword; // shadow of on chip bc_ctl */ 2677997Ssaidi@eecs.umich.edu#define CNS_Q_BC_CTL 0x510 2687997Ssaidi@eecs.umich.edu/* orig cns$pmctr_ctl quadword; // saved frequency select info for performance monitor counter */ 2697997Ssaidi@eecs.umich.edu#define CNS_Q_PM_CTL 0x518 2707997Ssaidi@eecs.umich.edu/* orig cns$bc_config quadword; // shadow of on chip bc_config */ 2717997Ssaidi@eecs.umich.edu#define CNS_Q_BC_CFG 0x520 2727997Ssaidi@eecs.umich.edu 2737997Ssaidi@eecs.umich.edu/* orig constant cns$size equals .; 2747997Ssaidi@eecs.umich.edu * orig 2757997Ssaidi@eecs.umich.edu * orig constant pal$impure_common_size equals (%x0200 +7) & %xfff8; 2767997Ssaidi@eecs.umich.edu * orig constant pal$impure_specific_size equals (.+7) & %xfff8; 2777997Ssaidi@eecs.umich.edu * orig constant cns$mchksize equals (.+7-#t) & %xfff8; 2787997Ssaidi@eecs.umich.edu * orig constant pal$logout_area equals pal$impure_specific_size ; 2797997Ssaidi@eecs.umich.edu * orig end impure; 2807997Ssaidi@eecs.umich.edu*/ 2817997Ssaidi@eecs.umich.edu 2827997Ssaidi@eecs.umich.edu/* This next set of stuff came from the old code ..pb */ 2837997Ssaidi@eecs.umich.edu#define CNS_Q_SROM_REV 0x528 2847997Ssaidi@eecs.umich.edu#define CNS_Q_PROC_ID 0x530 2857997Ssaidi@eecs.umich.edu#define CNS_Q_MEM_SIZE 0x538 2867997Ssaidi@eecs.umich.edu#define CNS_Q_CYCLE_CNT 0x540 2877997Ssaidi@eecs.umich.edu#define CNS_Q_SIGNATURE 0x548 2887997Ssaidi@eecs.umich.edu#define CNS_Q_PROC_MASK 0x550 2897997Ssaidi@eecs.umich.edu#define CNS_Q_SYSCTX 0x558 2907997Ssaidi@eecs.umich.edu 2917997Ssaidi@eecs.umich.edu 2927997Ssaidi@eecs.umich.edu 2937997Ssaidi@eecs.umich.edu#define MACHINE_CHECK_CRD_BASE 0 2947997Ssaidi@eecs.umich.edu#define MACHINE_CHECK_SIZE ((CNS_Q_SYSCTX + 7 - CNS_Q_MCHK) & 0xfff8) 2957997Ssaidi@eecs.umich.edu 2967997Ssaidi@eecs.umich.edu 2977997Ssaidi@eecs.umich.edu 2987997Ssaidi@eecs.umich.edu/* orig 2997997Ssaidi@eecs.umich.edu * orig aggregate EV5PMCTRCTL_BITS structure fill prefix PMCTR_CTL$; 3007997Ssaidi@eecs.umich.edu * orig SPROCESS bitfield length 1 ; 3017997Ssaidi@eecs.umich.edu * orig FILL_0 bitfield length 3 fill tag $$; 3027997Ssaidi@eecs.umich.edu * orig FRQ2 bitfield length 2 ; 3037997Ssaidi@eecs.umich.edu * orig FRQ1 bitfield length 2 ; 3047997Ssaidi@eecs.umich.edu * orig FRQ0 bitfield length 2 ; 3057997Ssaidi@eecs.umich.edu * orig CTL2 bitfield length 2 ; 3067997Ssaidi@eecs.umich.edu * orig CTL1 bitfield length 2 ; 3077997Ssaidi@eecs.umich.edu * orig CTL0 bitfield length 2 ; 3087997Ssaidi@eecs.umich.edu * orig FILL_1 bitfield length 16 fill tag $$; 3097997Ssaidi@eecs.umich.edu * orig FILL_2 bitfield length 32 fill tag $$; 3107997Ssaidi@eecs.umich.edu * orig end EV5PMCTRCTL_BITS; 3117997Ssaidi@eecs.umich.edu * orig 3127997Ssaidi@eecs.umich.edu * orig end_module $pal_impure; 3137997Ssaidi@eecs.umich.edu * orig 3147997Ssaidi@eecs.umich.edu * orig module $pal_logout; 3157997Ssaidi@eecs.umich.edu * orig 3167997Ssaidi@eecs.umich.edu * orig // 3177997Ssaidi@eecs.umich.edu * orig // Start definition of Corrected Error Frame 3187997Ssaidi@eecs.umich.edu * orig // 3197997Ssaidi@eecs.umich.edu */ 3207997Ssaidi@eecs.umich.edu 3217997Ssaidi@eecs.umich.edu/* 3227997Ssaidi@eecs.umich.edu * orig aggregate crd_logout struct prefix "" tag ""; 3237997Ssaidi@eecs.umich.edu */ 3247997Ssaidi@eecs.umich.edu 3257997Ssaidi@eecs.umich.edu#ifdef SIMOS 3267997Ssaidi@eecs.umich.edu#define pal_logout_area 0x600 3277997Ssaidi@eecs.umich.edu#define mchk_crd_base 0 3287997Ssaidi@eecs.umich.edu#endif 3297997Ssaidi@eecs.umich.edu 3307997Ssaidi@eecs.umich.edu/* orig mchk$crd_flag quadword; */ 3317997Ssaidi@eecs.umich.edu#define mchk_crd_flag 0 3327997Ssaidi@eecs.umich.edu/* orig mchk$crd_offsets quadword; */ 3337997Ssaidi@eecs.umich.edu#define mchk_crd_offsets 8 3347997Ssaidi@eecs.umich.edu/* orig 3357997Ssaidi@eecs.umich.edu * orig // Pal-specific information */ 3367997Ssaidi@eecs.umich.edu#define mchk_crd_mchk_code 0x10 3377997Ssaidi@eecs.umich.edu/* orig mchk$crd_mchk_code quadword; 3387997Ssaidi@eecs.umich.edu * orig 3397997Ssaidi@eecs.umich.edu * orig // CPU-specific information 3407997Ssaidi@eecs.umich.edu * orig constant mchk$crd_cpu_base equals . ; 3417997Ssaidi@eecs.umich.edu * orig mchk$crd_ei_addr quadword; */ 3427997Ssaidi@eecs.umich.edu#define mchk_crd_ei_addr 0x18 3437997Ssaidi@eecs.umich.edu/* orig mchk$crd_fill_syn quadword; */ 3447997Ssaidi@eecs.umich.edu#define mchk_crd_fill_syn 0x20 3457997Ssaidi@eecs.umich.edu/* orig mchk$crd_ei_stat quadword; */ 3467997Ssaidi@eecs.umich.edu#define mchk_crd_ei_stat 0x28 3477997Ssaidi@eecs.umich.edu/* orig mchk$crd_isr quadword; */ 3487997Ssaidi@eecs.umich.edu#define mchk_crd_isr 0x30 3497997Ssaidi@eecs.umich.edu 3507997Ssaidi@eecs.umich.edu/* 3517997Ssaidi@eecs.umich.edu * Hacked up constants for the turbolaser build. Hope 3527997Ssaidi@eecs.umich.edu * this is moreless correct 3537997Ssaidi@eecs.umich.edu */ 3547997Ssaidi@eecs.umich.edu 3557997Ssaidi@eecs.umich.edu#define mchk_crd_whami 0x38 3567997Ssaidi@eecs.umich.edu#define mchk_crd_tldev 0x40 3577997Ssaidi@eecs.umich.edu#define mchk_crd_tlber 0x48 3587997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr0 0x50 3597997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr1 0x58 3607997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr2 0x60 3617997Ssaidi@eecs.umich.edu#define mchk_crd_tlesr3 0x68 3627997Ssaidi@eecs.umich.edu#define mchk_crd_rsvd 0x70 3637997Ssaidi@eecs.umich.edu 3647997Ssaidi@eecs.umich.edu 3657997Ssaidi@eecs.umich.edu#ifdef SIMOS 3667997Ssaidi@eecs.umich.edu/* 3677997Ssaidi@eecs.umich.edu * mchk area seems different for tlaser 3687997Ssaidi@eecs.umich.edu */ 3697997Ssaidi@eecs.umich.edu 3707997Ssaidi@eecs.umich.edu#define mchk_crd_size 0x80 3717997Ssaidi@eecs.umich.edu#define mchk_mchk_base (mchk_crd_size) 3727997Ssaidi@eecs.umich.edu 3737997Ssaidi@eecs.umich.edu#define mchk_tlber 0x0 3747997Ssaidi@eecs.umich.edu#define mchk_tlepaerr 0x8 3757997Ssaidi@eecs.umich.edu#define mchk_tlepderr 0x10 3767997Ssaidi@eecs.umich.edu#define mchk_tlepmerr 0x18 3777997Ssaidi@eecs.umich.edu 3787997Ssaidi@eecs.umich.edu 3797997Ssaidi@eecs.umich.edu#endif 3807997Ssaidi@eecs.umich.edu 3817997Ssaidi@eecs.umich.edu 3827997Ssaidi@eecs.umich.edu/* orig 3837997Ssaidi@eecs.umich.edu * orig // System-specific information 3847997Ssaidi@eecs.umich.edu * orig constant mchk$crd_sys_base equals . ; 3857997Ssaidi@eecs.umich.edu * orig constant mchk$crd_size equals (.+7) & %xfff8; 3867997Ssaidi@eecs.umich.edu * orig 3877997Ssaidi@eecs.umich.edu * orig end crd_logout; 3887997Ssaidi@eecs.umich.edu * orig // 3897997Ssaidi@eecs.umich.edu * orig // Start definition of Machine check logout Frame 3907997Ssaidi@eecs.umich.edu * orig // 3917997Ssaidi@eecs.umich.edu * orig aggregate logout struct prefix "" tag ""; 3927997Ssaidi@eecs.umich.edu * orig mchk$flag quadword; */ 3937997Ssaidi@eecs.umich.edu/* orig mchk$offsets quadword; */ 3947997Ssaidi@eecs.umich.edu/* orig 3957997Ssaidi@eecs.umich.edu * orig // Pal-specific information 3967997Ssaidi@eecs.umich.edu * orig mchk$mchk_code quadword; */ 3977997Ssaidi@eecs.umich.edu/* 3987997Ssaidi@eecs.umich.edu 3997997Ssaidi@eecs.umich.edu * orig mchk$pt quadword dimension 24; 4007997Ssaidi@eecs.umich.edu * orig 4017997Ssaidi@eecs.umich.edu * orig // CPU-specific information 4027997Ssaidi@eecs.umich.edu * orig constant mchk$cpu_base equals . ; 4037997Ssaidi@eecs.umich.edu * orig mchk$exc_addr quadword; 4047997Ssaidi@eecs.umich.edu * orig mchk$exc_sum quadword; 4057997Ssaidi@eecs.umich.edu * orig mchk$exc_mask quadword; 4067997Ssaidi@eecs.umich.edu * orig mchk$pal_base quadword; 4077997Ssaidi@eecs.umich.edu * orig mchk$isr quadword; 4087997Ssaidi@eecs.umich.edu * orig mchk$icsr quadword; 4097997Ssaidi@eecs.umich.edu * orig mchk$ic_perr_stat quadword; 4107997Ssaidi@eecs.umich.edu * orig mchk$dc_perr_stat quadword; 4117997Ssaidi@eecs.umich.edu * orig mchk$va quadword; 4127997Ssaidi@eecs.umich.edu * orig mchk$mm_stat quadword; 4137997Ssaidi@eecs.umich.edu * orig mchk$sc_addr quadword; 4147997Ssaidi@eecs.umich.edu * orig mchk$sc_stat quadword; 4157997Ssaidi@eecs.umich.edu * orig mchk$bc_tag_addr quadword; 4167997Ssaidi@eecs.umich.edu * orig mchk$ei_addr quadword; 4177997Ssaidi@eecs.umich.edu * orig mchk$fill_syn quadword; 4187997Ssaidi@eecs.umich.edu * orig mchk$ei_stat quadword; 4197997Ssaidi@eecs.umich.edu * orig mchk$ld_lock quadword; 4207997Ssaidi@eecs.umich.edu * orig 4217997Ssaidi@eecs.umich.edu * orig // System-specific information 4227997Ssaidi@eecs.umich.edu * orig 4237997Ssaidi@eecs.umich.edu * orig constant mchk$sys_base equals . ; 4247997Ssaidi@eecs.umich.edu * orig mchk$sys_ipr1 quadword ; // Holder for system-specific stuff 4257997Ssaidi@eecs.umich.edu * orig 4267997Ssaidi@eecs.umich.edu * orig constant mchk$size equals (.+7) & %xfff8; 4277997Ssaidi@eecs.umich.edu * orig 4287997Ssaidi@eecs.umich.edu * orig 4297997Ssaidi@eecs.umich.edu * orig constant mchk$crd_base equals 0 ; 4307997Ssaidi@eecs.umich.edu * orig constant mchk$mchk_base equals mchk$crd_size ; 4317997Ssaidi@eecs.umich.edu * orig 4327997Ssaidi@eecs.umich.edu * orig 4337997Ssaidi@eecs.umich.edu * orig end logout; 4347997Ssaidi@eecs.umich.edu * orig 4357997Ssaidi@eecs.umich.edu * orig end_module $pal_logout; 4367997Ssaidi@eecs.umich.edu*/ 4377997Ssaidi@eecs.umich.edu 4387997Ssaidi@eecs.umich.edu 4397997Ssaidi@eecs.umich.edu 4407997Ssaidi@eecs.umich.edu 4417997Ssaidi@eecs.umich.edu/* this is lingering in the old ladbx code but looks like it was from ev4 days. 4427997Ssaidi@eecs.umich.edu * This was 0x160 in the old days..pb 4437997Ssaidi@eecs.umich.edu*/ 4447997Ssaidi@eecs.umich.edu#define LAF_K_SIZE MACHINE_CHECK_SIZE 4457997Ssaidi@eecs.umich.edu#endif 446