summaryrefslogblamecommitdiffstats
path: root/private/ntos/nthals/halvict/ppc/pxmemctl.h
blob: 569bae171a29dfc4e1d26f60d885c57d54c24aba (plain) (tree)














































































































































                                                                               
/*++ BUILD Version: 0001    // Increment this if a change has global effects

Copyright (c) 1996  International Business Machines Corporation


Module Name:

    pxmemctl.h

Abstract:

    This header file defines the structures for the planar registers
    for an Idaho memory controller.




Author:

    Jim Wooldridge


Revision History:

    Peter L Johnston    (plj@vnet.ibm.com)    August 1995.
                        Doral.

--*/


//
// define physical base addresses of planar registers (non UNION)
//

#define INTERRUPT_PHYSICAL_BASE 0xbffffff0 // physical base of interrupt source
#define ERROR_ADDRESS_REGISTER  0xbfffeff0

//
// define physical base addresses of UNION planar registers
//

//
// 8259 Interrupt Source (DORAL)
//

#define UNION_INTERRUPT_PHYSICAL_BASE   0xbfff7700

//
// IO Space (ISA)
//

#define IO_CONTROL_PHYSICAL_BASE        0x80000000

//
// UNION System Control Registers
//

#define UNION_SYSTEM_CONTROL_REG_BASE   0xff001000

//
// System Error Control Register (offset from UNION_SYSTEM_CONTROL_REG_BASE)
//

#define UNION_SECR                      0x50

//
// System Error Status Register (offset)
//

#define UNION_SESR                      0x60

//
// System Error Address Register (offset)
//

#define UNION_SEAR                      0x70

//
// Memory Error Status Register (offset)
//

#define UNION_MESR                      0x120

//
// Memory Error Address Register (offset)
//

#define UNION_MEAR                      0x130

//
// System Error Status Register bit definitions.
//

// Reserved                             0xe0000000
#define UNION_SESR_CHECKSTOP            0x20000000
#define UNION_SESR_FLASH_WRITE          0x10000000
#define UNION_SESR_IGMC_ACCESS          0x08000000
#define UNION_SESR_DISABLED_ADDRESS     0x04000000
// Reserved                             0x03f00000
#define UNION_SESR_T1_ACCESS            0x00080000
#define UNION_SESR_ADDRESS_BUS_PARITY   0x00040000
#define UNION_SESR_DATA_BUS_PARITY      0x00020000
#define UNION_SESR_NO_L2_HIT_ACCESS     0x00010000
#define UNION_SESR_CPU_TO_PCI_ACCESS    0x00008000
#define UNION_SESR_PCI32_BUS_MASTER     0x00004000
#define UNION_SESR_PCI64_BUS_MASTER     0x00002000
#define UNION_SESR_XFERDATA             0x00001000
#define UNION_SESR_DATA_BUS_TIMEOUT     0x00000800
#define UNION_SESR_CPU_MEMORY_ACCESS    0x00000400
// Reserved                             0x000003ff

//
// Bits 17, 18 and 19 above represent PCI initiated errors and
// the System Error Address Register is not updated.  In these
// cases the PCI bridges or xferdata logic must be interogated
// to determine the cause of the error.   Bit 16 also requires
// bridge interrogation.
// 

#define UNION_SEAR_NOT_SET      (UNION_SESR_PCI32_BUS_MASTER | \
                                 UNION_SESR_PCI64_BUS_MASTER | \
                                 UNION_SESR_XFERDATA)

//
// Memory Error Status Register bit definitions
//

#define UNION_MESR_DOUBLE_BIT           0x80000000
#define UNION_MESR_SINGLE_BIT           0x40000000
#define UNION_MESR_ADDRESS              0x20000000
#define UNION_MESR_OVERLAPPED_MEM_EXT   0x10000000
//reserved                              0x0fffff00
#define UNION_MESR_SYNDROME             0x000000ff

//
// UNION Channel Status Register is at offset 0x1800 from the PCI Config
// Address register.  Processor Load/Store Status Register is at offset
// 0x1810.
//

#define UNION_PCI_CSR_OFFSET    0x1800
#define UNION_PCI_PLSSR_OFFSET  0x1810