Update XML for new Explorer levels
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I2a79d0dc217241605cb798a3386d77b9aa59f33c
diff --git a/test/simulator/simulator.cpp b/test/simulator/simulator.cpp
index b95027d..e994eba 100644
--- a/test/simulator/simulator.cpp
+++ b/test/simulator/simulator.cpp
@@ -11,6 +11,9 @@
const std::map<SimulatorData::SimChipType, const char*>
SimulatorData::cv_chipPath = {
{SAMPLE, "../test/simulator/sample_data/sample.cdb"},
+ {EXPLORER_11, "chip_data_explorer_11.cdb"},
+ {EXPLORER_20, "chip_data_explorer_20.cdb"},
+ {P10_10, "chip_data_p10_10.cdb"},
};
//------------------------------------------------------------------------------
diff --git a/test/simulator/simulator.hpp b/test/simulator/simulator.hpp
index 0a22911..c308fda 100644
--- a/test/simulator/simulator.hpp
+++ b/test/simulator/simulator.hpp
@@ -43,7 +43,10 @@
/** The list of supported chip types for the simulator. */
enum SimChipType
{
- SAMPLE = 0xdeadbeef,
+ SAMPLE = 0xdeadbeef,
+ EXPLORER_11 = 0x60d20011,
+ EXPLORER_20 = 0x60d20020,
+ P10_10 = 0x20da0010,
};
private:
diff --git a/xml/build_chip_data_binary b/xml/build_chip_data_binary
index aa82ea3..c6dc0c7 100755
--- a/xml/build_chip_data_binary
+++ b/xml/build_chip_data_binary
@@ -28,8 +28,9 @@
# This is a map of all currently supported models/ECs and their IDs.
my $SUPPORTED_MODEL_EC =
{
- EXPLORER_10 => 0x160D2000, # Explorer Chip DD1.0
- P10_10 => 0x120DA049, # P10 Chip DD1.0
+ EXPLORER_11 => 0x60D20011, # Explorer Chip DD1.0
+ EXPLORER_20 => 0x60D20020, # Explorer Chip DD1.0
+ P10_10 => 0x20DA0010, # P10 Chip DD1.0
};
# All models/ECs that may exist in the XML, but no longer needs to be built.
@@ -362,18 +363,22 @@
# Each register will keep track of its type.
$r->{reg_type} = $node->{reg_type};
- if ( defined $regs->{$r->{name}} )
+ for my $model_ec ( __expandModelEc($node->{model_ec}) )
{
- # This register already exists so check the contents for accuracy
- unless ( __dirtyCompare($r, $regs->{$r->{name}}) )
+ if ( defined $regs->{$model_ec}->{$r->{name}} )
{
- FAIL("Duplicate register: $r->{name}");
+ # This register already exists so check the contents for
+ # accuracy
+ unless ( __dirtyCompare($r, $regs->{$model_ec}->{$r->{name}}) )
+ {
+ FAIL("Duplicate register: $r->{name}");
+ }
}
- }
- else
- {
- # Add this node's register to the master register list.
- $regs->{$r->{name}} = $r;
+ else
+ {
+ # Add this node's register to the master register list.
+ $regs->{$model_ec}->{$r->{name}} = $r;
+ }
}
}
@@ -633,15 +638,19 @@
# currently is no comment for some bits.
$b->{content} = "" unless ( defined $b->{content} );
- # Check if this signature already exists.
- if ( defined $sigs->{$n}->{$ni}->{$p} and
- $b->{content} ne $sigs->{$n}->{$ni}->{$p} )
+ for my $model_ec ( __expandModelEc($node->{model_ec}) )
{
- FAIL("Duplicate signature for $n $ni $p");
- }
+ # Check if this signature already exists.
+ if ( defined $sigs->{$model_ec}->{$n}->{$ni}->{$p} and
+ $b->{content} ne $sigs->{$model_ec}->{$n}->{$ni}->{$p} )
+ {
+ FAIL("Duplicate signature for $n $ni $p");
+ }
- # Get the signatures for each node, instance, and bit position.
- $sigs->{$n}->{$ni}->{$p} = $b->{content};
+ # Get the signatures for each node, instance, and bit
+ # position.
+ $sigs->{$model_ec}->{$n}->{$ni}->{$p} = $b->{content};
+ }
# Move onto the next instance unless a child node exists.
next unless ( defined $b->{child_node} );
@@ -753,15 +762,22 @@
$node_dups->{$model_ec}->{$node->{name}} = 1;
}
- # Some nodes contain the <local_fir> shorthand element. <register>
- # elements will need to be extracted for a master register list.
- # Also, some minor data checking, etc.
+ # Initialize the master list of registers and signatures of this
+ # model/EC, if necessary.
- $regs->{$model_ec} = {} unless ( defined $regs->{ $model_ec} );
- $sigs->{$model_ec} = {} unless ( defined $sigs->{ $model_ec} );
+ $regs->{$model_ec} = {} unless ( defined $regs->{$model_ec} );
+ $sigs->{$model_ec} = {} unless ( defined $sigs->{$model_ec} );
+ }
- __normalizeNode( $node, $regs->{$model_ec}, $sigs->{$model_ec} );
+ # The same node content will be used for each model/EC characterized by
+ # this node. There is some normalization that needs to happen because of
+ # shorthand elements, like <local_fir>, and some error checking. This
+ # only needs to be done once per node, not per model/EC.
+ __normalizeNode( $node, $regs, $sigs );
+ # Push the node data for each model/EC.
+ for my $model_ec ( __expandModelEc($node->{model_ec}) )
+ {
push @{$data->{$model_ec}->{node}}, $node;
}
}
diff --git a/xml/chip_data_xml.md b/xml/chip_data_xml.md
index 5b85467..96cbfed 100644
--- a/xml/chip_data_xml.md
+++ b/xml/chip_data_xml.md
@@ -412,7 +412,8 @@
| Value | Description |
|---------------|----------------------|
-| `EXPLORER_10` | Explorer chip EC 1.0 |
+| `EXPLORER_11` | Explorer chip EC 1.1 |
+| `EXPLORER_20` | Explorer chip EC 2.0 |
| `P10_10` | P10 chip EC 1.0 |
### 3.4) Supported Attention Types
diff --git a/xml/explorer/chip_explorer.xml b/xml/explorer/chip_explorer.xml
index 8b46d74..df092fa 100644
--- a/xml/explorer/chip_explorer.xml
+++ b/xml/explorer/chip_explorer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chip name="Explorer" model_ec="EXPLORER_10">
+<chip name="Explorer" model_ec="EXPLORER_11,EXPLORER_20">
<attn_tree attn_type="UCS" root_node="CHIPLET_OCMB_FIR" node_inst="0" />
<attn_tree attn_type="RE" root_node="CHIPLET_OCMB_FIR" node_inst="0" />
diff --git a/xml/explorer/node_chiplet_ocmb_fir.xml b/xml/explorer/node_chiplet_ocmb_fir.xml
index d195c84..fd6aed7 100644
--- a/xml/explorer/node_chiplet_ocmb_fir.xml
+++ b/xml/explorer/node_chiplet_ocmb_fir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="CHIPLET_OCMB_FIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="CHIPLET_OCMB_FIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<register name="CHIPLET_OCMB_CS_FIR">
<instance reg_inst="0" addr="0x08040000" />
diff --git a/xml/explorer/node_chiplet_ocmb_spa_fir.xml b/xml/explorer/node_chiplet_ocmb_spa_fir.xml
index f53240d..ed32ca9 100644
--- a/xml/explorer/node_chiplet_ocmb_spa_fir.xml
+++ b/xml/explorer/node_chiplet_ocmb_spa_fir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="CHIPLET_OCMB_SPA_FIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="CHIPLET_OCMB_SPA_FIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<register name="CHIPLET_OCMB_SPA_FIR">
<instance reg_inst="0" addr="0x08040004" />
diff --git a/xml/explorer/node_mcbistfir.xml b/xml/explorer/node_mcbistfir.xml
index 66ca8d7..a4c7623 100644
--- a/xml/explorer/node_mcbistfir.xml
+++ b/xml/explorer/node_mcbistfir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="MCBISTFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="MCBISTFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="MCBISTFIR" config="W">
<instance reg_inst="0" addr="0x08011800" />
diff --git a/xml/explorer/node_mmiofir.xml b/xml/explorer/node_mmiofir.xml
index 7d64d7e..469140f 100644
--- a/xml/explorer/node_mmiofir.xml
+++ b/xml/explorer/node_mmiofir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="MMIOFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="MMIOFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="MMIOFIR" config="W">
<instance reg_inst="0" addr="0x08010870" />
diff --git a/xml/explorer/node_ocmb_lfir.xml b/xml/explorer/node_ocmb_lfir.xml
index cd62fc3..7cb4543 100644
--- a/xml/explorer/node_ocmb_lfir.xml
+++ b/xml/explorer/node_ocmb_lfir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="OCMB_LFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="OCMB_LFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="OCMB_LFIR" config="">
<instance reg_inst="0" addr="0x0804000a" />
diff --git a/xml/explorer/node_omidlfir.xml b/xml/explorer/node_omidlfir.xml
index 061c698..0a243e4 100644
--- a/xml/explorer/node_omidlfir.xml
+++ b/xml/explorer/node_omidlfir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="OMIDLFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="OMIDLFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="OMIDLFIR" config="W">
<instance reg_inst="0" addr="0x08012800" />
diff --git a/xml/explorer/node_rdffir.xml b/xml/explorer/node_rdffir.xml
index c6a942c..6c56d11 100644
--- a/xml/explorer/node_rdffir.xml
+++ b/xml/explorer/node_rdffir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="RDFFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="RDFFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="RDFFIR" config="W">
<instance reg_inst="0" addr="0x08011c00" />
diff --git a/xml/explorer/node_srqfir.xml b/xml/explorer/node_srqfir.xml
index 2541838..7e86d48 100644
--- a/xml/explorer/node_srqfir.xml
+++ b/xml/explorer/node_srqfir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="SRQFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="SRQFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="SRQFIR" config="W">
<instance reg_inst="0" addr="0x08011400" />
diff --git a/xml/explorer/node_tlxfir.xml b/xml/explorer/node_tlxfir.xml
index 11b02cd..d3be87f 100644
--- a/xml/explorer/node_tlxfir.xml
+++ b/xml/explorer/node_tlxfir.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<attn_node name="TLXFIR" model_ec="EXPLORER_10" reg_type="SCOM">
+<attn_node name="TLXFIR" model_ec="EXPLORER_11,EXPLORER_20" reg_type="SCOM">
<local_fir name="TLXFIR" config="W">
<instance reg_inst="0" addr="0x08012400" />
diff --git a/xml/meson.build b/xml/meson.build
index 23a9ca0..fd4420c 100644
--- a/xml/meson.build
+++ b/xml/meson.build
@@ -19,7 +19,8 @@
'explorer' :
[
- 'chip_data_explorer_10.cdb',
+ 'chip_data_explorer_11.cdb',
+ 'chip_data_explorer_20.cdb',
],
}