Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / cpus / vonk / n2 / lib / ras / xml / N2_DramErrorInjectMem.xml
CommitLineData
920dae64
AT
1<!-- interpreter=xml2reg args='-t' -->
2<register_list>
3<register name="DRAM_ERROR_INJECT_REG (DRAM_ERROR_INJECT_REG)">
4 <class_name>N2_DramErrorInjectMem</class_name>
5 <submodule>N2</submodule>
6 <comment>
7DRAM Error Injection Register. Each DRAM channel has an error injection register for use in injecting DRAM errors to test error functionality or error handling code. The DRAM error injection register only provides for the injection of bad ECC on data written to memory. To inject an ECC error on data read from memory, bad ECC must be set up via a memory write, and then the memory locations with the bad ECC accessed with a read. Errors can be injected either single-shot or continuously. Once the ENB bit set, either the first subsequent operation (for SSHOT=1), or all subsequent operations (for SSHOT=0) that cause a DRAM write will XOR the ECCMASK with the normally generated ECC when writing memory. When in single-shot mode, after the first injected error is generated, the SSHOT and ENB are automatically reset by the hardware to 0. ECC in dram controller is calculated on 32 bytes in one cycle. Therefore in SSHOT mode, error is injected into 2 bursts out of 4 for a cacheline of 64 bytes. TABLE 12-34 shows the format of the DRAM Error Injection Register. TABLE 12-34 Register64 DRAM Error Injection Register - DRAM_ERROR_INJECT_REG (0x84-0000-0290) (Count 4 Step 4096)
8 </comment>
9 <base_address>0x8400000290ULL</base_address>
10 <count>4</count>
11 <stride>4096</stride>
12 <priv>yes</priv>
13 <field name="ECCMASK">
14 <start_offset>0</start_offset>
15 <end_offset>15</end_offset>
16 <initial_value>0</initial_value>
17 <protection>RW</protection>
18 <field_type>NORMAL</field_type>
19 <comment>
20ECC mask for error injection. The mask is XORed with the computed ECC.
21 </comment>
22 <format type="hex"/>
23 </field>
24 <field name="RSVD0">
25 <start_offset>16</start_offset>
26 <end_offset>29</end_offset>
27 <initial_value>0</initial_value>
28 <protection>RO</protection>
29 <field_type>ZERO</field_type>
30 <comment>
31Reserved
32 </comment>
33 </field>
34 <field name="SSHOT">
35 <start_offset>30</start_offset>
36 <end_offset>30</end_offset>
37 <initial_value>0</initial_value>
38 <protection>RW</protection>
39 <field_type>NORMAL</field_type>
40 <comment>
41Controls type of error injection. 1, single shot, 0 continuous.
42 </comment>
43 <format type="hex"/>
44 </field>
45 <field name="ENB">
46 <start_offset>31</start_offset>
47 <end_offset>31</end_offset>
48 <initial_value>0</initial_value>
49 <protection>RW</protection>
50 <field_type>NORMAL</field_type>
51 <comment>
52Enables error injection
53 </comment>
54 <format type="hex"/>
55 </field>
56 <field name="RSVD1">
57 <start_offset>32</start_offset>
58 <end_offset>63</end_offset>
59 <initial_value>0</initial_value>
60 <protection>RO</protection>
61 <field_type>ZERO</field_type>
62 <comment>
63Reserved.
64 </comment>
65 </field>
66</register>
67</register_list>