1 <?xml version="1.0" standalone="no"?>
4 <!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
5 <!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
7 <!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
8 <!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
10 <!ENTITY ALPHALOWER "ABCDEFxX0123456789">
11 <!ENTITY HEXUPPER "ABCDEFxX0123456789">
12 <!ENTITY HEXLOWER "abcdefxX0123456789">
13 <!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
16 <xsl:stylesheet version="1.0"
17 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
18 xmlns:exsl="http://exslt.org/common"
19 xmlns:dyn="http://exslt.org/dynamic"
20 xmlns:math="http://exslt.org/math"
21 xmlns:xlink="http://www.w3.org/1999/xlink"
22 extension-element-prefixes="exsl dyn math xlink">
24 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
27 ================================================================================
28 Generate XTeller for ADDRESSES
29 ================================================================================
32 <xsl:template name="WRITE_VIEW_ADDRESS">
34 <xsl:for-each select="$G_SYS_MODS/MODULE[((@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
35 <xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
37 <xsl:variable name="procInst_" select="@INSTANCE"/>
38 <xsl:variable name="procMod_" select="self::node()"/>
39 <xsl:variable name="procModType" select="@MODTYPE"/>
40 <xsl:variable name="procModClass_" select="@MODCLASS"/>
41 <xsl:variable name="procInstHdrVal_"><xsl:value-of select="$procInst_"/>'s Address Map</xsl:variable>
42 <xsl:variable name="procInstRowIdx_" select="position() - 1"/>
44 <!-- <SET ID="{$procInst_}" CLASS="MODULE" ROW_INDEX="{$procInstRowIdx_}"> -->
46 <xsl:element name="SET">
47 <xsl:attribute name="ID"><xsl:value-of select="$procInst_"/></xsl:attribute>
48 <xsl:attribute name="CLASS">MODULE</xsl:attribute>
49 <xsl:attribute name="ROW_INDEX"><xsl:value-of select="$procInstRowIdx_"/></xsl:attribute>
51 <!-- <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$procInstHdrVal_}"/> -->
53 <xsl:element name="VARIABLE">
54 <xsl:attribute name="NAME">INSTANCE</xsl:attribute>
55 <xsl:attribute name="VALUE"><xsl:value-of select="$procInstHdrVal_"/></xsl:attribute>
56 <xsl:attribute name="VIEWDISP">Instance</xsl:attribute>
57 <xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
60 <xsl:for-each select="$procMod_/MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (ACCESSROUTE or (@MEMTYPE = 'BRIDGE')))]">
61 <xsl:sort data-type="number" select="@BASEDECIMAL" order="ascending"/>
63 <xsl:variable name="addr_id_"><xsl:value-of select="@BASENAME"/>:<xsl:value-of select="@HIGHNAME"/></xsl:variable>
64 <xsl:variable name="baseName_" select="@BASENAME"/>
65 <xsl:variable name="highName_" select="@HIGHNAME"/>
68 <xsl:if test="$G_DEBUG='TRUE'">
69 <xsl:message>ADDRESS ID <xsl:value-of select="$addr_id_"/></xsl:message>
73 <xsl:variable name="set_id_">
74 <xsl:if test="(@INSTANCE)">
75 <xsl:value-of select="$procInst_"/>.<xsl:value-of select="@INSTANCE"/>:<xsl:value-of select="$addr_id_"/>
77 <xsl:if test="not(@INSTANCE)">
78 <xsl:value-of select="$procInst_"/>:<xsl:value-of select="$addr_id_"/>
82 <xsl:variable name="procAddrRowIdx_" select="position() - 1"/>
83 <SET ID="{$set_id_}" CLASS="ADDRESS" ROW_INDEX="{$procAddrRowIdx_}">
85 <xsl:if test="(@INSTANCE)">
86 <xsl:variable name="periInst_" select="@INSTANCE"/>
87 <xsl:variable name="periMod_" select="key('G_MAP_MODULES', $periInst_)"/>
89 <xsl:variable name="subInstance_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $instance_)]"/>
90 <xsl:message>Count memrange slaves <xsl:value-of select="count($modMemMapSlvs_)"/> </xsl:message>
91 <xsl:message>Count mod valid bifs <xsl:value-of select="count($modValidBifs_)"/> </xsl:message>
95 <xsl:variable name="periModType_" select="$periMod_/@MODTYPE"/>
96 <xsl:variable name="periViewIcon_" select="$periMod_/LICENSEINFO/@ICON_NAME"/>
97 <xsl:variable name="periHwVersion_" select="$periMod_/@HWVERSION"/>
99 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$periInst_}"/>
100 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$periModType_}" VIEWICON="{$periViewIcon_}"/>
101 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$periHwVersion_}"/>
104 <xsl:if test="not(@INSTANCE)">
105 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$procInst_}"/>
106 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$procModType}" VIEWICON="{$procMod_/LICENSEINFO/@ICON_NAME}"/>
107 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$procHwVersion_}"/>
110 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
112 <xsl:variable name="instName_">
114 <xsl:when test="@INSTANCE"><xsl:value-of select="@INSTANCE"/></xsl:when>
115 <xsl:otherwise>Connected<xsl:value-of select="$procInst_"/></xsl:otherwise>
119 <xsl:message>INST : <xsl:value-of select="$set_id_"/></xsl:message>
122 <xsl:variable name="is_locked_">
123 <xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
124 <xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
127 <xsl:variable name="baseAddrViewType_">
129 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
130 <xsl:otherwise>TEXTBOX</xsl:otherwise>
134 <xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
135 <xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
136 <xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
137 <VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
138 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
140 <xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
141 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
144 <xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
145 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
149 <xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
150 <VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
153 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
155 <xsl:variable name="sizeViewType_">
157 <xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
158 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
159 <xsl:otherwise>DROPDOWN</xsl:otherwise>
163 <VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
165 <xsl:variable name="periInst_" select="@INSTANCE"/>
166 <xsl:variable name="periMod_" select="key('G_MAP_MODULES', $periInst_)"/>
167 <xsl:variable name="periModClass_" select="$periMod_/@MODCLASS"/>
168 <xsl:variable name="periValidBifs_" select="key('G_MAP_ALL_BIFS', $periInst_)[not(@BUSNAME = '__NOC__')]"/>
169 <xsl:variable name="periMemMapSlvs_" select="$periMod_/MEMORYMAP/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE"/>
170 <xsl:variable name="periMemMapBifs_">
171 <xsl:for-each select="$periMemMapSlvs_">
172 <xsl:variable name="periSlvBifName_" select="@BUSINTERFACE"/>
173 <xsl:if test="$periValidBifs_[(@NAME = $periSlvBifName_)]">
174 <xsl:variable name="periBif_" select="$periValidBifs_[(@NAME = $periSlvBifName_)]"/>
175 <xsl:variable name="periBifName_" select="$periBif_/@NAME"/>
176 <xsl:variable name="periBifBus_" select="$periBif_/@BUSNAME"/>
178 <xsl:message> Slv Bif <xsl:value-of select="$periBifName_"/> = <xsl:value-of select="$periBifBus_"/></xsl:message>
180 <MMBIF NAME="{$periBifName_}" BUS="{$periBifBus_}"/>
185 <xsl:variable name="num_of_periMemMapBifs_" select="count(exsl:node-set($periMemMapBifs_)/MMBIF)"/>
188 <xsl:message> Total num of slv bifs <xsl:value-of select="$num_of_periMemMapBifs_"/> </xsl:message>
189 <xsl:message> </xsl:message>
192 <xsl:variable name="valid_bifNames_">
193 <xsl:for-each select="exsl:node-set($periMemMapBifs_)/MMBIF">
194 <xsl:variable name="bifName_" select="@NAME"/>
195 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="$bifName_"/>
199 <xsl:variable name="valid_busNames_">
200 <xsl:for-each select="exsl:node-set($periMemMapBifs_)/MMBIF">
201 <xsl:variable name="busName_" select="@BUS"/>
202 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="$busName_"/>
207 <xsl:message> Mod Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
208 <xsl:message> Mod Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
209 <xsl:message>Slv Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
210 <xsl:variable name="modBifs_" select="$modInst_/BUSINTERFACES"/>
211 <xsl:if test="$periValidBifs_[(@NAME = $bifName_)]">
212 <xsl:variable name="busName_" select="$periValidBifs_[(@NAME = $bifName_)]/@BUSNAME"/>
213 <xsl:message>Mod Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
214 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="$bifName_"/>
218 <xsl:message>Module Instances <xsl:value-of select="$instName_"/> </xsl:message>
219 <xsl:message>Base Name <xsl:value-of select="$baseName_"/> </xsl:message>
220 <xsl:message>High Name <xsl:value-of select="$highName_"/> </xsl:message>
221 <xsl:message>Valid bif names <xsl:value-of select="$valid_bifNames_"/> </xsl:message>
222 <xsl:message>Valid bif names <xsl:value-of select="$valid_bifNames_"/> </xsl:message>
223 <xsl:message>Valid bus names <xsl:value-of select="$valid_busNames_"/> </xsl:message>
227 <xsl:variable name="var_bifNames_">
229 <xsl:when test="string-length($valid_bifNames_) < 1">
231 <xsl:when test="$periModClass_ = 'BUS'">Not Applicable</xsl:when>
232 <xsl:otherwise>Not Connected</xsl:otherwise>
235 <xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
239 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$var_bifNames_}"/>
240 <xsl:if test="(($num_of_periMemMapBifs_ > 0) and (string-length($valid_busNames_) > 0))">
241 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$valid_busNames_}"/>
243 </SET> <!-- End of one processor memory range row -->
244 </xsl:for-each> <!-- end of processor memory ranges loop -->
245 </xsl:element><!-- End of Processor memory map set -->
246 </xsl:for-each> <!-- end of processor module address space loop -->
249 Add branch for valid address that are not part of a processor's
250 memory map. Usually modules that have just been added, but have
251 not been connected to a bus yet.
254 <xsl:variable name="nonProcAddresses_">
256 <!-- Add a dummy non proc as a place holder. Otherwise the exsl:node-set test
257 Below complains if the variable is completely empty
259 <NONPROCADDRESS INSTANCE="__DUMMY__" BASENAME="__DUMMY__" HIGHNAME="__DUMMY__" BASEDECIMAL="__DUMMY__"/>
261 <xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
262 <xsl:variable name="nonProcInst_" select="@INSTANCE"/>
264 <xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
266 <xsl:variable name="highName_" select="@HIGHNAME"/>
267 <xsl:variable name="baseName_" select="@BASENAME"/>
268 <xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
270 <xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
271 <NONPROCADDRESS INSTANCE="{$nonProcInst_}" BASENAME="{$baseName_}" HIGHNAME="{$highName_}" BASEDECIMAL="{$baseDecimal_}"/>
278 <!-- Add unmapped addresses -->
279 <xsl:variable name="hasUnMappedAddress">
280 <xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]">
281 <xsl:variable name="nonProcInst_" select="@INSTANCE"/>
282 <xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
283 <xsl:variable name="highName_" select="@HIGHNAME"/>
284 <xsl:variable name="baseName_" select="@BASENAME"/>
285 <xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
286 <xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])"><xsl:value-of select="$nonProcInst_"/></xsl:if>
291 <xsl:if test="string-length($hasUnMappedAddress) > 1">
293 <SET ID="Unmapped Addresses" CLASS="MODULE" ROW_INDEX="{$G_NUM_OF_PROCS_W_ADDRS}">
295 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="Unmapped Addresses"/>
297 <xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]/MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
299 <xsl:variable name="nonProcMod_" select="../.."/>
300 <xsl:variable name="nonProcMMap_" select="$nonProcMod_/MEMORYMAP"/>
301 <xsl:variable name="instance_" select="$nonProcMod_/@INSTANCE"/>
303 <xsl:variable name="row_index_" select="position()"/>
304 <xsl:variable name="instName_" select="$nonProcMod_/@INSTANCE"/>
305 <xsl:variable name="highName_" select="@HIGHNAME"/>
306 <xsl:variable name="baseName_" select="@BASENAME"/>
307 <xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
309 <xsl:for-each select="$nonProcMMap_/MEMRANGE[((@BASENAME = $baseName_) and (@HIGHNAME = $highName_))]">
311 <xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $instName_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
313 <xsl:variable name="addr_id_"><xsl:value-of select="$baseName_"/>:<xsl:value-of select="$highName_"/></xsl:variable>
314 <xsl:variable name="set_id_"><xsl:value-of select="$instName_"/>:<xsl:value-of select="$addr_id_"/></xsl:variable>
316 <xsl:variable name="inst_modtype_" select="$nonProcMod_/@MODTYPE"/>
317 <xsl:variable name="inst_viewicon_" select="$nonProcMod_/LICENSEINFO/@ICON_NAME"/>
318 <xsl:variable name="inst_modclass_" select="$nonProcMod_/@MODCLASS"/>
319 <xsl:variable name="inst_hwversion_" select="$nonProcMod_/@HWVERSION"/>
321 <SET ID="{$set_id_}" CLASS="ADDRESS">
323 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$instance_}"/>
324 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$inst_modtype_}" VIEWICON="{$inst_viewicon_}"/>
325 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$inst_hwversion_}"/>
326 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
328 <xsl:variable name="is_locked_">
329 <xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
330 <xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
333 <xsl:variable name="baseAddrViewType_">
335 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
336 <xsl:otherwise>TEXTBOX</xsl:otherwise>
340 <xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
342 <xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
343 <xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
345 <VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
346 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
348 <xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
349 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
352 <xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
353 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
358 <xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
359 <VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
364 Lock, DCache and ICache removed in 11.1
366 <xsl:if test="(@IS_CACHEABLE = 'TRUE')">
368 <xsl:variable name="is_dcached_">
369 <xsl:if test="(@IS_DCACHED = 'TRUE')">TRUE</xsl:if>
370 <xsl:if test="(not(@IS_DCACHED) or not(@IS_DCACHED = 'TRUE'))">FALSE</xsl:if>
373 <xsl:variable name="is_icached_">
374 <xsl:if test="(@IS_ICACHED = 'TRUE')">TRUE</xsl:if>
375 <xsl:if test="(not(@IS_ICACHED) or not(@IS_ICACHED = 'TRUE'))">FALSE</xsl:if>
378 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="DCache" NAME="IS_DCACHED" VALUE="{$is_dcached_}"/>
379 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="ICache" NAME="IS_ICACHED" VALUE="{$is_icached_}"/>
383 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
385 <xsl:variable name="sizeViewType_">
387 <xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
388 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
389 <xsl:otherwise>DROPDOWN</xsl:otherwise>
393 <VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
395 <xsl:variable name="valid_bifNames_">
397 <xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
398 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
399 <xsl:variable name="bifName_" select="@BUSINTERFACE"/>
400 <!-- <xsl:message>Bif Name <xsl:value-of select="$bifName_"/> </xsl:message> -->
401 <xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
402 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
403 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
404 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="@BUSINTERFACE"/>
409 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
410 <xsl:variable name="bifName_" select="@NAME"/>
411 <xsl:variable name="modBifs_" select="$nonProcMod_"/>
412 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
413 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
414 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="@NAME"/>
421 <xsl:variable name="def_bifNames_">
423 <xsl:when test="(string-length($valid_bifNames_) < 1) or ((string-length($valid_bifNames_) = 1) and ($valid_bifNames_ = ':'))">Not Connected</xsl:when>
424 <xsl:when test="starts-with($valid_bifNames_,':')"><xsl:value-of select="substring-after($valid_bifNames_,':')"/></xsl:when>
425 <xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
430 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$def_bifNames_}"/>
433 <xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
434 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
435 <xsl:variable name="slvBifName_" select="@BUSINTERFACE"/>
436 <xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
437 <xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
438 <xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
439 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
444 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
445 <xsl:variable name="slvBifName_" select="@NAME"/>
446 <xsl:variable name="modBifs_" select="$nonProcMod_"/>
447 <xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
448 <xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
449 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
456 </SET> <!-- End of one non processor memory range row -->
459 </xsl:for-each> <!-- end of non processor memory ranges loop -->
461 </xsl:for-each> <!-- end of NONPROCADDRESS loop -->
463 </SET> <!-- End of non processor tree branch -->
465 </xsl:if> <!-- End of test to see if we have and non processor mapped address -->
470 <xsl:template name="__WRITE_VIEW_ADDRESS__">
474 <xsl:for-each select="$G_SYS_MODS/MODULE[((@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
475 <xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
477 <xsl:variable name="procInst_" select="@INSTANCE"/>
478 <xsl:variable name="modClass_" select="@MODCLASS"/>
480 <xsl:variable name="procInstHdrVal_"><xsl:value-of select="$procInst_"/>'s Address Map</xsl:variable>
481 <xsl:variable name="procInstRowIdx_" select="position() - 1"/>
482 <xsl:variable name="modInstance_" select="self::node()"/>
484 <SET ID="{$procInst_}" CLASS="MODULE" ROW_INDEX="{$procInstRowIdx_}">
486 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$procInstHdrVal_}"/>
488 <xsl:for-each select="$modInstance_/MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (ACCESSROUTE or (@MEMTYPE = 'BRIDGE')))]">
489 <xsl:sort data-type="number" select="@BASEDECIMAL" order="ascending"/>
491 <xsl:variable name="addr_id_"><xsl:value-of select="@BASENAME"/>:<xsl:value-of select="@HIGHNAME"/></xsl:variable>
492 <xsl:variable name="baseName_" select="@BASENAME"/>
493 <xsl:variable name="highName_" select="@HIGHNAME"/>
495 <xsl:if test="$G_DEBUG='TRUE'">
496 <xsl:message>ADDRESS ID <xsl:value-of select="$addr_id_"/></xsl:message>
499 <xsl:variable name="set_id_">
500 <xsl:if test="(@INSTANCE)">
501 <xsl:value-of select="$procInst_"/>.<xsl:value-of select="@INSTANCE"/>:<xsl:value-of select="$addr_id_"/>
503 <xsl:if test="not(@INSTANCE)">
504 <xsl:value-of select="$procInst_"/>:<xsl:value-of select="$addr_id_"/>
508 <xsl:variable name="procAddrRowIdx_" select="position() - 1"/>
509 <SET ID="{$set_id_}" CLASS="ADDRESS" ROW_INDEX="{$procAddrRowIdx_}">
511 <xsl:if test="(@INSTANCE)">
512 <xsl:variable name="instance_" select="@INSTANCE"/>
513 <xsl:variable name="subInstance_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $instance_)]"/>
515 <xsl:variable name="inst_modtype_" select="$subInstance_/@MODTYPE"/>
516 <xsl:variable name="inst_viewicon_" select="$subInstance_/LICENSEINFO/@ICON_NAME"/>
517 <xsl:variable name="inst_hwversion_" select="$subInstance_/@HWVERSION"/>
519 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$instance_}"/>
520 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$inst_modtype_}" VIEWICON="{$inst_viewicon_}"/>
521 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$inst_hwversion_}"/>
524 <xsl:if test="not(@INSTANCE)">
525 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$modInstance_/@INSTANCE}"/>
526 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$modInstance_/@MODTYPE}" VIEWICON="{$modInstance_/LICENSEINFO/@ICON_NAME}"/>
527 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$modInstance_/@HWVERSION}"/>
530 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
532 <xsl:variable name="instName_">
534 <xsl:when test="@INSTANCE"><xsl:value-of select="@INSTANCE"/></xsl:when>
535 <xsl:otherwise>Connected<xsl:value-of select="$modInstance_/@INSTANCE"/></xsl:otherwise>
539 <xsl:message>INST : <xsl:value-of select="$set_id_"/></xsl:message>
542 <xsl:variable name="is_locked_">
543 <xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
544 <xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
547 <xsl:variable name="baseAddrViewType_">
549 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
550 <xsl:otherwise>TEXTBOX</xsl:otherwise>
554 <xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
555 <xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
556 <xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
557 <VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
558 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
560 <xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
561 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
564 <xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
565 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
570 <xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
571 <VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
574 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
576 <xsl:variable name="sizeViewType_">
578 <xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
579 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
580 <xsl:otherwise>DROPDOWN</xsl:otherwise>
584 <VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
586 <xsl:variable name="modInst_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $instName_)]"/>
587 <xsl:variable name="modMemMap_" select="$modInst_/MEMORYMAP"/>
589 <xsl:variable name="valid_bifNames_">
591 <xsl:when test="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
592 <xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
593 <xsl:variable name="bifName_" select="@BUSINTERFACE"/>
594 <!-- <xsl:message>Bif Name <xsl:value-of select="$bifName_"/> </xsl:message> -->
595 <xsl:variable name="modBifs_" select="$modInst_/BUSINTERFACES"/>
596 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
597 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
598 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="@BUSINTERFACE"/>
603 <xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
604 <xsl:variable name="bifName_" select="@NAME"/>
605 <xsl:variable name="modBifs_" select="$modInst_"/>
606 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
607 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
608 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="@NAME"/>
616 <xsl:message>Module Instances <xsl:value-of select="$instName_"/> </xsl:message>
617 <xsl:message>Base Name <xsl:value-of select="$baseName_"/> </xsl:message>
618 <xsl:message>High Name <xsl:value-of select="$highName_"/> </xsl:message>
619 <xsl:message>Valid bif names <xsl:value-of select="$valid_bifNames_"/> </xsl:message>
623 <xsl:variable name="def_bifNames_">
625 <xsl:when test="string-length($valid_bifNames_) < 1">
627 <xsl:when test="$modClass_ = 'BUS'">Not Applicable</xsl:when>
628 <xsl:otherwise>Not Connected</xsl:otherwise>
631 <xsl:when test="starts-with($valid_bifNames_,':')"><xsl:value-of select="substring-after($valid_bifNames_,':')"/></xsl:when>
632 <xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
635 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$def_bifNames_}"/>
638 <xsl:when test="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
639 <xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
640 <xsl:variable name="bifName_" select="@BUSINTERFACE"/>
641 <xsl:variable name="modBifs_" select="$modInst_/BUSINTERFACES"/>
642 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
643 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
644 <xsl:variable name="numBifs_" select="count($modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))])"/>
645 <xsl:if test="((position() = 1) or ($numBifs_ = 1))">
646 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$busName_}"/>
652 <xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
653 <xsl:variable name="bifName_" select="@NAME"/>
654 <xsl:variable name="modBifs_" select="$modInst_"/>
655 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
656 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
657 <xsl:variable name="numBifs_" select="count($modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))])"/>
658 <xsl:if test="((position() = 1) or ($numBifs_ = 1))">
659 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$busName_}"/>
667 </SET> <!-- End of one processor memory range row -->
668 </xsl:for-each> <!-- end of processor memory ranges loop -->
670 </xsl:for-each> <!-- end of processor module address space loop -->
673 Add branch for valid address that are not part of a processor's
674 memory map. Usually modules that have just been added, but have
675 not been connected to a bus yet.
678 <xsl:variable name="nonProcAddresses_">
680 <!-- Add a dummy non proc as a place holder. Otherwise the exsl:node-set test
681 Below complains if the variable is completely empty
683 <NONPROCADDRESS INSTANCE="__DUMMY__" BASENAME="__DUMMY__" HIGHNAME="__DUMMY__" BASEDECIMAL="__DUMMY__"/>
685 <xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
686 <xsl:variable name="nonProcInst_" select="@INSTANCE"/>
688 <xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
690 <xsl:variable name="highName_" select="@HIGHNAME"/>
691 <xsl:variable name="baseName_" select="@BASENAME"/>
692 <xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
694 <xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
695 <NONPROCADDRESS INSTANCE="{$nonProcInst_}" BASENAME="{$baseName_}" HIGHNAME="{$highName_}" BASEDECIMAL="{$baseDecimal_}"/>
702 <!-- Add unmapped addresses -->
703 <xsl:variable name="hasUnMappedAddress">
704 <xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]">
705 <xsl:variable name="nonProcInst_" select="@INSTANCE"/>
706 <xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
707 <xsl:variable name="highName_" select="@HIGHNAME"/>
708 <xsl:variable name="baseName_" select="@BASENAME"/>
709 <xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
710 <xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])"><xsl:value-of select="$nonProcInst_"/></xsl:if>
715 <xsl:if test="string-length($hasUnMappedAddress) > 1">
717 <SET ID="Unmapped Addresses" CLASS="MODULE" ROW_INDEX="{$G_NUM_OF_PROCS_W_ADDRS}">
719 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="Unmapped Addresses"/>
721 <xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]/MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
723 <xsl:variable name="nonProcMod_" select="../.."/>
724 <xsl:variable name="nonProcMMap_" select="$nonProcMod_/MEMORYMAP"/>
725 <xsl:variable name="instance_" select="$nonProcMod_/@INSTANCE"/>
727 <xsl:variable name="row_index_" select="position()"/>
728 <xsl:variable name="instName_" select="$nonProcMod_/@INSTANCE"/>
729 <xsl:variable name="highName_" select="@HIGHNAME"/>
730 <xsl:variable name="baseName_" select="@BASENAME"/>
731 <xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
733 <xsl:for-each select="$nonProcMMap_/MEMRANGE[((@BASENAME = $baseName_) and (@HIGHNAME = $highName_))]">
735 <xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $instName_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
737 <xsl:variable name="addr_id_"><xsl:value-of select="$baseName_"/>:<xsl:value-of select="$highName_"/></xsl:variable>
738 <xsl:variable name="set_id_"><xsl:value-of select="$instName_"/>:<xsl:value-of select="$addr_id_"/></xsl:variable>
740 <xsl:variable name="inst_modtype_" select="$nonProcMod_/@MODTYPE"/>
741 <xsl:variable name="inst_viewicon_" select="$nonProcMod_/LICENSEINFO/@ICON_NAME"/>
742 <xsl:variable name="inst_modclass_" select="$nonProcMod_/@MODCLASS"/>
743 <xsl:variable name="inst_hwversion_" select="$nonProcMod_/@HWVERSION"/>
745 <SET ID="{$set_id_}" CLASS="ADDRESS">
747 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$instance_}"/>
748 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$inst_modtype_}" VIEWICON="{$inst_viewicon_}"/>
749 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$inst_hwversion_}"/>
750 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
752 <xsl:variable name="is_locked_">
753 <xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
754 <xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
757 <xsl:variable name="baseAddrViewType_">
759 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
760 <xsl:otherwise>TEXTBOX</xsl:otherwise>
764 <xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
766 <xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
767 <xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
769 <VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
770 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
772 <xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
773 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
776 <xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
777 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
782 <xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
783 <VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
788 Lock, DCache and ICache removed in 11.1
790 <xsl:if test="(@IS_CACHEABLE = 'TRUE')">
792 <xsl:variable name="is_dcached_">
793 <xsl:if test="(@IS_DCACHED = 'TRUE')">TRUE</xsl:if>
794 <xsl:if test="(not(@IS_DCACHED) or not(@IS_DCACHED = 'TRUE'))">FALSE</xsl:if>
797 <xsl:variable name="is_icached_">
798 <xsl:if test="(@IS_ICACHED = 'TRUE')">TRUE</xsl:if>
799 <xsl:if test="(not(@IS_ICACHED) or not(@IS_ICACHED = 'TRUE'))">FALSE</xsl:if>
802 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="DCache" NAME="IS_DCACHED" VALUE="{$is_dcached_}"/>
803 <VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="ICache" NAME="IS_ICACHED" VALUE="{$is_icached_}"/>
807 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
809 <xsl:variable name="sizeViewType_">
811 <xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
812 <xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
813 <xsl:otherwise>DROPDOWN</xsl:otherwise>
817 <VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
819 <xsl:variable name="valid_bifNames_">
821 <xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
822 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
823 <xsl:variable name="bifName_" select="@BUSINTERFACE"/>
824 <!-- <xsl:message>Bif Name <xsl:value-of select="$bifName_"/> </xsl:message> -->
825 <xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
826 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
827 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
828 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="@BUSINTERFACE"/>
833 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
834 <xsl:variable name="bifName_" select="@NAME"/>
835 <xsl:variable name="modBifs_" select="$nonProcMod_"/>
836 <xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
837 <xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
838 <xsl:if test="position() > 1">:</xsl:if><xsl:value-of select="@NAME"/>
845 <xsl:variable name="def_bifNames_">
847 <xsl:when test="(string-length($valid_bifNames_) < 1) or ((string-length($valid_bifNames_) = 1) and ($valid_bifNames_ = ':'))">Not Connected</xsl:when>
848 <xsl:when test="starts-with($valid_bifNames_,':')"><xsl:value-of select="substring-after($valid_bifNames_,':')"/></xsl:when>
849 <xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
854 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$def_bifNames_}"/>
857 <xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
858 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
859 <xsl:variable name="slvBifName_" select="@BUSINTERFACE"/>
860 <xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
861 <xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
862 <xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
863 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
868 <xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
869 <xsl:variable name="slvBifName_" select="@NAME"/>
870 <xsl:variable name="modBifs_" select="$nonProcMod_"/>
871 <xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
872 <xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
873 <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
880 </SET> <!-- End of one non processor memory range row -->
883 </xsl:for-each> <!-- end of non processor memory ranges loop -->
885 </xsl:for-each> <!-- end of NONPROCADDRESS loop -->
887 </SET> <!-- End of non processor tree branch -->
889 </xsl:if> <!-- End of test to see if we have and non processor mapped address -->