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. |
DATA_ CYCLE_ TYPE | Description |
---|---|
00 | IDLE |
01 | CPU_READ |
02 | CPU_READ_VICTIM |
03 | CPU_WRITE |
04 | IO_READ |
05 | FLASH_BYTE_READ |
06 | PCI_READ |
07 | IO_WRITE |
08 | FLASH_BYTE_WRITE |
09 | DMA_READ |
0A | DMA_READ_SCACHE |
0B | DMA_READ_BCACHE |
0C | DMA_READ_VICTIM |
0D | DMA_WRITE |
0E | DMA_MEM_MERGE |
0F | DMA_SCACHE_MERGE |
10 | DMA_BCACHE_MERGE |
11 | DMA_VICTIM_MERGE |
12 | FLASH_READ |
13 | VICTIM_WRITE |
14 | DUMMY_READ |
15 | VICTIM_EJECT |
SEQ_STATE | Value | Description |
---|---|---|
IDLE | 00 | Command dispatch |
WAIT | 01 | Wait until data transfer is idle |
WAIT1 | 02 | Wait one cycle |
DMA_RD_START | 03 | Select DMA read address |
DMA_RD_PROBE | 04 | Assert RAS |
DMA_RD_SCACHE_DATA | 05 | Read Dirty data from Bcache |
DMA_RD_BCACHE_DATA | 06 | Read Dirty data from Bcache |
DMA_RD_CACHE_DATA | 07 | Read Dirty data from Bcache or Scache |
DMA_RD_RAS | 08 | Continue to assert RAS after cache miss |
DMA_RD_COL | 09 | wait for column access |
DMA_RD_VICTIM | 0A | wait for memory data to blow by |
DMA_RD_NXM | 0B | Assert error state for nonexistent memory |
DMA_WR_START | 0C | Select DMA write address |
DMA_WR_WHOLE_RAS | 0D | Start RAS for whole cache line write |
DMA_WR_WHOLE_DATA | 0E | Watch the data go by |
DMA_WR_PROBE | 0F | wait for probe result |
DMA_WR_SCACHE_COPY | 10 | Read Dirty data from Scache |
DMA_WR_BCACHE_COPY | 11 | Read Dirty data from Bcache |
DMA_WR_CACHE_COPY | 12 | Read Dirty data from Bcache or Scache |
DMA_WR_RAS | 13 | Continue to assert RAS after miss |
DMA_WR_PQ_RD_RAS | 14 | Assert RAS for partial octawords read |
DMA_WR_PQ_RD_COL | 15 | wait for column access |
DMA_WR_PQ_RD_VICTIM | 16 | wait for memory data to blow by |
DMA_WR_NXM | 17 | Assert error state for nonexistent memory |
DMA_WR_WHOLE_RASF | 36 | Start RAS for whole cache line write, BC flush pending |
DMA_WR_WHOLE_FLUSH | 37 | Watch the data go by |
CPU_EJECT | 18 | Eject victim and assert RAS for fill |
CPU_RD_START | 19 | Assert RAS for fill |
CPU_RD_COL | 1A | wait for column access |
CPU_RD_VICTIM | 1B | wait for DRAM data to blow by, then provide the REAL data |
CPU_RD_NXM | 1C | Assert error state for nonexistent memory |
CPU_WR_START | 1D | Assert RAS for Scache victim (no Bcache) |
CPU_WR_NXM | 1E | Assert error state for nonexistent memory |
VICTIM_START | 1F | Assert RAS for Bcache victim in Pyxis victim buffer |
VICTIM_NXM | 20 | Assert error state for nonexistent memory |
REFRESH_PRECHARGE | 21 | Deactivate all rows for refresh |
REFRESH_COMMAND | 22 | Assert refresh for all banks |
MODE_PRECHARGE | 23 | Deactivate all rows for "Mode" cycle |
MODE_COMMAND | 24 | Assert Mode cycle for all banks, join refresh flow |
CPU_IO_RD_ADDR | 25 | Send IO read address to select a target |
CPU_IO_RD_WAIT | 26 | Wait for return of read data (64-bit max) |
CPU_IO_RD_START | 27 | Start read data transfer |
CPU_FLASH_RD_WAIT | 28 | wait for flash byte read to complete |
UNREACHABLE_STATE | 29 | ****** This state is not reachable ****** |
CPU_PCI_RD_WAIT | 2A | Wait for BC IDLE |
CPU_PCI_RD_START | 2B | delay for data cycle |
CPU_IO_WR_ADDR | 2C | Send I/O write address to select a target |
CPU_IO_WR_NXM | 2D | Assert error state for nonexistent I/O address |
CPU_FLASH_WR_WAIT | 2E | wait for flash byte write to complete |
CPU_FLASH_START | 2F | Start a fill from flashROM |
CPU_FLASH_COL | 30 | Start a fill from flashROM |
CPU_FLASH_DATA | 31 | Wait for the Flash controller to deliver all the Flash data |
CPU_DUMMY_START | 32 | Start a fill from the dummy region |
CPU_DUMMY_COL | 33 | Start the dummy data transfer |
NO_BRAINER | 34 | issue CACK and ignore |
BAD_CPU_CMD | 35 | assert machine check |