472 lines
15 KiB
C
472 lines
15 KiB
C
#ident "@(#) NEC r98def.h 1.25 95/03/17 11:54:20"
|
|
/*++
|
|
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
r98def.h
|
|
|
|
Abstract:
|
|
|
|
This module is the header file that describes hardware addresses
|
|
for the r98.
|
|
|
|
Author:
|
|
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
/*
|
|
***********************************************************************
|
|
*
|
|
* S001 6/10 T.Samezima
|
|
*
|
|
* Del Compile err
|
|
*
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S002 7/5 T.Samezima
|
|
*
|
|
* Chg define miss
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S003 7/5 T.Samezima
|
|
*
|
|
* Add define unknown counter buffer length
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S004 7/5 T.Samezima
|
|
*
|
|
* Add define err pci and dma in iRSF
|
|
* define dummy single read addr
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S005 7/12 T.Samezima
|
|
*
|
|
* Chg define miss and define change
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S006 7/19 T.Samezima
|
|
*
|
|
* Add define PCI err interrupt vector
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S007 7/22 T.Samezima
|
|
*
|
|
* Add define PMC Dummy single read address.
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S008 7/23 T.Samezima
|
|
*
|
|
* Add define SIC set0/1 offset
|
|
* define value of enable EIF interrupt of SIC CKE0/1 register
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S009 8/22 T.Samezima on SNES
|
|
*
|
|
* Chg RTC physical base
|
|
*
|
|
***********************************************************************
|
|
*
|
|
* S00a 8/22 T.Samezima on SNES
|
|
*
|
|
* Chg PIO, FDC interrupt pending bit on iRSF
|
|
*
|
|
* S00B 8/29 N.Kugimoto
|
|
*
|
|
* Bug NVRAM disable logic.
|
|
*
|
|
* K00C 9/5 N.Kugimoto
|
|
* add PCI slot 0 addr
|
|
*
|
|
* K00D 94/9/22 N.Kugimoto
|
|
* -1 chg No Used!
|
|
*
|
|
* S00E 94/10/13 T.Samezima
|
|
* Add define EISA interrupt enable bit
|
|
* define all clock interrupt restart command on TCIR in PMC
|
|
*
|
|
* S00F 94/10/18 T.Samezima
|
|
* Add define interrupt enable bit for device only
|
|
*
|
|
* S010 94/11/21 T.Samezima
|
|
* Add correspond SIC3 H/W Bug on R98
|
|
* Chg Dummy read address change. because old address is
|
|
* break scsi script.
|
|
*
|
|
* S011 '94.12/06 T.Samezima
|
|
* Add define CKE0 disable mask. (Disable Single bit error mask on SIC)
|
|
* Chg CKE0 enable mask change. (Disable Single bit error mask on SIC)
|
|
* ERRMK enable mask change. (bit 17,22 is must be zero. )
|
|
*
|
|
* K00E 94/12/06 N.Kugimoto
|
|
* Add ESM NVRAM Area
|
|
*
|
|
* S012 94/12/08 T.Samezima
|
|
* Add Disable NMI
|
|
*
|
|
* S013 '95.01/08 T.Samezima
|
|
* Add Enable ECC 1bit error.
|
|
*
|
|
* S014 '95.01/13 T.Samezima
|
|
* Add Define Disable ECC 1bit error.
|
|
*
|
|
* S015 '95.03/13 T.Samezima
|
|
* Add Define LR4360 error.
|
|
*
|
|
*/
|
|
|
|
#ifndef _R98DEF_
|
|
#define _R98DEF_
|
|
|
|
//
|
|
// define address map
|
|
//
|
|
#define PMC_PHYSICAL_BASE1 0x19900000 // Physical base of PMC registers1
|
|
#define PMC_PHYSICAL_BASE2 0x19800000 // Physical base of PMC registers2
|
|
#define PMC_LOCAL_OFFSET 0x80000
|
|
|
|
#define IOB_PHYSICAL_BASE 0x18000000 // Physical base of IOB
|
|
|
|
#define SIC_PHYSICAL_BASE 0x19000000 // Physical base of SIC registers
|
|
#define SIC_ERR_OFFSET 0x2000 // Error registers offset of SIC
|
|
#define SIC_DATA_OFFSET 0x3000 // Data registers offset of SIC
|
|
#define SIC_SET0_OFFSET 0x0 // Offset SET0 of SIC // S008
|
|
#define SIC_SET1_OFFSET 0x20000 // Offset SET1 of SIC // S008
|
|
#define SIC_NO0_OFFSET 0x4000 // Offset No.0 of SIC
|
|
#define SIC_NO1_OFFSET 0x8000 // Offset No.1 of SIC
|
|
// Start S005,S008
|
|
#define SIC_NO2_OFFSET (SIC_SET1_OFFSET+SIC_NO0_OFFSET) // Offset No.2 of SIC
|
|
#define SIC_NO3_OFFSET (SIC_SET1_OFFSET+SIC_NO1_OFFSET) // Offset No.3 of SIC
|
|
// End S005,S008
|
|
|
|
#define LR_PHYSICAL_CMNBASE1 0x18c08000 // Physical base of LR4360 registers1 // S005
|
|
#define LR_PHYSICAL_CMNBASE2 0x18c0a000 // Physical base of LR4360 registers2
|
|
#define LR_PHYSICAL_PCI_INT_ACK_BASE 0x18caa000 // Physical base of LR4360 pci interrupt acknowledge
|
|
#define LR_PHYSICAL_PCI_DEV_REG_BASE 0x18cbb000 // Physical base of LR4360 pci device registers
|
|
|
|
// Bbus DMA
|
|
#define LR_CHANNEL_BASE 0x18c08000 // LR4360 - Device Channel Register Base
|
|
// 0x18Cn0000 : n:channel number
|
|
#define LR_CHANNEL_SHIFT 0x10 // LR4360 - channel shift bit
|
|
|
|
#define SERIAL0_PHYSICAL_BASE 0x18c103f8 // physical base of serial port 0
|
|
#define KEYBOARD_PHYSICAL_BASE 0x18c20060 // physical base of keyboard control
|
|
#define RTCLOCK_PHYSICAL_BASE 0x18cc0071 // physical base of realtime clock // S005, S009
|
|
|
|
#define NVRAM_PHYSICAL_BASE 0x18c70000 // physical base of nonvolatile RAM
|
|
#define NVRAM_MEMORY_BASE (KSEG1_BASE + NVRAM_PHYSICAL_BASE)
|
|
#define NVRAM_NMI_BASE (NVRAM_MEMORY_BASE + 0x1934)
|
|
|
|
#define NVRAM_ESM_BASE NVRAM_MEMORY_BASE+1024*8 //Start of ESM Area K00E
|
|
#define NVRAM_ESM_END NVRAM_MEMORY_BASE+1024*16-1 //End of ESM Area K00E
|
|
|
|
#define MRC_PHYSICAL_BASE 0x18c80000 // physical base of MRC
|
|
|
|
#define EISA_MEMORY_PHYSICAL_BASE 0xc0000000 // physical base of EISA memory
|
|
#define EISA_CONTROL_PHYSICAL_BASE 0x18cc0000 // physical base of EISA control
|
|
#define EISA_CONFIG_REGISTERS_MEMREGN 0x18ca8060 // MEMREG[] register
|
|
|
|
#define PCI_MEMORY_PHYSICAL_BASE EISA_MEMORY_PHYSICAL_BASE // physical base of PCI memory
|
|
|
|
#define PCI_MEMORY_SLOT1_PHYSICAL_BASE 0xc4000000 // PCI slot1 memory space
|
|
#define PCI_MEMORY_SLOT2_PHYSICAL_BASE 0xc8000000 // PCI slot2 memory space
|
|
#define PCI_MEMORY_SLOT3_PHYSICAL_BASE 0xcc000000 // PCI slot3 memory space
|
|
|
|
#define PCI_CONTROL_SLOT1_PHYSICAL_BASE 0x18cd0000 // PCI slot1 I/O space
|
|
#define PCI_CONTROL_SLOT2_PHYSICAL_BASE 0x18ce0000 // PCI slot2 I/O space
|
|
#define PCI_CONTROL_SLOT3_PHYSICAL_BASE 0x18cf0000 // PCI slot2 I/O space
|
|
#define PCI_LOGICAL_START_ADDRESS 0x00000000 // S001,K00D-1
|
|
|
|
//
|
|
// define IDT vector
|
|
//
|
|
|
|
#define INT0_LEVEL 3 // Define I/O interrupt Low level
|
|
#define INT1_LEVEL 4 // Define I/O interrupt High level
|
|
#define INT2_LEVEL 5 // Define I/O interrupt level
|
|
#define TIMER_LEVEL 6 // Define Timer interrupt level
|
|
#define IPI_LEVEL 7 // Define Ipi interrupt level
|
|
#define EIF_LEVEL 8 // Define Eif interrupt level
|
|
#define CLOCK_VECTOR 14 // Define Clock interrupt vector
|
|
#define PROFILE_VECTOR 15 // Define Profile interrupt vector
|
|
|
|
#define DEVICE_VECTORS 16 // Define starting builtin device and bus vectors
|
|
#define EISA_DEVICE_VECTOR (2 + DEVICE_VECTORS) // Define Eisa interrupt vector
|
|
#define KBMS_VECTOR (3 + DEVICE_VECTORS)
|
|
#define SIO_VECTOR (4 + DEVICE_VECTORS)
|
|
#define PIO_VECTOR (5 + DEVICE_VECTORS) // S005, S00a
|
|
#define FDC_VECTOR (6 + DEVICE_VECTORS) // S005, S00a
|
|
#define SCSI1_VECTOR (7 + DEVICE_VECTORS)
|
|
#define SCSI0_VECTOR (8 + DEVICE_VECTORS)
|
|
#define ETHER_VECTOR (9 + DEVICE_VECTORS)
|
|
#define PCI_DEVICE_VECTOR (10+ DEVICE_VECTORS) // Define PCI interrupt vector
|
|
#define LR_ERR_VECTOR (13+ DEVICE_VECTORS) // Define LR4360 err vector // S015
|
|
#define PCI_ERR_VECTOR (14+ DEVICE_VECTORS) // Define PCI err vector // S006
|
|
#define DMA_VECTOR (15+ DEVICE_VECTORS) // Define Dma interrupt vector
|
|
|
|
#define EISA_VECTORS 32 // Define EISA Device interrupt vectors
|
|
#define PCI_VECTORS 48 // Define Pci Device interrupt vectors
|
|
|
|
#define MAXIMUM_BUILTIN_VECTOR ETHER_VECTOR // maximum builtin vector
|
|
#define MAXIMUM_EISA_VECTORS (15 + EISA_VECTORS) // maximum EISA vector
|
|
#define MAXIMUM_PCI_VECTORS (3 + PCI_VECTORS) // maximum PCI vector // S005
|
|
|
|
//
|
|
// define etc
|
|
//
|
|
|
|
#define MAXIMUM_CPU_NUMBER 3 // maximum cpu number
|
|
// S003
|
|
#define UNKNOWN_COUNT_BUF_LEN 64 // unknown interrupt counter buffer size
|
|
|
|
/* Start S001 */
|
|
//
|
|
// define PMC registers value
|
|
//
|
|
|
|
#define PMC_CPU_SHIFT 0xc // S002
|
|
|
|
#define MKR_DISABLE_ALL_INTERRUPT_HIGH 0x0
|
|
#define MKR_DISABLE_ALL_INTERRUPT_LOW 0x0
|
|
|
|
#define MKR_INT0_ENABLE_HIGH 0x0
|
|
// S001
|
|
#define MKR_INT0_ENABLE_LOW 0x00000fff
|
|
#define MKR_INT1_ENABLE_HIGH 0x0
|
|
#define MKR_INT1_ENABLE_LOW 0x00fff000
|
|
#define MKR_INT2_ENABLE_HIGH 0x0
|
|
#define MKR_INT2_ENABLE_LOW 0xff000000
|
|
#define MKR_INT3_ENABLE_HIGH 0x00030000
|
|
#define MKR_INT3_ENABLE_LOW 0x0
|
|
#define MKR_INT4_ENABLE_HIGH 0x0000ffff
|
|
#define MKR_INT4_ENABLE_LOW 0x0
|
|
#define MKR_INT5_ENABLE_HIGH 0xff000000
|
|
#define MKR_INT5_ENABLE_LOW 0x0
|
|
|
|
// S00F vvv
|
|
#define MKR_INT0_DEVICE_ENABLE_HIGH 0x0
|
|
#define MKR_INT0_DEVICE_ENABLE_LOW 0x0
|
|
#define MKR_INT1_DEVICE_ENABLE_HIGH 0x0
|
|
#define MKR_INT1_DEVICE_ENABLE_LOW 0x00a88000
|
|
#define MKR_INT2_DEVICE_ENABLE_HIGH 0x0
|
|
#define MKR_INT2_DEVICE_ENABLE_LOW 0xaa000000
|
|
// S00F ^^^
|
|
|
|
#define IPR_EIF_BIT_NO 61
|
|
#define IPR_EIF_BIT_HIGH 0x20000000
|
|
#define IPR_EIF_BIT_LOW 0x0
|
|
#define IPR_CLOCK_BIT_NO 49
|
|
#define IPR_CLOCK_BIT_HIGH 0x00020000
|
|
#define IPR_CLOCK_BIT_LOW 0x0
|
|
#define IPR_PROFILE_BIT_NO 48
|
|
#define IPR_PROFILE_BIT_HIGH 0x00010000
|
|
#define IPR_PROFILE_BIT_LOW 0x0
|
|
#define IPR_IPI0_BIT_NO 47
|
|
#define IPR_IPI0_BIT_HIGH 0x00008000
|
|
#define IPR_IPI0_BIT_LOW 0x0
|
|
#define IPR_IPI1_BIT_NO 46
|
|
#define IPR_IPI1_BIT_HIGH 0x00004000
|
|
#define IPR_IPI1_BIT_LOW 0x0
|
|
#define IPR_IPI2_BIT_NO 45
|
|
#define IPR_IPI2_BIT_HIGH 0x00002000
|
|
#define IPR_IPI2_BIT_LOW 0x0
|
|
#define IPR_IPI3_BIT_NO 44
|
|
#define IPR_IPI3_BIT_HIGH 0x00001000
|
|
#define IPR_IPI3_BIT_LOW 0x0
|
|
#define IPR_SIO_BIT_NO 31
|
|
#define IPR_SIO_BIT_HIGH 0x0
|
|
#define IPR_SIO_BIT_LOW 0x80000000
|
|
#define IPR_FDC_PIO_BIT_NO 29
|
|
#define IPR_FDC_PIO_BIT_HIGH 0x0
|
|
#define IPR_FDC_PIO_BIT_LOW 0x20000000
|
|
#define IPR_DMA_BIT_NO 27
|
|
#define IPR_DMA_BIT_HIGH 0x0
|
|
#define IPR_DMA_BIT_LOW 0x08000000
|
|
#define IPR_KB_MS_BIT_NO 25
|
|
#define IPR_KB_MS_BIT_HIGH 0x0
|
|
#define IPR_KB_MS_BIT_LOW 0x02000000
|
|
#define IPR_ETHER_BIT_NO 23
|
|
#define IPR_ETHER_BIT_HIGH 0x0
|
|
#define IPR_ETHER_BIT_LOW 0x00800000
|
|
#define IPR_SCSI_BIT_NO 21
|
|
#define IPR_SCSI_BIT_HIGH 0x0
|
|
#define IPR_SCSI_BIT_LOW 0x00200000
|
|
#define IPR_PCI_BIT_NO 19
|
|
#define IPR_PCI_BIT_HIGH 0x0
|
|
#define IPR_PCI_BIT_LOW 0x00080000
|
|
#define IPR_EISA_BIT_NO 15
|
|
#define IPR_EISA_BIT_HIGH 0x0
|
|
#define IPR_EISA_BIT_LOW 0x00008000
|
|
|
|
#define IntIR_REQUEST_IPI 0x00900000
|
|
#define IntIR_CPU3_BIT 12
|
|
#define IntIR_CODE_BIT 16
|
|
|
|
#define TCIR_ALL_CLOCK_RESTART 0x000cf000 // S00E
|
|
|
|
// S002
|
|
#if defined(DISABLE_NMI)
|
|
#define STSR_NMI_DISABLE 0x08080000 // S008
|
|
#endif
|
|
#define STSR_EIF_ENABLE 0x40400000
|
|
#define STSR_NVWINH_ENABLE 0x04040000 // S005
|
|
#define STSR_NVWINH_DISABLE 0x00040000 // S00B
|
|
#define ERRMK_EIF_ENABLE 0xffbdfffe // S011
|
|
|
|
//
|
|
// Define the minimum and maximum system time increment values in 100ns units.
|
|
//
|
|
// original ntos/inc/duodef.h
|
|
#define MAXIMUM_INCREMENT (10 * 1000 * 10)
|
|
#define MINIMUM_INCREMENT (1 * 1000 * 10)
|
|
|
|
//
|
|
// Time increment in 1us units
|
|
//
|
|
#define CLOCK_INTERVAL (MAXIMUM_INCREMENT / 10)
|
|
|
|
// original ntos/inc/mips.h
|
|
#define DEFAULT_PROFILETIMER_COUNT 65000 // = 65 ms
|
|
#define DEFAULT_PROFILETIMER_INTERVAL (500 * 10) // = 500 us (100ns units)
|
|
#define MAXIMUM_PROFILETIMER_INTERVAL (65000 * 10) // = 65 ms (100ns units)
|
|
#define MINIMUM_PROFILETIMER_INTERVAL (40 * 10) // = 40 us (100ns units)
|
|
|
|
//
|
|
// define IOB registers value
|
|
//
|
|
|
|
#define EIMR_DISABLE_ALL_EIF 0x0
|
|
#define EIMR_ENABLE_ALL_EIF 0xffe00000 // S002
|
|
#define IEMR_ENABLE_ALL_EIF 0xfffffe00 // S002
|
|
|
|
#define SCFR_CPU0_CONNECT 0x8000
|
|
#define SCFR_CPU1_CONNECT 0x4000
|
|
#define SCFR_CPU2_CONNECT 0x2000
|
|
#define SCFR_CPU3_CONNECT 0x1000
|
|
#define SCFR_SIC_SET0_CONNECT 0x0800
|
|
#define SCFR_SIC_SET1_CONNECT 0x0400
|
|
|
|
#define AII_INIT_DATA 0x80008000
|
|
|
|
// Start S008, S010
|
|
//
|
|
// define IOB registers value
|
|
//
|
|
#define CKE0_DISABLE_SBE 0xffffffff // S011, S013
|
|
#define DPCM_ENABLE_MASK 0x1fffffff // S013
|
|
#define DPCM_ECC1BIT_BIT 0x40000000 // S013, S014
|
|
|
|
#define SECT_REWRITE_ENABLE 0x0000000f // S013
|
|
|
|
#if defined(WORKAROUND_SIC3)
|
|
//#define CKE0_DISABLE_SBE 0xf7ffffff // S011
|
|
//#define CKE0_ENABLE_ALL_EIF 0xf040ff00 // S011 //R98TEMP SIC3 H/W Bug
|
|
#define CKE0_ENABLE_ALL_EIF 0xf840ff00 // S011, S013
|
|
#define CKE1_ENABLE_ALL_EIF 0xff700000 //R98TEMP SIC3 H/W Bug
|
|
#else
|
|
//#define CKE0_DISABLE_SBE 0xf7ffffff // S011
|
|
#define CKE0_ENABLE_ALL_EIF 0xf8c0ff00 // S011, S013
|
|
#define CKE1_ENABLE_ALL_EIF 0xfff00000
|
|
#endif
|
|
// End S008, S010
|
|
|
|
//
|
|
// Define NABus code
|
|
//
|
|
|
|
#define NACODE_SIO ((0x1f-IPR_SIO_BIT_NO) << 0x2)
|
|
#define NACODE_FDC_PIO ((0x1f-IPR_FDC_PIO_BIT_NO) << 0x2)
|
|
#define NACODE_DMA ((0x1f-IPR_DMA_BIT_NO) << 0x2)
|
|
#define NACODE_KB_MS ((0x1f-IPR_KB_MS_BIT_NO) << 0x2)
|
|
#define NACODE_ETHER ((0x1f-IPR_ETHER_BIT_NO) << 0x2)
|
|
#define NACODE_SCSI ((0x1f-IPR_SCSI_BIT_NO) << 0x2)
|
|
#define NACODE_PCI ((0x1f-IPR_PCI_BIT_NO) << 0x2)
|
|
#define NACODE_EISA ((0x1f-IPR_EISA_BIT_NO) << 0x2)
|
|
|
|
//
|
|
// define LR4360 registers value
|
|
//
|
|
#define ERRS_ERROR_BIT 0x00008000 // S005
|
|
#define iREN_DISABLE_ALL_INTERRUPT 0x0
|
|
#define iREN_ENABLE_DMA_INTERRUPT 0x00020000
|
|
#define iREN_ENABLE_LR_ERR_INTERRUPT 0x00010000 // S015
|
|
#define iREN_ENABLE_PCI_INTERRUPT 0x00000200 // S006
|
|
#define iREN_ENABLE_PCI_ERR_INTERRUPT 0x00400000 // S006
|
|
#define iREN_ENABLE_EISA_INTERRUPT 0x00000002 // S00E
|
|
#define iRRE_MASK 0x004203fe
|
|
#define iRSF_CLEAR_INTERRUPT 0x000003fe // S005
|
|
// Start S004
|
|
#define iRSF_ERRPCI_BIT 0x00400000
|
|
#define iRSF_DMA_BIT 0x00020000
|
|
#define iRSF_LR_ERR_BIT 0x00010000 // S015
|
|
// End S004
|
|
#define iRSF_PCI_BIT 0x00000200
|
|
#define iRSF_ETHER_BIT 0x00000100
|
|
#define iRSF_SCSI0_BIT 0x00000080
|
|
#define iRSF_SCSI1_BIT 0x00000040
|
|
#define iRSF_FDC_BIT 0x00000020 // S005, S00a
|
|
#define iRSF_PIO_BIT 0x00000010 // S005, S00a
|
|
#define iRSF_SIO_BIT 0x0000008
|
|
#define iRSF_KBMS_BIT 0x00000004
|
|
#define iRSF_EISA_BIT 0x00000002
|
|
#define LR_iRSF_REG_iNSF_SHIFT 0x11
|
|
#define LR4360PTSZ4K 0x1
|
|
#define LR4360PTSZ8K 0x2
|
|
#define LR4360PTSZ16K 0x4
|
|
#define LR4360PTSZ32K 0x8
|
|
#define LR4360PTSZSHIFT 0xc
|
|
#define LR_DMA_MODE_NORMAL 0x00
|
|
|
|
//
|
|
// Define dummy single read address
|
|
//
|
|
|
|
#define SIO_DUMMY_READ_ADDR KSEG1_BASE+0x018c103f1
|
|
#define PIO_DUMMY_READ_ADDR KSEG1_BASE+0x018c103f1
|
|
#define FDC_DUMMY_READ_ADDR KSEG1_BASE+0x018c103f1
|
|
#define DMA_DUMMY_READ_ADDR KSEG1_BASE+0x018c0b000
|
|
#define KBMS_DUMMY_READ_ADDR KSEG1_BASE+0x018c103f1
|
|
#define ETHER_DUMMY_READ_ADDR KSEG1_BASE+0x018600000
|
|
#define SCSI0_DUMMY_READ_ADDR KSEG1_BASE+0x018c0b000 // S010
|
|
#define SCSI1_DUMMY_READ_ADDR KSEG1_BASE+0x018c0b000 // S010
|
|
#define PCI_DUMMY_READ_ADDR KSEG1_BASE+0x018c0b000
|
|
#define EISA_DUMMY_READ_ADDR KSEG1_BASE+0x018cc0023
|
|
#define EIF_DUMMY_READ_ADDR KSEG1_BASE+0x018000218 // S005
|
|
|
|
#define PMC_DUMMY_READ_ADDR KSEG1_BASE+0x018c0b000 // S007
|
|
|
|
//
|
|
// Define cause register bit offset
|
|
//
|
|
|
|
#define CAUSE_INT_PEND_BIT 0x8
|
|
|
|
//
|
|
// Define cause register read macro
|
|
//
|
|
|
|
#define READ_CAUSE_REGISTER(reg) \
|
|
.set noreorder; \
|
|
.set noat; \
|
|
mfc0 reg,cause; \
|
|
nop; \
|
|
nop; \
|
|
.set at; \
|
|
.set reorder;
|
|
|
|
/* End S001 */
|
|
|
|
#endif _R98DEF_
|