PYXIS Memory Error Status Register (MEAR)
Address: 87.4000.8440
The command, memory sequencer state, the data cycle at the time of an error, and the remaining address field are locked into the MESR register upon a PYXIS error. The error bits are write one to clear and clearing all error bits in the PYXIS_ERR register unlocks this register. When the register is not locked, the contents of this register are not defined.
SEQ_STATE<31:25>RW The memory sequencer-state when the nonexistent memory error occurred.
DATA_CYCLE
_TYPE
<24:20>RO The type of data cycle in progress when an ECC error occurred.
Reserved<19:18>RO N/A
OWORD_
INDEX
<17:16>RO The data cycle within a memory access in which the data error was discovered. There are normally four data cycles. OWORD_INDEX = 0 is the first data cycle corresponding to the error address captured in the ERROR_ADDR field. The actual low-order bits of the error location are (ERROR_ADDR[5:4]+ OWORD_INDEX) mod 4.
TLBFILL_NXM<15>RO Nonexistent memory trap during a scatter/gather translation buffer fill operation.
VICTIM_NXM<14>RO Nonexistent memory trap during a BCACHE victim operation.
IO_WR_NXM<13>RO Nonexistent memory trap during an I/O write.
IO_RD_NXM<12>RO Nonexistent memory trap during an I/O read.
CPU_WR_NXM<11>RO Nonexistent memory trap during a CPU write.
CPU_RD_NXM<10>RO Nonexistent memory trap during a CPU read.
DMA_WR_NXM<9>RO Nonexistent memory trap during a DMA write.
DMA_RD_NXM<8>RO Nonexistent memory trap during a DMA read.
ERROR_ADDR
<39:32>
<7:0>RO Contains address bits <39:32> of the error address in the Memory port when the PYXIS detects an error. Bits <39:34> are unpredictable on memory errors. Only bits <33:32> are are valid for that case.


DataCycle Type Encodings
(Return to bit descriptions.)
DATA_
CYCLE_
TYPE
Description
00IDLE
01CPU_READ
02CPU_READ_VICTIM
03CPU_WRITE
04IO_READ
05FLASH_BYTE_READ
06PCI_READ
07IO_WRITE
08FLASH_BYTE_WRITE
09DMA_READ
0ADMA_READ_SCACHE
0BDMA_READ_BCACHE
0CDMA_READ_VICTIM
0DDMA_WRITE
0EDMA_MEM_MERGE
0FDMA_SCACHE_MERGE
10DMA_BCACHE_MERGE
11DMA_VICTIM_MERGE
12FLASH_READ
13VICTIM_WRITE
14DUMMY_READ
15VICTIM_EJECT


Memory Sequencer State Encodings
(Return to bit descriptions.)
SEQ_STATEValueDescription
IDLE00Command dispatch
WAIT01Wait until data transfer is idle
WAIT102Wait one cycle
DMA_RD_START03Select DMA read address
DMA_RD_PROBE04Assert RAS
DMA_RD_SCACHE_DATA05Read Dirty data from Bcache
DMA_RD_BCACHE_DATA06Read Dirty data from Bcache
DMA_RD_CACHE_DATA07Read Dirty data from Bcache or Scache
DMA_RD_RAS08Continue to assert RAS after cache miss
DMA_RD_COL09wait for column access
DMA_RD_VICTIM0Await for memory data to blow by
DMA_RD_NXM0BAssert error state for nonexistent memory
DMA_WR_START0CSelect DMA write address
DMA_WR_WHOLE_RAS0DStart RAS for whole cache line write
DMA_WR_WHOLE_DATA0EWatch the data go by
DMA_WR_PROBE0Fwait for probe result
DMA_WR_SCACHE_COPY10Read Dirty data from Scache
DMA_WR_BCACHE_COPY11Read Dirty data from Bcache
DMA_WR_CACHE_COPY12Read Dirty data from Bcache or Scache
DMA_WR_RAS13Continue to assert RAS after miss
DMA_WR_PQ_RD_RAS14Assert RAS for partial octawords read
DMA_WR_PQ_RD_COL15wait for column access
DMA_WR_PQ_RD_VICTIM16wait for memory data to blow by
DMA_WR_NXM17Assert error state for nonexistent memory
DMA_WR_WHOLE_RASF36Start RAS for whole cache line write, BC flush pending
DMA_WR_WHOLE_FLUSH37Watch the data go by
CPU_EJECT18Eject victim and assert RAS for fill
CPU_RD_START19Assert RAS for fill
CPU_RD_COL1Await for column access
CPU_RD_VICTIM1Bwait for DRAM data to blow by, then provide the REAL data
CPU_RD_NXM1CAssert error state for nonexistent memory
CPU_WR_START1DAssert RAS for Scache victim (no Bcache)
CPU_WR_NXM1EAssert error state for nonexistent memory
VICTIM_START1FAssert RAS for Bcache victim in Pyxis victim buffer
VICTIM_NXM20Assert error state for nonexistent memory
REFRESH_PRECHARGE21Deactivate all rows for refresh
REFRESH_COMMAND22Assert refresh for all banks
MODE_PRECHARGE23Deactivate all rows for "Mode" cycle
MODE_COMMAND24Assert Mode cycle for all banks, join refresh flow
CPU_IO_RD_ADDR25Send IO read address to select a target
CPU_IO_RD_WAIT26Wait for return of read data (64-bit max)
CPU_IO_RD_START27Start read data transfer
CPU_FLASH_RD_WAIT28wait for flash byte read to complete
UNREACHABLE_STATE29****** This state is not reachable ******
CPU_PCI_RD_WAIT2AWait for BC IDLE
CPU_PCI_RD_START2Bdelay for data cycle
CPU_IO_WR_ADDR2CSend I/O write address to select a target
CPU_IO_WR_NXM2DAssert error state for nonexistent I/O address
CPU_FLASH_WR_WAIT2Ewait for flash byte write to complete
CPU_FLASH_START2FStart a fill from flashROM
CPU_FLASH_COL30Start a fill from flashROM
CPU_FLASH_DATA31Wait for the Flash controller to deliver all the Flash data
CPU_DUMMY_START32Start a fill from the dummy region
CPU_DUMMY_COL33Start the dummy data transfer
NO_BRAINER34issue CACK and ignore
BAD_CPU_CMD35assert machine check
Return to bit descriptions.