summaryrefslogtreecommitdiffstats
path: root/utils/regtools
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-06-13 01:50:14 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-06-13 02:25:08 +0200
commit73db73dbd3c5c6a27e022a5c724136ca6fc2ffe8 (patch)
tree5e73c4b4477b2f47f4581f68d800ef4cb7b8a37a /utils/regtools
parent7143ea681c377fe5901bd79801366a26ae0d394a (diff)
downloadrockbox-73db73dbd3c5c6a27e022a5c724136ca6fc2ffe8.tar.gz
rockbox-73db73dbd3c5c6a27e022a5c724136ca6fc2ffe8.tar.bz2
rockbox-73db73dbd3c5c6a27e022a5c724136ca6fc2ffe8.zip
regtools: modify description format and refactor tools
Change the XML description to unify multi dev/reg in a clean fashion. Move the description parser to its own library. Fix the tester and headergen tools to work with the new format and library. Move the STMP3700/3780 descriptions to the new format (and fixes many errors as well). Drop the hwemulgen tool in favor on the upcoming hwstub tools revamp. Change-Id: I7119a187aab5c8b083cc5228cb1b248ee29f184d
Diffstat (limited to 'utils/regtools')
-rw-r--r--utils/regtools/Makefile33
-rw-r--r--utils/regtools/desc/XML.txt120
-rw-r--r--utils/regtools/desc/regs-stmp3700.xml3324
-rw-r--r--utils/regtools/desc/regs-stmp3780.xml4945
-rw-r--r--utils/regtools/desc_parser.hpp108
-rw-r--r--utils/regtools/headergen.cpp311
-rw-r--r--utils/regtools/hwemulgen.cpp387
-rw-r--r--utils/regtools/lib/Makefile23
-rw-r--r--utils/regtools/lib/soc_desc.cpp (renamed from utils/regtools/desc_parser.cpp)81
-rw-r--r--utils/regtools/lib/soc_desc.hpp147
-rw-r--r--utils/regtools/tester.cpp77
11 files changed, 3982 insertions, 5574 deletions
diff --git a/utils/regtools/Makefile b/utils/regtools/Makefile
index 5dad380e7b..6ed827e257 100644
--- a/utils/regtools/Makefile
+++ b/utils/regtools/Makefile
@@ -2,27 +2,24 @@ DEFINES=
CC=gcc
CXX=g++
LD=g++
-CFLAGS=-g -std=c99 -W -Wall `xml2-config --cflags` $(DEFINES)
-CXXFLAGS=-g -W -Wall `xml2-config --cflags` $(DEFINES)
-LDFLAGS=`xml2-config --libs`
-BINS= tester headergen hwemulgen
+CFLAGS=-g -std=c99 -Wall $(DEFINES) -Ilib
+CXXFLAGS=-g -Wall $(DEFINES) -Ilib
+LDFLAGS=-Llib -lsocdesc `xml2-config --libs`
+SRC=$(wildcard *.c)
+SRCXX=$(wildcard *.cpp)
+EXEC=$(SRC:.c=) $(SRCXX:.cpp=)
+LIB=lib/libsocdesc.a
-all: $(BINS)
+all: $(EXEC)
-%.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
+$(LIB):
+ make -C lib
-%.o: %.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
+%: %.c $(LIB)
+ $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
-headergen: headergen.o desc_parser.o
- $(LD) -o $@ $^ $(LDFLAGS)
-
-hwemulgen: hwemulgen.o desc_parser.o
- $(LD) -o $@ $^ $(LDFLAGS)
-
-tester: tester.o desc_parser.o
- $(LD) -o $@ $^ $(LDFLAGS)
+%: %.cpp $(LIB)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(LDFLAGS)
clean:
- rm -fr *.o $(BINS)
+ rm -fr $(EXEC)
diff --git a/utils/regtools/desc/XML.txt b/utils/regtools/desc/XML.txt
new file mode 100644
index 0000000000..d4dc73cc64
--- /dev/null
+++ b/utils/regtools/desc/XML.txt
@@ -0,0 +1,120 @@
+This file describes the format of the register map based on XML.
+
+Root
+----
+As any XML document, the content of the file should be enclosed in a "xml" tag.
+
+Example:
+<?xml version="1.0"?>
+<!-- desc -->
+</xml>
+
+Element: soc
+------------
+The XML can contain one or more SoC description. Each description is enclosed in
+a "soc" tag. The following properties are defined:
+- "name" (mandatory,string): the mnemonic of the SoC.
+- "desc" (optional,string): a textual description of the SoC.
+
+Example:
+<soc name="stmp3700" desc="STMP3700">
+<!-- soc desc -->
+</soc>
+
+Element: soc.dev
+----------------
+Each SoC can contain any number of devices. Each device is enclosed in a "dev"
+tag. A device is logical group of registers and doesn't have a precise meaning.
+If a SoC has several copies of the same device at different addresses (SSP1, SSP2
+for example), then only one copy has to be described since a device can have
+several address (see soc.dev.addr section). The following properties are defined:
+- "name" (mandatory,string): the mnemonic of the device.
+- "long_name" (optional,string): a short description of the device.
+- "desc" (optional,string): a long description of the SoC.
+- "version" (optional,string): version of the register description for this device.
+
+Example:
+<dev name="APBH" long_name="APHB DMA" desc="AHB-to-APBH Bridge with DMA" version="3.2.0">
+<!-- dev desc>
+</dev>
+
+Element: soc.dev.addr
+---------------------
+Each device can have one or more addresses associated with it. Each address is
+enclosed in a "addr" tag. This allows to describe several blocks are once on SoCs
+where several copies of the same block exist at different addresses.
+The following properties are defined:
+- "name" (mandatory,string): unique name of this instance of the device.
+- "addr" (mandatory,integer): base address of this instance of the device.
+
+Example:
+<addr name="SSP1" addr="0x80010000" />
+<addr name="SSP2" addr="0x80034000" />
+
+Element: soc.dev.reg
+--------------------
+Each device can contain any number of registers. Each register is enclosed in a
+"reg" tag. If a SoC has several copies of the same register at different addresses
+(INTERRUPT0, INTERRUPT1 for example), then only one copy has to be described since
+a register can have several address (see soc.dev.reg.addr section).
+The following properties are defined:
+- "name" (mandatory,string): the mnemonic of the register.
+- "sct" (optional,"yes" or "no"): STMP specific attribute to specify the existence
+ of the SCT variants of this register.
+
+Example:
+<reg name="TIMCTRLn" sct="yes">
+<!-- reg desc -->
+</reg>
+
+Element: soc.dev.reg.addr
+-------------------------
+Each device can have one or more addresses associated with it. Each address
+is enclosed in a "addr" tag. This allows to describe several register at once on
+SoCs where a similar register is replicated several times.
+The following properties are defined:
+- "name" (mandatory,string): unique name of this instance of the register.
+- "addr" (mandatory,integer): base address of this instance of the register.
+
+Example:
+<addr name="TIMCTRL0" addr="0x20" />
+<addr name="TIMCTRL1" addr="0x40" />
+<addr name="TIMCTRL2" addr="0x60" />
+
+Element: soc.dev.reg.formula
+----------------------------
+In the special case where the addresses of the register follow a pattern, an
+explicit formula can be described as part of the format. There is no specific
+requirement on the formula except that the register addresses be indexed by
+a variable "n" which range from 0 to N-1 where N is the number of address.
+The following properties are defined:
+- "string" (mandatory,string): the equation describing the addresses.
+
+Example:
+<formula string="0x20+n*0x20"/>
+
+Element: soc.dev.reg.field
+--------------------------
+Each register can be further divided into disjoints fields. Each field
+is enclosed in a "field" tag. A field is defined as a contiguous set
+of bits in the register. The following properties are defined:
+- "name" (mandatory,string): the mnemonic of field
+- "bitrange" (mandatory,string): the bit range of the field written as
+ "n-m" where n and m are integers giving the most (resp. least) significant
+ bit of the field.
+
+Example:
+<field name="PRESCALE" bitrange="5:4">
+<!-- field desc -->
+</field>
+
+Element: soc.dev.reg.field.value
+--------------------------------
+Each field can describe a list of named values in cases where this is appropriate.
+Each value is enclosed in a "value" tag. The following properties are defined:
+- "name" (mandatory,string): the mnemonic of the value.
+- "value" (mandatory,integer): the associated value.
+
+Example:
+<value name="DIV_BY_1" value="0x0" />
+<value name="DIV_BY_2" value="0x1" /> \ No newline at end of file
diff --git a/utils/regtools/desc/regs-stmp3700.xml b/utils/regtools/desc/regs-stmp3700.xml
index 0bd55ffb95..8af3843265 100644
--- a/utils/regtools/desc/regs-stmp3700.xml
+++ b/utils/regtools/desc/regs-stmp3700.xml
@@ -17,8 +17,10 @@ This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
KIND, either express or implied.
-->
<soc name="stmp3700" desc="STMP3700">
-<dev name="APBH" addr="0x80004000" long_name="APHB DMA" desc="AHB-to-APBH Bridge with DMA">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="APBH" long_name="APHB DMA" desc="AHB-to-APBH Bridge with DMA" version="3.2.0">
+<addr name="APBH" addr="0x80004000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -78,57 +80,17 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
-<field name="CH7_AHB_ERROR_IRQ" bitrange="23:23">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
+<field name="CH_AHB_ERROR_IRQ" bitrange="23:16">
</field>
-<field name="CH6_AHB_ERROR_IRQ" bitrange="22:22">
+<field name="CH_CMDCMPLT_IRQ_EN" bitrange="15:8">
</field>
-<field name="CH5_AHB_ERROR_IRQ" bitrange="21:21">
-</field>
-<field name="CH4_AHB_ERROR_IRQ" bitrange="20:20">
-</field>
-<field name="CH3_AHB_ERROR_IRQ" bitrange="19:19">
-</field>
-<field name="CH2_AHB_ERROR_IRQ" bitrange="18:18">
-</field>
-<field name="CH1_AHB_ERROR_IRQ" bitrange="17:17">
-</field>
-<field name="CH0_AHB_ERROR_IRQ" bitrange="16:16">
-</field>
-<field name="CH7_CMDCMPLT_IRQ_EN" bitrange="15:15">
-</field>
-<field name="CH6_CMDCMPLT_IRQ_EN" bitrange="14:14">
-</field>
-<field name="CH5_CMDCMPLT_IRQ_EN" bitrange="13:13">
-</field>
-<field name="CH4_CMDCMPLT_IRQ_EN" bitrange="12:12">
-</field>
-<field name="CH3_CMDCMPLT_IRQ_EN" bitrange="11:11">
-</field>
-<field name="CH2_CMDCMPLT_IRQ_EN" bitrange="10:10">
-</field>
-<field name="CH1_CMDCMPLT_IRQ_EN" bitrange="9:9">
-</field>
-<field name="CH0_CMDCMPLT_IRQ_EN" bitrange="8:8">
-</field>
-<field name="CH7_CMDCMPLT_IRQ" bitrange="7:7">
-</field>
-<field name="CH6_CMDCMPLT_IRQ" bitrange="6:6">
-</field>
-<field name="CH5_CMDCMPLT_IRQ" bitrange="5:5">
-</field>
-<field name="CH4_CMDCMPLT_IRQ" bitrange="4:4">
-</field>
-<field name="CH3_CMDCMPLT_IRQ" bitrange="3:3">
-</field>
-<field name="CH2_CMDCMPLT_IRQ" bitrange="2:2">
-</field>
-<field name="CH1_CMDCMPLT_IRQ" bitrange="1:1">
-</field>
-<field name="CH0_CMDCMPLT_IRQ" bitrange="0:0">
+<field name="CH_CMDCMPLT_IRQ" bitrange="7:0">
</field>
</reg>
-<reg name="DEVSEL" addr="0x20" sct="no">
+<reg name="DEVSEL" sct="no">
+<addr name="DEVSEL" addr="0x20" />
<field name="CH7" bitrange="31:28">
</field>
<field name="CH6" bitrange="27:24">
@@ -146,63 +108,42 @@ KIND, either express or implied.
<field name="CH0" bitrange="3:0">
</field>
</reg>
-<multireg name="CHn_CURCMDAR" base="0x40" count="7" offset="0x70" sct="">
-<reg name="CH0_CURCMDAR" addr="0x40" index="0">
-</reg>
-<reg name="CH1_CURCMDAR" addr="0xb0" index="1">
-</reg>
-<reg name="CH2_CURCMDAR" addr="0x120" index="2">
-</reg>
-<reg name="CH3_CURCMDAR" addr="0x190" index="3">
-</reg>
-<reg name="CH4_CURCMDAR" addr="0x200" index="4">
-</reg>
-<reg name="CH5_CURCMDAR" addr="0x270" index="5">
-</reg>
-<reg name="CH6_CURCMDAR" addr="0x2e0" index="6">
-</reg>
-<reg name="CH7_CURCMDAR" addr="0x350" index="7">
-</reg>
+<reg name="CHn_CURCMDAR" sct="no">
+<formula string="0x40+n*0x70"/>
+<addr name="CH0_CURCMDAR" addr="0x40" />
+<addr name="CH1_CURCMDAR" addr="0xb0" />
+<addr name="CH2_CURCMDAR" addr="0x120" />
+<addr name="CH3_CURCMDAR" addr="0x190" />
+<addr name="CH4_CURCMDAR" addr="0x200" />
+<addr name="CH5_CURCMDAR" addr="0x270" />
+<addr name="CH6_CURCMDAR" addr="0x2e0" />
+<addr name="CH7_CURCMDAR" addr="0x350" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_NXTCMDAR" base="0x50" count="7" offset="0x70" sct="">
-<reg name="CH0_NXTCMDAR" addr="0x50" index="0">
-</reg>
-<reg name="CH1_NXTCMDAR" addr="0xc0" index="1">
-</reg>
-<reg name="CH2_NXTCMDAR" addr="0x130" index="2">
-</reg>
-<reg name="CH3_NXTCMDAR" addr="0x1a0" index="3">
-</reg>
-<reg name="CH4_NXTCMDAR" addr="0x210" index="4">
-</reg>
-<reg name="CH5_NXTCMDAR" addr="0x280" index="5">
-</reg>
-<reg name="CH6_NXTCMDAR" addr="0x2f0" index="6">
-</reg>
-<reg name="CH7_NXTCMDAR" addr="0x360" index="7">
</reg>
+<reg name="CHn_NXTCMDAR" sct="no">
+<formula string="0x50+n*0x70"/>
+<addr name="CH0_NXTCMDAR" addr="0x50" />
+<addr name="CH1_NXTCMDAR" addr="0xc0" />
+<addr name="CH2_NXTCMDAR" addr="0x130" />
+<addr name="CH3_NXTCMDAR" addr="0x1a0" />
+<addr name="CH4_NXTCMDAR" addr="0x210" />
+<addr name="CH5_NXTCMDAR" addr="0x280" />
+<addr name="CH6_NXTCMDAR" addr="0x2f0" />
+<addr name="CH7_NXTCMDAR" addr="0x360" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_CMD" base="0x60" count="7" offset="0x70" sct="">
-<reg name="CH0_CMD" addr="0x60" index="0">
-</reg>
-<reg name="CH1_CMD" addr="0xd0" index="1">
-</reg>
-<reg name="CH2_CMD" addr="0x140" index="2">
-</reg>
-<reg name="CH3_CMD" addr="0x1b0" index="3">
-</reg>
-<reg name="CH4_CMD" addr="0x220" index="4">
-</reg>
-<reg name="CH5_CMD" addr="0x290" index="5">
-</reg>
-<reg name="CH6_CMD" addr="0x300" index="6">
-</reg>
-<reg name="CH7_CMD" addr="0x370" index="7">
</reg>
+<reg name="CHn_CMD" sct="no">
+<formula string="0x60+n*0x70"/>
+<addr name="CH0_CMD" addr="0x60" />
+<addr name="CH1_CMD" addr="0xd0" />
+<addr name="CH2_CMD" addr="0x140" />
+<addr name="CH3_CMD" addr="0x1b0" />
+<addr name="CH4_CMD" addr="0x220" />
+<addr name="CH5_CMD" addr="0x290" />
+<addr name="CH6_CMD" addr="0x300" />
+<addr name="CH7_CMD" addr="0x370" />
<field name="XFER_COUNT" bitrange="31:16">
</field>
<field name="CMDWORDS" bitrange="15:12">
@@ -231,66 +172,45 @@ KIND, either express or implied.
<value name="DMA_SENSE" value="0x3">
</value>
</field>
-</multireg>
-<multireg name="CHn_BAR" base="0x70" count="7" offset="0x70" sct="">
-<reg name="CH0_BAR" addr="0x70" index="0">
-</reg>
-<reg name="CH1_BAR" addr="0xe0" index="1">
-</reg>
-<reg name="CH2_BAR" addr="0x150" index="2">
-</reg>
-<reg name="CH3_BAR" addr="0x1c0" index="3">
-</reg>
-<reg name="CH4_BAR" addr="0x230" index="4">
-</reg>
-<reg name="CH5_BAR" addr="0x2a0" index="5">
-</reg>
-<reg name="CH6_BAR" addr="0x310" index="6">
-</reg>
-<reg name="CH7_BAR" addr="0x380" index="7">
</reg>
+<reg name="CHn_BAR" sct="no">
+<formula string="0x70+n*0x70"/>
+<addr name="CH0_BAR" addr="0x70" />
+<addr name="CH1_BAR" addr="0xe0" />
+<addr name="CH2_BAR" addr="0x150" />
+<addr name="CH3_BAR" addr="0x1c0" />
+<addr name="CH4_BAR" addr="0x230" />
+<addr name="CH5_BAR" addr="0x2a0" />
+<addr name="CH6_BAR" addr="0x310" />
+<addr name="CH7_BAR" addr="0x380" />
<field name="ADDRESS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_SEMA" base="0x80" count="7" offset="0x70" sct="">
-<reg name="CH0_SEMA" addr="0x80" index="0">
-</reg>
-<reg name="CH1_SEMA" addr="0xf0" index="1">
-</reg>
-<reg name="CH2_SEMA" addr="0x160" index="2">
-</reg>
-<reg name="CH3_SEMA" addr="0x1d0" index="3">
-</reg>
-<reg name="CH4_SEMA" addr="0x240" index="4">
-</reg>
-<reg name="CH5_SEMA" addr="0x2b0" index="5">
-</reg>
-<reg name="CH6_SEMA" addr="0x320" index="6">
-</reg>
-<reg name="CH7_SEMA" addr="0x390" index="7">
</reg>
+<reg name="CHn_SEMA" sct="no">
+<formula string="0x80+n*0x70"/>
+<addr name="CH0_SEMA" addr="0x80" />
+<addr name="CH1_SEMA" addr="0xf0" />
+<addr name="CH2_SEMA" addr="0x160" />
+<addr name="CH3_SEMA" addr="0x1d0" />
+<addr name="CH4_SEMA" addr="0x240" />
+<addr name="CH5_SEMA" addr="0x2b0" />
+<addr name="CH6_SEMA" addr="0x320" />
+<addr name="CH7_SEMA" addr="0x390" />
<field name="PHORE" bitrange="23:16">
</field>
<field name="INCREMENT_SEMA" bitrange="7:0">
</field>
-</multireg>
-<multireg name="CHn_DEBUG1" base="0x90" count="7" offset="0x70" sct="">
-<reg name="CH0_DEBUG1" addr="0x90" index="0">
-</reg>
-<reg name="CH1_DEBUG1" addr="0x100" index="1">
-</reg>
-<reg name="CH2_DEBUG1" addr="0x170" index="2">
-</reg>
-<reg name="CH3_DEBUG1" addr="0x1e0" index="3">
-</reg>
-<reg name="CH4_DEBUG1" addr="0x250" index="4">
-</reg>
-<reg name="CH5_DEBUG1" addr="0x2c0" index="5">
-</reg>
-<reg name="CH6_DEBUG1" addr="0x330" index="6">
-</reg>
-<reg name="CH7_DEBUG1" addr="0x3a0" index="7">
</reg>
+<reg name="CHn_DEBUG1" sct="no">
+<formula string="0x90+n*0x70"/>
+<addr name="CH0_DEBUG1" addr="0x90" />
+<addr name="CH1_DEBUG1" addr="0x100" />
+<addr name="CH2_DEBUG1" addr="0x170" />
+<addr name="CH3_DEBUG1" addr="0x1e0" />
+<addr name="CH4_DEBUG1" addr="0x250" />
+<addr name="CH5_DEBUG1" addr="0x2c0" />
+<addr name="CH6_DEBUG1" addr="0x330" />
+<addr name="CH7_DEBUG1" addr="0x3a0" />
<field name="REQ" bitrange="31:31">
</field>
<field name="BURST" bitrange="30:30">
@@ -345,30 +265,24 @@ KIND, either express or implied.
<value name="CHECK_WAIT" value="0x1e">
</value>
</field>
-</multireg>
-<multireg name="CHn_DEBUG2" base="0xa0" count="7" offset="0x70" sct="">
-<reg name="CH0_DEBUG2" addr="0xa0" index="0">
-</reg>
-<reg name="CH1_DEBUG2" addr="0x110" index="1">
-</reg>
-<reg name="CH2_DEBUG2" addr="0x180" index="2">
-</reg>
-<reg name="CH3_DEBUG2" addr="0x1f0" index="3">
-</reg>
-<reg name="CH4_DEBUG2" addr="0x260" index="4">
-</reg>
-<reg name="CH5_DEBUG2" addr="0x2d0" index="5">
-</reg>
-<reg name="CH6_DEBUG2" addr="0x340" index="6">
-</reg>
-<reg name="CH7_DEBUG2" addr="0x3b0" index="7">
</reg>
+<reg name="CHn_DEBUG2" sct="no">
+<formula string="0xa0+n*0x70"/>
+<addr name="CH0_DEBUG2" addr="0xa0" />
+<addr name="CH1_DEBUG2" addr="0x110" />
+<addr name="CH2_DEBUG2" addr="0x180" />
+<addr name="CH3_DEBUG2" addr="0x1f0" />
+<addr name="CH4_DEBUG2" addr="0x260" />
+<addr name="CH5_DEBUG2" addr="0x2d0" />
+<addr name="CH6_DEBUG2" addr="0x340" />
+<addr name="CH7_DEBUG2" addr="0x3b0" />
<field name="APB_BYTES" bitrange="31:16">
</field>
<field name="AHB_BYTES" bitrange="15:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x3f0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x3f0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -377,8 +291,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="APBX" addr="0x80024000" long_name="APHX DMA" desc="AHB-to-APBX Bridge with DMA">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="APBX" long_name="APHX DMA" desc="AHB-to-APBX Bridge with DMA" version="3.2.0">
+<addr name="APBX" addr="0x80024000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -432,57 +348,17 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
-<field name="CH7_AHB_ERROR_IRQ" bitrange="23:23">
-</field>
-<field name="CH6_AHB_ERROR_IRQ" bitrange="22:22">
-</field>
-<field name="CH5_AHB_ERROR_IRQ" bitrange="21:21">
-</field>
-<field name="CH4_AHB_ERROR_IRQ" bitrange="20:20">
-</field>
-<field name="CH3_AHB_ERROR_IRQ" bitrange="19:19">
-</field>
-<field name="CH2_AHB_ERROR_IRQ" bitrange="18:18">
-</field>
-<field name="CH1_AHB_ERROR_IRQ" bitrange="17:17">
-</field>
-<field name="CH0_AHB_ERROR_IRQ" bitrange="16:16">
-</field>
-<field name="CH7_CMDCMPLT_IRQ_EN" bitrange="15:15">
-</field>
-<field name="CH6_CMDCMPLT_IRQ_EN" bitrange="14:14">
-</field>
-<field name="CH5_CMDCMPLT_IRQ_EN" bitrange="13:13">
-</field>
-<field name="CH4_CMDCMPLT_IRQ_EN" bitrange="12:12">
-</field>
-<field name="CH3_CMDCMPLT_IRQ_EN" bitrange="11:11">
-</field>
-<field name="CH2_CMDCMPLT_IRQ_EN" bitrange="10:10">
-</field>
-<field name="CH1_CMDCMPLT_IRQ_EN" bitrange="9:9">
-</field>
-<field name="CH0_CMDCMPLT_IRQ_EN" bitrange="8:8">
-</field>
-<field name="CH7_CMDCMPLT_IRQ" bitrange="7:7">
-</field>
-<field name="CH6_CMDCMPLT_IRQ" bitrange="6:6">
-</field>
-<field name="CH5_CMDCMPLT_IRQ" bitrange="5:5">
-</field>
-<field name="CH4_CMDCMPLT_IRQ" bitrange="4:4">
-</field>
-<field name="CH3_CMDCMPLT_IRQ" bitrange="3:3">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
+<field name="CH_AHB_ERROR_IRQ" bitrange="23:16">
</field>
-<field name="CH2_CMDCMPLT_IRQ" bitrange="2:2">
+<field name="CH_CMDCMPLT_IRQ_EN" bitrange="15:8">
</field>
-<field name="CH1_CMDCMPLT_IRQ" bitrange="1:1">
-</field>
-<field name="CH0_CMDCMPLT_IRQ" bitrange="0:0">
+<field name="CH_CMDCMPLT_IRQ" bitrange="7:0">
</field>
</reg>
-<reg name="DEVSEL" addr="0x20" sct="no">
+<reg name="DEVSEL" sct="no">
+<addr name="DEVSEL" addr="0x20" />
<field name="CH7" bitrange="31:28">
<value name="USE_UART" value="0x0">
</value>
@@ -512,63 +388,42 @@ KIND, either express or implied.
<field name="CH0" bitrange="3:0">
</field>
</reg>
-<multireg name="CHn_CURCMDAR" base="0x40" count="7" offset="0x70" sct="">
-<reg name="CH0_CURCMDAR" addr="0x40" index="0">
-</reg>
-<reg name="CH1_CURCMDAR" addr="0xb0" index="1">
-</reg>
-<reg name="CH2_CURCMDAR" addr="0x120" index="2">
-</reg>
-<reg name="CH3_CURCMDAR" addr="0x190" index="3">
-</reg>
-<reg name="CH4_CURCMDAR" addr="0x200" index="4">
-</reg>
-<reg name="CH5_CURCMDAR" addr="0x270" index="5">
-</reg>
-<reg name="CH6_CURCMDAR" addr="0x2e0" index="6">
-</reg>
-<reg name="CH7_CURCMDAR" addr="0x350" index="7">
-</reg>
+<reg name="CHn_CURCMDAR" sct="no">
+<formula string="0x40+n*0x70"/>
+<addr name="CH0_CURCMDAR" addr="0x40" />
+<addr name="CH1_CURCMDAR" addr="0xb0" />
+<addr name="CH2_CURCMDAR" addr="0x120" />
+<addr name="CH3_CURCMDAR" addr="0x190" />
+<addr name="CH4_CURCMDAR" addr="0x200" />
+<addr name="CH5_CURCMDAR" addr="0x270" />
+<addr name="CH6_CURCMDAR" addr="0x2e0" />
+<addr name="CH7_CURCMDAR" addr="0x350" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_NXTCMDAR" base="0x50" count="7" offset="0x70" sct="">
-<reg name="CH0_NXTCMDAR" addr="0x50" index="0">
-</reg>
-<reg name="CH1_NXTCMDAR" addr="0xc0" index="1">
-</reg>
-<reg name="CH2_NXTCMDAR" addr="0x130" index="2">
-</reg>
-<reg name="CH3_NXTCMDAR" addr="0x1a0" index="3">
-</reg>
-<reg name="CH4_NXTCMDAR" addr="0x210" index="4">
-</reg>
-<reg name="CH5_NXTCMDAR" addr="0x280" index="5">
-</reg>
-<reg name="CH6_NXTCMDAR" addr="0x2f0" index="6">
-</reg>
-<reg name="CH7_NXTCMDAR" addr="0x360" index="7">
</reg>
+<reg name="CHn_NXTCMDAR" sct="no">
+<formula string="0x50+n*0x70"/>
+<addr name="CH0_NXTCMDAR" addr="0x50" />
+<addr name="CH1_NXTCMDAR" addr="0xc0" />
+<addr name="CH2_NXTCMDAR" addr="0x130" />
+<addr name="CH3_NXTCMDAR" addr="0x1a0" />
+<addr name="CH4_NXTCMDAR" addr="0x210" />
+<addr name="CH5_NXTCMDAR" addr="0x280" />
+<addr name="CH6_NXTCMDAR" addr="0x2f0" />
+<addr name="CH7_NXTCMDAR" addr="0x360" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_CMD" base="0x60" count="7" offset="0x70" sct="">
-<reg name="CH0_CMD" addr="0x60" index="0">
-</reg>
-<reg name="CH1_CMD" addr="0xd0" index="1">
-</reg>
-<reg name="CH2_CMD" addr="0x140" index="2">
-</reg>
-<reg name="CH3_CMD" addr="0x1b0" index="3">
-</reg>
-<reg name="CH4_CMD" addr="0x220" index="4">
-</reg>
-<reg name="CH5_CMD" addr="0x290" index="5">
-</reg>
-<reg name="CH6_CMD" addr="0x300" index="6">
-</reg>
-<reg name="CH7_CMD" addr="0x370" index="7">
</reg>
+<reg name="CHn_CMD" sct="no">
+<formula string="0x60+n*0x70"/>
+<addr name="CH0_CMD" addr="0x60" />
+<addr name="CH1_CMD" addr="0xd0" />
+<addr name="CH2_CMD" addr="0x140" />
+<addr name="CH3_CMD" addr="0x1b0" />
+<addr name="CH4_CMD" addr="0x220" />
+<addr name="CH5_CMD" addr="0x290" />
+<addr name="CH6_CMD" addr="0x300" />
+<addr name="CH7_CMD" addr="0x370" />
<field name="XFER_COUNT" bitrange="31:16">
</field>
<field name="CMDWORDS" bitrange="15:12">
@@ -589,66 +444,45 @@ KIND, either express or implied.
<value name="DMA_READ" value="0x2">
</value>
</field>
-</multireg>
-<multireg name="CHn_BAR" base="0x70" count="7" offset="0x70" sct="">
-<reg name="CH0_BAR" addr="0x70" index="0">
-</reg>
-<reg name="CH1_BAR" addr="0xe0" index="1">
-</reg>
-<reg name="CH2_BAR" addr="0x150" index="2">
-</reg>
-<reg name="CH3_BAR" addr="0x1c0" index="3">
-</reg>
-<reg name="CH4_BAR" addr="0x230" index="4">
-</reg>
-<reg name="CH5_BAR" addr="0x2a0" index="5">
-</reg>
-<reg name="CH6_BAR" addr="0x310" index="6">
-</reg>
-<reg name="CH7_BAR" addr="0x380" index="7">
</reg>
+<reg name="CHn_BAR" sct="no">
+<formula string="0x70+n*0x70"/>
+<addr name="CH0_BAR" addr="0x70" />
+<addr name="CH1_BAR" addr="0xe0" />
+<addr name="CH2_BAR" addr="0x150" />
+<addr name="CH3_BAR" addr="0x1c0" />
+<addr name="CH4_BAR" addr="0x230" />
+<addr name="CH5_BAR" addr="0x2a0" />
+<addr name="CH6_BAR" addr="0x310" />
+<addr name="CH7_BAR" addr="0x380" />
<field name="ADDRESS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_SEMA" base="0x80" count="7" offset="0x70" sct="">
-<reg name="CH0_SEMA" addr="0x80" index="0">
-</reg>
-<reg name="CH1_SEMA" addr="0xf0" index="1">
-</reg>
-<reg name="CH2_SEMA" addr="0x160" index="2">
-</reg>
-<reg name="CH3_SEMA" addr="0x1d0" index="3">
-</reg>
-<reg name="CH4_SEMA" addr="0x240" index="4">
-</reg>
-<reg name="CH5_SEMA" addr="0x2b0" index="5">
-</reg>
-<reg name="CH6_SEMA" addr="0x320" index="6">
-</reg>
-<reg name="CH7_SEMA" addr="0x390" index="7">
</reg>
+<reg name="CHn_SEMA" sct="no">
+<formula string="0x80+n*0x70"/>
+<addr name="CH0_SEMA" addr="0x80" />
+<addr name="CH1_SEMA" addr="0xf0" />
+<addr name="CH2_SEMA" addr="0x160" />
+<addr name="CH3_SEMA" addr="0x1d0" />
+<addr name="CH4_SEMA" addr="0x240" />
+<addr name="CH5_SEMA" addr="0x2b0" />
+<addr name="CH6_SEMA" addr="0x320" />
+<addr name="CH7_SEMA" addr="0x390" />
<field name="PHORE" bitrange="23:16">
</field>
<field name="INCREMENT_SEMA" bitrange="7:0">
</field>
-</multireg>
-<multireg name="CHn_DEBUG1" base="0x90" count="7" offset="0x70" sct="">
-<reg name="CH0_DEBUG1" addr="0x90" index="0">
-</reg>
-<reg name="CH1_DEBUG1" addr="0x100" index="1">
-</reg>
-<reg name="CH2_DEBUG1" addr="0x170" index="2">
-</reg>
-<reg name="CH3_DEBUG1" addr="0x1e0" index="3">
-</reg>
-<reg name="CH4_DEBUG1" addr="0x250" index="4">
-</reg>
-<reg name="CH5_DEBUG1" addr="0x2c0" index="5">
-</reg>
-<reg name="CH6_DEBUG1" addr="0x330" index="6">
-</reg>
-<reg name="CH7_DEBUG1" addr="0x3a0" index="7">
</reg>
+<reg name="CHn_DEBUG1" sct="no">
+<formula string="0x90+n*0x70"/>
+<addr name="CH0_DEBUG1" addr="0x90" />
+<addr name="CH1_DEBUG1" addr="0x100" />
+<addr name="CH2_DEBUG1" addr="0x170" />
+<addr name="CH3_DEBUG1" addr="0x1e0" />
+<addr name="CH4_DEBUG1" addr="0x250" />
+<addr name="CH5_DEBUG1" addr="0x2c0" />
+<addr name="CH6_DEBUG1" addr="0x330" />
+<addr name="CH7_DEBUG1" addr="0x3a0" />
<field name="REQ" bitrange="31:31">
</field>
<field name="BURST" bitrange="30:30">
@@ -703,30 +537,24 @@ KIND, either express or implied.
<value name="CHECK_WAIT" value="0x1e">
</value>
</field>
-</multireg>
-<multireg name="CHn_DEBUG2" base="0xa0" count="7" offset="0x70" sct="">
-<reg name="CH0_DEBUG2" addr="0xa0" index="0">
-</reg>
-<reg name="CH1_DEBUG2" addr="0x110" index="1">
-</reg>
-<reg name="CH2_DEBUG2" addr="0x180" index="2">
-</reg>
-<reg name="CH3_DEBUG2" addr="0x1f0" index="3">
-</reg>
-<reg name="CH4_DEBUG2" addr="0x260" index="4">
-</reg>
-<reg name="CH5_DEBUG2" addr="0x2d0" index="5">
-</reg>
-<reg name="CH6_DEBUG2" addr="0x340" index="6">
-</reg>
-<reg name="CH7_DEBUG2" addr="0x3b0" index="7">
</reg>
+<reg name="CHn_DEBUG2" sct="no">
+<formula string="0xa0+n*0x70"/>
+<addr name="CH0_DEBUG2" addr="0xa0" />
+<addr name="CH1_DEBUG2" addr="0x110" />
+<addr name="CH2_DEBUG2" addr="0x180" />
+<addr name="CH3_DEBUG2" addr="0x1f0" />
+<addr name="CH4_DEBUG2" addr="0x260" />
+<addr name="CH5_DEBUG2" addr="0x2d0" />
+<addr name="CH6_DEBUG2" addr="0x340" />
+<addr name="CH7_DEBUG2" addr="0x3b0" />
<field name="APB_BYTES" bitrange="31:16">
</field>
<field name="AHB_BYTES" bitrange="15:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x3f0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x3f0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -735,8 +563,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="AUDIOIN" addr="0x8004c000" long_name="AUDIOIN/ADC" desc="Digital Audio Filter Input">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="AUDIOIN" long_name="AUDIOIN/ADC" desc="Digital Audio Filter Input" version="3.4.0">
+<addr name="AUDIOIN" addr="0x8004c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -766,11 +596,13 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x10" />
<field name="ADC_PRESENT" bitrange="31:31">
</field>
</reg>
-<reg name="ADCSRR" addr="0x20" sct="yes">
+<reg name="ADCSRR" sct="yes">
+<addr name="ADCSRR" addr="0x20" />
<field name="OSR" bitrange="31:31">
<value name="OSR6" value="0x0">
</value>
@@ -792,7 +624,8 @@ KIND, either express or implied.
<field name="SRC_FRAC" bitrange="12:0">
</field>
</reg>
-<reg name="ADCVOLUME" addr="0x30" sct="yes">
+<reg name="ADCVOLUME" sct="yes">
+<addr name="ADCVOLUME" addr="0x30" />
<field name="VOLUME_UPDATE_LEFT" bitrange="28:28">
</field>
<field name="EN_ZCD" bitrange="25:25">
@@ -804,7 +637,8 @@ KIND, either express or implied.
<field name="VOLUME_RIGHT" bitrange="7:0">
</field>
</reg>
-<reg name="ADCDEBUG" addr="0x40" sct="yes">
+<reg name="ADCDEBUG" sct="yes">
+<addr name="ADCDEBUG" addr="0x40" />
<field name="ENABLE_ADCDMA" bitrange="31:31">
</field>
<field name="ADC_DMA_REQ_HAND_SHAKE_CLK_CROSS" bitrange="3:3">
@@ -816,7 +650,8 @@ KIND, either express or implied.
<field name="FIFO_STATUS" bitrange="0:0">
</field>
</reg>
-<reg name="ADCVOL" addr="0x50" sct="yes">
+<reg name="ADCVOL" sct="yes">
+<addr name="ADCVOL" addr="0x50" />
<field name="VOLUME_UPDATE_PENDING" bitrange="28:28">
</field>
<field name="EN_ADC_ZCD" bitrange="25:25">
@@ -832,7 +667,8 @@ KIND, either express or implied.
<field name="GAIN_RIGHT" bitrange="3:0">
</field>
</reg>
-<reg name="MICLINE" addr="0x60" sct="yes">
+<reg name="MICLINE" sct="yes">
+<addr name="MICLINE" addr="0x60" />
<field name="DIVIDE_LINE1" bitrange="29:29">
</field>
<field name="DIVIDE_LINE2" bitrange="28:28">
@@ -840,15 +676,32 @@ KIND, either express or implied.
<field name="MIC_SELECT" bitrange="24:24">
</field>
<field name="MIC_RESISTOR" bitrange="21:20">
+<value name="Off" value="0x0">
+</value>
+<value name="2KOhm" value="0x1">
+</value>
+<value name="4KOhm" value="0x2">
+</value>
+<value name="8KOhm" value="0x3">
+</value>
</field>
<field name="MIC_BIAS" bitrange="18:16">
</field>
<field name="MIC_CHOPCLK" bitrange="5:4">
</field>
<field name="MIC_GAIN" bitrange="1:0">
+<value name="0dB" value="0x0">
+</value>
+<value name="20dB" value="0x1">
+</value>
+<value name="30dB" value="0x2">
+</value>
+<value name="40dB" value="0x3">
+</value>
</field>
</reg>
-<reg name="ANACLKCTRL" addr="0x70" sct="yes">
+<reg name="ANACLKCTRL" sct="yes">
+<addr name="ANACLKCTRL" addr="0x70" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="DITHER_OFF" bitrange="6:6">
@@ -860,15 +713,18 @@ KIND, either express or implied.
<field name="ADCDIV" bitrange="2:0">
</field>
</reg>
-<reg name="DATA" addr="0x80" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x80" />
<field name="HIGH" bitrange="31:16">
</field>
<field name="LOW" bitrange="15:0">
</field>
</reg>
</dev>
-<dev name="AUDIOOUT" addr="0x80048000" long_name="AUDIOOUT/DAC" desc="Digital Audio Filter Output">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="AUDIOOUT" long_name="AUDIOOUT/DAC" desc="Digital Audio Filter Output" version="3.2.0">
+<addr name="AUDIOOUT" addr="0x80048000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -898,11 +754,13 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x10" />
<field name="DAC_PRESENT" bitrange="31:31">
</field>
</reg>
-<reg name="DACSRR" addr="0x20" sct="yes">
+<reg name="DACSRR" sct="yes">
+<addr name="DACSRR" addr="0x20" />
<field name="OSR" bitrange="31:31">
<value name="OSR6" value="0x0">
</value>
@@ -924,7 +782,8 @@ KIND, either express or implied.
<field name="SRC_FRAC" bitrange="12:0">
</field>
</reg>
-<reg name="DACVOLUME" addr="0x30" sct="yes">
+<reg name="DACVOLUME" sct="yes">
+<addr name="DACVOLUME" addr="0x30" />
<field name="VOLUME_UPDATE_LEFT" bitrange="28:28">
</field>
<field name="EN_ZCD" bitrange="25:25">
@@ -940,7 +799,8 @@ KIND, either express or implied.
<field name="VOLUME_RIGHT" bitrange="7:0">
</field>
</reg>
-<reg name="DACDEBUG" addr="0x40" sct="yes">
+<reg name="DACDEBUG" sct="yes">
+<addr name="DACDEBUG" addr="0x40" />
<field name="ENABLE_DACDMA" bitrange="31:31">
</field>
<field name="RAM_SS" bitrange="11:8">
@@ -958,7 +818,8 @@ KIND, either express or implied.
<field name="FIFO_STATUS" bitrange="0:0">
</field>
</reg>
-<reg name="HPVOL" addr="0x50" sct="yes">
+<reg name="HPVOL" sct="yes">
+<addr name="HPVOL" addr="0x50" />
<field name="VOLUME_UPDATE_PENDING" bitrange="28:28">
</field>
<field name="EN_MSTR_ZCD" bitrange="25:25">
@@ -972,9 +833,11 @@ KIND, either express or implied.
<field name="VOL_RIGHT" bitrange="6:0">
</field>
</reg>
-<reg name="RESERVED" addr="0x60" sct="no">
+<reg name="RESERVED" sct="no">
+<addr name="RESERVED" addr="0x60" />
</reg>
-<reg name="PWRDN" addr="0x70" sct="yes">
+<reg name="PWRDN" sct="yes">
+<addr name="PWRDN" addr="0x70" />
<field name="LINEOUT" bitrange="24:24">
</field>
<field name="SELFBIAS" bitrange="20:20">
@@ -990,7 +853,8 @@ KIND, either express or implied.
<field name="HEADPHONE" bitrange="0:0">
</field>
</reg>
-<reg name="REFCTRL" addr="0x80" sct="yes">
+<reg name="REFCTRL" sct="yes">
+<addr name="REFCTRL" addr="0x80" />
<field name="FASTSETTLING" bitrange="26:26">
</field>
<field name="RAISE_REF" bitrange="25:25">
@@ -1018,7 +882,8 @@ KIND, either express or implied.
<field name="DAC_ADJ" bitrange="2:0">
</field>
</reg>
-<reg name="ANACTRL" addr="0x90" sct="yes">
+<reg name="ANACTRL" sct="yes">
+<addr name="ANACTRL" addr="0x90" />
<field name="SHORT_CM_STS" bitrange="28:28">
</field>
<field name="SHORT_LR_STS" bitrange="24:24">
@@ -1036,7 +901,8 @@ KIND, either express or implied.
<field name="HP_CLASSAB" bitrange="4:4">
</field>
</reg>
-<reg name="TEST" addr="0xa0" sct="yes">
+<reg name="TEST" sct="yes">
+<addr name="TEST" addr="0xa0" />
<field name="HP_ANTIPOP" bitrange="30:28">
</field>
<field name="TM_ADCIN_TOHP" bitrange="26:26">
@@ -1060,7 +926,8 @@ KIND, either express or implied.
<field name="DAC_DIS_RTZ" bitrange="0:0">
</field>
</reg>
-<reg name="BISTCTRL" addr="0xb0" sct="yes">
+<reg name="BISTCTRL" sct="yes">
+<addr name="BISTCTRL" addr="0xb0" />
<field name="FAIL" bitrange="3:3">
</field>
<field name="PASS" bitrange="2:2">
@@ -1070,17 +937,20 @@ KIND, either express or implied.
<field name="START" bitrange="0:0">
</field>
</reg>
-<reg name="BISTSTAT0" addr="0xc0" sct="no">
+<reg name="BISTSTAT0" sct="no">
+<addr name="BISTSTAT0" addr="0xc0" />
<field name="DATA" bitrange="23:0">
</field>
</reg>
-<reg name="BISTSTAT1" addr="0xd0" sct="no">
+<reg name="BISTSTAT1" sct="no">
+<addr name="BISTSTAT1" addr="0xd0" />
<field name="STATE" bitrange="28:24">
</field>
<field name="ADDR" bitrange="7:0">
</field>
</reg>
-<reg name="ANACLKCTRL" addr="0xe0" sct="yes">
+<reg name="ANACLKCTRL" sct="yes">
+<addr name="ANACLKCTRL" addr="0xe0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="INVERT_DACCLK" bitrange="4:4">
@@ -1088,13 +958,15 @@ KIND, either express or implied.
<field name="DACDIV" bitrange="2:0">
</field>
</reg>
-<reg name="DATA" addr="0xf0" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0xf0" />
<field name="HIGH" bitrange="31:16">
</field>
<field name="LOW" bitrange="15:0">
</field>
</reg>
-<reg name="LINEOUTCTRL" addr="0x100" sct="yes">
+<reg name="LINEOUTCTRL" sct="yes">
+<addr name="LINEOUTCTRL" addr="0x100" />
<field name="VOLUME_UPDATE_PENDING" bitrange="28:28">
</field>
<field name="EN_LINEOUT_ZCD" bitrange="25:25">
@@ -1112,7 +984,8 @@ KIND, either express or implied.
<field name="VOLUME_RIGHT" bitrange="4:0">
</field>
</reg>
-<reg name="VERSION" addr="0x200" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x200" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -1121,8 +994,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="CLKCTRL" addr="0x80040000" long_name="Clock Controller" desc="Clock Generation and Control">
-<reg name="PLLCTRL0" addr="0x0" sct="yes">
+<dev name="CLKCTRL" long_name="Clock Controller" desc="Clock Generation and Control" version="3.2.0">
+<addr name="CLKCTRL" addr="0x80040000" />
+<reg name="PLLCTRL0" sct="yes">
+<addr name="PLLCTRL0" addr="0x0" />
<field name="LFR_SEL" bitrange="29:28">
<value name="DEFAULT" value="0x0">
</value>
@@ -1158,7 +1033,8 @@ KIND, either express or implied.
<field name="POWER" bitrange="16:16">
</field>
</reg>
-<reg name="PLLCTRL1" addr="0x10" sct="no">
+<reg name="PLLCTRL1" sct="no">
+<addr name="PLLCTRL1" addr="0x10" />
<field name="LOCK" bitrange="31:31">
</field>
<field name="FORCE_LOCK" bitrange="30:30">
@@ -1166,7 +1042,8 @@ KIND, either express or implied.
<field name="LOCK_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CPU" addr="0x20" sct="yes">
+<reg name="CPU" sct="yes">
+<addr name="CPU" addr="0x20" />
<field name="BUSY_REF_XTAL" bitrange="29:29">
</field>
<field name="BUSY_REF_CPU" bitrange="28:28">
@@ -1182,7 +1059,8 @@ KIND, either express or implied.
<field name="DIV_CPU" bitrange="9:0">
</field>
</reg>
-<reg name="HBUS" addr="0x30" sct="yes">
+<reg name="HBUS" sct="yes">
+<addr name="HBUS" addr="0x30" />
<field name="BUSY" bitrange="29:29">
</field>
<field name="APBHDMA_AS_ENABLE" bitrange="26:26">
@@ -1218,7 +1096,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="4:0">
</field>
</reg>
-<reg name="XBUS" addr="0x40" sct="no">
+<reg name="XBUS" sct="no">
+<addr name="XBUS" addr="0x40" />
<field name="BUSY" bitrange="31:31">
</field>
<field name="DIV_FRAC_EN" bitrange="10:10">
@@ -1226,7 +1105,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="9:0">
</field>
</reg>
-<reg name="XTAL" addr="0x50" sct="yes">
+<reg name="XTAL" sct="yes">
+<addr name="XTAL" addr="0x50" />
<field name="UART_CLK_GATE" bitrange="31:31">
</field>
<field name="FILT_CLK24M_GATE" bitrange="30:30">
@@ -1242,7 +1122,8 @@ KIND, either express or implied.
<field name="DIV_UART" bitrange="1:0">
</field>
</reg>
-<reg name="PIX" addr="0x60" sct="no">
+<reg name="PIX" sct="no">
+<addr name="PIX" addr="0x60" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="BUSY" bitrange="29:29">
@@ -1252,7 +1133,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="14:0">
</field>
</reg>
-<reg name="SSP" addr="0x70" sct="no">
+<reg name="SSP" sct="no">
+<addr name="SSP" addr="0x70" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="BUSY" bitrange="29:29">
@@ -1262,7 +1144,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="8:0">
</field>
</reg>
-<reg name="GPMI" addr="0x80" sct="no">
+<reg name="GPMI" sct="no">
+<addr name="GPMI" addr="0x80" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="BUSY" bitrange="29:29">
@@ -1272,11 +1155,13 @@ KIND, either express or implied.
<field name="DIV" bitrange="9:0">
</field>
</reg>
-<reg name="SPDIF" addr="0x90" sct="no">
+<reg name="SPDIF" sct="no">
+<addr name="SPDIF" addr="0x90" />
<field name="CLKGATE" bitrange="31:31">
</field>
</reg>
-<reg name="EMI" addr="0xa0" sct="no">
+<reg name="EMI" sct="no">
+<addr name="EMI" addr="0xa0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="BUSY_REF_XTAL" bitrange="29:29">
@@ -1292,7 +1177,8 @@ KIND, either express or implied.
<field name="DIV_EMI" bitrange="5:0">
</field>
</reg>
-<reg name="IR" addr="0xb0" sct="no">
+<reg name="IR" sct="no">
+<addr name="IR" addr="0xb0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="AUTO_DIV" bitrange="29:29">
@@ -1306,7 +1192,8 @@ KIND, either express or implied.
<field name="IR_DIV" bitrange="9:0">
</field>
</reg>
-<reg name="SAIF" addr="0xc0" sct="no">
+<reg name="SAIF" sct="no">
+<addr name="SAIF" addr="0xc0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="BUSY" bitrange="29:29">
@@ -1316,7 +1203,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="15:0">
</field>
</reg>
-<reg name="FRAC" addr="0xd0" sct="yes">
+<reg name="FRAC" sct="yes">
+<addr name="FRAC" addr="0xd0" />
<field name="CLKGATEIO" bitrange="31:31">
</field>
<field name="IO_STABLE" bitrange="30:30">
@@ -1342,7 +1230,8 @@ KIND, either express or implied.
<field name="CPUFRAC" bitrange="5:0">
</field>
</reg>
-<reg name="CLKSEQ" addr="0xe0" sct="yes">
+<reg name="CLKSEQ" sct="yes">
+<addr name="CLKSEQ" addr="0xe0" />
<field name="BYPASS_CPU" bitrange="7:7">
</field>
<field name="BYPASS_EMI" bitrange="6:6">
@@ -1358,13 +1247,15 @@ KIND, either express or implied.
<field name="BYPASS_SAIF" bitrange="0:0">
</field>
</reg>
-<reg name="RESET" addr="0xf0" sct="no">
+<reg name="RESET" sct="no">
+<addr name="RESET" addr="0xf0" />
<field name="CHIP" bitrange="1:1">
</field>
<field name="DIG" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0x100" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x100" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -1373,8 +1264,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="DCP" addr="0x80028000" long_name="Data CoProcessor" desc="Data Co-Processor (DCP)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="DCP" long_name="Data CoProcessor" desc="Data Co-Processor (DCP)" version="3.2.0">
+<addr name="DCP" addr="0x80028000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -1412,7 +1305,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="OTP_KEY_READY" bitrange="28:28">
</field>
<field name="CUR_CHANNEL" bitrange="27:24">
@@ -1448,7 +1342,8 @@ KIND, either express or implied.
<field name="IRQ" bitrange="3:0">
</field>
</reg>
-<reg name="CHANNELCTRL" addr="0x20" sct="yes">
+<reg name="CHANNELCTRL" sct="yes">
+<addr name="CHANNELCTRL" addr="0x20" />
<field name="CSC_PRIORITY" bitrange="18:17">
<value name="HIGH" value="0x3">
</value>
@@ -1486,13 +1381,15 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CAPABILITY0" addr="0x30" sct="no">
+<reg name="CAPABILITY0" sct="no">
+<addr name="CAPABILITY0" addr="0x30" />
<field name="NUM_CHANNELS" bitrange="11:8">
</field>
<field name="NUM_KEYS" bitrange="7:0">
</field>
</reg>
-<reg name="CAPABILITY1" addr="0x40" sct="no">
+<reg name="CAPABILITY1" sct="no">
+<addr name="CAPABILITY1" addr="0x40" />
<field name="HASH_ALGORITHMS" bitrange="31:16">
<value name="SHA1" value="0x1">
</value>
@@ -1504,25 +1401,30 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CONTEXT" addr="0x50" sct="no">
+<reg name="CONTEXT" sct="no">
+<addr name="CONTEXT" addr="0x50" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="KEY" addr="0x60" sct="no">
+<reg name="KEY" sct="no">
+<addr name="KEY" addr="0x60" />
<field name="INDEX" bitrange="5:4">
</field>
<field name="SUBWORD" bitrange="1:0">
</field>
</reg>
-<reg name="KEYDATA" addr="0x70" sct="no">
+<reg name="KEYDATA" sct="no">
+<addr name="KEYDATA" addr="0x70" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET0" addr="0x80" sct="no">
+<reg name="PACKET0" sct="no">
+<addr name="PACKET0" addr="0x80" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET1" addr="0x90" sct="no">
+<reg name="PACKET1" sct="no">
+<addr name="PACKET1" addr="0x90" />
<field name="TAG" bitrange="31:24">
</field>
<field name="OUTPUT_WORDSWAP" bitrange="23:23">
@@ -1582,7 +1484,8 @@ KIND, either express or implied.
<field name="INTERRUPT" bitrange="0:0">
</field>
</reg>
-<reg name="PACKET2" addr="0xa0" sct="no">
+<reg name="PACKET2" sct="no">
+<addr name="PACKET2" addr="0xa0" />
<field name="CIPHER_CFG" bitrange="31:24">
</field>
<field name="HASH_SELECT" bitrange="19:16">
@@ -1604,57 +1507,52 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="PACKET3" addr="0xb0" sct="no">
+<reg name="PACKET3" sct="no">
+<addr name="PACKET3" addr="0xb0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET4" addr="0xc0" sct="no">
+<reg name="PACKET4" sct="no">
+<addr name="PACKET4" addr="0xc0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET5" addr="0xd0" sct="no">
+<reg name="PACKET5" sct="no">
+<addr name="PACKET5" addr="0xd0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET6" addr="0xe0" sct="no">
+<reg name="PACKET6" sct="no">
+<addr name="PACKET6" addr="0xe0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<multireg name="CHnCMDPTR" base="0x100" count="3" offset="0x40" sct="">
-<reg name="CH0CMDPTR" addr="0x100" index="0">
-</reg>
-<reg name="CH1CMDPTR" addr="0x140" index="1">
-</reg>
-<reg name="CH2CMDPTR" addr="0x180" index="2">
-</reg>
-<reg name="CH3CMDPTR" addr="0x1c0" index="3">
-</reg>
+<reg name="CHnCMDPTR" sct="no">
+<formula string="0x100+n*0x40"/>
+<addr name="CH0CMDPTR" addr="0x100" />
+<addr name="CH1CMDPTR" addr="0x140" />
+<addr name="CH2CMDPTR" addr="0x180" />
+<addr name="CH3CMDPTR" addr="0x1c0" />
<field name="ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHnSEMA" base="0x110" count="3" offset="0x40" sct="">
-<reg name="CH0SEMA" addr="0x110" index="0">
-</reg>
-<reg name="CH1SEMA" addr="0x150" index="1">
-</reg>
-<reg name="CH2SEMA" addr="0x190" index="2">
-</reg>
-<reg name="CH3SEMA" addr="0x1d0" index="3">
</reg>
+<reg name="CHnSEMA" sct="no">
+<formula string="0x110+n*0x40"/>
+<addr name="CH0SEMA" addr="0x110" />
+<addr name="CH1SEMA" addr="0x150" />
+<addr name="CH2SEMA" addr="0x190" />
+<addr name="CH3SEMA" addr="0x1d0" />
<field name="VALUE" bitrange="23:16">
</field>
<field name="INCREMENT" bitrange="7:0">
</field>
-</multireg>
-<multireg name="CHnSTAT" base="0x120" count="3" offset="0x40" sct="SCT">
-<reg name="CH0STAT" addr="0x120" index="0">
-</reg>
-<reg name="CH1STAT" addr="0x160" index="1">
-</reg>
-<reg name="CH2STAT" addr="0x1a0" index="2">
-</reg>
-<reg name="CH3STAT" addr="0x1e0" index="3">
</reg>
+<reg name="CHnSTAT" sct="yes">
+<formula string="0x120+n*0x40"/>
+<addr name="CH0STAT" addr="0x120" />
+<addr name="CH1STAT" addr="0x160" />
+<addr name="CH2STAT" addr="0x1a0" />
+<addr name="CH3STAT" addr="0x1e0" />
<field name="TAG" bitrange="31:24">
</field>
<field name="ERROR_CODE" bitrange="23:16">
@@ -1679,20 +1577,18 @@ KIND, either express or implied.
</field>
<field name="HASH_MISMATCH" bitrange="1:1">
</field>
-</multireg>
-<multireg name="CHnOPTS" base="0x130" count="3" offset="0x40" sct="SCT">
-<reg name="CH0OPTS" addr="0x130" index="0">
-</reg>
-<reg name="CH1OPTS" addr="0x170" index="1">
-</reg>
-<reg name="CH2OPTS" addr="0x1b0" index="2">
-</reg>
-<reg name="CH3OPTS" addr="0x1f0" index="3">
</reg>
+<reg name="CHnOPTS" sct="yes">
+<formula string="0x130+n*0x40"/>
+<addr name="CH0OPTS" addr="0x130" />
+<addr name="CH1OPTS" addr="0x170" />
+<addr name="CH2OPTS" addr="0x1b0" />
+<addr name="CH3OPTS" addr="0x1f0" />
<field name="RECOVERY_TIMER" bitrange="15:0">
</field>
-</multireg>
-<reg name="CSCCTRL0" addr="0x300" sct="yes">
+</reg>
+<reg name="CSCCTRL0" sct="yes">
+<addr name="CSCCTRL0" addr="0x300" />
<field name="UPSAMPLE" bitrange="14:14">
</field>
<field name="SCALE" bitrange="13:13">
@@ -1720,7 +1616,8 @@ KIND, either express or implied.
<field name="ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="CSCSTAT" addr="0x310" sct="yes">
+<reg name="CSCSTAT" sct="yes">
+<addr name="CSCSTAT" addr="0x310" />
<field name="ERROR_CODE" bitrange="23:16">
<value name="LUMA0_FETCH_ERROR_Y0" value="0x1">
</value>
@@ -1740,33 +1637,40 @@ KIND, either express or implied.
<field name="COMPLETE" bitrange="0:0">
</field>
</reg>
-<reg name="CSCOUTBUFPARAM" addr="0x320" sct="no">
+<reg name="CSCOUTBUFPARAM" sct="no">
+<addr name="CSCOUTBUFPARAM" addr="0x320" />
<field name="FIELD_SIZE" bitrange="23:12">
</field>
<field name="LINE_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="CSCINBUFPARAM" addr="0x330" sct="no">
+<reg name="CSCINBUFPARAM" sct="no">
+<addr name="CSCINBUFPARAM" addr="0x330" />
<field name="LINE_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="CSCRGB" addr="0x340" sct="no">
+<reg name="CSCRGB" sct="no">
+<addr name="CSCRGB" addr="0x340" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCLUMA" addr="0x350" sct="no">
+<reg name="CSCLUMA" sct="no">
+<addr name="CSCLUMA" addr="0x350" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCCHROMAU" addr="0x360" sct="no">
+<reg name="CSCCHROMAU" sct="no">
+<addr name="CSCCHROMAU" addr="0x360" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCCHROMAV" addr="0x370" sct="no">
+<reg name="CSCCHROMAV" sct="no">
+<addr name="CSCCHROMAV" addr="0x370" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCCOEFF0" addr="0x380" sct="no">
+<reg name="CSCCOEFF0" sct="no">
+<addr name="CSCCOEFF0" addr="0x380" />
<field name="C0" bitrange="25:16">
</field>
<field name="UV_OFFSET" bitrange="15:8">
@@ -1774,19 +1678,22 @@ KIND, either express or implied.
<field name="Y_OFFSET" bitrange="7:0">
</field>
</reg>
-<reg name="CSCCOEFF1" addr="0x390" sct="no">
+<reg name="CSCCOEFF1" sct="no">
+<addr name="CSCCOEFF1" addr="0x390" />
<field name="C1" bitrange="25:16">
</field>
<field name="C4" bitrange="9:0">
</field>
</reg>
-<reg name="CSCCOEFF2" addr="0x3a0" sct="no">
+<reg name="CSCCOEFF2" sct="no">
+<addr name="CSCCOEFF2" addr="0x3a0" />
<field name="C2" bitrange="25:16">
</field>
<field name="C3" bitrange="9:0">
</field>
</reg>
-<reg name="CSCXSCALE" addr="0x3e0" sct="no">
+<reg name="CSCXSCALE" sct="no">
+<addr name="CSCXSCALE" addr="0x3e0" />
<field name="INT" bitrange="25:24">
</field>
<field name="FRAC" bitrange="23:12">
@@ -1794,7 +1701,8 @@ KIND, either express or implied.
<field name="WIDTH" bitrange="11:0">
</field>
</reg>
-<reg name="CSCYSCALE" addr="0x3f0" sct="no">
+<reg name="CSCYSCALE" sct="no">
+<addr name="CSCYSCALE" addr="0x3f0" />
<field name="INT" bitrange="25:24">
</field>
<field name="FRAC" bitrange="23:12">
@@ -1802,7 +1710,8 @@ KIND, either express or implied.
<field name="HEIGHT" bitrange="11:0">
</field>
</reg>
-<reg name="DBGSELECT" addr="0x400" sct="no">
+<reg name="DBGSELECT" sct="no">
+<addr name="DBGSELECT" addr="0x400" />
<field name="INDEX" bitrange="7:0">
<value name="CONTROL" value="0x1">
</value>
@@ -1818,11 +1727,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DBGDATA" addr="0x410" sct="no">
+<reg name="DBGDATA" sct="no">
+<addr name="DBGDATA" addr="0x410" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0x420" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x420" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -1831,8 +1742,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="DIGCTL" addr="0x8001c000" long_name="Digital Control" desc="Digital Control and On-Chip RAM">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="DIGCTL" long_name="Digital Control" desc="Digital Control and On-Chip RAM" version="3.2.0">
+<addr name="DIGCTL" addr="0x8001c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="TRAP_IRQ" bitrange="29:29">
</field>
<field name="DCP_BIST_CLKEN" bitrange="23:23">
@@ -1906,7 +1819,8 @@ KIND, either express or implied.
<field name="LATCH_ENTROPY" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS" addr="0x10" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0x10" />
<field name="USB_HS_PRESENT" bitrange="31:31">
</field>
<field name="USB_OTG_PRESENT" bitrange="30:30">
@@ -1928,37 +1842,45 @@ KIND, either express or implied.
<field name="WRITTEN" bitrange="0:0">
</field>
</reg>
-<reg name="HCLKCOUNT" addr="0x20" sct="no">
+<reg name="HCLKCOUNT" sct="no">
+<addr name="HCLKCOUNT" addr="0x20" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="RAMCTRL" addr="0x30" sct="yes">
+<reg name="RAMCTRL" sct="yes">
+<addr name="RAMCTRL" addr="0x30" />
<field name="SPEED_SELECT" bitrange="11:8">
</field>
<field name="RAM_REPAIR_EN" bitrange="0:0">
</field>
</reg>
-<reg name="RAMREPAIR" addr="0x40" sct="yes">
+<reg name="RAMREPAIR" sct="yes">
+<addr name="RAMREPAIR" addr="0x40" />
<field name="ADDR" bitrange="15:0">
</field>
</reg>
-<reg name="ROMCTRL" addr="0x50" sct="yes">
+<reg name="ROMCTRL" sct="yes">
+<addr name="ROMCTRL" addr="0x50" />
<field name="RD_MARGIN" bitrange="3:0">
</field>
</reg>
-<reg name="WRITEONCE" addr="0x60" sct="no">
+<reg name="WRITEONCE" sct="no">
+<addr name="WRITEONCE" addr="0x60" />
<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="ENTROPY" addr="0x90" sct="no">
+<reg name="ENTROPY" sct="no">
+<addr name="ENTROPY" addr="0x90" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="ENTROPY_LATCHED" addr="0xa0" sct="no">
+<reg name="ENTROPY_LATCHED" sct="no">
+<addr name="ENTROPY_LATCHED" addr="0xa0" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="SJTAGDBG" addr="0xb0" sct="yes">
+<reg name="SJTAGDBG" sct="yes">
+<addr name="SJTAGDBG" addr="0xb0" />
<field name="SJTAG_STATE" bitrange="26:16">
</field>
<field name="SJTAG_TDO" bitrange="10:10">
@@ -1978,19 +1900,23 @@ KIND, either express or implied.
<field name="SJTAG_DEBUG_OE" bitrange="0:0">
</field>
</reg>
-<reg name="MICROSECONDS" addr="0xc0" sct="yes">
+<reg name="MICROSECONDS" sct="yes">
+<addr name="MICROSECONDS" addr="0xc0" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="DBGRD" addr="0xd0" sct="no">
+<reg name="DBGRD" sct="no">
+<addr name="DBGRD" addr="0xd0" />
<field name="COMPLEMENT" bitrange="31:0">
</field>
</reg>
-<reg name="DBG" addr="0xe0" sct="no">
+<reg name="DBG" sct="no">
+<addr name="DBG" addr="0xe0" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_BIST_CSR" addr="0xf0" sct="yes">
+<reg name="OCRAM_BIST_CSR" sct="yes">
+<addr name="OCRAM_BIST_CSR" addr="0xf0" />
<field name="BIST_DATA_CHANGE" bitrange="9:9">
</field>
<field name="BIST_CLKEN" bitrange="8:8">
@@ -2004,63 +1930,76 @@ KIND, either express or implied.
<field name="START" bitrange="0:0">
</field>
</reg>
-<reg name="OCRAM_STATUS0" addr="0x110" sct="no">
+<reg name="OCRAM_STATUS0" sct="no">
+<addr name="OCRAM_STATUS0" addr="0x110" />
<field name="FAILDATA00" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS1" addr="0x120" sct="no">
+<reg name="OCRAM_STATUS1" sct="no">
+<addr name="OCRAM_STATUS1" addr="0x120" />
<field name="FAILDATA01" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS2" addr="0x130" sct="no">
+<reg name="OCRAM_STATUS2" sct="no">
+<addr name="OCRAM_STATUS2" addr="0x130" />
<field name="FAILDATA10" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS3" addr="0x140" sct="no">
+<reg name="OCRAM_STATUS3" sct="no">
+<addr name="OCRAM_STATUS3" addr="0x140" />
<field name="FAILDATA11" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS4" addr="0x150" sct="no">
+<reg name="OCRAM_STATUS4" sct="no">
+<addr name="OCRAM_STATUS4" addr="0x150" />
<field name="FAILDATA20" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS5" addr="0x160" sct="no">
+<reg name="OCRAM_STATUS5" sct="no">
+<addr name="OCRAM_STATUS5" addr="0x160" />
<field name="FAILDATA21" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS6" addr="0x170" sct="no">
+<reg name="OCRAM_STATUS6" sct="no">
+<addr name="OCRAM_STATUS6" addr="0x170" />
<field name="FAILDATA30" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS7" addr="0x180" sct="no">
+<reg name="OCRAM_STATUS7" sct="no">
+<addr name="OCRAM_STATUS7" addr="0x180" />
<field name="FAILDATA31" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS8" addr="0x190" sct="no">
+<reg name="OCRAM_STATUS8" sct="no">
+<addr name="OCRAM_STATUS8" addr="0x190" />
<field name="FAILADDR01" bitrange="31:16">
</field>
<field name="FAILADDR00" bitrange="15:0">
</field>
</reg>
-<reg name="OCRAM_STATUS9" addr="0x1a0" sct="no">
+<reg name="OCRAM_STATUS9" sct="no">
+<addr name="OCRAM_STATUS9" addr="0x1a0" />
<field name="FAILADDR11" bitrange="31:16">
</field>
<field name="FAILADDR10" bitrange="15:0">
</field>
</reg>
-<reg name="OCRAM_STATUS10" addr="0x1b0" sct="no">
+<reg name="OCRAM_STATUS10" sct="no">
+<addr name="OCRAM_STATUS10" addr="0x1b0" />
<field name="FAILADDR21" bitrange="31:16">
</field>
<field name="FAILADDR20" bitrange="15:0">
</field>
</reg>
-<reg name="OCRAM_STATUS11" addr="0x1c0" sct="no">
+<reg name="OCRAM_STATUS11" sct="no">
+<addr name="OCRAM_STATUS11" addr="0x1c0" />
<field name="FAILADDR31" bitrange="31:16">
</field>
<field name="FAILADDR30" bitrange="15:0">
</field>
</reg>
-<reg name="OCRAM_STATUS12" addr="0x1d0" sct="no">
+<reg name="OCRAM_STATUS12" sct="no">
+<addr name="OCRAM_STATUS12" addr="0x1d0" />
<field name="FAILSTATE11" bitrange="28:24">
</field>
<field name="FAILSTATE10" bitrange="20:16">
@@ -2070,7 +2009,8 @@ KIND, either express or implied.
<field name="FAILSTATE00" bitrange="4:0">
</field>
</reg>
-<reg name="OCRAM_STATUS13" addr="0x1e0" sct="no">
+<reg name="OCRAM_STATUS13" sct="no">
+<addr name="OCRAM_STATUS13" addr="0x1e0" />
<field name="FAILSTATE31" bitrange="28:24">
</field>
<field name="FAILSTATE30" bitrange="20:16">
@@ -2080,15 +2020,18 @@ KIND, either express or implied.
<field name="FAILSTATE20" bitrange="4:0">
</field>
</reg>
-<reg name="SCRATCH0" addr="0x290" sct="no">
+<reg name="SCRATCH0" sct="no">
+<addr name="SCRATCH0" addr="0x290" />
<field name="PTR" bitrange="31:0">
</field>
</reg>
-<reg name="SCRATCH1" addr="0x2a0" sct="no">
+<reg name="SCRATCH1" sct="no">
+<addr name="SCRATCH1" addr="0x2a0" />
<field name="PTR" bitrange="31:0">
</field>
</reg>
-<reg name="ARMCACHE" addr="0x2b0" sct="no">
+<reg name="ARMCACHE" sct="no">
+<addr name="ARMCACHE" addr="0x2b0" />
<field name="CACHE_SS" bitrange="9:8">
</field>
<field name="DTAG_SS" bitrange="5:4">
@@ -2096,25 +2039,30 @@ KIND, either express or implied.
<field name="ITAG_SS" bitrange="1:0">
</field>
</reg>
-<reg name="DEBUG_TRAP_ADDR_LOW" addr="0x2c0" sct="no">
+<reg name="DEBUG_TRAP_ADDR_LOW" sct="no">
+<addr name="DEBUG_TRAP_ADDR_LOW" addr="0x2c0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG_TRAP_ADDR_HIGH" addr="0x2d0" sct="no">
+<reg name="DEBUG_TRAP_ADDR_HIGH" sct="no">
+<addr name="DEBUG_TRAP_ADDR_HIGH" addr="0x2d0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="SGTL" addr="0x300" sct="no">
+<reg name="SGTL" sct="no">
+<addr name="SGTL" addr="0x300" />
<field name="COPYRIGHT" bitrange="31:0">
</field>
</reg>
-<reg name="CHIPID" addr="0x310" sct="no">
+<reg name="CHIPID" sct="no">
+<addr name="CHIPID" addr="0x310" />
<field name="PRODUCT_CODE" bitrange="31:16">
</field>
<field name="REVISION" bitrange="7:0">
</field>
</reg>
-<reg name="AHB_STATS_SELECT" addr="0x330" sct="no">
+<reg name="AHB_STATS_SELECT" sct="no">
+<addr name="AHB_STATS_SELECT" addr="0x330" />
<field name="L3_MASTER_SELECT" bitrange="27:24">
<value name="APBH" value="0x1">
</value>
@@ -2138,97 +2086,97 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="L0_AHB_ACTIVE_CYCLES" addr="0x340" sct="no">
+<reg name="L0_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L0_AHB_ACTIVE_CYCLES" addr="0x340" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L0_AHB_DATA_STALLED" addr="0x350" sct="no">
+<reg name="L0_AHB_DATA_STALLED" sct="no">
+<addr name="L0_AHB_DATA_STALLED" addr="0x350" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L0_AHB_DATA_CYCLES" addr="0x360" sct="no">
+<reg name="L0_AHB_DATA_CYCLES" sct="no">
+<addr name="L0_AHB_DATA_CYCLES" addr="0x360" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L1_AHB_ACTIVE_CYCLES" addr="0x370" sct="no">
+<reg name="L1_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L1_AHB_ACTIVE_CYCLES" addr="0x370" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L1_AHB_DATA_STALLED" addr="0x380" sct="no">
+<reg name="L1_AHB_DATA_STALLED" sct="no">
+<addr name="L1_AHB_DATA_STALLED" addr="0x380" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L1_AHB_DATA_CYCLES" addr="0x390" sct="no">
+<reg name="L1_AHB_DATA_CYCLES" sct="no">
+<addr name="L1_AHB_DATA_CYCLES" addr="0x390" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L2_AHB_ACTIVE_CYCLES" addr="0x3a0" sct="no">
+<reg name="L2_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L2_AHB_ACTIVE_CYCLES" addr="0x3a0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L2_AHB_DATA_STALLED" addr="0x3b0" sct="no">
+<reg name="L2_AHB_DATA_STALLED" sct="no">
+<addr name="L2_AHB_DATA_STALLED" addr="0x3b0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L2_AHB_DATA_CYCLES" addr="0x3c0" sct="no">
+<reg name="L2_AHB_DATA_CYCLES" sct="no">
+<addr name="L2_AHB_DATA_CYCLES" addr="0x3c0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L3_AHB_ACTIVE_CYCLES" addr="0x3d0" sct="no">
+<reg name="L3_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L3_AHB_ACTIVE_CYCLES" addr="0x3d0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L3_AHB_DATA_STALLED" addr="0x3e0" sct="no">
+<reg name="L3_AHB_DATA_STALLED" sct="no">
+<addr name="L3_AHB_DATA_STALLED" addr="0x3e0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L3_AHB_DATA_CYCLES" addr="0x3f0" sct="no">
+<reg name="L3_AHB_DATA_CYCLES" sct="no">
+<addr name="L3_AHB_DATA_CYCLES" addr="0x3f0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<multireg name="MPTEn_LOC" base="0x400" count="15" offset="0x10" sct="">
-<reg name="MPTE0_LOC" addr="0x400" index="0">
-</reg>
-<reg name="MPTE1_LOC" addr="0x410" index="1">
-</reg>
-<reg name="MPTE2_LOC" addr="0x420" index="2">
-</reg>
-<reg name="MPTE3_LOC" addr="0x430" index="3">
-</reg>
-<reg name="MPTE4_LOC" addr="0x440" index="4">
-</reg>
-<reg name="MPTE5_LOC" addr="0x450" index="5">
-</reg>
-<reg name="MPTE6_LOC" addr="0x460" index="6">
-</reg>
-<reg name="MPTE7_LOC" addr="0x470" index="7">
-</reg>
-<reg name="MPTE8_LOC" addr="0x480" index="8">
-</reg>
-<reg name="MPTE9_LOC" addr="0x490" index="9">
-</reg>
-<reg name="MPTE10_LOC" addr="0x4a0" index="10">
-</reg>
-<reg name="MPTE11_LOC" addr="0x4b0" index="11">
-</reg>
-<reg name="MPTE12_LOC" addr="0x4c0" index="12">
-</reg>
-<reg name="MPTE13_LOC" addr="0x4d0" index="13">
-</reg>
-<reg name="MPTE14_LOC" addr="0x4e0" index="14">
-</reg>
-<reg name="MPTE15_LOC" addr="0x4f0" index="15">
-</reg>
+<reg name="MPTEn_LOC" sct="no">
+<formula string="0x400+n*0x10"/>
+<addr name="MPTE0_LOC" addr="0x400" />
+<addr name="MPTE1_LOC" addr="0x410" />
+<addr name="MPTE2_LOC" addr="0x420" />
+<addr name="MPTE3_LOC" addr="0x430" />
+<addr name="MPTE4_LOC" addr="0x440" />
+<addr name="MPTE5_LOC" addr="0x450" />
+<addr name="MPTE6_LOC" addr="0x460" />
+<addr name="MPTE7_LOC" addr="0x470" />
+<addr name="MPTE8_LOC" addr="0x480" />
+<addr name="MPTE9_LOC" addr="0x490" />
+<addr name="MPTE10_LOC" addr="0x4a0" />
+<addr name="MPTE11_LOC" addr="0x4b0" />
+<addr name="MPTE12_LOC" addr="0x4c0" />
+<addr name="MPTE13_LOC" addr="0x4d0" />
+<addr name="MPTE14_LOC" addr="0x4e0" />
+<addr name="MPTE15_LOC" addr="0x4f0" />
<field name="LOC" bitrange="11:0">
</field>
-</multireg>
-<reg name="EMICLK_DELAY" addr="0x480" sct="no">
+</reg>
+<reg name="EMICLK_DELAY" sct="no">
+<addr name="EMICLK_DELAY" addr="0x480" />
<field name="NUM_TAPS" bitrange="4:0">
</field>
</reg>
</dev>
-<dev name="DRAM" addr="0x800e0000" long_name="DRAM Registers" desc="DRAM Registers">
-<reg name="CTL00" addr="0x0" sct="no">
+<dev name="DRAM" long_name="DRAM Registers" desc="DRAM Registers" version="3.2.0">
+<addr name="DRAM" addr="0x800e0000" />
+<reg name="CTL00" sct="no">
+<addr name="CTL00" addr="0x0" />
<field name="AHB0_W_PRIORITY" bitrange="24:24">
</field>
<field name="AHB0_R_PRIORITY" bitrange="16:16">
@@ -2238,7 +2186,8 @@ KIND, either express or implied.
<field name="ADDR_CMP_EN" bitrange="0:0">
</field>
</reg>
-<reg name="CTL01" addr="0x4" sct="no">
+<reg name="CTL01" sct="no">
+<addr name="CTL01" addr="0x4" />
<field name="AHB2_FIFO_TYPE_REG" bitrange="24:24">
</field>
<field name="AHB1_W_PRIORITY" bitrange="16:16">
@@ -2248,7 +2197,8 @@ KIND, either express or implied.
<field name="AHB1_FIFO_TYPE_REG" bitrange="0:0">
</field>
</reg>
-<reg name="CTL02" addr="0x8" sct="no">
+<reg name="CTL02" sct="no">
+<addr name="CTL02" addr="0x8" />
<field name="AHB3_R_PRIORITY" bitrange="24:24">
</field>
<field name="AHB3_FIFO_TYPE_REG" bitrange="16:16">
@@ -2258,7 +2208,8 @@ KIND, either express or implied.
<field name="AHB2_R_PRIORITY" bitrange="0:0">
</field>
</reg>
-<reg name="CTL03" addr="0xc" sct="no">
+<reg name="CTL03" sct="no">
+<addr name="CTL03" addr="0xc" />
<field name="AUTO_REFRESH_MODE" bitrange="24:24">
</field>
<field name="AREFRESH" bitrange="16:16">
@@ -2268,7 +2219,8 @@ KIND, either express or implied.
<field name="AHB3_W_PRIORITY" bitrange="0:0">
</field>
</reg>
-<reg name="CTL04" addr="0x10" sct="no">
+<reg name="CTL04" sct="no">
+<addr name="CTL04" addr="0x10" />
<field name="DLL_BYPASS_MODE" bitrange="24:24">
</field>
<field name="DLLLOCKREG" bitrange="16:16">
@@ -2278,7 +2230,8 @@ KIND, either express or implied.
<field name="BANK_SPLIT_EN" bitrange="0:0">
</field>
</reg>
-<reg name="CTL05" addr="0x14" sct="no">
+<reg name="CTL05" sct="no">
+<addr name="CTL05" addr="0x14" />
<field name="INTRPTREADA" bitrange="24:24">
</field>
<field name="INTRPTAPBURST" bitrange="16:16">
@@ -2288,7 +2241,8 @@ KIND, either express or implied.
<field name="EN_LOWPOWER_MODE" bitrange="0:0">
</field>
</reg>
-<reg name="CTL06" addr="0x18" sct="no">
+<reg name="CTL06" sct="no">
+<addr name="CTL06" addr="0x18" />
<field name="POWER_DOWN" bitrange="24:24">
</field>
<field name="PLACEMENT_EN" bitrange="16:16">
@@ -2298,7 +2252,8 @@ KIND, either express or implied.
<field name="INTRPTWRITEA" bitrange="0:0">
</field>
</reg>
-<reg name="CTL07" addr="0x1c" sct="no">
+<reg name="CTL07" sct="no">
+<addr name="CTL07" addr="0x1c" />
<field name="RW_SAME_EN" bitrange="24:24">
</field>
<field name="REG_DIMM_ENABLE" bitrange="16:16">
@@ -2308,7 +2263,8 @@ KIND, either express or implied.
<field name="PRIORITY_EN" bitrange="0:0">
</field>
</reg>
-<reg name="CTL08" addr="0x20" sct="no">
+<reg name="CTL08" sct="no">
+<addr name="CTL08" addr="0x20" />
<field name="TRAS_LOCKOUT" bitrange="24:24">
</field>
<field name="START" bitrange="16:16">
@@ -2318,7 +2274,8 @@ KIND, either express or implied.
<field name="SDR_MODE" bitrange="0:0">
</field>
</reg>
-<reg name="CTL09" addr="0x24" sct="no">
+<reg name="CTL09" sct="no">
+<addr name="CTL09" addr="0x24" />
<field name="OUT_OF_RANGE_TYPE" bitrange="25:24">
</field>
<field name="OUT_OF_RANGE_SOURCE_ID" bitrange="17:16">
@@ -2328,7 +2285,8 @@ KIND, either express or implied.
<field name="WRITEINTERP" bitrange="0:0">
</field>
</reg>
-<reg name="CTL10" addr="0x28" sct="no">
+<reg name="CTL10" sct="no">
+<addr name="CTL10" addr="0x28" />
<field name="AGE_COUNT" bitrange="26:24">
</field>
<field name="ADDR_PINS" bitrange="18:16">
@@ -2338,7 +2296,8 @@ KIND, either express or implied.
<field name="Q_FULLNESS" bitrange="1:0">
</field>
</reg>
-<reg name="CTL11" addr="0x2c" sct="no">
+<reg name="CTL11" sct="no">
+<addr name="CTL11" addr="0x2c" />
<field name="MAX_CS_REG" bitrange="26:24">
</field>
<field name="COMMAND_AGE_COUNT" bitrange="18:16">
@@ -2348,7 +2307,8 @@ KIND, either express or implied.
<field name="CASLAT" bitrange="2:0">
</field>
</reg>
-<reg name="CTL12" addr="0x30" sct="no">
+<reg name="CTL12" sct="no">
+<addr name="CTL12" addr="0x30" />
<field name="TWR_INT" bitrange="26:24">
</field>
<field name="TRRD" bitrange="18:16">
@@ -2356,7 +2316,8 @@ KIND, either express or implied.
<field name="TCKE" bitrange="2:0">
</field>
</reg>
-<reg name="CTL13" addr="0x34" sct="no">
+<reg name="CTL13" sct="no">
+<addr name="CTL13" addr="0x34" />
<field name="CASLAT_LIN_GATE" bitrange="27:24">
</field>
<field name="CASLAT_LIN" bitrange="19:16">
@@ -2366,7 +2327,8 @@ KIND, either express or implied.
<field name="TWTR" bitrange="2:0">
</field>
</reg>
-<reg name="CTL14" addr="0x38" sct="no">
+<reg name="CTL14" sct="no">
+<addr name="CTL14" addr="0x38" />
<field name="MAX_COL_REG" bitrange="27:24">
</field>
<field name="LOWPOWER_REFRESH_ENABLE" bitrange="19:16">
@@ -2376,7 +2338,8 @@ KIND, either express or implied.
<field name="CS_MAP" bitrange="3:0">
</field>
</reg>
-<reg name="CTL15" addr="0x3c" sct="no">
+<reg name="CTL15" sct="no">
+<addr name="CTL15" addr="0x3c" />
<field name="TRP" bitrange="27:24">
</field>
<field name="TDAL" bitrange="19:16">
@@ -2386,7 +2349,8 @@ KIND, either express or implied.
<field name="MAX_ROW_REG" bitrange="3:0">
</field>
</reg>
-<reg name="CTL16" addr="0x40" sct="no">
+<reg name="CTL16" sct="no">
+<addr name="CTL16" addr="0x40" />
<field name="TMRD" bitrange="28:24">
</field>
<field name="LOWPOWER_CONTROL" bitrange="20:16">
@@ -2396,7 +2360,8 @@ KIND, either express or implied.
<field name="INT_ACK" bitrange="3:0">
</field>
</reg>
-<reg name="CTL17" addr="0x44" sct="no">
+<reg name="CTL17" sct="no">
+<addr name="CTL17" addr="0x44" />
<field name="DLL_START_POINT" bitrange="31:24">
</field>
<field name="DLL_LOCK" bitrange="23:16">
@@ -2406,7 +2371,8 @@ KIND, either express or implied.
<field name="TRC" bitrange="4:0">
</field>
</reg>
-<reg name="CTL18" addr="0x48" sct="no">
+<reg name="CTL18" sct="no">
+<addr name="CTL18" addr="0x48" />
<field name="DLL_DQS_DELAY_1" bitrange="30:24">
</field>
<field name="DLL_DQS_DELAY_0" bitrange="22:16">
@@ -2416,7 +2382,8 @@ KIND, either express or implied.
<field name="INT_MASK" bitrange="4:0">
</field>
</reg>
-<reg name="CTL19" addr="0x4c" sct="no">
+<reg name="CTL19" sct="no">
+<addr name="CTL19" addr="0x4c" />
<field name="DQS_OUT_SHIFT_BYPASS" bitrange="31:24">
</field>
<field name="DQS_OUT_SHIFT" bitrange="22:16">
@@ -2426,7 +2393,8 @@ KIND, either express or implied.
<field name="DLL_DQS_DELAY_BYPASS_0" bitrange="7:0">
</field>
</reg>
-<reg name="CTL20" addr="0x50" sct="no">
+<reg name="CTL20" sct="no">
+<addr name="CTL20" addr="0x50" />
<field name="TRCD_INT" bitrange="31:24">
</field>
<field name="TRAS_MIN" bitrange="23:16">
@@ -2436,83 +2404,99 @@ KIND, either express or implied.
<field name="WR_DQS_SHIFT" bitrange="6:0">
</field>
</reg>
-<reg name="CTL21" addr="0x54" sct="no">
+<reg name="CTL21" sct="no">
+<addr name="CTL21" addr="0x54" />
<field name="OUT_OF_RANGE_LENGTH" bitrange="17:8">
</field>
<field name="TRFC" bitrange="7:0">
</field>
</reg>
-<reg name="CTL22" addr="0x58" sct="no">
+<reg name="CTL22" sct="no">
+<addr name="CTL22" addr="0x58" />
<field name="AHB0_WRCNT" bitrange="26:16">
</field>
<field name="AHB0_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL23" addr="0x5c" sct="no">
+<reg name="CTL23" sct="no">
+<addr name="CTL23" addr="0x5c" />
<field name="AHB1_WRCNT" bitrange="26:16">
</field>
<field name="AHB1_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL24" addr="0x60" sct="no">
+<reg name="CTL24" sct="no">
+<addr name="CTL24" addr="0x60" />
<field name="AHB2_WRCNT" bitrange="26:16">
</field>
<field name="AHB2_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL25" addr="0x64" sct="no">
+<reg name="CTL25" sct="no">
+<addr name="CTL25" addr="0x64" />
<field name="AHB3_WRCNT" bitrange="26:16">
</field>
<field name="AHB3_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL26" addr="0x68" sct="no">
+<reg name="CTL26" sct="no">
+<addr name="CTL26" addr="0x68" />
<field name="TREF" bitrange="11:0">
</field>
</reg>
-<reg name="CTL27" addr="0x6c" sct="no">
+<reg name="CTL27" sct="no">
+<addr name="CTL27" addr="0x6c" />
</reg>
-<reg name="CTL28" addr="0x70" sct="no">
+<reg name="CTL28" sct="no">
+<addr name="CTL28" addr="0x70" />
</reg>
-<reg name="CTL29" addr="0x74" sct="no">
+<reg name="CTL29" sct="no">
+<addr name="CTL29" addr="0x74" />
<field name="LOWPOWER_INTERNAL_CNT" bitrange="31:16">
</field>
<field name="LOWPOWER_EXTERNAL_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTL30" addr="0x78" sct="no">
+<reg name="CTL30" sct="no">
+<addr name="CTL30" addr="0x78" />
<field name="LOWPOWER_REFRESH_HOLD" bitrange="31:16">
</field>
<field name="LOWPOWER_POWER_DOWN_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTL31" addr="0x7c" sct="no">
+<reg name="CTL31" sct="no">
+<addr name="CTL31" addr="0x7c" />
<field name="TDLL" bitrange="31:16">
</field>
<field name="LOWPOWER_SELF_REFRESH_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTL32" addr="0x80" sct="no">
+<reg name="CTL32" sct="no">
+<addr name="CTL32" addr="0x80" />
<field name="TXSNR" bitrange="31:16">
</field>
<field name="TRAS_MAX" bitrange="15:0">
</field>
</reg>
-<reg name="CTL33" addr="0x84" sct="no">
+<reg name="CTL33" sct="no">
+<addr name="CTL33" addr="0x84" />
<field name="VERSION" bitrange="31:16">
</field>
<field name="TXSR" bitrange="15:0">
</field>
</reg>
-<reg name="CTL34" addr="0x88" sct="no">
+<reg name="CTL34" sct="no">
+<addr name="CTL34" addr="0x88" />
<field name="TINIT" bitrange="23:0">
</field>
</reg>
-<reg name="CTL35" addr="0x8c" sct="no">
+<reg name="CTL35" sct="no">
+<addr name="CTL35" addr="0x8c" />
<field name="OUT_OF_RANGE_ADDR" bitrange="30:0">
</field>
</reg>
-<reg name="CTL36" addr="0x90" sct="no">
+<reg name="CTL36" sct="no">
+<addr name="CTL36" addr="0x90" />
<field name="PWRUP_SREFRESH_EXIT" bitrange="24:24">
</field>
<field name="ENABLE_QUICK_SREFRESH" bitrange="16:16">
@@ -2522,33 +2506,39 @@ KIND, either express or implied.
<field name="ACTIVE_AGING" bitrange="0:0">
</field>
</reg>
-<reg name="CTL37" addr="0x94" sct="no">
+<reg name="CTL37" sct="no">
+<addr name="CTL37" addr="0x94" />
<field name="BUS_SHARE_TIMEOUT" bitrange="17:8">
</field>
<field name="TREF_ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="CTL38" addr="0x98" sct="no">
+<reg name="CTL38" sct="no">
+<addr name="CTL38" addr="0x98" />
<field name="EMRS2_DATA_0" bitrange="28:16">
</field>
<field name="EMRS1_DATA" bitrange="12:0">
</field>
</reg>
-<reg name="CTL39" addr="0x9c" sct="no">
+<reg name="CTL39" sct="no">
+<addr name="CTL39" addr="0x9c" />
<field name="EMRS2_DATA_2" bitrange="28:16">
</field>
<field name="EMRS2_DATA_1" bitrange="12:0">
</field>
</reg>
-<reg name="CTL40" addr="0xa0" sct="no">
+<reg name="CTL40" sct="no">
+<addr name="CTL40" addr="0xa0" />
<field name="TPDEX" bitrange="31:16">
</field>
<field name="EMRS2_DATA_3" bitrange="12:0">
</field>
</reg>
</dev>
-<dev name="DRI" addr="0x80074000" long_name="Digital Radio Interface" desc="Digital Radio Interface (DRI)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="DRI" long_name="Digital Radio Interface" desc="Digital Radio Interface (DRI)" version="3.2.0">
+<addr name="DRI" addr="0x80074000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -2630,13 +2620,15 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMING" addr="0x10" sct="no">
+<reg name="TIMING" sct="no">
+<addr name="TIMING" addr="0x10" />
<field name="PILOT_REP_RATE" bitrange="19:16">
</field>
<field name="GAP_DETECTION_INTERVAL" bitrange="7:0">
</field>
</reg>
-<reg name="STAT" addr="0x20" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x20" />
<field name="DRI_PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -2664,11 +2656,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x30" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x30" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x40" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x40" />
<field name="DMAREQ" bitrange="31:31">
</field>
<field name="DMACMDKICK" bitrange="30:30">
@@ -2690,7 +2684,8 @@ KIND, either express or implied.
<field name="FRAME" bitrange="17:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x50" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x50" />
<field name="INVERT_PILOT" bitrange="31:31">
<value name="NORMAL" value="0x0">
</value>
@@ -2724,7 +2719,8 @@ KIND, either express or implied.
<field name="SWIZZLED_FRAME" bitrange="17:0">
</field>
</reg>
-<reg name="VERSION" addr="0x60" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x60" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -2733,8 +2729,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="ECC8" addr="0x80008000" long_name="Reed-Solomon ECC" desc="8-Symbol Correcting ECC Accelerator (ECC8)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="ECC8" long_name="Reed-Solomon ECC" desc="8-Symbol Correcting ECC Accelerator (ECC8)" version="3.2.0">
+<addr name="ECC8" addr="0x80008000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -2770,7 +2768,8 @@ KIND, either express or implied.
<field name="COMPLETE_IRQ" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS0" addr="0x10" sct="no">
+<reg name="STATUS0" sct="no">
+<addr name="STATUS0" addr="0x10" />
<field name="HANDLE" bitrange="31:16">
</field>
<field name="RS8ECC_ENC_PRESENT" bitrange="15:15">
@@ -2808,7 +2807,8 @@ KIND, either express or implied.
<field name="COMPLETED_CE" bitrange="1:0">
</field>
</reg>
-<reg name="STATUS1" addr="0x20" sct="no">
+<reg name="STATUS1" sct="no">
+<addr name="STATUS1" addr="0x20" />
<field name="STATUS_PAYLOAD7" bitrange="31:28">
<value name="NO_ERRORS" value="0x0">
</value>
@@ -3018,7 +3018,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DEBUG0" addr="0x30" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x30" />
<field name="KES_DEBUG_SYNDROME_SYMBOL" bitrange="24:16">
<value name="NORMAL" value="0x0">
</value>
@@ -3064,27 +3065,33 @@ KIND, either express or implied.
<field name="DEBUG_REG_SELECT" bitrange="5:0">
</field>
</reg>
-<reg name="DBGKESREAD" addr="0x40" sct="no">
+<reg name="DBGKESREAD" sct="no">
+<addr name="DBGKESREAD" addr="0x40" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGCSFEREAD" addr="0x50" sct="no">
+<reg name="DBGCSFEREAD" sct="no">
+<addr name="DBGCSFEREAD" addr="0x50" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGSYNDGENREAD" addr="0x60" sct="no">
+<reg name="DBGSYNDGENREAD" sct="no">
+<addr name="DBGSYNDGENREAD" addr="0x60" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGAHBMREAD" addr="0x70" sct="no">
+<reg name="DBGAHBMREAD" sct="no">
+<addr name="DBGAHBMREAD" addr="0x70" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="BLOCKNAME" addr="0x80" sct="no">
+<reg name="BLOCKNAME" sct="no">
+<addr name="BLOCKNAME" addr="0x80" />
<field name="NAME" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0xa0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xa0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -3093,8 +3100,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="EMI" addr="0x80020000" long_name="External Memory Interface" desc="External Memory Interface (EMI)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="EMI" long_name="External Memory Interface" desc="External Memory Interface (EMI)" version="3.2.0">
+<addr name="EMI" addr="0x80020000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -3118,7 +3127,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x10" />
<field name="DRAM_PRESENT" bitrange="31:31">
</field>
<field name="NOR_PRESENT" bitrange="30:30">
@@ -3138,7 +3148,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIME" addr="0x20" sct="yes">
+<reg name="TIME" sct="yes">
+<addr name="TIME" addr="0x20" />
<field name="THZ" bitrange="27:24">
</field>
<field name="TDH" bitrange="19:16">
@@ -3148,33 +3159,40 @@ KIND, either express or implied.
<field name="TAS" bitrange="3:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_CSR" addr="0x30" sct="yes">
+<reg name="DDR_TEST_MODE_CSR" sct="yes">
+<addr name="DDR_TEST_MODE_CSR" addr="0x30" />
<field name="DONE" bitrange="1:1">
</field>
<field name="START" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x80" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x80" />
<field name="NOR_STATE" bitrange="3:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS0" addr="0x90" sct="no">
+<reg name="DDR_TEST_MODE_STATUS0" sct="no">
+<addr name="DDR_TEST_MODE_STATUS0" addr="0x90" />
<field name="ADDR0" bitrange="12:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS1" addr="0xa0" sct="no">
+<reg name="DDR_TEST_MODE_STATUS1" sct="no">
+<addr name="DDR_TEST_MODE_STATUS1" addr="0xa0" />
<field name="ADDR1" bitrange="12:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS2" addr="0xb0" sct="no">
+<reg name="DDR_TEST_MODE_STATUS2" sct="no">
+<addr name="DDR_TEST_MODE_STATUS2" addr="0xb0" />
<field name="DATA0" bitrange="31:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS3" addr="0xc0" sct="no">
+<reg name="DDR_TEST_MODE_STATUS3" sct="no">
+<addr name="DDR_TEST_MODE_STATUS3" addr="0xc0" />
<field name="DATA1" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0xf0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xf0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -3183,56 +3201,70 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="GPIOMON" addr="0x8003c300" long_name="GPIOMON interface" desc="GPIOMON interface">
-<reg name="BANK0_DATAIN" addr="0x0" sct="no">
+<dev name="GPIOMON" long_name="GPIOMON interface" desc="GPIOMON interface" version="3.2.0">
+<addr name="GPIOMON" addr="0x8003c300" />
+<reg name="BANK0_DATAIN" sct="no">
+<addr name="BANK0_DATAIN" addr="0x0" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK1_DATAIN" addr="0x10" sct="no">
+<reg name="BANK1_DATAIN" sct="no">
+<addr name="BANK1_DATAIN" addr="0x10" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK2_DATAIN" addr="0x20" sct="no">
+<reg name="BANK2_DATAIN" sct="no">
+<addr name="BANK2_DATAIN" addr="0x20" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK3_DATAIN" addr="0x30" sct="no">
+<reg name="BANK3_DATAIN" sct="no">
+<addr name="BANK3_DATAIN" addr="0x30" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK0_DATAOUT" addr="0x40" sct="yes">
+<reg name="BANK0_DATAOUT" sct="yes">
+<addr name="BANK0_DATAOUT" addr="0x40" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK1_DATAOUT" addr="0x50" sct="yes">
+<reg name="BANK1_DATAOUT" sct="yes">
+<addr name="BANK1_DATAOUT" addr="0x50" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK2_DATAOUT" addr="0x60" sct="yes">
+<reg name="BANK2_DATAOUT" sct="yes">
+<addr name="BANK2_DATAOUT" addr="0x60" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK3_DATAOUT" addr="0x70" sct="yes">
+<reg name="BANK3_DATAOUT" sct="yes">
+<addr name="BANK3_DATAOUT" addr="0x70" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="BANK0_DATAOEN" addr="0x80" sct="yes">
+<reg name="BANK0_DATAOEN" sct="yes">
+<addr name="BANK0_DATAOEN" addr="0x80" />
<field name="OUTPUT_ENABLES" bitrange="31:0">
</field>
</reg>
-<reg name="BANK1_DATAOEN" addr="0x90" sct="yes">
+<reg name="BANK1_DATAOEN" sct="yes">
+<addr name="BANK1_DATAOEN" addr="0x90" />
<field name="OUTPUT_ENABLES" bitrange="31:0">
</field>
</reg>
-<reg name="BANK2_DATAOEN" addr="0xa0" sct="yes">
+<reg name="BANK2_DATAOEN" sct="yes">
+<addr name="BANK2_DATAOEN" addr="0xa0" />
<field name="OUTPUT_ENABLES" bitrange="31:0">
</field>
</reg>
-<reg name="BANK3_DATAOEN" addr="0xb0" sct="yes">
+<reg name="BANK3_DATAOEN" sct="yes">
+<addr name="BANK3_DATAOEN" addr="0xb0" />
<field name="OUTPUT_ENABLES" bitrange="31:0">
</field>
</reg>
-<reg name="CTRL" addr="0xc0" sct="yes">
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0xc0" />
<field name="RSRVD" bitrange="31:4">
</field>
<field name="PINMUX_ALT_RESET" bitrange="3:3">
@@ -3244,57 +3276,71 @@ KIND, either express or implied.
<field name="OEN_NAND" bitrange="0:0">
</field>
</reg>
-<reg name="ALT1_PINMUX_BANK0" addr="0xd0" sct="yes">
+<reg name="ALT1_PINMUX_BANK0" sct="yes">
+<addr name="ALT1_PINMUX_BANK0" addr="0xd0" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT1_PINMUX_BANK1" addr="0xe0" sct="yes">
+<reg name="ALT1_PINMUX_BANK1" sct="yes">
+<addr name="ALT1_PINMUX_BANK1" addr="0xe0" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT1_PINMUX_BANK2" addr="0xf0" sct="yes">
+<reg name="ALT1_PINMUX_BANK2" sct="yes">
+<addr name="ALT1_PINMUX_BANK2" addr="0xf0" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT1_PINMUX_BANK3" addr="0x100" sct="yes">
+<reg name="ALT1_PINMUX_BANK3" sct="yes">
+<addr name="ALT1_PINMUX_BANK3" addr="0x100" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT2_PINMUX_BANK0" addr="0x110" sct="yes">
+<reg name="ALT2_PINMUX_BANK0" sct="yes">
+<addr name="ALT2_PINMUX_BANK0" addr="0x110" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT2_PINMUX_BANK1" addr="0x120" sct="yes">
+<reg name="ALT2_PINMUX_BANK1" sct="yes">
+<addr name="ALT2_PINMUX_BANK1" addr="0x120" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT2_PINMUX_BANK2" addr="0x130" sct="yes">
+<reg name="ALT2_PINMUX_BANK2" sct="yes">
+<addr name="ALT2_PINMUX_BANK2" addr="0x130" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT2_PINMUX_BANK3" addr="0x140" sct="yes">
+<reg name="ALT2_PINMUX_BANK3" sct="yes">
+<addr name="ALT2_PINMUX_BANK3" addr="0x140" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT3_PINMUX_BANK0" addr="0x150" sct="yes">
+<reg name="ALT3_PINMUX_BANK0" sct="yes">
+<addr name="ALT3_PINMUX_BANK0" addr="0x150" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT3_PINMUX_BANK1" addr="0x160" sct="yes">
+<reg name="ALT3_PINMUX_BANK1" sct="yes">
+<addr name="ALT3_PINMUX_BANK1" addr="0x160" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT3_PINMUX_BANK2" addr="0x170" sct="yes">
+<reg name="ALT3_PINMUX_BANK2" sct="yes">
+<addr name="ALT3_PINMUX_BANK2" addr="0x170" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
-<reg name="ALT3_PINMUX_BANK3" addr="0x180" sct="yes">
+<reg name="ALT3_PINMUX_BANK3" sct="yes">
+<addr name="ALT3_PINMUX_BANK3" addr="0x180" />
<field name="INDEX" bitrange="31:0">
</field>
</reg>
</dev>
-<dev name="GPMI" addr="0x8000c000" long_name="General Purpose Media Interface" desc="General Purpose Media Interface">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="GPMI" long_name="General Purpose Media Interface" desc="General Purpose Media Interface" version="3.2.0">
+<addr name="GPMI" addr="0x8000c000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -3364,13 +3410,15 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="COMPARE" addr="0x10" sct="no">
+<reg name="COMPARE" sct="no">
+<addr name="COMPARE" addr="0x10" />
<field name="MASK" bitrange="31:16">
</field>
<field name="REFERENCE" bitrange="15:0">
</field>
</reg>
-<reg name="ECCCTRL" addr="0x20" sct="yes">
+<reg name="ECCCTRL" sct="yes">
+<addr name="ECCCTRL" addr="0x20" />
<field name="HANDLE" bitrange="31:16">
</field>
<field name="ECC_CMD" bitrange="14:13">
@@ -3410,19 +3458,23 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ECCCOUNT" addr="0x30" sct="no">
+<reg name="ECCCOUNT" sct="no">
+<addr name="ECCCOUNT" addr="0x30" />
<field name="COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="PAYLOAD" addr="0x40" sct="no">
+<reg name="PAYLOAD" sct="no">
+<addr name="PAYLOAD" addr="0x40" />
<field name="ADDRESS" bitrange="31:2">
</field>
</reg>
-<reg name="AUXILIARY" addr="0x50" sct="no">
+<reg name="AUXILIARY" sct="no">
+<addr name="AUXILIARY" addr="0x50" />
<field name="ADDRESS" bitrange="31:2">
</field>
</reg>
-<reg name="CTRL1" addr="0x60" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x60" />
<field name="DSAMPLE_TIME" bitrange="14:12">
</field>
<field name="DMA2ECC_MODE" bitrange="11:11">
@@ -3462,7 +3514,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMING0" addr="0x70" sct="no">
+<reg name="TIMING0" sct="no">
+<addr name="TIMING0" addr="0x70" />
<field name="ADDRESS_SETUP" bitrange="23:16">
</field>
<field name="DATA_HOLD" bitrange="15:8">
@@ -3470,11 +3523,13 @@ KIND, either express or implied.
<field name="DATA_SETUP" bitrange="7:0">
</field>
</reg>
-<reg name="TIMING1" addr="0x80" sct="no">
+<reg name="TIMING1" sct="no">
+<addr name="TIMING1" addr="0x80" />
<field name="DEVICE_BUSY_TIMEOUT" bitrange="31:16">
</field>
</reg>
-<reg name="TIMING2" addr="0x90" sct="no">
+<reg name="TIMING2" sct="no">
+<addr name="TIMING2" addr="0x90" />
<field name="UDMA_TRP" bitrange="31:24">
</field>
<field name="UDMA_ENV" bitrange="23:16">
@@ -3484,11 +3539,13 @@ KIND, either express or implied.
<field name="UDMA_SETUP" bitrange="7:0">
</field>
</reg>
-<reg name="DATA" addr="0xa0" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0xa0" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0xb0" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0xb0" />
<field name="PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -3522,7 +3579,8 @@ KIND, either express or implied.
<field name="DEV0_ERROR" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0xc0" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0xc0" />
<field name="READY3" bitrange="31:31">
</field>
<field name="READY2" bitrange="30:30">
@@ -3608,7 +3666,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="VERSION" addr="0xd0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xd0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -3617,8 +3676,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="I2C" addr="0x80058000" long_name="I2C Interface" desc="I2C Interface">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="I2C" long_name="I2C Interface" desc="I2C Interface" version="3.2.0">
+<addr name="I2C" addr="0x80058000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -3704,25 +3765,29 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="TIMING0" addr="0x10" sct="yes">
+<reg name="TIMING0" sct="yes">
+<addr name="TIMING0" addr="0x10" />
<field name="HIGH_COUNT" bitrange="25:16">
</field>
<field name="RCV_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="TIMING1" addr="0x20" sct="yes">
+<reg name="TIMING1" sct="yes">
+<addr name="TIMING1" addr="0x20" />
<field name="LOW_COUNT" bitrange="25:16">
</field>
<field name="XMIT_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="TIMING2" addr="0x30" sct="yes">
+<reg name="TIMING2" sct="yes">
+<addr name="TIMING2" addr="0x30" />
<field name="BUS_FREE" bitrange="25:16">
</field>
<field name="LEADIN_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x40" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x40" />
<field name="BCAST_SLAVE_EN" bitrange="24:24">
<value name="NO_BCAST" value="0x0">
</value>
@@ -3828,7 +3893,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x50" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x50" />
<field name="MASTER_PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -3946,11 +4012,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x60" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x60" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x70" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x70" />
<field name="DMAREQ" bitrange="31:31">
</field>
<field name="DMAENDCMD" bitrange="30:30">
@@ -3976,7 +4044,8 @@ KIND, either express or implied.
<field name="SLAVE_STATE" bitrange="9:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x80" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x80" />
<field name="I2C_CLK_IN" bitrange="31:31">
</field>
<field name="I2C_DATA_IN" bitrange="30:30">
@@ -4010,7 +4079,8 @@ KIND, either express or implied.
<field name="FORCE_I2C_CLK_OE" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0x90" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x90" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4019,12 +4089,15 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="ICOLL" addr="0x80000000" long_name="Interrupt Collector" desc="Interrupt Collector">
-<reg name="VECTOR" addr="0x0" sct="yes">
+<dev name="ICOLL" long_name="Interrupt Collector" desc="Interrupt Collector" version="3.2.0">
+<addr name="ICOLL" addr="0x80000000" />
+<reg name="VECTOR" sct="yes">
+<addr name="VECTOR" addr="0x0" />
<field name="IRQVECTOR" bitrange="31:2">
</field>
</reg>
-<reg name="LEVELACK" addr="0x10" sct="no">
+<reg name="LEVELACK" sct="no">
+<addr name="LEVELACK" addr="0x10" />
<field name="IRQLEVELACK" bitrange="3:0">
<value name="LEVEL0" value="0x1">
</value>
@@ -4036,7 +4109,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL" addr="0x20" sct="yes">
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x20" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -4146,51 +4220,36 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x30" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x30" />
<field name="VECTOR_NUMBER" bitrange="5:0">
</field>
</reg>
-<multireg name="RAWn" base="0x40" count="1" offset="0x10" sct="">
-<reg name="RAW0" addr="0x40" index="0">
-</reg>
-<reg name="RAW1" addr="0x50" index="1">
-</reg>
+<reg name="RAWn" sct="no">
+<formula string="0x40+n*0x10"/>
+<addr name="RAW0" addr="0x40" />
+<addr name="RAW1" addr="0x50" />
<field name="RAW_IRQS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="PRIORITYn" base="0x60" count="15" offset="0x10" sct="SCT">
-<reg name="PRIORITY0" addr="0x60" index="0">
-</reg>
-<reg name="PRIORITY1" addr="0x70" index="1">
-</reg>
-<reg name="PRIORITY2" addr="0x80" index="2">
-</reg>
-<reg name="PRIORITY3" addr="0x90" index="3">
-</reg>
-<reg name="PRIORITY4" addr="0xa0" index="4">
-</reg>
-<reg name="PRIORITY5" addr="0xb0" index="5">
-</reg>
-<reg name="PRIORITY6" addr="0xc0" index="6">
-</reg>
-<reg name="PRIORITY7" addr="0xd0" index="7">
-</reg>
-<reg name="PRIORITY8" addr="0xe0" index="8">
-</reg>
-<reg name="PRIORITY9" addr="0xf0" index="9">
-</reg>
-<reg name="PRIORITY10" addr="0x100" index="10">
-</reg>
-<reg name="PRIORITY11" addr="0x110" index="11">
-</reg>
-<reg name="PRIORITY12" addr="0x120" index="12">
-</reg>
-<reg name="PRIORITY13" addr="0x130" index="13">
-</reg>
-<reg name="PRIORITY14" addr="0x140" index="14">
-</reg>
-<reg name="PRIORITY15" addr="0x150" index="15">
</reg>
+<reg name="PRIORITYn" sct="yes">
+<formula string="0x60+n*0x10"/>
+<addr name="PRIORITY0" addr="0x60" />
+<addr name="PRIORITY1" addr="0x70" />
+<addr name="PRIORITY2" addr="0x80" />
+<addr name="PRIORITY3" addr="0x90" />
+<addr name="PRIORITY4" addr="0xa0" />
+<addr name="PRIORITY5" addr="0xb0" />
+<addr name="PRIORITY6" addr="0xc0" />
+<addr name="PRIORITY7" addr="0xd0" />
+<addr name="PRIORITY8" addr="0xe0" />
+<addr name="PRIORITY9" addr="0xf0" />
+<addr name="PRIORITY10" addr="0x100" />
+<addr name="PRIORITY11" addr="0x110" />
+<addr name="PRIORITY12" addr="0x120" />
+<addr name="PRIORITY13" addr="0x130" />
+<addr name="PRIORITY14" addr="0x140" />
+<addr name="PRIORITY15" addr="0x150" />
<field name="SOFTIRQ3" bitrange="27:27">
<value name="NO_INTERRUPT" value="0x0">
</value>
@@ -4279,12 +4338,14 @@ KIND, either express or implied.
<value name="LEVEL3" value="0x3">
</value>
</field>
-</multireg>
-<reg name="VBASE" addr="0x160" sct="yes">
+</reg>
+<reg name="VBASE" sct="yes">
+<addr name="VBASE" addr="0x160" />
<field name="TABLE_ADDRESS" bitrange="31:2">
</field>
</reg>
-<reg name="DEBUG" addr="0x170" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x170" />
<field name="INSERVICE" bitrange="31:28">
<value name="LEVEL0" value="0x1">
</value>
@@ -4352,27 +4413,30 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DBGREAD0" addr="0x180" sct="no">
+<reg name="DBGREAD0" sct="no">
+<addr name="DBGREAD0" addr="0x180" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="DBGREAD1" addr="0x190" sct="no">
+<reg name="DBGREAD1" sct="no">
+<addr name="DBGREAD1" addr="0x190" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="DBGFLAG" addr="0x1a0" sct="yes">
+<reg name="DBGFLAG" sct="yes">
+<addr name="DBGFLAG" addr="0x1a0" />
<field name="FLAG" bitrange="15:0">
</field>
</reg>
-<multireg name="DBGREQUESTn" base="0x1b0" count="1" offset="0x10" sct="">
-<reg name="DBGREQUEST0" addr="0x1b0" index="0">
-</reg>
-<reg name="DBGREQUEST1" addr="0x1c0" index="1">
-</reg>
+<reg name="DBGREQUESTn" sct="no">
+<formula string="0x1b0+n*0x10"/>
+<addr name="DBGREQUEST0" addr="0x1b0" />
+<addr name="DBGREQUEST1" addr="0x1c0" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x1d0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x1d0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4381,8 +4445,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="IR" addr="0x80078000" long_name="IrDA" desc="IrDA Controller">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="IR" long_name="IrDA" desc="IrDA Controller" version="3.2.0">
+<addr name="IR" addr="0x80078000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -4464,7 +4530,8 @@ KIND, either express or implied.
<field name="RXEN" bitrange="0:0">
</field>
</reg>
-<reg name="TXDMA" addr="0x10" sct="yes">
+<reg name="TXDMA" sct="yes">
+<addr name="TXDMA" addr="0x10" />
<field name="RUN" bitrange="31:31">
</field>
<field name="EMPTY" bitrange="29:29">
@@ -4486,13 +4553,15 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="11:0">
</field>
</reg>
-<reg name="RXDMA" addr="0x20" sct="yes">
+<reg name="RXDMA" sct="yes">
+<addr name="RXDMA" addr="0x20" />
<field name="RUN" bitrange="31:31">
</field>
<field name="XFER_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="DBGCTRL" addr="0x30" sct="yes">
+<reg name="DBGCTRL" sct="yes">
+<addr name="DBGCTRL" addr="0x30" />
<field name="VFIRSWZ" bitrange="12:12">
<value name="NORMAL" value="0x0">
</value>
@@ -4524,7 +4593,8 @@ KIND, either express or implied.
<field name="MIO_EN" bitrange="0:0">
</field>
</reg>
-<reg name="INTR" addr="0x40" sct="yes">
+<reg name="INTR" sct="yes">
+<addr name="INTR" addr="0x40" />
<field name="RXABORT_IRQ_EN" bitrange="22:22">
<value name="DISABLED" value="0x0">
</value>
@@ -4610,11 +4680,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x50" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x50" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0x60" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x60" />
<field name="PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -4686,7 +4758,8 @@ KIND, either express or implied.
<field name="TX_ACTIVE" bitrange="0:0">
</field>
</reg>
-<reg name="TCCTRL" addr="0x70" sct="yes">
+<reg name="TCCTRL" sct="yes">
+<addr name="TCCTRL" addr="0x70" />
<field name="INIT" bitrange="31:31">
</field>
<field name="GO" bitrange="30:30">
@@ -4710,13 +4783,15 @@ KIND, either express or implied.
<field name="C" bitrange="0:0">
</field>
</reg>
-<reg name="SI_READ" addr="0x80" sct="no">
+<reg name="SI_READ" sct="no">
+<addr name="SI_READ" addr="0x80" />
<field name="ABORT" bitrange="8:8">
</field>
<field name="DATA" bitrange="7:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x90" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x90" />
<field name="TXDMAKICK" bitrange="5:5">
</field>
<field name="RXDMAKICK" bitrange="4:4">
@@ -4730,7 +4805,8 @@ KIND, either express or implied.
<field name="RXDMAREQ" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0xa0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xa0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4739,8 +4815,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="LCDIF" addr="0x80030000" long_name="LCD Interface" desc="LCD Interface (LCDIF)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="LCDIF" long_name="LCD Interface" desc="LCD Interface (LCDIF)" version="3.2.0">
+<addr name="LCDIF" addr="0x80030000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -4796,7 +4874,8 @@ KIND, either express or implied.
<field name="COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="BYTE_PACKING_FORMAT" bitrange="19:16">
</field>
<field name="OVERFLOW_IRQ_EN" bitrange="15:15">
@@ -4856,7 +4935,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMING" addr="0x20" sct="no">
+<reg name="TIMING" sct="no">
+<addr name="TIMING" addr="0x20" />
<field name="CMD_HOLD" bitrange="31:24">
</field>
<field name="CMD_SETUP" bitrange="23:16">
@@ -4866,7 +4946,8 @@ KIND, either express or implied.
<field name="DATA_SETUP" bitrange="7:0">
</field>
</reg>
-<reg name="VDCTRL0" addr="0x30" sct="yes">
+<reg name="VDCTRL0" sct="yes">
+<addr name="VDCTRL0" addr="0x30" />
<field name="VSYNC_OEB" bitrange="29:29">
<value name="VSYNC_OUTPUT" value="0x0">
</value>
@@ -4892,13 +4973,15 @@ KIND, either express or implied.
<field name="DOTCLK_V_VALID_DATA_CNT" bitrange="9:0">
</field>
</reg>
-<reg name="VDCTRL1" addr="0x40" sct="no">
+<reg name="VDCTRL1" sct="no">
+<addr name="VDCTRL1" addr="0x40" />
<field name="VSYNC_PULSE_WIDTH" bitrange="31:20">
</field>
<field name="VSYNC_PERIOD" bitrange="19:0">
</field>
</reg>
-<reg name="VDCTRL2" addr="0x50" sct="no">
+<reg name="VDCTRL2" sct="no">
+<addr name="VDCTRL2" addr="0x50" />
<field name="HSYNC_PULSE_WIDTH" bitrange="31:23">
</field>
<field name="HSYNC_PERIOD" bitrange="22:11">
@@ -4906,7 +4989,8 @@ KIND, either express or implied.
<field name="DOTCLK_H_VALID_DATA_CNT" bitrange="10:0">
</field>
</reg>
-<reg name="VDCTRL3" addr="0x60" sct="no">
+<reg name="VDCTRL3" sct="no">
+<addr name="VDCTRL3" addr="0x60" />
<field name="SYNC_SIGNALS_ON" bitrange="24:24">
</field>
<field name="HORIZONTAL_WAIT_CNT" bitrange="23:12">
@@ -4914,7 +4998,8 @@ KIND, either express or implied.
<field name="VERTICAL_WAIT_CNT" bitrange="8:0">
</field>
</reg>
-<reg name="DVICTRL0" addr="0x70" sct="no">
+<reg name="DVICTRL0" sct="no">
+<addr name="DVICTRL0" addr="0x70" />
<field name="H_ACTIVE_CNT" bitrange="30:20">
</field>
<field name="H_BLANKING_CNT" bitrange="19:10">
@@ -4922,7 +5007,8 @@ KIND, either express or implied.
<field name="V_LINES_CNT" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL1" addr="0x80" sct="no">
+<reg name="DVICTRL1" sct="no">
+<addr name="DVICTRL1" addr="0x80" />
<field name="F1_START_LINE" bitrange="29:20">
</field>
<field name="F1_END_LINE" bitrange="19:10">
@@ -4930,7 +5016,8 @@ KIND, either express or implied.
<field name="F2_START_LINE" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL2" addr="0x90" sct="no">
+<reg name="DVICTRL2" sct="no">
+<addr name="DVICTRL2" addr="0x90" />
<field name="F2_END_LINE" bitrange="29:20">
</field>
<field name="V1_BLANK_START_LINE" bitrange="19:10">
@@ -4938,13 +5025,15 @@ KIND, either express or implied.
<field name="V1_BLANK_END_LINE" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL3" addr="0xa0" sct="no">
+<reg name="DVICTRL3" sct="no">
+<addr name="DVICTRL3" addr="0xa0" />
<field name="V2_BLANK_START_LINE" bitrange="25:16">
</field>
<field name="V2_BLANK_END_LINE" bitrange="9:0">
</field>
</reg>
-<reg name="DATA" addr="0xb0" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0xb0" />
<field name="DATA_THREE" bitrange="31:24">
</field>
<field name="DATA_TWO" bitrange="23:16">
@@ -4954,7 +5043,8 @@ KIND, either express or implied.
<field name="DATA_ZERO" bitrange="7:0">
</field>
</reg>
-<reg name="STAT" addr="0xc0" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0xc0" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="DMA_REQ" bitrange="30:30">
@@ -4972,7 +5062,8 @@ KIND, either express or implied.
<field name="DVI_CURRENT_FIELD" bitrange="24:24">
</field>
</reg>
-<reg name="VERSION" addr="0xd0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xd0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4980,7 +5071,8 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0xe0" sct="no">
+<reg name="DEBUG0" sct="no">
+<addr name="DEBUG0" addr="0xe0" />
<field name="STREAMING_END_DETECTED" bitrange="31:31">
</field>
<field name="WAIT_FOR_VSYNC_EDGE_OUT" bitrange="30:30">
@@ -5005,8 +5097,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="LRADC" addr="0x80050000" long_name="Low Resolution ADC" desc="Low-Resolution ADC and Touch-Screen Interface">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="LRADC" long_name="Low Resolution ADC" desc="Low-Resolution ADC and Touch-Screen Interface" version="3.2.0">
+<addr name="LRADC" addr="0x80050000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -5050,7 +5144,8 @@ KIND, either express or implied.
<field name="SCHEDULE" bitrange="7:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="TOUCH_DETECT_IRQ_EN" bitrange="24:24">
<value name="DISABLE" value="0x0">
</value>
@@ -5160,7 +5255,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL2" addr="0x20" sct="yes">
+<reg name="CTRL2" sct="yes">
+<addr name="CTRL2" addr="0x20" />
<field name="DIVIDE_BY_TWO" bitrange="31:24">
</field>
<field name="BL_AMP_BYPASS" bitrange="23:23">
@@ -5270,7 +5366,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL3" addr="0x30" sct="yes">
+<reg name="CTRL3" sct="yes">
+<addr name="CTRL3" addr="0x30" />
<field name="DISCARD" bitrange="25:24">
<value name="1_SAMPLE" value="0x1">
</value>
@@ -5324,7 +5421,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STATUS" addr="0x40" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0x40" />
<field name="TEMP1_PRESENT" bitrange="26:26">
</field>
<field name="TEMP0_PRESENT" bitrange="25:25">
@@ -5354,43 +5452,18 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<multireg name="CHn" base="0x50" count="5" offset="0x10" sct="SCT">
-<reg name="CH0" addr="0x50" index="0">
-</reg>
-<reg name="CH1" addr="0x60" index="1">
-</reg>
-<reg name="CH2" addr="0x70" index="2">
-</reg>
-<reg name="CH3" addr="0x80" index="3">
-</reg>
-<reg name="CH4" addr="0x90" index="4">
-</reg>
-<reg name="CH5" addr="0xa0" index="5">
-</reg>
-<field name="TOGGLE" bitrange="31:31">
-</field>
-<field name="ACCUMULATE" bitrange="29:29">
-</field>
-<field name="NUM_SAMPLES" bitrange="28:24">
-</field>
-<field name="VALUE" bitrange="17:0">
-</field>
-</multireg>
-<reg name="CH6" addr="0xb0" sct="yes">
-<field name="TOGGLE" bitrange="31:31">
-</field>
-<field name="ACCUMULATE" bitrange="29:29">
-</field>
-<field name="NUM_SAMPLES" bitrange="28:24">
-</field>
-<field name="VALUE" bitrange="17:0">
-</field>
-</reg>
-<reg name="CH7" addr="0xc0" sct="yes">
+<reg name="CHn" sct="yes">
+<formula string="0x50+n*0x10"/>
+<addr name="CH0" addr="0x50" />
+<addr name="CH1" addr="0x60" />
+<addr name="CH2" addr="0x70" />
+<addr name="CH3" addr="0x80" />
+<addr name="CH4" addr="0x90" />
+<addr name="CH5" addr="0xa0" />
+<addr name="CH6" addr="0xb0" />
+<addr name="CH7" addr="0xc0" />
<field name="TOGGLE" bitrange="31:31">
</field>
-<field name="TESTMODE_TOGGLE" bitrange="30:30">
-</field>
<field name="ACCUMULATE" bitrange="29:29">
</field>
<field name="NUM_SAMPLES" bitrange="28:24">
@@ -5398,15 +5471,12 @@ KIND, either express or implied.
<field name="VALUE" bitrange="17:0">
</field>
</reg>
-<multireg name="DELAYn" base="0xd0" count="3" offset="0x10" sct="SCT">
-<reg name="DELAY0" addr="0xd0" index="0">
-</reg>
-<reg name="DELAY1" addr="0xe0" index="1">
-</reg>
-<reg name="DELAY2" addr="0xf0" index="2">
-</reg>
-<reg name="DELAY3" addr="0x100" index="3">
-</reg>
+<reg name="DELAYn" sct="yes">
+<formula string="0xd0+n*0x10"/>
+<addr name="DELAY0" addr="0xd0" />
+<addr name="DELAY1" addr="0xe0" />
+<addr name="DELAY2" addr="0xf0" />
+<addr name="DELAY3" addr="0x100" />
<field name="TRIGGER_LRADCS" bitrange="31:24">
</field>
<field name="KICK" bitrange="20:20">
@@ -5417,14 +5487,16 @@ KIND, either express or implied.
</field>
<field name="DELAY" bitrange="10:0">
</field>
-</multireg>
-<reg name="DEBUG0" addr="0x110" sct="no">
+</reg>
+<reg name="DEBUG0" sct="no">
+<addr name="DEBUG0" addr="0x110" />
<field name="READONLY" bitrange="31:16">
</field>
<field name="STATE" bitrange="11:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x120" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x120" />
<field name="REQUEST" bitrange="23:16">
</field>
<field name="TESTMODE_COUNT" bitrange="12:8">
@@ -5448,7 +5520,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CONVERSION" addr="0x130" sct="yes">
+<reg name="CONVERSION" sct="yes">
+<addr name="CONVERSION" addr="0x130" />
<field name="AUTOMATIC" bitrange="20:20">
<value name="DISABLE" value="0x0">
</value>
@@ -5468,7 +5541,8 @@ KIND, either express or implied.
<field name="SCALED_BATT_VOLTAGE" bitrange="9:0">
</field>
</reg>
-<reg name="CTRL4" addr="0x140" sct="yes">
+<reg name="CTRL4" sct="yes">
+<addr name="CTRL4" addr="0x140" />
<field name="LRADC7SELECT" bitrange="31:28">
<value name="CHANNEL0" value="0x0">
</value>
@@ -5742,7 +5816,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="VERSION" addr="0x150" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x150" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -5751,8 +5826,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="OCOTP" addr="0x8002c000" long_name="One-time Programmable Array Controller" desc="On-Chip OTP (OCOTP) Controller">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="OCOTP" long_name="One-time Programmable Array Controller" desc="On-Chip OTP (OCOTP) Controller" version="3.2.0">
+<addr name="OCOTP" addr="0x8002c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="WR_UNLOCK" bitrange="31:16">
<value name="KEY" value="0x3e77">
</value>
@@ -5768,59 +5845,52 @@ KIND, either express or implied.
<field name="ADDR" bitrange="4:0">
</field>
</reg>
-<reg name="DATA" addr="0x10" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x10" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<multireg name="CUSTn" base="0x20" count="3" offset="0x10" sct="">
-<reg name="CUST0" addr="0x20" index="0">
-</reg>
-<reg name="CUST1" addr="0x30" index="1">
-</reg>
-<reg name="CUST2" addr="0x40" index="2">
-</reg>
-<reg name="CUST3" addr="0x50" index="3">
-</reg>
+<reg name="CUSTn" sct="no">
+<formula string="0x20+n*0x10"/>
+<addr name="CUST0" addr="0x20" />
+<addr name="CUST1" addr="0x30" />
+<addr name="CUST2" addr="0x40" />
+<addr name="CUST3" addr="0x50" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CRYPTOn" base="0x60" count="3" offset="0x10" sct="">
-<reg name="CRYPTO0" addr="0x60" index="0">
-</reg>
-<reg name="CRYPTO1" addr="0x70" index="1">
-</reg>
-<reg name="CRYPTO2" addr="0x80" index="2">
-</reg>
-<reg name="CRYPTO3" addr="0x90" index="3">
</reg>
+<reg name="CRYPTOn" sct="no">
+<formula string="0x60+n*0x10"/>
+<addr name="CRYPTO0" addr="0x60" />
+<addr name="CRYPTO1" addr="0x70" />
+<addr name="CRYPTO2" addr="0x80" />
+<addr name="CRYPTO3" addr="0x90" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="HWCAPn" base="0xa0" count="5" offset="0x10" sct="">
-<reg name="HWCAP0" addr="0xa0" index="0">
-</reg>
-<reg name="HWCAP1" addr="0xb0" index="1">
-</reg>
-<reg name="HWCAP2" addr="0xc0" index="2">
-</reg>
-<reg name="HWCAP3" addr="0xd0" index="3">
-</reg>
-<reg name="HWCAP4" addr="0xe0" index="4">
-</reg>
-<reg name="HWCAP5" addr="0xf0" index="5">
</reg>
+<reg name="HWCAPn" sct="no">
+<formula string="0xa0+n*0x10"/>
+<addr name="HWCAP0" addr="0xa0" />
+<addr name="HWCAP1" addr="0xb0" />
+<addr name="HWCAP2" addr="0xc0" />
+<addr name="HWCAP3" addr="0xd0" />
+<addr name="HWCAP4" addr="0xe0" />
+<addr name="HWCAP5" addr="0xf0" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<reg name="SWCAP" addr="0x100" sct="no">
+</reg>
+<reg name="SWCAP" sct="no">
+<addr name="SWCAP" addr="0x100" />
<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="CUSTCAP" addr="0x110" sct="no">
+<reg name="CUSTCAP" sct="no">
+<addr name="CUSTCAP" addr="0x110" />
<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="LOCK" addr="0x120" sct="no">
+<reg name="LOCK" sct="no">
+<addr name="LOCK" addr="0x120" />
<field name="ROM7" bitrange="31:31">
</field>
<field name="ROM6" bitrange="30:30">
@@ -5876,49 +5946,38 @@ KIND, either express or implied.
<field name="CUST0" bitrange="0:0">
</field>
</reg>
-<multireg name="OPSn" base="0x130" count="3" offset="0x10" sct="">
-<reg name="OPS0" addr="0x130" index="0">
-</reg>
-<reg name="OPS1" addr="0x140" index="1">
-</reg>
-<reg name="OPS2" addr="0x150" index="2">
-</reg>
-<reg name="OPS3" addr="0x160" index="3">
-</reg>
+<reg name="OPSn" sct="no">
+<formula string="0x130+n*0x10"/>
+<addr name="OPS0" addr="0x130" />
+<addr name="OPS1" addr="0x140" />
+<addr name="OPS2" addr="0x150" />
+<addr name="OPS3" addr="0x160" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="UNn" base="0x170" count="2" offset="0x10" sct="">
-<reg name="UN0" addr="0x170" index="0">
-</reg>
-<reg name="UN1" addr="0x180" index="1">
-</reg>
-<reg name="UN2" addr="0x190" index="2">
</reg>
+<reg name="UNn" sct="no">
+<formula string="0x170+n*0x10"/>
+<addr name="UN0" addr="0x170" />
+<addr name="UN1" addr="0x180" />
+<addr name="UN2" addr="0x190" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="ROMn" base="0x1a0" count="7" offset="0x10" sct="">
-<reg name="ROM0" addr="0x1a0" index="0">
-</reg>
-<reg name="ROM1" addr="0x1b0" index="1">
-</reg>
-<reg name="ROM2" addr="0x1c0" index="2">
-</reg>
-<reg name="ROM3" addr="0x1d0" index="3">
-</reg>
-<reg name="ROM4" addr="0x1e0" index="4">
-</reg>
-<reg name="ROM5" addr="0x1f0" index="5">
-</reg>
-<reg name="ROM6" addr="0x200" index="6">
-</reg>
-<reg name="ROM7" addr="0x210" index="7">
</reg>
+<reg name="ROMn" sct="no">
+<formula string="0x1a0+n*0x10"/>
+<addr name="ROM0" addr="0x1a0" />
+<addr name="ROM1" addr="0x1b0" />
+<addr name="ROM2" addr="0x1c0" />
+<addr name="ROM3" addr="0x1d0" />
+<addr name="ROM4" addr="0x1e0" />
+<addr name="ROM5" addr="0x1f0" />
+<addr name="ROM6" addr="0x200" />
+<addr name="ROM7" addr="0x210" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x220" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x220" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -5927,8 +5986,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="PINCTRL" addr="0x80018000" long_name="Pin Control" desc="Pin Control and GPIO">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="PINCTRL" long_name="Pin Control" desc="Pin Control and GPIO" version="3.2.0">
+<addr name="PINCTRL" addr="0x80018000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -5950,909 +6011,117 @@ KIND, either express or implied.
<field name="IRQOUT0" bitrange="0:0">
</field>
</reg>
-<reg name="MUXSEL0" addr="0x100" sct="yes">
-<field name="BANK0_PIN15" bitrange="31:30">
-</field>
-<field name="BANK0_PIN14" bitrange="29:28">
-</field>
-<field name="BANK0_PIN13" bitrange="27:26">
-</field>
-<field name="BANK0_PIN12" bitrange="25:24">
-</field>
-<field name="BANK0_PIN11" bitrange="23:22">
-</field>
-<field name="BANK0_PIN10" bitrange="21:20">
-</field>
-<field name="BANK0_PIN09" bitrange="19:18">
-</field>
-<field name="BANK0_PIN08" bitrange="17:16">
-</field>
-<field name="BANK0_PIN07" bitrange="15:14">
-</field>
-<field name="BANK0_PIN06" bitrange="13:12">
-</field>
-<field name="BANK0_PIN05" bitrange="11:10">
-</field>
-<field name="BANK0_PIN04" bitrange="9:8">
-</field>
-<field name="BANK0_PIN03" bitrange="7:6">
-</field>
-<field name="BANK0_PIN02" bitrange="5:4">
-</field>
-<field name="BANK0_PIN01" bitrange="3:2">
-</field>
-<field name="BANK0_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL1" addr="0x110" sct="yes">
-<field name="BANK0_PIN29" bitrange="27:26">
-</field>
-<field name="BANK0_PIN28" bitrange="25:24">
-</field>
-<field name="BANK0_PIN27" bitrange="23:22">
-</field>
-<field name="BANK0_PIN26" bitrange="21:20">
-</field>
-<field name="BANK0_PIN25" bitrange="19:18">
-</field>
-<field name="BANK0_PIN24" bitrange="17:16">
-</field>
-<field name="BANK0_PIN23" bitrange="15:14">
-</field>
-<field name="BANK0_PIN22" bitrange="13:12">
-</field>
-<field name="BANK0_PIN21" bitrange="11:10">
-</field>
-<field name="BANK0_PIN20" bitrange="9:8">
-</field>
-<field name="BANK0_PIN19" bitrange="7:6">
-</field>
-<field name="BANK0_PIN18" bitrange="5:4">
-</field>
-<field name="BANK0_PIN17" bitrange="3:2">
-</field>
-<field name="BANK0_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL2" addr="0x120" sct="yes">
-<field name="BANK1_PIN15" bitrange="31:30">
-</field>
-<field name="BANK1_PIN14" bitrange="29:28">
-</field>
-<field name="BANK1_PIN13" bitrange="27:26">
-</field>
-<field name="BANK1_PIN12" bitrange="25:24">
-</field>
-<field name="BANK1_PIN11" bitrange="23:22">
-</field>
-<field name="BANK1_PIN10" bitrange="21:20">
-</field>
-<field name="BANK1_PIN09" bitrange="19:18">
-</field>
-<field name="BANK1_PIN08" bitrange="17:16">
-</field>
-<field name="BANK1_PIN07" bitrange="15:14">
-</field>
-<field name="BANK1_PIN06" bitrange="13:12">
-</field>
-<field name="BANK1_PIN05" bitrange="11:10">
-</field>
-<field name="BANK1_PIN04" bitrange="9:8">
-</field>
-<field name="BANK1_PIN03" bitrange="7:6">
-</field>
-<field name="BANK1_PIN02" bitrange="5:4">
-</field>
-<field name="BANK1_PIN01" bitrange="3:2">
-</field>
-<field name="BANK1_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL3" addr="0x130" sct="yes">
-<field name="BANK1_PIN28" bitrange="25:24">
-</field>
-<field name="BANK1_PIN27" bitrange="23:22">
-</field>
-<field name="BANK1_PIN26" bitrange="21:20">
-</field>
-<field name="BANK1_PIN25" bitrange="19:18">
-</field>
-<field name="BANK1_PIN24" bitrange="17:16">
-</field>
-<field name="BANK1_PIN23" bitrange="15:14">
-</field>
-<field name="BANK1_PIN22" bitrange="13:12">
-</field>
-<field name="BANK1_PIN21" bitrange="11:10">
-</field>
-<field name="BANK1_PIN20" bitrange="9:8">
-</field>
-<field name="BANK1_PIN19" bitrange="7:6">
-</field>
-<field name="BANK1_PIN18" bitrange="5:4">
-</field>
-<field name="BANK1_PIN17" bitrange="3:2">
-</field>
-<field name="BANK1_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL4" addr="0x140" sct="yes">
-<field name="BANK2_PIN15" bitrange="31:30">
-</field>
-<field name="BANK2_PIN14" bitrange="29:28">
-</field>
-<field name="BANK2_PIN13" bitrange="27:26">
-</field>
-<field name="BANK2_PIN12" bitrange="25:24">
-</field>
-<field name="BANK2_PIN11" bitrange="23:22">
-</field>
-<field name="BANK2_PIN10" bitrange="21:20">
-</field>
-<field name="BANK2_PIN09" bitrange="19:18">
-</field>
-<field name="BANK2_PIN08" bitrange="17:16">
-</field>
-<field name="BANK2_PIN07" bitrange="15:14">
-</field>
-<field name="BANK2_PIN06" bitrange="13:12">
-</field>
-<field name="BANK2_PIN05" bitrange="11:10">
-</field>
-<field name="BANK2_PIN04" bitrange="9:8">
-</field>
-<field name="BANK2_PIN03" bitrange="7:6">
-</field>
-<field name="BANK2_PIN02" bitrange="5:4">
-</field>
-<field name="BANK2_PIN01" bitrange="3:2">
-</field>
-<field name="BANK2_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL5" addr="0x150" sct="yes">
-<field name="BANK2_PIN31" bitrange="31:30">
-</field>
-<field name="BANK2_PIN30" bitrange="29:28">
-</field>
-<field name="BANK2_PIN29" bitrange="27:26">
-</field>
-<field name="BANK2_PIN28" bitrange="25:24">
-</field>
-<field name="BANK2_PIN27" bitrange="23:22">
-</field>
-<field name="BANK2_PIN26" bitrange="21:20">
-</field>
-<field name="BANK2_PIN25" bitrange="19:18">
-</field>
-<field name="BANK2_PIN24" bitrange="17:16">
-</field>
-<field name="BANK2_PIN23" bitrange="15:14">
-</field>
-<field name="BANK2_PIN22" bitrange="13:12">
-</field>
-<field name="BANK2_PIN21" bitrange="11:10">
-</field>
-<field name="BANK2_PIN20" bitrange="9:8">
-</field>
-<field name="BANK2_PIN19" bitrange="7:6">
-</field>
-<field name="BANK2_PIN18" bitrange="5:4">
-</field>
-<field name="BANK2_PIN17" bitrange="3:2">
-</field>
-<field name="BANK2_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL6" addr="0x160" sct="yes">
-<field name="BANK3_PIN15" bitrange="31:30">
-</field>
-<field name="BANK3_PIN14" bitrange="29:28">
-</field>
-<field name="BANK3_PIN13" bitrange="27:26">
-</field>
-<field name="BANK3_PIN12" bitrange="25:24">
-</field>
-<field name="BANK3_PIN11" bitrange="23:22">
-</field>
-<field name="BANK3_PIN10" bitrange="21:20">
-</field>
-<field name="BANK3_PIN09" bitrange="19:18">
-</field>
-<field name="BANK3_PIN08" bitrange="17:16">
-</field>
-<field name="BANK3_PIN07" bitrange="15:14">
-</field>
-<field name="BANK3_PIN06" bitrange="13:12">
-</field>
-<field name="BANK3_PIN05" bitrange="11:10">
-</field>
-<field name="BANK3_PIN04" bitrange="9:8">
-</field>
-<field name="BANK3_PIN03" bitrange="7:6">
-</field>
-<field name="BANK3_PIN02" bitrange="5:4">
-</field>
-<field name="BANK3_PIN01" bitrange="3:2">
-</field>
-<field name="BANK3_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL7" addr="0x170" sct="yes">
-<field name="BANK3_PIN21" bitrange="11:10">
-</field>
-<field name="BANK3_PIN20" bitrange="9:8">
-</field>
-<field name="BANK3_PIN19" bitrange="7:6">
-</field>
-<field name="BANK3_PIN18" bitrange="5:4">
-</field>
-<field name="BANK3_PIN17" bitrange="3:2">
-</field>
-<field name="BANK3_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE0" addr="0x200" sct="yes">
-<field name="BANK0_PIN07_V" bitrange="30:30">
-</field>
-<field name="BANK0_PIN07_MA" bitrange="29:28">
-</field>
-<field name="BANK0_PIN06_V" bitrange="26:26">
-</field>
-<field name="BANK0_PIN06_MA" bitrange="25:24">
-</field>
-<field name="BANK0_PIN05_V" bitrange="22:22">
-</field>
-<field name="BANK0_PIN05_MA" bitrange="21:20">
-</field>
-<field name="BANK0_PIN04_V" bitrange="18:18">
-</field>
-<field name="BANK0_PIN04_MA" bitrange="17:16">
-</field>
-<field name="BANK0_PIN03_V" bitrange="14:14">
-</field>
-<field name="BANK0_PIN03_MA" bitrange="13:12">
-</field>
-<field name="BANK0_PIN02_V" bitrange="10:10">
-</field>
-<field name="BANK0_PIN02_MA" bitrange="9:8">
-</field>
-<field name="BANK0_PIN01_V" bitrange="6:6">
-</field>
-<field name="BANK0_PIN01_MA" bitrange="5:4">
-</field>
-<field name="BANK0_PIN00_V" bitrange="2:2">
-</field>
-<field name="BANK0_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE1" addr="0x210" sct="yes">
-<field name="BANK0_PIN15_V" bitrange="30:30">
-</field>
-<field name="BANK0_PIN15_MA" bitrange="29:28">
-</field>
-<field name="BANK0_PIN14_V" bitrange="26:26">
-</field>
-<field name="BANK0_PIN14_MA" bitrange="25:24">
-</field>
-<field name="BANK0_PIN13_V" bitrange="22:22">
-</field>
-<field name="BANK0_PIN13_MA" bitrange="21:20">
-</field>
-<field name="BANK0_PIN12_V" bitrange="18:18">
-</field>
-<field name="BANK0_PIN12_MA" bitrange="17:16">
-</field>
-<field name="BANK0_PIN11_V" bitrange="14:14">
-</field>
-<field name="BANK0_PIN11_MA" bitrange="13:12">
-</field>
-<field name="BANK0_PIN10_V" bitrange="10:10">
-</field>
-<field name="BANK0_PIN10_MA" bitrange="9:8">
-</field>
-<field name="BANK0_PIN09_V" bitrange="6:6">
-</field>
-<field name="BANK0_PIN09_MA" bitrange="5:4">
-</field>
-<field name="BANK0_PIN08_V" bitrange="2:2">
-</field>
-<field name="BANK0_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE2" addr="0x220" sct="yes">
-<field name="BANK0_PIN23_V" bitrange="30:30">
-</field>
-<field name="BANK0_PIN23_MA" bitrange="29:28">
-</field>
-<field name="BANK0_PIN22_V" bitrange="26:26">
-</field>
-<field name="BANK0_PIN22_MA" bitrange="25:24">
-</field>
-<field name="BANK0_PIN21_V" bitrange="22:22">
-</field>
-<field name="BANK0_PIN21_MA" bitrange="21:20">
-</field>
-<field name="BANK0_PIN20_V" bitrange="18:18">
-</field>
-<field name="BANK0_PIN20_MA" bitrange="17:16">
-</field>
-<field name="BANK0_PIN19_V" bitrange="14:14">
-</field>
-<field name="BANK0_PIN19_MA" bitrange="13:12">
-</field>
-<field name="BANK0_PIN18_V" bitrange="10:10">
-</field>
-<field name="BANK0_PIN18_MA" bitrange="9:8">
-</field>
-<field name="BANK0_PIN17_V" bitrange="6:6">
-</field>
-<field name="BANK0_PIN17_MA" bitrange="5:4">
-</field>
-<field name="BANK0_PIN16_V" bitrange="2:2">
-</field>
-<field name="BANK0_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE3" addr="0x230" sct="yes">
-<field name="BANK0_PIN29_V" bitrange="22:22">
-</field>
-<field name="BANK0_PIN29_MA" bitrange="21:20">
-</field>
-<field name="BANK0_PIN28_V" bitrange="18:18">
-</field>
-<field name="BANK0_PIN28_MA" bitrange="17:16">
-</field>
-<field name="BANK0_PIN27_V" bitrange="14:14">
-</field>
-<field name="BANK0_PIN27_MA" bitrange="13:12">
-</field>
-<field name="BANK0_PIN26_V" bitrange="10:10">
-</field>
-<field name="BANK0_PIN26_MA" bitrange="9:8">
-</field>
-<field name="BANK0_PIN25_V" bitrange="6:6">
-</field>
-<field name="BANK0_PIN25_MA" bitrange="5:4">
-</field>
-<field name="BANK0_PIN24_V" bitrange="2:2">
-</field>
-<field name="BANK0_PIN24_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE4" addr="0x240" sct="yes">
-<field name="BANK1_PIN07_V" bitrange="30:30">
-</field>
-<field name="BANK1_PIN07_MA" bitrange="29:28">
-</field>
-<field name="BANK1_PIN06_V" bitrange="26:26">
-</field>
-<field name="BANK1_PIN06_MA" bitrange="25:24">
-</field>
-<field name="BANK1_PIN05_V" bitrange="22:22">
-</field>
-<field name="BANK1_PIN05_MA" bitrange="21:20">
-</field>
-<field name="BANK1_PIN04_V" bitrange="18:18">
-</field>
-<field name="BANK1_PIN04_MA" bitrange="17:16">
-</field>
-<field name="BANK1_PIN03_V" bitrange="14:14">
-</field>
-<field name="BANK1_PIN03_MA" bitrange="13:12">
-</field>
-<field name="BANK1_PIN02_V" bitrange="10:10">
-</field>
-<field name="BANK1_PIN02_MA" bitrange="9:8">
-</field>
-<field name="BANK1_PIN01_V" bitrange="6:6">
-</field>
-<field name="BANK1_PIN01_MA" bitrange="5:4">
-</field>
-<field name="BANK1_PIN00_V" bitrange="2:2">
-</field>
-<field name="BANK1_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE5" addr="0x250" sct="yes">
-<field name="BANK1_PIN15_V" bitrange="30:30">
-</field>
-<field name="BANK1_PIN15_MA" bitrange="29:28">
-</field>
-<field name="BANK1_PIN14_V" bitrange="26:26">
-</field>
-<field name="BANK1_PIN14_MA" bitrange="25:24">
-</field>
-<field name="BANK1_PIN13_V" bitrange="22:22">
-</field>
-<field name="BANK1_PIN13_MA" bitrange="21:20">
-</field>
-<field name="BANK1_PIN12_V" bitrange="18:18">
-</field>
-<field name="BANK1_PIN12_MA" bitrange="17:16">
-</field>
-<field name="BANK1_PIN11_V" bitrange="14:14">
-</field>
-<field name="BANK1_PIN11_MA" bitrange="13:12">
-</field>
-<field name="BANK1_PIN10_V" bitrange="10:10">
-</field>
-<field name="BANK1_PIN10_MA" bitrange="9:8">
-</field>
-<field name="BANK1_PIN09_V" bitrange="6:6">
-</field>
-<field name="BANK1_PIN09_MA" bitrange="5:4">
-</field>
-<field name="BANK1_PIN08_V" bitrange="2:2">
-</field>
-<field name="BANK1_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE6" addr="0x260" sct="yes">
-<field name="BANK1_PIN23_V" bitrange="30:30">
-</field>
-<field name="BANK1_PIN23_MA" bitrange="29:28">
-</field>
-<field name="BANK1_PIN22_V" bitrange="26:26">
-</field>
-<field name="BANK1_PIN22_MA" bitrange="25:24">
-</field>
-<field name="BANK1_PIN21_V" bitrange="22:22">
-</field>
-<field name="BANK1_PIN21_MA" bitrange="21:20">
-</field>
-<field name="BANK1_PIN20_V" bitrange="18:18">
-</field>
-<field name="BANK1_PIN20_MA" bitrange="17:16">
-</field>
-<field name="BANK1_PIN19_V" bitrange="14:14">
-</field>
-<field name="BANK1_PIN19_MA" bitrange="13:12">
-</field>
-<field name="BANK1_PIN18_V" bitrange="10:10">
-</field>
-<field name="BANK1_PIN18_MA" bitrange="9:8">
-</field>
-<field name="BANK1_PIN17_V" bitrange="6:6">
-</field>
-<field name="BANK1_PIN17_MA" bitrange="5:4">
-</field>
-<field name="BANK1_PIN16_V" bitrange="2:2">
-</field>
-<field name="BANK1_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE7" addr="0x270" sct="yes">
-<field name="BANK1_PIN28_V" bitrange="18:18">
-</field>
-<field name="BANK1_PIN28_MA" bitrange="17:16">
-</field>
-<field name="BANK1_PIN27_V" bitrange="14:14">
-</field>
-<field name="BANK1_PIN27_MA" bitrange="13:12">
-</field>
-<field name="BANK1_PIN26_V" bitrange="10:10">
-</field>
-<field name="BANK1_PIN26_MA" bitrange="9:8">
-</field>
-<field name="BANK1_PIN25_V" bitrange="6:6">
-</field>
-<field name="BANK1_PIN25_MA" bitrange="5:4">
-</field>
-<field name="BANK1_PIN24_V" bitrange="2:2">
-</field>
-<field name="BANK1_PIN24_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE8" addr="0x280" sct="yes">
-<field name="BANK2_PIN07_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN07_MA" bitrange="29:28">
-</field>
-<field name="BANK2_PIN06_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN06_MA" bitrange="25:24">
-</field>
-<field name="BANK2_PIN05_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN05_MA" bitrange="21:20">
-</field>
-<field name="BANK2_PIN04_V" bitrange="18:18">
-</field>
-<field name="BANK2_PIN04_MA" bitrange="17:16">
-</field>
-<field name="BANK2_PIN03_V" bitrange="14:14">
-</field>
-<field name="BANK2_PIN03_MA" bitrange="13:12">
-</field>
-<field name="BANK2_PIN02_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN02_MA" bitrange="9:8">
-</field>
-<field name="BANK2_PIN01_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN01_MA" bitrange="5:4">
-</field>
-<field name="BANK2_PIN00_V" bitrange="2:2">
-</field>
-<field name="BANK2_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE9" addr="0x290" sct="yes">
-<field name="BANK2_PIN15_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN15_MA" bitrange="29:28">
-</field>
-<field name="BANK2_PIN14_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN14_MA" bitrange="25:24">
-</field>
-<field name="BANK2_PIN13_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN13_MA" bitrange="21:20">
-</field>
-<field name="BANK2_PIN12_V" bitrange="18:18">
-</field>
-<field name="BANK2_PIN12_MA" bitrange="17:16">
-</field>
-<field name="BANK2_PIN11_V" bitrange="14:14">
-</field>
-<field name="BANK2_PIN11_MA" bitrange="13:12">
-</field>
-<field name="BANK2_PIN10_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN10_MA" bitrange="9:8">
-</field>
-<field name="BANK2_PIN09_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN09_MA" bitrange="5:4">
-</field>
-<field name="BANK2_PIN08_V" bitrange="2:2">
-</field>
-<field name="BANK2_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE10" addr="0x2a0" sct="yes">
-<field name="BANK2_PIN23_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN23_MA" bitrange="29:28">
-</field>
-<field name="BANK2_PIN22_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN22_MA" bitrange="25:24">
-</field>
-<field name="BANK2_PIN21_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN21_MA" bitrange="21:20">
-</field>
-<field name="BANK2_PIN20_V" bitrange="18:18">
-</field>
-<field name="BANK2_PIN20_MA" bitrange="17:16">
-</field>
-<field name="BANK2_PIN19_V" bitrange="14:14">
-</field>
-<field name="BANK2_PIN19_MA" bitrange="13:12">
-</field>
-<field name="BANK2_PIN18_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN18_MA" bitrange="9:8">
-</field>
-<field name="BANK2_PIN17_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN17_MA" bitrange="5:4">
-</field>
-<field name="BANK2_PIN16_V" bitrange="2:2">
-</field>
-<field name="BANK2_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE11" addr="0x2b0" sct="yes">
-<field name="BANK2_PIN31_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN31_MA" bitrange="29:28">
-</field>
-<field name="BANK2_PIN30_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN30_MA" bitrange="25:24">
-</field>
-<field name="BANK2_PIN29_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN29_MA" bitrange="21:20">
-</field>
-<field name="BANK2_PIN28_V" bitrange="18:18">
-</field>
-<field name="BANK2_PIN28_MA" bitrange="17:16">
-</field>
-<field name="BANK2_PIN27_V" bitrange="14:14">
-</field>
-<field name="BANK2_PIN27_MA" bitrange="13:12">
-</field>
-<field name="BANK2_PIN26_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN26_MA" bitrange="9:8">
-</field>
-<field name="BANK2_PIN25_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN25_MA" bitrange="5:4">
-</field>
-<field name="BANK2_PIN24_V" bitrange="2:2">
-</field>
-<field name="BANK2_PIN24_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE12" addr="0x2c0" sct="yes">
-<field name="BANK3_PIN07_V" bitrange="30:30">
-</field>
-<field name="BANK3_PIN07_MA" bitrange="29:28">
-</field>
-<field name="BANK3_PIN06_V" bitrange="26:26">
-</field>
-<field name="BANK3_PIN06_MA" bitrange="25:24">
-</field>
-<field name="BANK3_PIN05_V" bitrange="22:22">
-</field>
-<field name="BANK3_PIN05_MA" bitrange="21:20">
-</field>
-<field name="BANK3_PIN04_V" bitrange="18:18">
-</field>
-<field name="BANK3_PIN04_MA" bitrange="17:16">
-</field>
-<field name="BANK3_PIN03_V" bitrange="14:14">
-</field>
-<field name="BANK3_PIN03_MA" bitrange="13:12">
-</field>
-<field name="BANK3_PIN02_V" bitrange="10:10">
-</field>
-<field name="BANK3_PIN02_MA" bitrange="9:8">
-</field>
-<field name="BANK3_PIN01_V" bitrange="6:6">
-</field>
-<field name="BANK3_PIN01_MA" bitrange="5:4">
-</field>
-<field name="BANK3_PIN00_V" bitrange="2:2">
-</field>
-<field name="BANK3_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE13" addr="0x2d0" sct="yes">
-<field name="BANK3_PIN15_V" bitrange="30:30">
-</field>
-<field name="BANK3_PIN15_MA" bitrange="29:28">
-</field>
-<field name="BANK3_PIN14_V" bitrange="26:26">
-</field>
-<field name="BANK3_PIN14_MA" bitrange="25:24">
-</field>
-<field name="BANK3_PIN13_V" bitrange="22:22">
-</field>
-<field name="BANK3_PIN13_MA" bitrange="21:20">
-</field>
-<field name="BANK3_PIN12_V" bitrange="18:18">
-</field>
-<field name="BANK3_PIN12_MA" bitrange="17:16">
-</field>
-<field name="BANK3_PIN11_V" bitrange="14:14">
-</field>
-<field name="BANK3_PIN11_MA" bitrange="13:12">
-</field>
-<field name="BANK3_PIN10_V" bitrange="10:10">
-</field>
-<field name="BANK3_PIN10_MA" bitrange="9:8">
-</field>
-<field name="BANK3_PIN09_V" bitrange="6:6">
-</field>
-<field name="BANK3_PIN09_MA" bitrange="5:4">
-</field>
-<field name="BANK3_PIN08_V" bitrange="2:2">
-</field>
-<field name="BANK3_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE14" addr="0x2e0" sct="yes">
-<field name="BANK3_PIN21_V" bitrange="22:22">
-</field>
-<field name="BANK3_PIN21_MA" bitrange="21:20">
-</field>
-<field name="BANK3_PIN20_V" bitrange="18:18">
-</field>
-<field name="BANK3_PIN20_MA" bitrange="17:16">
-</field>
-<field name="BANK3_PIN19_V" bitrange="14:14">
-</field>
-<field name="BANK3_PIN19_MA" bitrange="13:12">
-</field>
-<field name="BANK3_PIN18_V" bitrange="10:10">
-</field>
-<field name="BANK3_PIN18_MA" bitrange="9:8">
-</field>
-<field name="BANK3_PIN17_V" bitrange="6:6">
-</field>
-<field name="BANK3_PIN17_MA" bitrange="5:4">
-</field>
-<field name="BANK3_PIN16_V" bitrange="2:2">
-</field>
-<field name="BANK3_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="PULL0" addr="0x300" sct="yes">
-<field name="BANK0_PIN29" bitrange="29:29">
-</field>
-<field name="BANK0_PIN28" bitrange="28:28">
-</field>
-<field name="BANK0_PIN27" bitrange="27:27">
-</field>
-<field name="BANK0_PIN26" bitrange="26:26">
-</field>
-<field name="BANK0_PIN20" bitrange="20:20">
-</field>
-<field name="BANK0_PIN07" bitrange="7:7">
-</field>
-<field name="BANK0_PIN06" bitrange="6:6">
-</field>
-<field name="BANK0_PIN05" bitrange="5:5">
-</field>
-<field name="BANK0_PIN04" bitrange="4:4">
-</field>
-<field name="BANK0_PIN03" bitrange="3:3">
-</field>
-<field name="BANK0_PIN02" bitrange="2:2">
-</field>
-<field name="BANK0_PIN01" bitrange="1:1">
-</field>
-</reg>
-<reg name="PULL1" addr="0x310" sct="yes">
-<field name="BANK1_PIN27" bitrange="27:27">
-</field>
-<field name="BANK1_PIN26" bitrange="26:26">
-</field>
-<field name="BANK1_PIN25" bitrange="25:25">
-</field>
-<field name="BANK1_PIN24" bitrange="24:24">
-</field>
-<field name="BANK1_PIN22" bitrange="22:22">
-</field>
-</reg>
-<reg name="PULL2" addr="0x320" sct="yes">
-<field name="BANK2_PIN14" bitrange="14:14">
-</field>
-</reg>
-<reg name="PULL3" addr="0x330" sct="yes">
-<field name="BANK3_PIN17" bitrange="17:17">
-</field>
-<field name="BANK3_PIN16" bitrange="16:16">
-</field>
-<field name="BANK3_PIN15" bitrange="15:15">
-</field>
-<field name="BANK3_PIN14" bitrange="14:14">
-</field>
-<field name="BANK3_PIN13" bitrange="13:13">
-</field>
-<field name="BANK3_PIN12" bitrange="12:12">
-</field>
-<field name="BANK3_PIN11" bitrange="11:11">
-</field>
-<field name="BANK3_PIN10" bitrange="10:10">
-</field>
-<field name="BANK3_PIN09" bitrange="9:9">
-</field>
-<field name="BANK3_PIN08" bitrange="8:8">
-</field>
-<field name="BANK3_PIN07" bitrange="7:7">
-</field>
-<field name="BANK3_PIN06" bitrange="6:6">
-</field>
-<field name="BANK3_PIN05" bitrange="5:5">
-</field>
-<field name="BANK3_PIN04" bitrange="4:4">
-</field>
-<field name="BANK3_PIN03" bitrange="3:3">
-</field>
-<field name="BANK3_PIN02" bitrange="2:2">
-</field>
-<field name="BANK3_PIN01" bitrange="1:1">
-</field>
-<field name="BANK3_PIN00" bitrange="0:0">
-</field>
-</reg>
-<reg name="DOUT0" addr="0x400" sct="yes">
-<field name="DOUT" bitrange="29:0">
-</field>
-</reg>
-<reg name="DOUT1" addr="0x410" sct="yes">
-<field name="DOUT" bitrange="28:0">
-</field>
-</reg>
-<reg name="DOUT2" addr="0x420" sct="yes">
-<field name="DOUT" bitrange="31:0">
-</field>
-</reg>
-<reg name="DIN0" addr="0x500" sct="no">
-<field name="DIN" bitrange="29:0">
-</field>
-</reg>
-<reg name="DIN1" addr="0x510" sct="no">
-<field name="DIN" bitrange="28:0">
-</field>
-</reg>
-<reg name="DIN2" addr="0x520" sct="no">
-<field name="DIN" bitrange="31:0">
-</field>
-</reg>
-<reg name="DOE0" addr="0x600" sct="yes">
-<field name="DOE" bitrange="29:0">
-</field>
-</reg>
-<reg name="DOE1" addr="0x610" sct="yes">
-<field name="DOE" bitrange="28:0">
-</field>
-</reg>
-<reg name="DOE2" addr="0x620" sct="yes">
-<field name="DOE" bitrange="31:0">
-</field>
-</reg>
-<reg name="PIN2IRQ0" addr="0x700" sct="yes">
-<field name="PIN2IRQ" bitrange="29:0">
-</field>
-</reg>
-<reg name="PIN2IRQ1" addr="0x710" sct="yes">
-<field name="PIN2IRQ" bitrange="28:0">
-</field>
-</reg>
-<reg name="PIN2IRQ2" addr="0x720" sct="yes">
-<field name="PIN2IRQ" bitrange="31:0">
-</field>
-</reg>
-<reg name="IRQEN0" addr="0x800" sct="yes">
-<field name="IRQEN" bitrange="29:0">
-</field>
-</reg>
-<reg name="IRQEN1" addr="0x810" sct="yes">
-<field name="IRQEN" bitrange="28:0">
+<reg name="MUXSELn" sct="yes">
+<formula string="0x100+n*0x10"/>
+<addr name="MUXSEL0" addr="0x100" />
+<addr name="MUXSEL1" addr="0x110" />
+<addr name="MUXSEL2" addr="0x120" />
+<addr name="MUXSEL3" addr="0x130" />
+<addr name="MUXSEL4" addr="0x140" />
+<addr name="MUXSEL5" addr="0x150" />
+<addr name="MUXSEL6" addr="0x160" />
+<addr name="MUXSEL7" addr="0x170" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQEN2" addr="0x820" sct="yes">
-<field name="IRQEN" bitrange="31:0">
+<reg name="DRIVEn" sct="yes">
+<formula string="0x200+n*0x10"/>
+<addr name="DRIVE0" addr="0x200" />
+<addr name="DRIVE1" addr="0x210" />
+<addr name="DRIVE2" addr="0x220" />
+<addr name="DRIVE3" addr="0x230" />
+<addr name="DRIVE4" addr="0x240" />
+<addr name="DRIVE5" addr="0x250" />
+<addr name="DRIVE6" addr="0x260" />
+<addr name="DRIVE7" addr="0x270" />
+<addr name="DRIVE8" addr="0x280" />
+<addr name="DRIVE9" addr="0x290" />
+<addr name="DRIVE10" addr="0x2a0" />
+<addr name="DRIVE11" addr="0x2b0" />
+<addr name="DRIVE12" addr="0x2c0" />
+<addr name="DRIVE13" addr="0x2d0" />
+<addr name="DRIVE14" addr="0x2e0" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQLEVEL0" addr="0x900" sct="yes">
-<field name="IRQLEVEL" bitrange="29:0">
+<reg name="PULLn" sct="yes">
+<formula string="0x300+n*0x10"/>
+<addr name="PULL0" addr="0x300" />
+<addr name="PULL1" addr="0x310" />
+<addr name="PULL2" addr="0x320" />
+<addr name="PULL3" addr="0x330" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQLEVEL1" addr="0x910" sct="yes">
-<field name="IRQLEVEL" bitrange="28:0">
+<reg name="DOUTn" sct="yes">
+<formula string="0x400+n*0x10"/>
+<addr name="DOUT0" addr="0x400" />
+<addr name="DOUT1" addr="0x410" />
+<addr name="DOUT2" addr="0x420" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQLEVEL2" addr="0x920" sct="yes">
-<field name="IRQLEVEL" bitrange="31:0">
+<reg name="DINn" sct="yes">
+<formula string="0x500+n*0x10"/>
+<addr name="DIN0" addr="0x500" />
+<addr name="DIN1" addr="0x510" />
+<addr name="DIN2" addr="0x520" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQPOL0" addr="0xa00" sct="yes">
-<field name="IRQPOL" bitrange="29:0">
+<reg name="DOEn" sct="yes">
+<formula string="0x600+n*0x10"/>
+<addr name="DOE0" addr="0x600" />
+<addr name="DOE1" addr="0x610" />
+<addr name="DOE2" addr="0x620" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQPOL1" addr="0xa10" sct="yes">
-<field name="IRQPOL" bitrange="28:0">
+<reg name="PIN2IRQn" sct="yes">
+<formula string="0x700+n*0x10"/>
+<addr name="PIN2IRQ0" addr="0x700" />
+<addr name="PIN2IRQ1" addr="0x710" />
+<addr name="PIN2IRQ2" addr="0x720" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQPOL2" addr="0xa20" sct="yes">
-<field name="IRQPOL" bitrange="31:0">
+<reg name="IRQENn" sct="yes">
+<formula string="0x800+n*0x10"/>
+<addr name="IRQEN0" addr="0x800" />
+<addr name="IRQEN1" addr="0x810" />
+<addr name="IRQEN2" addr="0x820" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQSTAT0" addr="0xb00" sct="yes">
-<field name="IRQSTAT" bitrange="29:0">
+<reg name="IRQLEVELn" sct="yes">
+<formula string="0x900+n*0x10"/>
+<addr name="IRQLEVEL0" addr="0x900" />
+<addr name="IRQLEVEL1" addr="0x910" />
+<addr name="IRQLEVEL2" addr="0x920" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQSTAT1" addr="0xb10" sct="yes">
-<field name="IRQSTAT" bitrange="28:0">
+<reg name="IRQPOLn" sct="yes">
+<formula string="0xa00+n*0x10"/>
+<addr name="IRQPOL0" addr="0xa00" />
+<addr name="IRQPOL1" addr="0xa10" />
+<addr name="IRQPOL2" addr="0xa20" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQSTAT2" addr="0xb20" sct="yes">
-<field name="IRQSTAT" bitrange="31:0">
+<reg name="IRQSTATn" sct="yes">
+<formula string="0xb00+n*0x10"/>
+<addr name="IRQSTAT0" addr="0xb00" />
+<addr name="IRQSTAT1" addr="0xb10" />
+<addr name="IRQSTAT2" addr="0xb20" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
</dev>
-<dev name="POWER" addr="0x80044000" long_name="Power Control" desc="Power Supply">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="POWER" long_name="Power Control" desc="Power Supply" version="3.2.0">
+<addr name="POWER" addr="0x80044000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="CLKGATE" bitrange="30:30">
</field>
<field name="PSWITCH_IRQ" bitrange="22:22">
@@ -6902,7 +6171,8 @@ KIND, either express or implied.
<field name="ENIRQ_VDD5V_GT_VDDIO" bitrange="0:0">
</field>
</reg>
-<reg name="5VCTRL" addr="0x10" sct="yes">
+<reg name="5VCTRL" sct="yes">
+<addr name="5VCTRL" addr="0x10" />
<field name="VBUSVALID_TRSH" bitrange="11:10">
</field>
<field name="PWDN_5VBRNOUT" bitrange="8:8">
@@ -6924,7 +6194,8 @@ KIND, either express or implied.
<field name="ENABLE_DCDC" bitrange="0:0">
</field>
</reg>
-<reg name="MINPWR" addr="0x20" sct="yes">
+<reg name="MINPWR" sct="yes">
+<addr name="MINPWR" addr="0x20" />
<field name="PWD_BO" bitrange="11:11">
</field>
<field name="USB_I_SUSPEND" bitrange="10:10">
@@ -6950,7 +6221,8 @@ KIND, either express or implied.
<field name="DC_HALFCLK" bitrange="0:0">
</field>
</reg>
-<reg name="CHARGE" addr="0x30" sct="yes">
+<reg name="CHARGE" sct="yes">
+<addr name="CHARGE" addr="0x30" />
<field name="ENABLE_FAULT_DETECT" bitrange="20:20">
</field>
<field name="CHRG_STS_OFF" bitrange="19:19">
@@ -6964,7 +6236,8 @@ KIND, either express or implied.
<field name="BATTCHRG_I" bitrange="5:0">
</field>
</reg>
-<reg name="VDDDCTRL" addr="0x40" sct="no">
+<reg name="VDDDCTRL" sct="no">
+<addr name="VDDDCTRL" addr="0x40" />
<field name="ADJTN" bitrange="31:28">
</field>
<field name="ALKALINE_CHARGE" bitrange="24:24">
@@ -6984,7 +6257,8 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="VDDACTRL" addr="0x50" sct="no">
+<reg name="VDDACTRL" sct="no">
+<addr name="VDDACTRL" addr="0x50" />
<field name="DISABLE_STEPPING" bitrange="18:18">
</field>
<field name="ENABLE_LINREG" bitrange="17:17">
@@ -6998,7 +6272,8 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="VDDIOCTRL" addr="0x60" sct="no">
+<reg name="VDDIOCTRL" sct="no">
+<addr name="VDDIOCTRL" addr="0x60" />
<field name="ADJTN" bitrange="19:16">
</field>
<field name="DISABLE_STEPPING" bitrange="15:15">
@@ -7012,13 +6287,15 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="DCFUNCV" addr="0x70" sct="no">
+<reg name="DCFUNCV" sct="no">
+<addr name="DCFUNCV" addr="0x70" />
<field name="VDDD" bitrange="25:16">
</field>
<field name="VDDIO" bitrange="9:0">
</field>
</reg>
-<reg name="MISC" addr="0x80" sct="no">
+<reg name="MISC" sct="no">
+<addr name="MISC" addr="0x80" />
<field name="FREQSEL" bitrange="5:4">
</field>
<field name="DELAY_TIMING" bitrange="3:3">
@@ -7030,7 +6307,8 @@ KIND, either express or implied.
<field name="PERIPHERALSWOFF" bitrange="0:0">
</field>
</reg>
-<reg name="DCLIMITS" addr="0x90" sct="no">
+<reg name="DCLIMITS" sct="no">
+<addr name="DCLIMITS" addr="0x90" />
<field name="POSLIMIT_BOOST" bitrange="22:16">
</field>
<field name="POSLIMIT_BUCK" bitrange="14:8">
@@ -7038,7 +6316,8 @@ KIND, either express or implied.
<field name="NEGLIMIT" bitrange="6:0">
</field>
</reg>
-<reg name="LOOPCTRL" addr="0xa0" sct="yes">
+<reg name="LOOPCTRL" sct="yes">
+<addr name="LOOPCTRL" addr="0xa0" />
<field name="TOGGLE_DIF" bitrange="20:20">
</field>
<field name="HYST_SIGN" bitrange="19:19">
@@ -7062,7 +6341,8 @@ KIND, either express or implied.
<field name="DC_C" bitrange="1:0">
</field>
</reg>
-<reg name="STS" addr="0xb0" sct="no">
+<reg name="STS" sct="no">
+<addr name="STS" addr="0xb0" />
<field name="BATT_CHRG_PRESENT" bitrange="31:31">
</field>
<field name="PSWITCH" bitrange="19:18">
@@ -7104,13 +6384,15 @@ KIND, either express or implied.
<field name="SESSEND" bitrange="0:0">
</field>
</reg>
-<reg name="SPEED" addr="0xc0" sct="yes">
+<reg name="SPEED" sct="yes">
+<addr name="SPEED" addr="0xc0" />
<field name="STATUS" bitrange="23:16">
</field>
<field name="CTRL" bitrange="1:0">
</field>
</reg>
-<reg name="BATTMONITOR" addr="0xd0" sct="no">
+<reg name="BATTMONITOR" sct="no">
+<addr name="BATTMONITOR" addr="0xd0" />
<field name="BATT_VAL" bitrange="25:16">
</field>
<field name="EN_BATADJ" bitrange="6:6">
@@ -7122,7 +6404,8 @@ KIND, either express or implied.
<field name="BRWNOUT_LVL" bitrange="3:0">
</field>
</reg>
-<reg name="RESET" addr="0xe0" sct="yes">
+<reg name="RESET" sct="yes">
+<addr name="RESET" addr="0xe0" />
<field name="UNLOCK" bitrange="31:16">
<value name="KEY" value="0x3e77">
</value>
@@ -7132,7 +6415,8 @@ KIND, either express or implied.
<field name="PWD" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0xf0" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0xf0" />
<field name="VBUSVALIDPIOLOCK" bitrange="3:3">
</field>
<field name="AVALIDPIOLOCK" bitrange="2:2">
@@ -7142,11 +6426,13 @@ KIND, either express or implied.
<field name="SESSENDPIOLOCK" bitrange="0:0">
</field>
</reg>
-<reg name="SPECIAL" addr="0x100" sct="yes">
+<reg name="SPECIAL" sct="yes">
+<addr name="SPECIAL" addr="0x100" />
<field name="TEST" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0x110" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x110" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7155,8 +6441,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="PWM" addr="0x80064000" long_name="Pulse width Modulation" desc="Pulse-Width Modulator (PWM) Controller">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="PWM" long_name="Pulse width Modulation" desc="Pulse-Width Modulator (PWM) Controller" version="3.2.0">
+<addr name="PWM" addr="0x80064000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -7184,33 +6472,25 @@ KIND, either express or implied.
<field name="PWM0_ENABLE" bitrange="0:0">
</field>
</reg>
-<multireg name="ACTIVEn" base="0x10" count="4" offset="0x20" sct="SCT">
-<reg name="ACTIVE0" addr="0x10" index="0">
-</reg>
-<reg name="ACTIVE1" addr="0x30" index="1">
-</reg>
-<reg name="ACTIVE2" addr="0x50" index="2">
-</reg>
-<reg name="ACTIVE3" addr="0x70" index="3">
-</reg>
-<reg name="ACTIVE4" addr="0x90" index="4">
-</reg>
+<reg name="ACTIVEn" sct="yes">
+<formula string="0x10+n*0x20"/>
+<addr name="ACTIVE0" addr="0x10" />
+<addr name="ACTIVE1" addr="0x30" />
+<addr name="ACTIVE2" addr="0x50" />
+<addr name="ACTIVE3" addr="0x70" />
+<addr name="ACTIVE4" addr="0x90" />
<field name="INACTIVE" bitrange="31:16">
</field>
<field name="ACTIVE" bitrange="15:0">
</field>
-</multireg>
-<multireg name="PERIODn" base="0x20" count="4" offset="0x20" sct="SCT">
-<reg name="PERIOD0" addr="0x20" index="0">
-</reg>
-<reg name="PERIOD1" addr="0x40" index="1">
-</reg>
-<reg name="PERIOD2" addr="0x60" index="2">
-</reg>
-<reg name="PERIOD3" addr="0x80" index="3">
-</reg>
-<reg name="PERIOD4" addr="0xa0" index="4">
</reg>
+<reg name="PERIODn" sct="yes">
+<formula string="0x20+n*0x20"/>
+<addr name="PERIOD0" addr="0x20" />
+<addr name="PERIOD1" addr="0x40" />
+<addr name="PERIOD2" addr="0x60" />
+<addr name="PERIOD3" addr="0x80" />
+<addr name="PERIOD4" addr="0xa0" />
<field name="MATT" bitrange="23:23">
</field>
<field name="CDIV" bitrange="22:20">
@@ -7249,8 +6529,9 @@ KIND, either express or implied.
</field>
<field name="PERIOD" bitrange="15:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0xb0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xb0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7259,8 +6540,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="RTC" addr="0x8005c000" long_name="Real Time Clock" desc="Real-Time Clock, Alarm, Watchdog, Persistent Bits">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="RTC" long_name="Real Time Clock" desc="Real-Time Clock, Alarm, Watchdog, Persistent Bits" version="3.2.0">
+<addr name="RTC" addr="0x8005c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -7280,7 +6563,8 @@ KIND, either express or implied.
<field name="ALARM_IRQ_EN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x10" />
<field name="RTC_PRESENT" bitrange="31:31">
</field>
<field name="ALARM_PRESENT" bitrange="30:30">
@@ -7296,23 +6580,28 @@ KIND, either express or implied.
<field name="NEW_REGS" bitrange="15:8">
</field>
</reg>
-<reg name="MILLISECONDS" addr="0x20" sct="yes">
+<reg name="MILLISECONDS" sct="yes">
+<addr name="MILLISECONDS" addr="0x20" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="SECONDS" addr="0x30" sct="yes">
+<reg name="SECONDS" sct="yes">
+<addr name="SECONDS" addr="0x30" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="ALARM" addr="0x40" sct="yes">
+<reg name="ALARM" sct="yes">
+<addr name="ALARM" addr="0x40" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="WATCHDOG" addr="0x50" sct="yes">
+<reg name="WATCHDOG" sct="yes">
+<addr name="WATCHDOG" addr="0x50" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT0" addr="0x60" sct="yes">
+<reg name="PERSISTENT0" sct="yes">
+<addr name="PERSISTENT0" addr="0x60" />
<field name="SPARE_ANALOG" bitrange="31:18">
</field>
<field name="AUTO_RESTART" bitrange="17:17">
@@ -7342,7 +6631,8 @@ KIND, either express or implied.
<field name="CLOCKSOURCE" bitrange="0:0">
</field>
</reg>
-<reg name="PERSISTENT1" addr="0x70" sct="yes">
+<reg name="PERSISTENT1" sct="yes">
+<addr name="PERSISTENT1" addr="0x70" />
<field name="GENERAL" bitrange="31:0">
<value name="SPARE3" value="0x4000">
</value>
@@ -7376,29 +6666,35 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="PERSISTENT2" addr="0x80" sct="yes">
+<reg name="PERSISTENT2" sct="yes">
+<addr name="PERSISTENT2" addr="0x80" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT3" addr="0x90" sct="yes">
+<reg name="PERSISTENT3" sct="yes">
+<addr name="PERSISTENT3" addr="0x90" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT4" addr="0xa0" sct="yes">
+<reg name="PERSISTENT4" sct="yes">
+<addr name="PERSISTENT4" addr="0xa0" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT5" addr="0xb0" sct="yes">
+<reg name="PERSISTENT5" sct="yes">
+<addr name="PERSISTENT5" addr="0xb0" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG" addr="0xc0" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0xc0" />
<field name="WATCHDOG_RESET_MASK" bitrange="1:1">
</field>
<field name="WATCHDOG_RESET" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0xd0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xd0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7407,12 +6703,11 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<multidev name="SAIF" long_name="Sync Audio Interface" desc="Sync Audio Interface (SAIF)" base="0x80042000" count="2" offset="0x4000">
-<dev name="SAIF1" addr="0x80042000" index="1">
-</dev>
-<dev name="SAIF2" addr="0x80046000" index="2">
-</dev>
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="SAIF" long_name="Sync Audio Interface" desc="Sync Audio Interface (SAIF)" version="3.2.0">
+<addr name="SAIF1" addr="0x80042000" />
+<addr name="SAIF2" addr="0x80046000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -7450,7 +6745,8 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="DMA_PREQ" bitrange="16:16">
@@ -7464,13 +6760,15 @@ KIND, either express or implied.
<field name="BUSY" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x20" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0x20" />
<field name="PCM_RIGHT" bitrange="31:16">
</field>
<field name="PCM_LEFT" bitrange="15:0">
</field>
</reg>
-<reg name="VERSION" addr="0x30" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x30" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7478,9 +6776,11 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-</multidev>
-<dev name="SPDIF" addr="0x80054000" long_name="Sony/Phillips Digital Audio Interface" desc="SPDIF Transmitter">
-<reg name="CTRL" addr="0x0" sct="yes">
+</dev>
+<dev name="SPDIF" long_name="Sony/Phillips Digital Audio Interface" desc="SPDIF Transmitter" version="3.2.0">
+<addr name="SPDIF" addr="0x80054000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -7500,13 +6800,15 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x10" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="END_XFER" bitrange="0:0">
</field>
</reg>
-<reg name="FRAMECTRL" addr="0x20" sct="yes">
+<reg name="FRAMECTRL" sct="yes">
+<addr name="FRAMECTRL" addr="0x20" />
<field name="V_CONFIG" bitrange="17:17">
</field>
<field name="AUTO_MUTE" bitrange="16:16">
@@ -7528,25 +6830,29 @@ KIND, either express or implied.
<field name="PRO" bitrange="0:0">
</field>
</reg>
-<reg name="SRR" addr="0x30" sct="yes">
+<reg name="SRR" sct="yes">
+<addr name="SRR" addr="0x30" />
<field name="BASEMULT" bitrange="30:28">
</field>
<field name="RATE" bitrange="19:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x40" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x40" />
<field name="DMA_PREQ" bitrange="1:1">
</field>
<field name="FIFO_STATUS" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x50" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0x50" />
<field name="HIGH" bitrange="31:16">
</field>
<field name="LOW" bitrange="15:0">
</field>
</reg>
-<reg name="VERSION" addr="0x60" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x60" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7555,12 +6861,11 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<multidev name="SSP" long_name="Sync Serial Port" desc="Synchronous Serial Ports (SSP)" base="0x80010000" count="2" offset="0x24000">
-<dev name="SSP1" addr="0x80010000" index="1">
-</dev>
-<dev name="SSP2" addr="0x80034000" index="2">
-</dev>
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="SSP" long_name="Sync Serial Port" desc="Synchronous Serial Ports (SSP)" version="3.2.0">
+<addr name="SSP1" addr="0x80010000" />
+<addr name="SSP2" addr="0x80034000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -7600,7 +6905,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CMD0" addr="0x10" sct="yes">
+<reg name="CMD0" sct="yes">
+<addr name="CMD0" addr="0x10" />
<field name="APPEND_8CYC" bitrange="20:20">
</field>
<field name="BLOCK_SIZE" bitrange="19:16">
@@ -7744,19 +7050,23 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CMD1" addr="0x20" sct="no">
+<reg name="CMD1" sct="no">
+<addr name="CMD1" addr="0x20" />
<field name="CMD_ARG" bitrange="31:0">
</field>
</reg>
-<reg name="COMPREF" addr="0x30" sct="no">
+<reg name="COMPREF" sct="no">
+<addr name="COMPREF" addr="0x30" />
<field name="REFERENCE" bitrange="31:0">
</field>
</reg>
-<reg name="COMPMASK" addr="0x40" sct="no">
+<reg name="COMPMASK" sct="no">
+<addr name="COMPMASK" addr="0x40" />
<field name="MASK" bitrange="31:0">
</field>
</reg>
-<reg name="TIMING" addr="0x50" sct="no">
+<reg name="TIMING" sct="no">
+<addr name="TIMING" addr="0x50" />
<field name="TIMEOUT" bitrange="31:16">
</field>
<field name="CLOCK_DIVIDE" bitrange="15:8">
@@ -7764,7 +7074,8 @@ KIND, either express or implied.
<field name="CLOCK_RATE" bitrange="7:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x60" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x60" />
<field name="SDIO_IRQ" bitrange="31:31">
</field>
<field name="SDIO_IRQ_EN" bitrange="30:30">
@@ -7840,27 +7151,33 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x70" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x70" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP0" addr="0x80" sct="no">
+<reg name="SDRESP0" sct="no">
+<addr name="SDRESP0" addr="0x80" />
<field name="RESP0" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP1" addr="0x90" sct="no">
+<reg name="SDRESP1" sct="no">
+<addr name="SDRESP1" addr="0x90" />
<field name="RESP1" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP2" addr="0xa0" sct="no">
+<reg name="SDRESP2" sct="no">
+<addr name="SDRESP2" addr="0xa0" />
<field name="RESP2" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP3" addr="0xb0" sct="no">
+<reg name="SDRESP3" sct="no">
+<addr name="SDRESP3" addr="0xb0" />
<field name="RESP3" bitrange="31:0">
</field>
</reg>
-<reg name="STATUS" addr="0xc0" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0xc0" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="MS_PRESENT" bitrange="30:30">
@@ -7908,7 +7225,8 @@ KIND, either express or implied.
<field name="BUSY" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x100" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x100" />
<field name="DATACRC_ERR" bitrange="31:28">
</field>
<field name="DATA_STALL" bitrange="27:27">
@@ -8016,7 +7334,8 @@ KIND, either express or implied.
<field name="SSP_RXD" bitrange="7:0">
</field>
</reg>
-<reg name="VERSION" addr="0x110" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x110" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -8024,9 +7343,11 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-</multidev>
-<dev name="TIMROT" addr="0x80068000" long_name="Timers/Rotary Interface" desc="Timers and Rotary Decoder">
-<reg name="ROTCTRL" addr="0x0" sct="yes">
+</dev>
+<dev name="TIMROT" long_name="Timers/Rotary Interface" desc="Timers and Rotary Decoder" version="3.2.0">
+<addr name="TIMROT" addr="0x80068000" />
+<reg name="ROTCTRL" sct="yes">
+<addr name="ROTCTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -8098,17 +7419,16 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ROTCOUNT" addr="0x10" sct="no">
+<reg name="ROTCOUNT" sct="no">
+<addr name="ROTCOUNT" addr="0x10" />
<field name="UPDOWN" bitrange="15:0">
</field>
</reg>
-<multireg name="TIMCTRLn" base="0x20" count="2" offset="0x20" sct="SCT">
-<reg name="TIMCTRL0" addr="0x20" index="0">
-</reg>
-<reg name="TIMCTRL1" addr="0x40" index="1">
-</reg>
-<reg name="TIMCTRL2" addr="0x60" index="2">
-</reg>
+<reg name="TIMCTRLn" sct="yes">
+<formula string="0x20+n*0x20"/>
+<addr name="TIMCTRL0" addr="0x20" />
+<addr name="TIMCTRL1" addr="0x40" />
+<addr name="TIMCTRL2" addr="0x60" />
<field name="IRQ" bitrange="15:15">
</field>
<field name="IRQ_EN" bitrange="14:14">
@@ -8157,20 +7477,19 @@ KIND, either express or implied.
<value name="TICK_ALWAYS" value="0xc">
</value>
</field>
-</multireg>
-<multireg name="TIMCOUNTn" base="0x30" count="2" offset="0x20" sct="">
-<reg name="TIMCOUNT0" addr="0x30" index="0">
-</reg>
-<reg name="TIMCOUNT1" addr="0x50" index="1">
-</reg>
-<reg name="TIMCOUNT2" addr="0x70" index="2">
</reg>
+<reg name="TIMCOUNTn" sct="no">
+<formula string="0x30+n*0x20"/>
+<addr name="TIMCOUNT0" addr="0x30" />
+<addr name="TIMCOUNT1" addr="0x50" />
+<addr name="TIMCOUNT2" addr="0x70" />
<field name="RUNNING_COUNT" bitrange="31:16">
</field>
<field name="FIXED_COUNT" bitrange="15:0">
</field>
-</multireg>
-<reg name="TIMCTRL3" addr="0x80" sct="yes">
+</reg>
+<reg name="TIMCTRL3" sct="yes">
+<addr name="TIMCTRL3" addr="0x80" />
<field name="TEST_SIGNAL" bitrange="19:16">
<value name="NEVER_TICK" value="0x0">
</value>
@@ -8252,13 +7571,15 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMCOUNT3" addr="0x90" sct="no">
+<reg name="TIMCOUNT3" sct="no">
+<addr name="TIMCOUNT3" addr="0x90" />
<field name="LOW_RUNNING_COUNT" bitrange="31:16">
</field>
<field name="HIGH_FIXED_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="VERSION" addr="0xa0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xa0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -8267,12 +7588,11 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<multidev name="UARTAPP" long_name="Application UART" desc="Application UART" base="0x8006c000" count="2" offset="0x2000">
-<dev name="UARTAPP1" addr="0x8006c000" index="1">
-</dev>
-<dev name="UARTAPP2" addr="0x8006e000" index="2">
-</dev>
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="UARTAPP" long_name="Application UART" desc="Application UART" version="3.2.0">
+<addr name="UARTAPP1" addr="0x8006c000" />
+<addr name="UARTAPP2" addr="0x8006e000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -8288,13 +7608,15 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="RUN" bitrange="28:28">
</field>
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTRL2" addr="0x20" sct="yes">
+<reg name="CTRL2" sct="yes">
+<addr name="CTRL2" addr="0x20" />
<field name="INVERT_RTS" bitrange="31:31">
</field>
<field name="INVERT_CTS" bitrange="30:30">
@@ -8374,7 +7696,8 @@ KIND, either express or implied.
<field name="UARTEN" bitrange="0:0">
</field>
</reg>
-<reg name="LINECTRL" addr="0x30" sct="yes">
+<reg name="LINECTRL" sct="yes">
+<addr name="LINECTRL" addr="0x30" />
<field name="BAUD_DIVINT" bitrange="31:16">
</field>
<field name="BAUD_DIVFRAC" bitrange="13:8">
@@ -8394,7 +7717,8 @@ KIND, either express or implied.
<field name="BRK" bitrange="0:0">
</field>
</reg>
-<reg name="LINECTRL2" addr="0x40" sct="yes">
+<reg name="LINECTRL2" sct="yes">
+<addr name="LINECTRL2" addr="0x40" />
<field name="BAUD_DIVINT" bitrange="31:16">
</field>
<field name="BAUD_DIVFRAC" bitrange="13:8">
@@ -8412,7 +7736,8 @@ KIND, either express or implied.
<field name="PEN" bitrange="1:1">
</field>
</reg>
-<reg name="INTR" addr="0x50" sct="yes">
+<reg name="INTR" sct="yes">
+<addr name="INTR" addr="0x50" />
<field name="OEIEN" bitrange="26:26">
</field>
<field name="BEIEN" bitrange="25:25">
@@ -8458,11 +7783,13 @@ KIND, either express or implied.
<field name="RIMIS" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x60" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x60" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0x70" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x70" />
<field name="PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -8500,7 +7827,8 @@ KIND, either express or implied.
<field name="RXCOUNT" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x80" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x80" />
<field name="TXDMARUN" bitrange="5:5">
</field>
<field name="RXDMARUN" bitrange="4:4">
@@ -8514,7 +7842,8 @@ KIND, either express or implied.
<field name="RXDMARQ" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0x90" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x90" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -8522,9 +7851,11 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-</multidev>
-<dev name="UARTDBG" addr="0x80070000" long_name="Debug UART" desc="Debug UART">
-<reg name="DR" addr="0x0" sct="no">
+</dev>
+<dev name="UARTDBG" long_name="Debug UART" desc="Debug UART" version="3.2.0">
+<addr name="UARTDBG" addr="0x80070000" />
+<reg name="DR" sct="no">
+<addr name="DR" addr="0x0" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:12">
@@ -8540,7 +7871,8 @@ KIND, either express or implied.
<field name="DATA" bitrange="7:0">
</field>
</reg>
-<reg name="RSR_ECR" addr="0x4" sct="no">
+<reg name="RSR_ECR" sct="no">
+<addr name="RSR_ECR" addr="0x4" />
<field name="UNAVAILABLE" bitrange="31:8">
</field>
<field name="EC" bitrange="7:4">
@@ -8554,7 +7886,8 @@ KIND, either express or implied.
<field name="FE" bitrange="0:0">
</field>
</reg>
-<reg name="FR" addr="0x18" sct="no">
+<reg name="FR" sct="no">
+<addr name="FR" addr="0x18" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:9">
@@ -8578,19 +7911,22 @@ KIND, either express or implied.
<field name="CTS" bitrange="0:0">
</field>
</reg>
-<reg name="ILPR" addr="0x20" sct="no">
+<reg name="ILPR" sct="no">
+<addr name="ILPR" addr="0x20" />
<field name="UNAVAILABLE" bitrange="31:8">
</field>
<field name="ILPDVSR" bitrange="7:0">
</field>
</reg>
-<reg name="IBRD" addr="0x24" sct="no">
+<reg name="IBRD" sct="no">
+<addr name="IBRD" addr="0x24" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="BAUD_DIVINT" bitrange="15:0">
</field>
</reg>
-<reg name="FBRD" addr="0x28" sct="no">
+<reg name="FBRD" sct="no">
+<addr name="FBRD" addr="0x28" />
<field name="UNAVAILABLE" bitrange="31:8">
</field>
<field name="RESERVED" bitrange="7:6">
@@ -8598,7 +7934,8 @@ KIND, either express or implied.
<field name="BAUD_DIVFRAC" bitrange="5:0">
</field>
</reg>
-<reg name="LCR_H" addr="0x2c" sct="no">
+<reg name="LCR_H" sct="no">
+<addr name="LCR_H" addr="0x2c" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:8">
@@ -8618,7 +7955,8 @@ KIND, either express or implied.
<field name="BRK" bitrange="0:0">
</field>
</reg>
-<reg name="CR" addr="0x30" sct="no">
+<reg name="CR" sct="no">
+<addr name="CR" addr="0x30" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="CTSEN" bitrange="15:15">
@@ -8648,7 +7986,8 @@ KIND, either express or implied.
<field name="UARTEN" bitrange="0:0">
</field>
</reg>
-<reg name="IFLS" addr="0x34" sct="no">
+<reg name="IFLS" sct="no">
+<addr name="IFLS" addr="0x34" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:6">
@@ -8690,7 +8029,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="IMSC" addr="0x38" sct="no">
+<reg name="IMSC" sct="no">
+<addr name="IMSC" addr="0x38" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:11">
@@ -8718,7 +8058,8 @@ KIND, either express or implied.
<field name="RIMIM" bitrange="0:0">
</field>
</reg>
-<reg name="RIS" addr="0x3c" sct="no">
+<reg name="RIS" sct="no">
+<addr name="RIS" addr="0x3c" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:11">
@@ -8746,7 +8087,8 @@ KIND, either express or implied.
<field name="RIRMIS" bitrange="0:0">
</field>
</reg>
-<reg name="MIS" addr="0x40" sct="no">
+<reg name="MIS" sct="no">
+<addr name="MIS" addr="0x40" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:11">
@@ -8774,7 +8116,8 @@ KIND, either express or implied.
<field name="RIMMIS" bitrange="0:0">
</field>
</reg>
-<reg name="ICR" addr="0x44" sct="no">
+<reg name="ICR" sct="no">
+<addr name="ICR" addr="0x44" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:11">
@@ -8802,7 +8145,8 @@ KIND, either express or implied.
<field name="RIMIC" bitrange="0:0">
</field>
</reg>
-<reg name="DMACR" addr="0x48" sct="no">
+<reg name="DMACR" sct="no">
+<addr name="DMACR" addr="0x48" />
<field name="UNAVAILABLE" bitrange="31:16">
</field>
<field name="RESERVED" bitrange="15:3">
@@ -8815,8 +8159,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="USBCTRL" addr="0x80080000" long_name="USB Controller" desc="USB High-Speed Host/Device Controller">
-<reg name="ID" addr="0x0" sct="no">
+<dev name="USBCTRL" long_name="USB Controller" desc="USB High-Speed Host/Device Controller" version="3.2.0">
+<addr name="USBCTRL" addr="0x80080000" />
+<reg name="ID" sct="no">
+<addr name="ID" addr="0x0" />
<field name="REV" bitrange="23:16">
</field>
<field name="ID_N" bitrange="15:8">
@@ -8824,7 +8170,8 @@ KIND, either express or implied.
<field name="ID" bitrange="7:0">
</field>
</reg>
-<reg name="GENERAL" addr="0x4" sct="no">
+<reg name="GENERAL" sct="no">
+<addr name="GENERAL" addr="0x4" />
<field name="SM" bitrange="9:9">
</field>
<field name="PHYM" bitrange="8:6">
@@ -8838,7 +8185,8 @@ KIND, either express or implied.
<field name="RT" bitrange="0:0">
</field>
</reg>
-<reg name="HOST" addr="0x8" sct="no">
+<reg name="HOST" sct="no">
+<addr name="HOST" addr="0x8" />
<field name="TTPER" bitrange="31:24">
</field>
<field name="TTASY" bitrange="23:16">
@@ -8848,13 +8196,15 @@ KIND, either express or implied.
<field name="HC" bitrange="0:0">
</field>
</reg>
-<reg name="DEVICE" addr="0xc" sct="no">
+<reg name="DEVICE" sct="no">
+<addr name="DEVICE" addr="0xc" />
<field name="DEVEP" bitrange="5:1">
</field>
<field name="DC" bitrange="0:0">
</field>
</reg>
-<reg name="TXBUF" addr="0x10" sct="no">
+<reg name="TXBUF" sct="no">
+<addr name="TXBUF" addr="0x10" />
<field name="TXLCR" bitrange="31:31">
</field>
<field name="TXCHANADD" bitrange="23:16">
@@ -8864,27 +8214,32 @@ KIND, either express or implied.
<field name="TXBURST" bitrange="7:0">
</field>
</reg>
-<reg name="RXBUF" addr="0x14" sct="no">
+<reg name="RXBUF" sct="no">
+<addr name="RXBUF" addr="0x14" />
<field name="RXADD" bitrange="15:8">
</field>
<field name="RXBURST" bitrange="7:0">
</field>
</reg>
-<reg name="TTTXBUF" addr="0x18" sct="no">
+<reg name="TTTXBUF" sct="no">
+<addr name="TTTXBUF" addr="0x18" />
<field name="TTTXBUF" bitrange="31:0">
</field>
</reg>
-<reg name="TTRXBUF" addr="0x1c" sct="no">
+<reg name="TTRXBUF" sct="no">
+<addr name="TTRXBUF" addr="0x1c" />
<field name="TTRXBUF" bitrange="31:0">
</field>
</reg>
-<reg name="CAPLENGTH" addr="0x100" sct="no">
+<reg name="CAPLENGTH" sct="no">
+<addr name="CAPLENGTH" addr="0x100" />
<field name="HCIVER" bitrange="31:16">
</field>
<field name="LENGTH" bitrange="7:0">
</field>
</reg>
-<reg name="HCSPARAMS" addr="0x104" sct="no">
+<reg name="HCSPARAMS" sct="no">
+<addr name="HCSPARAMS" addr="0x104" />
<field name="NPORTS" bitrange="3:0">
</field>
<field name="PPC" bitrange="4:4">
@@ -8900,7 +8255,8 @@ KIND, either express or implied.
<field name="NTT" bitrange="27:24">
</field>
</reg>
-<reg name="HCCPARAMS" addr="0x108" sct="no">
+<reg name="HCCPARAMS" sct="no">
+<addr name="HCCPARAMS" addr="0x108" />
<field name="ADDR64BITCAP" bitrange="0:0">
</field>
<field name="PGM_FRM_LIST_FLAG" bitrange="1:1">
@@ -8910,11 +8266,13 @@ KIND, either express or implied.
<field name="ISO_SCH_THRESHOLD" bitrange="15:8">
</field>
</reg>
-<reg name="DCIVERSION" addr="0x120" sct="no">
+<reg name="DCIVERSION" sct="no">
+<addr name="DCIVERSION" addr="0x120" />
<field name="DCIVER" bitrange="15:0">
</field>
</reg>
-<reg name="DCCPARAMS" addr="0x124" sct="no">
+<reg name="DCCPARAMS" sct="no">
+<addr name="DCCPARAMS" addr="0x124" />
<field name="HC" bitrange="8:8">
</field>
<field name="DC" bitrange="7:7">
@@ -8922,7 +8280,8 @@ KIND, either express or implied.
<field name="DEN" bitrange="4:0">
</field>
</reg>
-<reg name="USBCMD" addr="0x140" sct="no">
+<reg name="USBCMD" sct="no">
+<addr name="USBCMD" addr="0x140" />
<field name="RS" bitrange="0:0">
</field>
<field name="RST" bitrange="1:1">
@@ -8950,7 +8309,8 @@ KIND, either express or implied.
<field name="ITC" bitrange="23:16">
</field>
</reg>
-<reg name="USBSTS" addr="0x144" sct="no">
+<reg name="USBSTS" sct="no">
+<addr name="USBSTS" addr="0x144" />
<field name="UI" bitrange="0:0">
</field>
<field name="UEI" bitrange="1:1">
@@ -8982,7 +8342,8 @@ KIND, either express or implied.
<field name="NAKI" bitrange="16:16">
</field>
</reg>
-<reg name="USBINTR" addr="0x148" sct="no">
+<reg name="USBINTR" sct="no">
+<addr name="USBINTR" addr="0x148" />
<field name="UE" bitrange="0:0">
</field>
<field name="UEE" bitrange="1:1">
@@ -9006,35 +8367,42 @@ KIND, either express or implied.
<field name="NAKE" bitrange="16:16">
</field>
</reg>
-<reg name="FRINDEX" addr="0x14c" sct="no">
+<reg name="FRINDEX" sct="no">
+<addr name="FRINDEX" addr="0x14c" />
<field name="LISTINDEX" bitrange="13:3">
</field>
<field name="UINDEX" bitrange="2:0">
</field>
</reg>
-<reg name="CTRLDSSEGMENT" addr="0x150" sct="no">
+<reg name="CTRLDSSEGMENT" sct="no">
+<addr name="CTRLDSSEGMENT" addr="0x150" />
<field name="EMPTY" bitrange="31:0">
</field>
</reg>
-<reg name="PERIODICLISTBASE" addr="0x154" sct="no">
+<reg name="PERIODICLISTBASE" sct="no">
+<addr name="PERIODICLISTBASE" addr="0x154" />
<field name="BASEADDR" bitrange="31:12">
</field>
</reg>
-<reg name="ASYNCLISTADDR" addr="0x158" sct="no">
+<reg name="ASYNCLISTADDR" sct="no">
+<addr name="ASYNCLISTADDR" addr="0x158" />
<field name="ASYBASE" bitrange="31:5">
</field>
</reg>
-<reg name="TTCTRL" addr="0x15c" sct="no">
+<reg name="TTCTRL" sct="no">
+<addr name="TTCTRL" addr="0x15c" />
<field name="TTHA" bitrange="30:24">
</field>
</reg>
-<reg name="BURSTSIZE" addr="0x160" sct="no">
+<reg name="BURSTSIZE" sct="no">
+<addr name="BURSTSIZE" addr="0x160" />
<field name="TX" bitrange="15:8">
</field>
<field name="RX" bitrange="7:0">
</field>
</reg>
-<reg name="TXFILLTUNING" addr="0x164" sct="no">
+<reg name="TXFILLTUNING" sct="no">
+<addr name="TXFILLTUNING" addr="0x164" />
<field name="TXFIFOTHRES" bitrange="21:16">
</field>
<field name="TXSCHEALTH" bitrange="12:8">
@@ -9042,11 +8410,13 @@ KIND, either express or implied.
<field name="TXSCHOH" bitrange="7:0">
</field>
</reg>
-<reg name="TXTTFILLTUNING" addr="0x168" sct="no">
+<reg name="TXTTFILLTUNING" sct="no">
+<addr name="TXTTFILLTUNING" addr="0x168" />
<field name="EMPTY" bitrange="31:0">
</field>
</reg>
-<reg name="ULPI" addr="0x170" sct="no">
+<reg name="ULPI" sct="no">
+<addr name="ULPI" addr="0x170" />
<field name="WAKEUP" bitrange="31:31">
</field>
<field name="RUN" bitrange="30:30">
@@ -9066,27 +8436,32 @@ KIND, either express or implied.
<field name="DATAWR" bitrange="7:0">
</field>
</reg>
-<reg name="VFRAME" addr="0x174" sct="no">
+<reg name="VFRAME" sct="no">
+<addr name="VFRAME" addr="0x174" />
<field name="EMPTY" bitrange="31:0">
</field>
</reg>
-<reg name="EPNAK" addr="0x178" sct="no">
+<reg name="EPNAK" sct="no">
+<addr name="EPNAK" addr="0x178" />
<field name="EPTN" bitrange="31:16">
</field>
<field name="EPRN" bitrange="15:0">
</field>
</reg>
-<reg name="EPNAKEN" addr="0x17c" sct="no">
+<reg name="EPNAKEN" sct="no">
+<addr name="EPNAKEN" addr="0x17c" />
<field name="EPTNE" bitrange="31:16">
</field>
<field name="EPRNE" bitrange="15:0">
</field>
</reg>
-<reg name="CONFIGFLAG" addr="0x180" sct="no">
+<reg name="CONFIGFLAG" sct="no">
+<addr name="CONFIGFLAG" addr="0x180" />
<field name="FLAG" bitrange="0:0">
</field>
</reg>
-<reg name="PORTSC1" addr="0x184" sct="no">
+<reg name="PORTSC1" sct="no">
+<addr name="PORTSC1" addr="0x184" />
<field name="PTS" bitrange="31:30">
<value name="UTMI" value="0x0">
</value>
@@ -9180,7 +8555,8 @@ KIND, either express or implied.
<field name="CCS" bitrange="0:0">
</field>
</reg>
-<reg name="OTGSC" addr="0x1a4" sct="no">
+<reg name="OTGSC" sct="no">
+<addr name="OTGSC" addr="0x1a4" />
<field name="DPIE" bitrange="30:30">
</field>
<field name="ONEMSE" bitrange="29:29">
@@ -9240,7 +8616,8 @@ KIND, either express or implied.
<field name="VD" bitrange="0:0">
</field>
</reg>
-<reg name="USBMODE" addr="0x1a8" sct="no">
+<reg name="USBMODE" sct="no">
+<addr name="USBMODE" addr="0x1a8" />
<field name="SDIS" bitrange="4:4">
</field>
<field name="SLOM" bitrange="3:3">
@@ -9256,45 +8633,46 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ENDPTSETUPSTAT" addr="0x1ac" sct="no">
+<reg name="ENDPTSETUPSTAT" sct="no">
+<addr name="ENDPTSETUPSTAT" addr="0x1ac" />
<field name="STS" bitrange="15:0">
</field>
</reg>
-<reg name="ENDPTPRIME" addr="0x1b0" sct="no">
+<reg name="ENDPTPRIME" sct="no">
+<addr name="ENDPTPRIME" addr="0x1b0" />
<field name="PETB" bitrange="31:16">
</field>
<field name="PERB" bitrange="15:0">
</field>
</reg>
-<reg name="ENDPTFLUSH" addr="0x1b4" sct="no">
+<reg name="ENDPTFLUSH" sct="no">
+<addr name="ENDPTFLUSH" addr="0x1b4" />
<field name="FETB" bitrange="31:16">
</field>
<field name="FERB" bitrange="15:0">
</field>
</reg>
-<reg name="ENDPTSTATUS" addr="0x1b8" sct="no">
+<reg name="ENDPTSTATUS" sct="no">
+<addr name="ENDPTSTATUS" addr="0x1b8" />
<field name="ETBR" bitrange="31:16">
</field>
<field name="ERBR" bitrange="15:0">
</field>
</reg>
-<reg name="ENDPTCOMPLETE" addr="0x1bc" sct="no">
+<reg name="ENDPTCOMPLETE" sct="no">
+<addr name="ENDPTCOMPLETE" addr="0x1bc" />
<field name="ETCE" bitrange="31:16">
</field>
<field name="ERCE" bitrange="15:0">
</field>
</reg>
-<multireg name="ENDPTCTRLn" base="0x1c0" count="4" offset="0x4" sct="">
-<reg name="ENDPTCTRL0" addr="0x1c0" index="0">
-</reg>
-<reg name="ENDPTCTRL1" addr="0x1c4" index="1">
-</reg>
-<reg name="ENDPTCTRL2" addr="0x1c8" index="2">
-</reg>
-<reg name="ENDPTCTRL3" addr="0x1cc" index="3">
-</reg>
-<reg name="ENDPTCTRL4" addr="0x1d0" index="4">
-</reg>
+<reg name="ENDPTCTRLn" sct="no">
+<formula string="0x1c0+n*0x4"/>
+<addr name="ENDPTCTRL0" addr="0x1c0" />
+<addr name="ENDPTCTRL1" addr="0x1c4" />
+<addr name="ENDPTCTRL2" addr="0x1c8" />
+<addr name="ENDPTCTRL3" addr="0x1cc" />
+<addr name="ENDPTCTRL4" addr="0x1d0" />
<field name="TXE" bitrange="23:23">
</field>
<field name="TXR" bitrange="22:22">
@@ -9321,10 +8699,12 @@ KIND, either express or implied.
</field>
<field name="RXS" bitrange="0:0">
</field>
-</multireg>
+</reg>
</dev>
-<dev name="USBPHY" addr="0x8007c000" long_name="USB Physical Interface" desc="Integrated USB 2.0 PHY">
-<reg name="PWD" addr="0x0" sct="yes">
+<dev name="USBPHY" long_name="USB Physical Interface" desc="Integrated USB 2.0 PHY" version="3.2.0">
+<addr name="USBPHY" addr="0x8007c000" />
+<reg name="PWD" sct="yes">
+<addr name="PWD" addr="0x0" />
<field name="RXPWDRX" bitrange="20:20">
</field>
<field name="RXPWDDIFF" bitrange="19:19">
@@ -9344,7 +8724,8 @@ KIND, either express or implied.
<field name="TXPWDFS" bitrange="10:10">
</field>
</reg>
-<reg name="TX" addr="0x10" sct="yes">
+<reg name="TX" sct="yes">
+<addr name="TX" addr="0x10" />
<field name="USBPHY_TX_EDGECTRL" bitrange="28:26">
</field>
<field name="USBPHY_TX_SYNC_INVERT" bitrange="25:25">
@@ -9366,7 +8747,8 @@ KIND, either express or implied.
<field name="D_CAL" bitrange="3:0">
</field>
</reg>
-<reg name="RX" addr="0x20" sct="yes">
+<reg name="RX" sct="yes">
+<addr name="RX" addr="0x20" />
<field name="RXDBYPASS" bitrange="22:22">
</field>
<field name="DISCONADJ" bitrange="5:4">
@@ -9374,7 +8756,8 @@ KIND, either express or implied.
<field name="ENVADJ" bitrange="1:0">
</field>
</reg>
-<reg name="CTRL" addr="0x30" sct="yes">
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x30" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -9408,7 +8791,8 @@ KIND, either express or implied.
<field name="ENHSPRECHARGEXMIT" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS" addr="0x40" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0x40" />
<field name="RESUME_STATUS" bitrange="10:10">
</field>
<field name="OTGID_STATUS" bitrange="8:8">
@@ -9418,7 +8802,8 @@ KIND, either express or implied.
<field name="HOSTDISCONDETECT_STATUS" bitrange="3:3">
</field>
</reg>
-<reg name="DEBUG" addr="0x50" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0x50" />
<field name="CLKGATE" bitrange="30:30">
</field>
<field name="HOST_RESUME_DEBUG" bitrange="29:29">
@@ -9442,7 +8827,8 @@ KIND, either express or implied.
<field name="OTGIDPIOLOCK" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG0_STATUS" addr="0x60" sct="no">
+<reg name="DEBUG0_STATUS" sct="no">
+<addr name="DEBUG0_STATUS" addr="0x60" />
<field name="SQUELCH_COUNT" bitrange="31:26">
</field>
<field name="UTMI_RXERROR_FAIL_COUNT" bitrange="25:16">
@@ -9450,7 +8836,8 @@ KIND, either express or implied.
<field name="LOOP_BACK_FAIL_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x70" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x70" />
<field name="ENTAILADJVD" bitrange="14:13">
</field>
<field name="ENTX2TX" bitrange="12:12">
@@ -9460,7 +8847,8 @@ KIND, either express or implied.
<field name="DBG_ADDRESS" bitrange="3:0">
</field>
</reg>
-<reg name="VERSION" addr="0x80" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x80" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
diff --git a/utils/regtools/desc/regs-stmp3780.xml b/utils/regtools/desc/regs-stmp3780.xml
index 9d042ce5a0..f6f9b3f646 100644
--- a/utils/regtools/desc/regs-stmp3780.xml
+++ b/utils/regtools/desc/regs-stmp3780.xml
@@ -16,9 +16,11 @@ of the License, or (at your option) any later version.
This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
KIND, either express or implied.
-->
-<soc name="imx233" desc="STMP3780 / i.MX233">
-<dev name="APBH" addr="0x80004000" long_name="APHB DMA" desc="AHB-to-APBH Bridge with DMA">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<soc name="imx233" desc="i.MX233">
+<dev name="APBH" long_name="APHB DMA" desc="AHB-to-APBH Bridge with DMA" version="3.2.0">
+<addr name="APBH" addr="0x80004000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -78,115 +80,30 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="RSVD1" bitrange="31:24">
</field>
-<field name="CH7_CMDCMPLT_IRQ_EN" bitrange="23:23">
-</field>
-<field name="CH6_CMDCMPLT_IRQ_EN" bitrange="22:22">
-</field>
-<field name="CH5_CMDCMPLT_IRQ_EN" bitrange="21:21">
-</field>
-<field name="CH4_CMDCMPLT_IRQ_EN" bitrange="20:20">
-</field>
-<field name="CH3_CMDCMPLT_IRQ_EN" bitrange="19:19">
-</field>
-<field name="CH2_CMDCMPLT_IRQ_EN" bitrange="18:18">
-</field>
-<field name="CH1_CMDCMPLT_IRQ_EN" bitrange="17:17">
-</field>
-<field name="CH0_CMDCMPLT_IRQ_EN" bitrange="16:16">
+<field name="CH_CMDCMPLT_IRQ_EN" bitrange="23:16">
</field>
<field name="RSVD0" bitrange="15:8">
</field>
-<field name="CH7_CMDCMPLT_IRQ" bitrange="7:7">
-</field>
-<field name="CH6_CMDCMPLT_IRQ" bitrange="6:6">
-</field>
-<field name="CH5_CMDCMPLT_IRQ" bitrange="5:5">
-</field>
-<field name="CH4_CMDCMPLT_IRQ" bitrange="4:4">
-</field>
-<field name="CH3_CMDCMPLT_IRQ" bitrange="3:3">
-</field>
-<field name="CH2_CMDCMPLT_IRQ" bitrange="2:2">
-</field>
-<field name="CH1_CMDCMPLT_IRQ" bitrange="1:1">
-</field>
-<field name="CH0_CMDCMPLT_IRQ" bitrange="0:0">
+<field name="CH_CMDCMPLT_IRQ" bitrange="7:0">
</field>
</reg>
-<reg name="CTRL2" addr="0x20" sct="yes">
+<reg name="CTRL2" sct="yes">
+<addr name="CTRL2" addr="0x20" />
<field name="RSVD1" bitrange="31:24">
</field>
-<field name="CH7_ERROR_STATUS" bitrange="23:23">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH6_ERROR_STATUS" bitrange="22:22">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH5_ERROR_STATUS" bitrange="21:21">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH4_ERROR_STATUS" bitrange="20:20">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH3_ERROR_STATUS" bitrange="19:19">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH2_ERROR_STATUS" bitrange="18:18">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH1_ERROR_STATUS" bitrange="17:17">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH0_ERROR_STATUS" bitrange="16:16">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
+<field name="CH_ERROR_STATUS" bitrange="23:16">
</field>
<field name="RSVD0" bitrange="15:8">
</field>
-<field name="CH7_ERROR_IRQ" bitrange="7:7">
-</field>
-<field name="CH6_ERROR_IRQ" bitrange="6:6">
-</field>
-<field name="CH5_ERROR_IRQ" bitrange="5:5">
-</field>
-<field name="CH4_ERROR_IRQ" bitrange="4:4">
-</field>
-<field name="CH3_ERROR_IRQ" bitrange="3:3">
-</field>
-<field name="CH2_ERROR_IRQ" bitrange="2:2">
-</field>
-<field name="CH1_ERROR_IRQ" bitrange="1:1">
-</field>
-<field name="CH0_ERROR_IRQ" bitrange="0:0">
+<field name="CH_ERROR_IRQ" bitrange="7:0">
</field>
</reg>
-<reg name="DEVSEL" addr="0x30" sct="no">
+<reg name="DEVSEL" sct="no">
+<addr name="DEVSEL" addr="0x30" />
<field name="CH7" bitrange="31:28">
</field>
<field name="CH6" bitrange="27:24">
@@ -204,63 +121,42 @@ KIND, either express or implied.
<field name="CH0" bitrange="3:0">
</field>
</reg>
-<multireg name="CHn_CURCMDAR" base="0x40" count="7" offset="0x70" sct="">
-<reg name="CH0_CURCMDAR" addr="0x40" index="0">
-</reg>
-<reg name="CH1_CURCMDAR" addr="0xb0" index="1">
-</reg>
-<reg name="CH2_CURCMDAR" addr="0x120" index="2">
-</reg>
-<reg name="CH3_CURCMDAR" addr="0x190" index="3">
-</reg>
-<reg name="CH4_CURCMDAR" addr="0x200" index="4">
-</reg>
-<reg name="CH5_CURCMDAR" addr="0x270" index="5">
-</reg>
-<reg name="CH6_CURCMDAR" addr="0x2e0" index="6">
-</reg>
-<reg name="CH7_CURCMDAR" addr="0x350" index="7">
-</reg>
+<reg name="CHn_CURCMDAR" sct="no">
+<formula string="0x40+n*0x70"/>
+<addr name="CH0_CURCMDAR" addr="0x40" />
+<addr name="CH1_CURCMDAR" addr="0xb0" />
+<addr name="CH2_CURCMDAR" addr="0x120" />
+<addr name="CH3_CURCMDAR" addr="0x190" />
+<addr name="CH4_CURCMDAR" addr="0x200" />
+<addr name="CH5_CURCMDAR" addr="0x270" />
+<addr name="CH6_CURCMDAR" addr="0x2e0" />
+<addr name="CH7_CURCMDAR" addr="0x350" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_NXTCMDAR" base="0x50" count="7" offset="0x70" sct="">
-<reg name="CH0_NXTCMDAR" addr="0x50" index="0">
-</reg>
-<reg name="CH1_NXTCMDAR" addr="0xc0" index="1">
-</reg>
-<reg name="CH2_NXTCMDAR" addr="0x130" index="2">
-</reg>
-<reg name="CH3_NXTCMDAR" addr="0x1a0" index="3">
-</reg>
-<reg name="CH4_NXTCMDAR" addr="0x210" index="4">
-</reg>
-<reg name="CH5_NXTCMDAR" addr="0x280" index="5">
-</reg>
-<reg name="CH6_NXTCMDAR" addr="0x2f0" index="6">
-</reg>
-<reg name="CH7_NXTCMDAR" addr="0x360" index="7">
</reg>
+<reg name="CHn_NXTCMDAR" sct="no">
+<formula string="0x50+n*0x70"/>
+<addr name="CH0_NXTCMDAR" addr="0x50" />
+<addr name="CH1_NXTCMDAR" addr="0xc0" />
+<addr name="CH2_NXTCMDAR" addr="0x130" />
+<addr name="CH3_NXTCMDAR" addr="0x1a0" />
+<addr name="CH4_NXTCMDAR" addr="0x210" />
+<addr name="CH5_NXTCMDAR" addr="0x280" />
+<addr name="CH6_NXTCMDAR" addr="0x2f0" />
+<addr name="CH7_NXTCMDAR" addr="0x360" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_CMD" base="0x60" count="7" offset="0x70" sct="">
-<reg name="CH0_CMD" addr="0x60" index="0">
-</reg>
-<reg name="CH1_CMD" addr="0xd0" index="1">
-</reg>
-<reg name="CH2_CMD" addr="0x140" index="2">
-</reg>
-<reg name="CH3_CMD" addr="0x1b0" index="3">
-</reg>
-<reg name="CH4_CMD" addr="0x220" index="4">
-</reg>
-<reg name="CH5_CMD" addr="0x290" index="5">
-</reg>
-<reg name="CH6_CMD" addr="0x300" index="6">
-</reg>
-<reg name="CH7_CMD" addr="0x370" index="7">
</reg>
+<reg name="CHn_CMD" sct="no">
+<formula string="0x60+n*0x70"/>
+<addr name="CH0_CMD" addr="0x60" />
+<addr name="CH1_CMD" addr="0xd0" />
+<addr name="CH2_CMD" addr="0x140" />
+<addr name="CH3_CMD" addr="0x1b0" />
+<addr name="CH4_CMD" addr="0x220" />
+<addr name="CH5_CMD" addr="0x290" />
+<addr name="CH6_CMD" addr="0x300" />
+<addr name="CH7_CMD" addr="0x370" />
<field name="XFER_COUNT" bitrange="31:16">
</field>
<field name="CMDWORDS" bitrange="15:12">
@@ -291,44 +187,30 @@ KIND, either express or implied.
<value name="DMA_SENSE" value="0x3">
</value>
</field>
-</multireg>
-<multireg name="CHn_BAR" base="0x70" count="7" offset="0x70" sct="">
-<reg name="CH0_BAR" addr="0x70" index="0">
-</reg>
-<reg name="CH1_BAR" addr="0xe0" index="1">
-</reg>
-<reg name="CH2_BAR" addr="0x150" index="2">
-</reg>
-<reg name="CH3_BAR" addr="0x1c0" index="3">
-</reg>
-<reg name="CH4_BAR" addr="0x230" index="4">
-</reg>
-<reg name="CH5_BAR" addr="0x2a0" index="5">
-</reg>
-<reg name="CH6_BAR" addr="0x310" index="6">
-</reg>
-<reg name="CH7_BAR" addr="0x380" index="7">
</reg>
+<reg name="CHn_BAR" sct="no">
+<formula string="0x70+n*0x70"/>
+<addr name="CH0_BAR" addr="0x70" />
+<addr name="CH1_BAR" addr="0xe0" />
+<addr name="CH2_BAR" addr="0x150" />
+<addr name="CH3_BAR" addr="0x1c0" />
+<addr name="CH4_BAR" addr="0x230" />
+<addr name="CH5_BAR" addr="0x2a0" />
+<addr name="CH6_BAR" addr="0x310" />
+<addr name="CH7_BAR" addr="0x380" />
<field name="ADDRESS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_SEMA" base="0x80" count="7" offset="0x70" sct="">
-<reg name="CH0_SEMA" addr="0x80" index="0">
-</reg>
-<reg name="CH1_SEMA" addr="0xf0" index="1">
-</reg>
-<reg name="CH2_SEMA" addr="0x160" index="2">
-</reg>
-<reg name="CH3_SEMA" addr="0x1d0" index="3">
-</reg>
-<reg name="CH4_SEMA" addr="0x240" index="4">
-</reg>
-<reg name="CH5_SEMA" addr="0x2b0" index="5">
-</reg>
-<reg name="CH6_SEMA" addr="0x320" index="6">
-</reg>
-<reg name="CH7_SEMA" addr="0x390" index="7">
</reg>
+<reg name="CHn_SEMA" sct="no">
+<formula string="0x80+n*0x70"/>
+<addr name="CH0_SEMA" addr="0x80" />
+<addr name="CH1_SEMA" addr="0xf0" />
+<addr name="CH2_SEMA" addr="0x160" />
+<addr name="CH3_SEMA" addr="0x1d0" />
+<addr name="CH4_SEMA" addr="0x240" />
+<addr name="CH5_SEMA" addr="0x2b0" />
+<addr name="CH6_SEMA" addr="0x320" />
+<addr name="CH7_SEMA" addr="0x390" />
<field name="RSVD2" bitrange="31:24">
</field>
<field name="PHORE" bitrange="23:16">
@@ -337,24 +219,17 @@ KIND, either express or implied.
</field>
<field name="INCREMENT_SEMA" bitrange="7:0">
</field>
-</multireg>
-<multireg name="CHn_DEBUG1" base="0x90" count="7" offset="0x70" sct="">
-<reg name="CH0_DEBUG1" addr="0x90" index="0">
-</reg>
-<reg name="CH1_DEBUG1" addr="0x100" index="1">
-</reg>
-<reg name="CH2_DEBUG1" addr="0x170" index="2">
-</reg>
-<reg name="CH3_DEBUG1" addr="0x1e0" index="3">
-</reg>
-<reg name="CH4_DEBUG1" addr="0x250" index="4">
-</reg>
-<reg name="CH5_DEBUG1" addr="0x2c0" index="5">
-</reg>
-<reg name="CH6_DEBUG1" addr="0x330" index="6">
-</reg>
-<reg name="CH7_DEBUG1" addr="0x3a0" index="7">
</reg>
+<reg name="CHn_DEBUG1" sct="no">
+<formula string="0x90+n*0x70"/>
+<addr name="CH0_DEBUG1" addr="0x90" />
+<addr name="CH1_DEBUG1" addr="0x100" />
+<addr name="CH2_DEBUG1" addr="0x170" />
+<addr name="CH3_DEBUG1" addr="0x1e0" />
+<addr name="CH4_DEBUG1" addr="0x250" />
+<addr name="CH5_DEBUG1" addr="0x2c0" />
+<addr name="CH6_DEBUG1" addr="0x330" />
+<addr name="CH7_DEBUG1" addr="0x3a0" />
<field name="REQ" bitrange="31:31">
</field>
<field name="BURST" bitrange="30:30">
@@ -421,30 +296,24 @@ KIND, either express or implied.
<value name="CHECK_WAIT" value="0x1e">
</value>
</field>
-</multireg>
-<multireg name="CHn_DEBUG2" base="0xa0" count="7" offset="0x70" sct="">
-<reg name="CH0_DEBUG2" addr="0xa0" index="0">
-</reg>
-<reg name="CH1_DEBUG2" addr="0x110" index="1">
-</reg>
-<reg name="CH2_DEBUG2" addr="0x180" index="2">
-</reg>
-<reg name="CH3_DEBUG2" addr="0x1f0" index="3">
-</reg>
-<reg name="CH4_DEBUG2" addr="0x260" index="4">
-</reg>
-<reg name="CH5_DEBUG2" addr="0x2d0" index="5">
-</reg>
-<reg name="CH6_DEBUG2" addr="0x340" index="6">
-</reg>
-<reg name="CH7_DEBUG2" addr="0x3b0" index="7">
</reg>
+<reg name="CHn_DEBUG2" sct="no">
+<formula string="0xa0+n*0x70"/>
+<addr name="CH0_DEBUG2" addr="0xa0" />
+<addr name="CH1_DEBUG2" addr="0x110" />
+<addr name="CH2_DEBUG2" addr="0x180" />
+<addr name="CH3_DEBUG2" addr="0x1f0" />
+<addr name="CH4_DEBUG2" addr="0x260" />
+<addr name="CH5_DEBUG2" addr="0x2d0" />
+<addr name="CH6_DEBUG2" addr="0x340" />
+<addr name="CH7_DEBUG2" addr="0x3b0" />
<field name="APB_BYTES" bitrange="31:16">
</field>
<field name="AHB_BYTES" bitrange="15:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x3f0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x3f0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -453,8 +322,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="APBX" addr="0x80024000" long_name="APHX DMA" desc="AHB-to-APBX Bridge with DMA">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="APBX" long_name="APHX DMA" desc="AHB-to-APBX Bridge with DMA" version="3.2.1">
+<addr name="APBX" addr="0x80024000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -462,203 +333,22 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="29:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
-<field name="CH15_CMDCMPLT_IRQ_EN" bitrange="31:31">
-</field>
-<field name="CH14_CMDCMPLT_IRQ_EN" bitrange="30:30">
-</field>
-<field name="CH13_CMDCMPLT_IRQ_EN" bitrange="29:29">
-</field>
-<field name="CH12_CMDCMPLT_IRQ_EN" bitrange="28:28">
-</field>
-<field name="CH11_CMDCMPLT_IRQ_EN" bitrange="27:27">
-</field>
-<field name="CH10_CMDCMPLT_IRQ_EN" bitrange="26:26">
-</field>
-<field name="CH9_CMDCMPLT_IRQ_EN" bitrange="25:25">
-</field>
-<field name="CH8_CMDCMPLT_IRQ_EN" bitrange="24:24">
-</field>
-<field name="CH7_CMDCMPLT_IRQ_EN" bitrange="23:23">
-</field>
-<field name="CH6_CMDCMPLT_IRQ_EN" bitrange="22:22">
-</field>
-<field name="CH5_CMDCMPLT_IRQ_EN" bitrange="21:21">
-</field>
-<field name="CH4_CMDCMPLT_IRQ_EN" bitrange="20:20">
-</field>
-<field name="CH3_CMDCMPLT_IRQ_EN" bitrange="19:19">
-</field>
-<field name="CH2_CMDCMPLT_IRQ_EN" bitrange="18:18">
-</field>
-<field name="CH1_CMDCMPLT_IRQ_EN" bitrange="17:17">
-</field>
-<field name="CH0_CMDCMPLT_IRQ_EN" bitrange="16:16">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
+<field name="CH_CMDCMPLT_IRQ_EN" bitrange="31:16">
</field>
-<field name="CH15_CMDCMPLT_IRQ" bitrange="15:15">
-</field>
-<field name="CH14_CMDCMPLT_IRQ" bitrange="14:14">
-</field>
-<field name="CH13_CMDCMPLT_IRQ" bitrange="13:13">
-</field>
-<field name="CH12_CMDCMPLT_IRQ" bitrange="12:12">
-</field>
-<field name="CH11_CMDCMPLT_IRQ" bitrange="11:11">
-</field>
-<field name="CH10_CMDCMPLT_IRQ" bitrange="10:10">
-</field>
-<field name="CH9_CMDCMPLT_IRQ" bitrange="9:9">
-</field>
-<field name="CH8_CMDCMPLT_IRQ" bitrange="8:8">
-</field>
-<field name="CH7_CMDCMPLT_IRQ" bitrange="7:7">
-</field>
-<field name="CH6_CMDCMPLT_IRQ" bitrange="6:6">
-</field>
-<field name="CH5_CMDCMPLT_IRQ" bitrange="5:5">
-</field>
-<field name="CH4_CMDCMPLT_IRQ" bitrange="4:4">
-</field>
-<field name="CH3_CMDCMPLT_IRQ" bitrange="3:3">
-</field>
-<field name="CH2_CMDCMPLT_IRQ" bitrange="2:2">
-</field>
-<field name="CH1_CMDCMPLT_IRQ" bitrange="1:1">
-</field>
-<field name="CH0_CMDCMPLT_IRQ" bitrange="0:0">
+<field name="CH_CMDCMPLT_IRQ" bitrange="15:0">
</field>
</reg>
-<reg name="CTRL2" addr="0x20" sct="yes">
-<field name="CH15_ERROR_STATUS" bitrange="31:31">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH14_ERROR_STATUS" bitrange="30:30">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH13_ERROR_STATUS" bitrange="29:29">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH12_ERROR_STATUS" bitrange="28:28">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH11_ERROR_STATUS" bitrange="27:27">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH10_ERROR_STATUS" bitrange="26:26">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH9_ERROR_STATUS" bitrange="25:25">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH8_ERROR_STATUS" bitrange="24:24">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH7_ERROR_STATUS" bitrange="23:23">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH6_ERROR_STATUS" bitrange="22:22">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH5_ERROR_STATUS" bitrange="21:21">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH4_ERROR_STATUS" bitrange="20:20">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH3_ERROR_STATUS" bitrange="19:19">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH2_ERROR_STATUS" bitrange="18:18">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH1_ERROR_STATUS" bitrange="17:17">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH0_ERROR_STATUS" bitrange="16:16">
-<value name="TERMINATION" value="0x0">
-</value>
-<value name="BUS_ERROR" value="0x1">
-</value>
-</field>
-<field name="CH15_ERROR_IRQ" bitrange="15:15">
-</field>
-<field name="CH14_ERROR_IRQ" bitrange="14:14">
-</field>
-<field name="CH13_ERROR_IRQ" bitrange="13:13">
+<reg name="CTRL2" sct="yes">
+<addr name="CTRL2" addr="0x20" />
+<field name="CH_ERROR_STATUS" bitrange="31:16">
</field>
-<field name="CH12_ERROR_IRQ" bitrange="12:12">
-</field>
-<field name="CH11_ERROR_IRQ" bitrange="11:11">
-</field>
-<field name="CH10_ERROR_IRQ" bitrange="10:10">
-</field>
-<field name="CH9_ERROR_IRQ" bitrange="9:9">
-</field>
-<field name="CH8_ERROR_IRQ" bitrange="8:8">
-</field>
-<field name="CH7_ERROR_IRQ" bitrange="7:7">
-</field>
-<field name="CH6_ERROR_IRQ" bitrange="6:6">
-</field>
-<field name="CH5_ERROR_IRQ" bitrange="5:5">
-</field>
-<field name="CH4_ERROR_IRQ" bitrange="4:4">
-</field>
-<field name="CH3_ERROR_IRQ" bitrange="3:3">
-</field>
-<field name="CH2_ERROR_IRQ" bitrange="2:2">
-</field>
-<field name="CH1_ERROR_IRQ" bitrange="1:1">
-</field>
-<field name="CH0_ERROR_IRQ" bitrange="0:0">
+<field name="CH_ERROR_IRQ" bitrange="15:0">
</field>
</reg>
-<reg name="CHANNEL_CTRL" addr="0x30" sct="yes">
+<reg name="CHANNEL_CTRL" sct="yes">
+<addr name="CHANNEL_CTRL" addr="0x30" />
<field name="RESET_CHANNEL" bitrange="31:16">
<value name="AUDIOIN" value="0x1">
</value>
@@ -716,7 +406,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DEVSEL" addr="0x40" sct="no">
+<reg name="DEVSEL" sct="no">
+<addr name="DEVSEL" addr="0x40" />
<field name="CH15" bitrange="31:30">
</field>
<field name="CH14" bitrange="29:28">
@@ -758,111 +449,66 @@ KIND, either express or implied.
<field name="CH0" bitrange="1:0">
</field>
</reg>
-<multireg name="CHn_CURCMDAR" base="0x100" count="15" offset="0x70" sct="">
-<reg name="CH0_CURCMDAR" addr="0x100" index="0">
-</reg>
-<reg name="CH1_CURCMDAR" addr="0x170" index="1">
-</reg>
-<reg name="CH2_CURCMDAR" addr="0x1e0" index="2">
-</reg>
-<reg name="CH3_CURCMDAR" addr="0x250" index="3">
-</reg>
-<reg name="CH4_CURCMDAR" addr="0x2c0" index="4">
-</reg>
-<reg name="CH5_CURCMDAR" addr="0x330" index="5">
-</reg>
-<reg name="CH6_CURCMDAR" addr="0x3a0" index="6">
-</reg>
-<reg name="CH7_CURCMDAR" addr="0x410" index="7">
-</reg>
-<reg name="CH8_CURCMDAR" addr="0x480" index="8">
-</reg>
-<reg name="CH9_CURCMDAR" addr="0x4f0" index="9">
-</reg>
-<reg name="CH10_CURCMDAR" addr="0x560" index="10">
-</reg>
-<reg name="CH11_CURCMDAR" addr="0x5d0" index="11">
-</reg>
-<reg name="CH12_CURCMDAR" addr="0x640" index="12">
-</reg>
-<reg name="CH13_CURCMDAR" addr="0x6b0" index="13">
-</reg>
-<reg name="CH14_CURCMDAR" addr="0x720" index="14">
-</reg>
-<reg name="CH15_CURCMDAR" addr="0x790" index="15">
-</reg>
+<reg name="CHn_CURCMDAR" sct="no">
+<formula string="0x100+n*0x70"/>
+<addr name="CH0_CURCMDAR" addr="0x100" />
+<addr name="CH1_CURCMDAR" addr="0x170" />
+<addr name="CH2_CURCMDAR" addr="0x1e0" />
+<addr name="CH3_CURCMDAR" addr="0x250" />
+<addr name="CH4_CURCMDAR" addr="0x2c0" />
+<addr name="CH5_CURCMDAR" addr="0x330" />
+<addr name="CH6_CURCMDAR" addr="0x3a0" />
+<addr name="CH7_CURCMDAR" addr="0x410" />
+<addr name="CH8_CURCMDAR" addr="0x480" />
+<addr name="CH9_CURCMDAR" addr="0x4f0" />
+<addr name="CH10_CURCMDAR" addr="0x560" />
+<addr name="CH11_CURCMDAR" addr="0x5d0" />
+<addr name="CH12_CURCMDAR" addr="0x640" />
+<addr name="CH13_CURCMDAR" addr="0x6b0" />
+<addr name="CH14_CURCMDAR" addr="0x720" />
+<addr name="CH15_CURCMDAR" addr="0x790" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_NXTCMDAR" base="0x110" count="15" offset="0x70" sct="">
-<reg name="CH0_NXTCMDAR" addr="0x110" index="0">
-</reg>
-<reg name="CH1_NXTCMDAR" addr="0x180" index="1">
-</reg>
-<reg name="CH2_NXTCMDAR" addr="0x1f0" index="2">
-</reg>
-<reg name="CH3_NXTCMDAR" addr="0x260" index="3">
-</reg>
-<reg name="CH4_NXTCMDAR" addr="0x2d0" index="4">
-</reg>
-<reg name="CH5_NXTCMDAR" addr="0x340" index="5">
-</reg>
-<reg name="CH6_NXTCMDAR" addr="0x3b0" index="6">
-</reg>
-<reg name="CH7_NXTCMDAR" addr="0x420" index="7">
-</reg>
-<reg name="CH8_NXTCMDAR" addr="0x490" index="8">
-</reg>
-<reg name="CH9_NXTCMDAR" addr="0x500" index="9">
-</reg>
-<reg name="CH10_NXTCMDAR" addr="0x570" index="10">
-</reg>
-<reg name="CH11_NXTCMDAR" addr="0x5e0" index="11">
-</reg>
-<reg name="CH12_NXTCMDAR" addr="0x650" index="12">
-</reg>
-<reg name="CH13_NXTCMDAR" addr="0x6c0" index="13">
-</reg>
-<reg name="CH14_NXTCMDAR" addr="0x730" index="14">
-</reg>
-<reg name="CH15_NXTCMDAR" addr="0x7a0" index="15">
</reg>
+<reg name="CHn_NXTCMDAR" sct="no">
+<formula string="0x110+n*0x70"/>
+<addr name="CH0_NXTCMDAR" addr="0x110" />
+<addr name="CH1_NXTCMDAR" addr="0x180" />
+<addr name="CH2_NXTCMDAR" addr="0x1f0" />
+<addr name="CH3_NXTCMDAR" addr="0x260" />
+<addr name="CH4_NXTCMDAR" addr="0x2d0" />
+<addr name="CH5_NXTCMDAR" addr="0x340" />
+<addr name="CH6_NXTCMDAR" addr="0x3b0" />
+<addr name="CH7_NXTCMDAR" addr="0x420" />
+<addr name="CH8_NXTCMDAR" addr="0x490" />
+<addr name="CH9_NXTCMDAR" addr="0x500" />
+<addr name="CH10_NXTCMDAR" addr="0x570" />
+<addr name="CH11_NXTCMDAR" addr="0x5e0" />
+<addr name="CH12_NXTCMDAR" addr="0x650" />
+<addr name="CH13_NXTCMDAR" addr="0x6c0" />
+<addr name="CH14_NXTCMDAR" addr="0x730" />
+<addr name="CH15_NXTCMDAR" addr="0x7a0" />
<field name="CMD_ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_CMD" base="0x120" count="15" offset="0x70" sct="">
-<reg name="CH0_CMD" addr="0x120" index="0">
-</reg>
-<reg name="CH1_CMD" addr="0x190" index="1">
-</reg>
-<reg name="CH2_CMD" addr="0x200" index="2">
-</reg>
-<reg name="CH3_CMD" addr="0x270" index="3">
-</reg>
-<reg name="CH4_CMD" addr="0x2e0" index="4">
-</reg>
-<reg name="CH5_CMD" addr="0x350" index="5">
-</reg>
-<reg name="CH6_CMD" addr="0x3c0" index="6">
-</reg>
-<reg name="CH7_CMD" addr="0x430" index="7">
-</reg>
-<reg name="CH8_CMD" addr="0x4a0" index="8">
-</reg>
-<reg name="CH9_CMD" addr="0x510" index="9">
-</reg>
-<reg name="CH10_CMD" addr="0x580" index="10">
-</reg>
-<reg name="CH11_CMD" addr="0x5f0" index="11">
-</reg>
-<reg name="CH12_CMD" addr="0x660" index="12">
-</reg>
-<reg name="CH13_CMD" addr="0x6d0" index="13">
-</reg>
-<reg name="CH14_CMD" addr="0x740" index="14">
-</reg>
-<reg name="CH15_CMD" addr="0x7b0" index="15">
</reg>
+<reg name="CHn_CMD" sct="no">
+<formula string="0x120+n*0x70"/>
+<addr name="CH0_CMD" addr="0x120" />
+<addr name="CH1_CMD" addr="0x190" />
+<addr name="CH2_CMD" addr="0x200" />
+<addr name="CH3_CMD" addr="0x270" />
+<addr name="CH4_CMD" addr="0x2e0" />
+<addr name="CH5_CMD" addr="0x350" />
+<addr name="CH6_CMD" addr="0x3c0" />
+<addr name="CH7_CMD" addr="0x430" />
+<addr name="CH8_CMD" addr="0x4a0" />
+<addr name="CH9_CMD" addr="0x510" />
+<addr name="CH10_CMD" addr="0x580" />
+<addr name="CH11_CMD" addr="0x5f0" />
+<addr name="CH12_CMD" addr="0x660" />
+<addr name="CH13_CMD" addr="0x6d0" />
+<addr name="CH14_CMD" addr="0x740" />
+<addr name="CH15_CMD" addr="0x7b0" />
<field name="XFER_COUNT" bitrange="31:16">
</field>
<field name="CMDWORDS" bitrange="15:12">
@@ -889,76 +535,46 @@ KIND, either express or implied.
<value name="DMA_READ" value="0x2">
</value>
</field>
-</multireg>
-<multireg name="CHn_BAR" base="0x130" count="15" offset="0x70" sct="">
-<reg name="CH0_BAR" addr="0x130" index="0">
-</reg>
-<reg name="CH1_BAR" addr="0x1a0" index="1">
-</reg>
-<reg name="CH2_BAR" addr="0x210" index="2">
-</reg>
-<reg name="CH3_BAR" addr="0x280" index="3">
-</reg>
-<reg name="CH4_BAR" addr="0x2f0" index="4">
-</reg>
-<reg name="CH5_BAR" addr="0x360" index="5">
-</reg>
-<reg name="CH6_BAR" addr="0x3d0" index="6">
-</reg>
-<reg name="CH7_BAR" addr="0x440" index="7">
-</reg>
-<reg name="CH8_BAR" addr="0x4b0" index="8">
-</reg>
-<reg name="CH9_BAR" addr="0x520" index="9">
-</reg>
-<reg name="CH10_BAR" addr="0x590" index="10">
-</reg>
-<reg name="CH11_BAR" addr="0x600" index="11">
-</reg>
-<reg name="CH12_BAR" addr="0x670" index="12">
-</reg>
-<reg name="CH13_BAR" addr="0x6e0" index="13">
-</reg>
-<reg name="CH14_BAR" addr="0x750" index="14">
-</reg>
-<reg name="CH15_BAR" addr="0x7c0" index="15">
</reg>
+<reg name="CHn_BAR" sct="no">
+<formula string="0x130+n*0x70"/>
+<addr name="CH0_BAR" addr="0x130" />
+<addr name="CH1_BAR" addr="0x1a0" />
+<addr name="CH2_BAR" addr="0x210" />
+<addr name="CH3_BAR" addr="0x280" />
+<addr name="CH4_BAR" addr="0x2f0" />
+<addr name="CH5_BAR" addr="0x360" />
+<addr name="CH6_BAR" addr="0x3d0" />
+<addr name="CH7_BAR" addr="0x440" />
+<addr name="CH8_BAR" addr="0x4b0" />
+<addr name="CH9_BAR" addr="0x520" />
+<addr name="CH10_BAR" addr="0x590" />
+<addr name="CH11_BAR" addr="0x600" />
+<addr name="CH12_BAR" addr="0x670" />
+<addr name="CH13_BAR" addr="0x6e0" />
+<addr name="CH14_BAR" addr="0x750" />
+<addr name="CH15_BAR" addr="0x7c0" />
<field name="ADDRESS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHn_SEMA" base="0x140" count="15" offset="0x70" sct="">
-<reg name="CH0_SEMA" addr="0x140" index="0">
-</reg>
-<reg name="CH1_SEMA" addr="0x1b0" index="1">
-</reg>
-<reg name="CH2_SEMA" addr="0x220" index="2">
-</reg>
-<reg name="CH3_SEMA" addr="0x290" index="3">
-</reg>
-<reg name="CH4_SEMA" addr="0x300" index="4">
-</reg>
-<reg name="CH5_SEMA" addr="0x370" index="5">
-</reg>
-<reg name="CH6_SEMA" addr="0x3e0" index="6">
-</reg>
-<reg name="CH7_SEMA" addr="0x450" index="7">
-</reg>
-<reg name="CH8_SEMA" addr="0x4c0" index="8">
-</reg>
-<reg name="CH9_SEMA" addr="0x530" index="9">
-</reg>
-<reg name="CH10_SEMA" addr="0x5a0" index="10">
-</reg>
-<reg name="CH11_SEMA" addr="0x610" index="11">
-</reg>
-<reg name="CH12_SEMA" addr="0x680" index="12">
-</reg>
-<reg name="CH13_SEMA" addr="0x6f0" index="13">
-</reg>
-<reg name="CH14_SEMA" addr="0x760" index="14">
-</reg>
-<reg name="CH15_SEMA" addr="0x7d0" index="15">
</reg>
+<reg name="CHn_SEMA" sct="no">
+<formula string="0x140+n*0x70"/>
+<addr name="CH0_SEMA" addr="0x140" />
+<addr name="CH1_SEMA" addr="0x1b0" />
+<addr name="CH2_SEMA" addr="0x220" />
+<addr name="CH3_SEMA" addr="0x290" />
+<addr name="CH4_SEMA" addr="0x300" />
+<addr name="CH5_SEMA" addr="0x370" />
+<addr name="CH6_SEMA" addr="0x3e0" />
+<addr name="CH7_SEMA" addr="0x450" />
+<addr name="CH8_SEMA" addr="0x4c0" />
+<addr name="CH9_SEMA" addr="0x530" />
+<addr name="CH10_SEMA" addr="0x5a0" />
+<addr name="CH11_SEMA" addr="0x610" />
+<addr name="CH12_SEMA" addr="0x680" />
+<addr name="CH13_SEMA" addr="0x6f0" />
+<addr name="CH14_SEMA" addr="0x760" />
+<addr name="CH15_SEMA" addr="0x7d0" />
<field name="RSVD2" bitrange="31:24">
</field>
<field name="PHORE" bitrange="23:16">
@@ -967,40 +583,25 @@ KIND, either express or implied.
</field>
<field name="INCREMENT_SEMA" bitrange="7:0">
</field>
-</multireg>
-<multireg name="CHn_DEBUG1" base="0x150" count="15" offset="0x70" sct="">
-<reg name="CH0_DEBUG1" addr="0x150" index="0">
-</reg>
-<reg name="CH1_DEBUG1" addr="0x1c0" index="1">
-</reg>
-<reg name="CH2_DEBUG1" addr="0x230" index="2">
-</reg>
-<reg name="CH3_DEBUG1" addr="0x2a0" index="3">
-</reg>
-<reg name="CH4_DEBUG1" addr="0x310" index="4">
-</reg>
-<reg name="CH5_DEBUG1" addr="0x380" index="5">
-</reg>
-<reg name="CH6_DEBUG1" addr="0x3f0" index="6">
-</reg>
-<reg name="CH7_DEBUG1" addr="0x460" index="7">
-</reg>
-<reg name="CH8_DEBUG1" addr="0x4d0" index="8">
-</reg>
-<reg name="CH9_DEBUG1" addr="0x540" index="9">
-</reg>
-<reg name="CH10_DEBUG1" addr="0x5b0" index="10">
-</reg>
-<reg name="CH11_DEBUG1" addr="0x620" index="11">
-</reg>
-<reg name="CH12_DEBUG1" addr="0x690" index="12">
-</reg>
-<reg name="CH13_DEBUG1" addr="0x700" index="13">
-</reg>
-<reg name="CH14_DEBUG1" addr="0x770" index="14">
-</reg>
-<reg name="CH15_DEBUG1" addr="0x7e0" index="15">
</reg>
+<reg name="CHn_DEBUG1" sct="no">
+<formula string="0x150+n*0x70"/>
+<addr name="CH0_DEBUG1" addr="0x150" />
+<addr name="CH1_DEBUG1" addr="0x1c0" />
+<addr name="CH2_DEBUG1" addr="0x230" />
+<addr name="CH3_DEBUG1" addr="0x2a0" />
+<addr name="CH4_DEBUG1" addr="0x310" />
+<addr name="CH5_DEBUG1" addr="0x380" />
+<addr name="CH6_DEBUG1" addr="0x3f0" />
+<addr name="CH7_DEBUG1" addr="0x460" />
+<addr name="CH8_DEBUG1" addr="0x4d0" />
+<addr name="CH9_DEBUG1" addr="0x540" />
+<addr name="CH10_DEBUG1" addr="0x5b0" />
+<addr name="CH11_DEBUG1" addr="0x620" />
+<addr name="CH12_DEBUG1" addr="0x690" />
+<addr name="CH13_DEBUG1" addr="0x700" />
+<addr name="CH14_DEBUG1" addr="0x770" />
+<addr name="CH15_DEBUG1" addr="0x7e0" />
<field name="REQ" bitrange="31:31">
</field>
<field name="BURST" bitrange="30:30">
@@ -1059,46 +660,32 @@ KIND, either express or implied.
<value name="CHECK_WAIT" value="0x1e">
</value>
</field>
-</multireg>
-<multireg name="CHn_DEBUG2" base="0x160" count="15" offset="0x70" sct="">
-<reg name="CH0_DEBUG2" addr="0x160" index="0">
-</reg>
-<reg name="CH1_DEBUG2" addr="0x1d0" index="1">
-</reg>
-<reg name="CH2_DEBUG2" addr="0x240" index="2">
-</reg>
-<reg name="CH3_DEBUG2" addr="0x2b0" index="3">
-</reg>
-<reg name="CH4_DEBUG2" addr="0x320" index="4">
-</reg>
-<reg name="CH5_DEBUG2" addr="0x390" index="5">
-</reg>
-<reg name="CH6_DEBUG2" addr="0x400" index="6">
-</reg>
-<reg name="CH7_DEBUG2" addr="0x470" index="7">
-</reg>
-<reg name="CH8_DEBUG2" addr="0x4e0" index="8">
-</reg>
-<reg name="CH9_DEBUG2" addr="0x550" index="9">
-</reg>
-<reg name="CH10_DEBUG2" addr="0x5c0" index="10">
-</reg>
-<reg name="CH11_DEBUG2" addr="0x630" index="11">
-</reg>
-<reg name="CH12_DEBUG2" addr="0x6a0" index="12">
-</reg>
-<reg name="CH13_DEBUG2" addr="0x710" index="13">
-</reg>
-<reg name="CH14_DEBUG2" addr="0x780" index="14">
-</reg>
-<reg name="CH15_DEBUG2" addr="0x7f0" index="15">
</reg>
+<reg name="CHn_DEBUG2" sct="no">
+<formula string="0x160+n*0x70"/>
+<addr name="CH0_DEBUG2" addr="0x160" />
+<addr name="CH1_DEBUG2" addr="0x1d0" />
+<addr name="CH2_DEBUG2" addr="0x240" />
+<addr name="CH3_DEBUG2" addr="0x2b0" />
+<addr name="CH4_DEBUG2" addr="0x320" />
+<addr name="CH5_DEBUG2" addr="0x390" />
+<addr name="CH6_DEBUG2" addr="0x400" />
+<addr name="CH7_DEBUG2" addr="0x470" />
+<addr name="CH8_DEBUG2" addr="0x4e0" />
+<addr name="CH9_DEBUG2" addr="0x550" />
+<addr name="CH10_DEBUG2" addr="0x5c0" />
+<addr name="CH11_DEBUG2" addr="0x630" />
+<addr name="CH12_DEBUG2" addr="0x6a0" />
+<addr name="CH13_DEBUG2" addr="0x710" />
+<addr name="CH14_DEBUG2" addr="0x780" />
+<addr name="CH15_DEBUG2" addr="0x7f0" />
<field name="APB_BYTES" bitrange="31:16">
</field>
<field name="AHB_BYTES" bitrange="15:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x800" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x800" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -1107,8 +694,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="AUDIOIN" addr="0x8004c000" long_name="AUDIOIN/ADC" desc="Digital Audio Filter Input">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="AUDIOIN" long_name="AUDIOIN/ADC" desc="Digital Audio Filter Input" version="3.4.0">
+<addr name="AUDIOIN" addr="0x8004c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -1142,13 +731,15 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="ADC_PRESENT" bitrange="31:31">
</field>
<field name="RSRVD3" bitrange="30:0">
</field>
</reg>
-<reg name="ADCSRR" addr="0x20" sct="yes">
+<reg name="ADCSRR" sct="yes">
+<addr name="ADCSRR" addr="0x20" />
<field name="OSR" bitrange="31:31">
<value name="OSR6" value="0x0">
</value>
@@ -1176,7 +767,8 @@ KIND, either express or implied.
<field name="SRC_FRAC" bitrange="12:0">
</field>
</reg>
-<reg name="ADCVOLUME" addr="0x30" sct="yes">
+<reg name="ADCVOLUME" sct="yes">
+<addr name="ADCVOLUME" addr="0x30" />
<field name="RSRVD5" bitrange="31:29">
</field>
<field name="VOLUME_UPDATE_LEFT" bitrange="28:28">
@@ -1198,7 +790,8 @@ KIND, either express or implied.
<field name="VOLUME_RIGHT" bitrange="7:0">
</field>
</reg>
-<reg name="ADCDEBUG" addr="0x40" sct="yes">
+<reg name="ADCDEBUG" sct="yes">
+<addr name="ADCDEBUG" addr="0x40" />
<field name="ENABLE_ADCDMA" bitrange="31:31">
</field>
<field name="RSRVD1" bitrange="30:4">
@@ -1212,7 +805,8 @@ KIND, either express or implied.
<field name="FIFO_STATUS" bitrange="0:0">
</field>
</reg>
-<reg name="ADCVOL" addr="0x50" sct="yes">
+<reg name="ADCVOL" sct="yes">
+<addr name="ADCVOL" addr="0x50" />
<field name="RSRVD4" bitrange="31:29">
</field>
<field name="VOLUME_UPDATE_PENDING" bitrange="28:28">
@@ -1236,7 +830,8 @@ KIND, either express or implied.
<field name="GAIN_RIGHT" bitrange="3:0">
</field>
</reg>
-<reg name="MICLINE" addr="0x60" sct="yes">
+<reg name="MICLINE" sct="yes">
+<addr name="MICLINE" addr="0x60" />
<field name="RSRVD6" bitrange="31:30">
</field>
<field name="DIVIDE_LINE1" bitrange="29:29">
@@ -1250,6 +845,14 @@ KIND, either express or implied.
<field name="RSRVD4" bitrange="23:22">
</field>
<field name="MIC_RESISTOR" bitrange="21:20">
+<value name="Off" value="0x0">
+</value>
+<value name="2KOhm" value="0x1">
+</value>
+<value name="4KOhm" value="0x2">
+</value>
+<value name="8KOhm" value="0x3">
+</value>
</field>
<field name="RSRVD3" bitrange="19:19">
</field>
@@ -1262,9 +865,18 @@ KIND, either express or implied.
<field name="RSRVD1" bitrange="3:2">
</field>
<field name="MIC_GAIN" bitrange="1:0">
+<value name="0dB" value="0x0">
+</value>
+<value name="20dB" value="0x1">
+</value>
+<value name="30dB" value="0x2">
+</value>
+<value name="40dB" value="0x3">
+</value>
</field>
</reg>
-<reg name="ANACLKCTRL" addr="0x70" sct="yes">
+<reg name="ANACLKCTRL" sct="yes">
+<addr name="ANACLKCTRL" addr="0x70" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD4" bitrange="30:11">
@@ -1284,15 +896,18 @@ KIND, either express or implied.
<field name="ADCDIV" bitrange="2:0">
</field>
</reg>
-<reg name="DATA" addr="0x80" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0x80" />
<field name="HIGH" bitrange="31:16">
</field>
<field name="LOW" bitrange="15:0">
</field>
</reg>
</dev>
-<dev name="AUDIOOUT" addr="0x80048000" long_name="AUDIOOUT/DAC" desc="Digital Audio Filter Output">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="AUDIOOUT" long_name="AUDIOOUT/DAC" desc="Digital Audio Filter Output" version="3.2.0">
+<addr name="AUDIOOUT" addr="0x80048000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -1330,13 +945,15 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="DAC_PRESENT" bitrange="31:31">
</field>
<field name="RSRVD1" bitrange="30:0">
</field>
</reg>
-<reg name="DACSRR" addr="0x20" sct="yes">
+<reg name="DACSRR" sct="yes">
+<addr name="DACSRR" addr="0x20" />
<field name="OSR" bitrange="31:31">
<value name="OSR6" value="0x0">
</value>
@@ -1364,7 +981,8 @@ KIND, either express or implied.
<field name="SRC_FRAC" bitrange="12:0">
</field>
</reg>
-<reg name="DACVOLUME" addr="0x30" sct="yes">
+<reg name="DACVOLUME" sct="yes">
+<addr name="DACVOLUME" addr="0x30" />
<field name="RSRVD4" bitrange="31:29">
</field>
<field name="VOLUME_UPDATE_LEFT" bitrange="28:28">
@@ -1388,7 +1006,8 @@ KIND, either express or implied.
<field name="VOLUME_RIGHT" bitrange="7:0">
</field>
</reg>
-<reg name="DACDEBUG" addr="0x40" sct="yes">
+<reg name="DACDEBUG" sct="yes">
+<addr name="DACDEBUG" addr="0x40" />
<field name="ENABLE_DACDMA" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:12">
@@ -1410,7 +1029,8 @@ KIND, either express or implied.
<field name="FIFO_STATUS" bitrange="0:0">
</field>
</reg>
-<reg name="HPVOL" addr="0x50" sct="yes">
+<reg name="HPVOL" sct="yes">
+<addr name="HPVOL" addr="0x50" />
<field name="RSRVD5" bitrange="31:29">
</field>
<field name="VOLUME_UPDATE_PENDING" bitrange="28:28">
@@ -1434,11 +1054,13 @@ KIND, either express or implied.
<field name="VOL_RIGHT" bitrange="6:0">
</field>
</reg>
-<reg name="RESERVED" addr="0x60" sct="yes">
+<reg name="RESERVED" sct="yes">
+<addr name="RESERVED" addr="0x60" />
<field name="RSRVD1" bitrange="31:0">
</field>
</reg>
-<reg name="PWRDN" addr="0x70" sct="yes">
+<reg name="PWRDN" sct="yes">
+<addr name="PWRDN" addr="0x70" />
<field name="RSRVD7" bitrange="31:25">
</field>
<field name="SPEAKER" bitrange="24:24">
@@ -1468,7 +1090,8 @@ KIND, either express or implied.
<field name="HEADPHONE" bitrange="0:0">
</field>
</reg>
-<reg name="REFCTRL" addr="0x80" sct="yes">
+<reg name="REFCTRL" sct="yes">
+<addr name="REFCTRL" addr="0x80" />
<field name="RSRVD4" bitrange="31:27">
</field>
<field name="FASTSETTLING" bitrange="26:26">
@@ -1504,7 +1127,8 @@ KIND, either express or implied.
<field name="DAC_ADJ" bitrange="2:0">
</field>
</reg>
-<reg name="ANACTRL" addr="0x90" sct="yes">
+<reg name="ANACTRL" sct="yes">
+<addr name="ANACTRL" addr="0x90" />
<field name="RSRVD8" bitrange="31:29">
</field>
<field name="SHORT_CM_STS" bitrange="28:28">
@@ -1538,7 +1162,8 @@ KIND, either express or implied.
<field name="RSRVD1" bitrange="3:0">
</field>
</reg>
-<reg name="TEST" addr="0xa0" sct="yes">
+<reg name="TEST" sct="yes">
+<addr name="TEST" addr="0xa0" />
<field name="RSRVD4" bitrange="31:31">
</field>
<field name="HP_ANTIPOP" bitrange="30:28">
@@ -1572,7 +1197,8 @@ KIND, either express or implied.
<field name="DAC_DIS_RTZ" bitrange="0:0">
</field>
</reg>
-<reg name="BISTCTRL" addr="0xb0" sct="yes">
+<reg name="BISTCTRL" sct="yes">
+<addr name="BISTCTRL" addr="0xb0" />
<field name="RSVD0" bitrange="31:4">
</field>
<field name="FAIL" bitrange="3:3">
@@ -1584,13 +1210,15 @@ KIND, either express or implied.
<field name="START" bitrange="0:0">
</field>
</reg>
-<reg name="BISTSTAT0" addr="0xc0" sct="yes">
+<reg name="BISTSTAT0" sct="yes">
+<addr name="BISTSTAT0" addr="0xc0" />
<field name="RSVD0" bitrange="31:24">
</field>
<field name="DATA" bitrange="23:0">
</field>
</reg>
-<reg name="BISTSTAT1" addr="0xd0" sct="yes">
+<reg name="BISTSTAT1" sct="yes">
+<addr name="BISTSTAT1" addr="0xd0" />
<field name="RSVD1" bitrange="31:29">
</field>
<field name="STATE" bitrange="28:24">
@@ -1600,7 +1228,8 @@ KIND, either express or implied.
<field name="ADDR" bitrange="7:0">
</field>
</reg>
-<reg name="ANACLKCTRL" addr="0xe0" sct="yes">
+<reg name="ANACLKCTRL" sct="yes">
+<addr name="ANACLKCTRL" addr="0xe0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD3" bitrange="30:5">
@@ -1612,13 +1241,15 @@ KIND, either express or implied.
<field name="DACDIV" bitrange="2:0">
</field>
</reg>
-<reg name="DATA" addr="0xf0" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0xf0" />
<field name="HIGH" bitrange="31:16">
</field>
<field name="LOW" bitrange="15:0">
</field>
</reg>
-<reg name="SPEAKERCTRL" addr="0x100" sct="yes">
+<reg name="SPEAKERCTRL" sct="yes">
+<addr name="SPEAKERCTRL" addr="0x100" />
<field name="RSRVD2" bitrange="31:25">
</field>
<field name="MUTE" bitrange="24:24">
@@ -1636,7 +1267,8 @@ KIND, either express or implied.
<field name="RSRVD0" bitrange="11:0">
</field>
</reg>
-<reg name="VERSION" addr="0x200" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x200" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -1645,8 +1277,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="BCH" addr="0x8000a000" long_name="BCH ECC" desc="20-BIT Correcting ECC Accelerator (BCH)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="BCH" long_name="BCH ECC" desc="20-BIT Correcting ECC Accelerator (BCH)" version="3.2.0">
+<addr name="BCH" addr="0x8000a000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -1690,7 +1324,8 @@ KIND, either express or implied.
<field name="COMPLETE_IRQ" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS0" addr="0x10" sct="no">
+<reg name="STATUS0" sct="no">
+<addr name="STATUS0" addr="0x10" />
<field name="HANDLE" bitrange="31:20">
</field>
<field name="COMPLETED_CE" bitrange="19:16">
@@ -1722,25 +1357,30 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="1:0">
</field>
</reg>
-<reg name="MODE" addr="0x20" sct="no">
+<reg name="MODE" sct="no">
+<addr name="MODE" addr="0x20" />
<field name="RSVD" bitrange="31:8">
</field>
<field name="ERASE_THRESHOLD" bitrange="7:0">
</field>
</reg>
-<reg name="ENCODEPTR" addr="0x30" sct="no">
+<reg name="ENCODEPTR" sct="no">
+<addr name="ENCODEPTR" addr="0x30" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="DATAPTR" addr="0x40" sct="no">
+<reg name="DATAPTR" sct="no">
+<addr name="DATAPTR" addr="0x40" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="METAPTR" addr="0x50" sct="no">
+<reg name="METAPTR" sct="no">
+<addr name="METAPTR" addr="0x50" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="LAYOUTSELECT" addr="0x70" sct="no">
+<reg name="LAYOUTSELECT" sct="no">
+<addr name="LAYOUTSELECT" addr="0x70" />
<field name="CS15_SELECT" bitrange="31:30">
</field>
<field name="CS14_SELECT" bitrange="29:28">
@@ -1774,7 +1414,8 @@ KIND, either express or implied.
<field name="CS0_SELECT" bitrange="1:0">
</field>
</reg>
-<reg name="FLASH0LAYOUT0" addr="0x80" sct="no">
+<reg name="FLASH0LAYOUT0" sct="no">
+<addr name="FLASH0LAYOUT0" addr="0x80" />
<field name="NBLOCKS" bitrange="31:24">
</field>
<field name="META_SIZE" bitrange="23:16">
@@ -1806,7 +1447,8 @@ KIND, either express or implied.
<field name="DATA0_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH0LAYOUT1" addr="0x90" sct="no">
+<reg name="FLASH0LAYOUT1" sct="no">
+<addr name="FLASH0LAYOUT1" addr="0x90" />
<field name="PAGE_SIZE" bitrange="31:16">
</field>
<field name="ECCN" bitrange="15:12">
@@ -1836,7 +1478,8 @@ KIND, either express or implied.
<field name="DATAN_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH1LAYOUT0" addr="0xa0" sct="no">
+<reg name="FLASH1LAYOUT0" sct="no">
+<addr name="FLASH1LAYOUT0" addr="0xa0" />
<field name="NBLOCKS" bitrange="31:24">
</field>
<field name="META_SIZE" bitrange="23:16">
@@ -1868,7 +1511,8 @@ KIND, either express or implied.
<field name="DATA0_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH1LAYOUT1" addr="0xb0" sct="no">
+<reg name="FLASH1LAYOUT1" sct="no">
+<addr name="FLASH1LAYOUT1" addr="0xb0" />
<field name="PAGE_SIZE" bitrange="31:16">
</field>
<field name="ECCN" bitrange="15:12">
@@ -1898,7 +1542,8 @@ KIND, either express or implied.
<field name="DATAN_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH2LAYOUT0" addr="0xc0" sct="no">
+<reg name="FLASH2LAYOUT0" sct="no">
+<addr name="FLASH2LAYOUT0" addr="0xc0" />
<field name="NBLOCKS" bitrange="31:24">
</field>
<field name="META_SIZE" bitrange="23:16">
@@ -1930,7 +1575,8 @@ KIND, either express or implied.
<field name="DATA0_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH2LAYOUT1" addr="0xd0" sct="no">
+<reg name="FLASH2LAYOUT1" sct="no">
+<addr name="FLASH2LAYOUT1" addr="0xd0" />
<field name="PAGE_SIZE" bitrange="31:16">
</field>
<field name="ECCN" bitrange="15:12">
@@ -1960,7 +1606,8 @@ KIND, either express or implied.
<field name="DATAN_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH3LAYOUT0" addr="0xe0" sct="no">
+<reg name="FLASH3LAYOUT0" sct="no">
+<addr name="FLASH3LAYOUT0" addr="0xe0" />
<field name="NBLOCKS" bitrange="31:24">
</field>
<field name="META_SIZE" bitrange="23:16">
@@ -1992,7 +1639,8 @@ KIND, either express or implied.
<field name="DATA0_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="FLASH3LAYOUT1" addr="0xf0" sct="no">
+<reg name="FLASH3LAYOUT1" sct="no">
+<addr name="FLASH3LAYOUT1" addr="0xf0" />
<field name="PAGE_SIZE" bitrange="31:16">
</field>
<field name="ECCN" bitrange="15:12">
@@ -2022,7 +1670,8 @@ KIND, either express or implied.
<field name="DATAN_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x100" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x100" />
<field name="RSVD1" bitrange="31:27">
</field>
<field name="ROM_BIST_ENABLE" bitrange="26:26">
@@ -2076,27 +1725,33 @@ KIND, either express or implied.
<field name="DEBUG_REG_SELECT" bitrange="5:0">
</field>
</reg>
-<reg name="DBGKESREAD" addr="0x110" sct="no">
+<reg name="DBGKESREAD" sct="no">
+<addr name="DBGKESREAD" addr="0x110" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGCSFEREAD" addr="0x120" sct="no">
+<reg name="DBGCSFEREAD" sct="no">
+<addr name="DBGCSFEREAD" addr="0x120" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGSYNDGENREAD" addr="0x130" sct="no">
+<reg name="DBGSYNDGENREAD" sct="no">
+<addr name="DBGSYNDGENREAD" addr="0x130" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGAHBMREAD" addr="0x140" sct="no">
+<reg name="DBGAHBMREAD" sct="no">
+<addr name="DBGAHBMREAD" addr="0x140" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="BLOCKNAME" addr="0x150" sct="no">
+<reg name="BLOCKNAME" sct="no">
+<addr name="BLOCKNAME" addr="0x150" />
<field name="NAME" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0x160" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x160" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -2105,8 +1760,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="CLKCTRL" addr="0x80040000" long_name="Clock Controller" desc="Clock Generation and Control">
-<reg name="PLLCTRL0" addr="0x0" sct="yes">
+<dev name="CLKCTRL" long_name="Clock Controller" desc="Clock Generation and Control" version="3.2.0">
+<addr name="CLKCTRL" addr="0x80040000" />
+<reg name="PLLCTRL0" sct="yes">
+<addr name="PLLCTRL0" addr="0x0" />
<field name="RSRVD6" bitrange="31:30">
</field>
<field name="LFR_SEL" bitrange="29:28">
@@ -2154,7 +1811,8 @@ KIND, either express or implied.
<field name="RSRVD1" bitrange="15:0">
</field>
</reg>
-<reg name="PLLCTRL1" addr="0x10" sct="no">
+<reg name="PLLCTRL1" sct="no">
+<addr name="PLLCTRL1" addr="0x10" />
<field name="LOCK" bitrange="31:31">
</field>
<field name="FORCE_LOCK" bitrange="30:30">
@@ -2164,7 +1822,8 @@ KIND, either express or implied.
<field name="LOCK_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CPU" addr="0x20" sct="yes">
+<reg name="CPU" sct="yes">
+<addr name="CPU" addr="0x20" />
<field name="RSRVD5" bitrange="31:30">
</field>
<field name="BUSY_REF_XTAL" bitrange="29:29">
@@ -2190,7 +1849,8 @@ KIND, either express or implied.
<field name="DIV_CPU" bitrange="5:0">
</field>
</reg>
-<reg name="HBUS" addr="0x30" sct="yes">
+<reg name="HBUS" sct="yes">
+<addr name="HBUS" addr="0x30" />
<field name="RSRVD4" bitrange="31:30">
</field>
<field name="BUSY" bitrange="29:29">
@@ -2236,7 +1896,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="4:0">
</field>
</reg>
-<reg name="XBUS" addr="0x40" sct="no">
+<reg name="XBUS" sct="no">
+<addr name="XBUS" addr="0x40" />
<field name="BUSY" bitrange="31:31">
</field>
<field name="RSRVD1" bitrange="30:11">
@@ -2246,7 +1907,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="9:0">
</field>
</reg>
-<reg name="XTAL" addr="0x50" sct="yes">
+<reg name="XTAL" sct="yes">
+<addr name="XTAL" addr="0x50" />
<field name="UART_CLK_GATE" bitrange="31:31">
</field>
<field name="FILT_CLK24M_GATE" bitrange="30:30">
@@ -2264,7 +1926,8 @@ KIND, either express or implied.
<field name="DIV_UART" bitrange="1:0">
</field>
</reg>
-<reg name="PIX" addr="0x60" sct="no">
+<reg name="PIX" sct="no">
+<addr name="PIX" addr="0x60" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:30">
@@ -2278,7 +1941,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="11:0">
</field>
</reg>
-<reg name="SSP" addr="0x70" sct="no">
+<reg name="SSP" sct="no">
+<addr name="SSP" addr="0x70" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:30">
@@ -2292,7 +1956,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="8:0">
</field>
</reg>
-<reg name="GPMI" addr="0x80" sct="no">
+<reg name="GPMI" sct="no">
+<addr name="GPMI" addr="0x80" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:30">
@@ -2306,13 +1971,15 @@ KIND, either express or implied.
<field name="DIV" bitrange="9:0">
</field>
</reg>
-<reg name="SPDIF" addr="0x90" sct="no">
+<reg name="SPDIF" sct="no">
+<addr name="SPDIF" addr="0x90" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD" bitrange="30:0">
</field>
</reg>
-<reg name="EMI" addr="0xa0" sct="no">
+<reg name="EMI" sct="no">
+<addr name="EMI" addr="0xa0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="SYNC_MODE_EN" bitrange="30:30">
@@ -2340,7 +2007,8 @@ KIND, either express or implied.
<field name="DIV_EMI" bitrange="5:0">
</field>
</reg>
-<reg name="IR" addr="0xb0" sct="no">
+<reg name="IR" sct="no">
+<addr name="IR" addr="0xb0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD3" bitrange="30:30">
@@ -2360,7 +2028,8 @@ KIND, either express or implied.
<field name="IR_DIV" bitrange="9:0">
</field>
</reg>
-<reg name="SAIF" addr="0xc0" sct="no">
+<reg name="SAIF" sct="no">
+<addr name="SAIF" addr="0xc0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:30">
@@ -2374,7 +2043,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="15:0">
</field>
</reg>
-<reg name="TV" addr="0xd0" sct="no">
+<reg name="TV" sct="no">
+<addr name="TV" addr="0xd0" />
<field name="CLK_TV108M_GATE" bitrange="31:31">
</field>
<field name="CLK_TV_GATE" bitrange="30:30">
@@ -2382,7 +2052,8 @@ KIND, either express or implied.
<field name="RSRVD" bitrange="29:0">
</field>
</reg>
-<reg name="ETM" addr="0xe0" sct="no">
+<reg name="ETM" sct="no">
+<addr name="ETM" addr="0xe0" />
<field name="CLKGATE" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:30">
@@ -2396,7 +2067,8 @@ KIND, either express or implied.
<field name="DIV" bitrange="5:0">
</field>
</reg>
-<reg name="FRAC" addr="0xf0" sct="yes">
+<reg name="FRAC" sct="yes">
+<addr name="FRAC" addr="0xf0" />
<field name="CLKGATEIO" bitrange="31:31">
</field>
<field name="IO_STABLE" bitrange="30:30">
@@ -2422,7 +2094,8 @@ KIND, either express or implied.
<field name="CPUFRAC" bitrange="5:0">
</field>
</reg>
-<reg name="FRAC1" addr="0x100" sct="yes">
+<reg name="FRAC1" sct="yes">
+<addr name="FRAC1" addr="0x100" />
<field name="CLKGATEVID" bitrange="31:31">
</field>
<field name="VID_STABLE" bitrange="30:30">
@@ -2430,7 +2103,8 @@ KIND, either express or implied.
<field name="RSRVD1" bitrange="29:0">
</field>
</reg>
-<reg name="CLKSEQ" addr="0x110" sct="yes">
+<reg name="CLKSEQ" sct="yes">
+<addr name="CLKSEQ" addr="0x110" />
<field name="RSRVD1" bitrange="31:9">
</field>
<field name="BYPASS_ETM" bitrange="8:8">
@@ -2452,7 +2126,8 @@ KIND, either express or implied.
<field name="BYPASS_SAIF" bitrange="0:0">
</field>
</reg>
-<reg name="RESET" addr="0x120" sct="no">
+<reg name="RESET" sct="no">
+<addr name="RESET" addr="0x120" />
<field name="RSRVD" bitrange="31:2">
</field>
<field name="CHIP" bitrange="1:1">
@@ -2460,13 +2135,15 @@ KIND, either express or implied.
<field name="DIG" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS" addr="0x130" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0x130" />
<field name="CPU_LIMIT" bitrange="31:30">
</field>
<field name="RSRVD" bitrange="29:0">
</field>
</reg>
-<reg name="VERSION" addr="0x140" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x140" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -2475,8 +2152,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="DCP" addr="0x80028000" long_name="Data CoProcessor" desc="Data Co-Processor (DCP)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="DCP" long_name="Data CoProcessor" desc="Data Co-Processor (DCP)" version="3.2.0">
+<addr name="DCP" addr="0x80028000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -2516,7 +2195,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="RSVD2" bitrange="31:29">
</field>
<field name="OTP_KEY_READY" bitrange="28:28">
@@ -2554,7 +2234,8 @@ KIND, either express or implied.
<field name="IRQ" bitrange="3:0">
</field>
</reg>
-<reg name="CHANNELCTRL" addr="0x20" sct="yes">
+<reg name="CHANNELCTRL" sct="yes">
+<addr name="CHANNELCTRL" addr="0x20" />
<field name="RSVD" bitrange="31:19">
</field>
<field name="CSC_PRIORITY" bitrange="18:17">
@@ -2590,7 +2271,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CAPABILITY0" addr="0x30" sct="no">
+<reg name="CAPABILITY0" sct="no">
+<addr name="CAPABILITY0" addr="0x30" />
<field name="DISABLE_DECRYPT" bitrange="31:31">
</field>
<field name="ENABLE_TZONE" bitrange="30:30">
@@ -2602,7 +2284,8 @@ KIND, either express or implied.
<field name="NUM_KEYS" bitrange="7:0">
</field>
</reg>
-<reg name="CAPABILITY1" addr="0x40" sct="no">
+<reg name="CAPABILITY1" sct="no">
+<addr name="CAPABILITY1" addr="0x40" />
<field name="HASH_ALGORITHMS" bitrange="31:16">
<value name="SHA1" value="0x1">
</value>
@@ -2614,11 +2297,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CONTEXT" addr="0x50" sct="no">
+<reg name="CONTEXT" sct="no">
+<addr name="CONTEXT" addr="0x50" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="KEY" addr="0x60" sct="no">
+<reg name="KEY" sct="no">
+<addr name="KEY" addr="0x60" />
<field name="RSVD" bitrange="31:8">
</field>
<field name="RSVD_INDEX" bitrange="7:6">
@@ -2630,15 +2315,18 @@ KIND, either express or implied.
<field name="SUBWORD" bitrange="1:0">
</field>
</reg>
-<reg name="KEYDATA" addr="0x70" sct="no">
+<reg name="KEYDATA" sct="no">
+<addr name="KEYDATA" addr="0x70" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET0" addr="0x80" sct="no">
+<reg name="PACKET0" sct="no">
+<addr name="PACKET0" addr="0x80" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET1" addr="0x90" sct="no">
+<reg name="PACKET1" sct="no">
+<addr name="PACKET1" addr="0x90" />
<field name="TAG" bitrange="31:24">
</field>
<field name="OUTPUT_WORDSWAP" bitrange="23:23">
@@ -2698,7 +2386,8 @@ KIND, either express or implied.
<field name="INTERRUPT" bitrange="0:0">
</field>
</reg>
-<reg name="PACKET2" addr="0xa0" sct="no">
+<reg name="PACKET2" sct="no">
+<addr name="PACKET2" addr="0xa0" />
<field name="CIPHER_CFG" bitrange="31:24">
</field>
<field name="RSVD" bitrange="23:20">
@@ -2722,43 +2411,41 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="PACKET3" addr="0xb0" sct="no">
+<reg name="PACKET3" sct="no">
+<addr name="PACKET3" addr="0xb0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET4" addr="0xc0" sct="no">
+<reg name="PACKET4" sct="no">
+<addr name="PACKET4" addr="0xc0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET5" addr="0xd0" sct="no">
+<reg name="PACKET5" sct="no">
+<addr name="PACKET5" addr="0xd0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="PACKET6" addr="0xe0" sct="no">
+<reg name="PACKET6" sct="no">
+<addr name="PACKET6" addr="0xe0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<multireg name="CHnCMDPTR" base="0x100" count="3" offset="0x40" sct="">
-<reg name="CH0CMDPTR" addr="0x100" index="0">
-</reg>
-<reg name="CH1CMDPTR" addr="0x140" index="1">
-</reg>
-<reg name="CH2CMDPTR" addr="0x180" index="2">
-</reg>
-<reg name="CH3CMDPTR" addr="0x1c0" index="3">
-</reg>
+<reg name="CHnCMDPTR" sct="no">
+<formula string="0x100+n*0x40"/>
+<addr name="CH0CMDPTR" addr="0x100" />
+<addr name="CH1CMDPTR" addr="0x140" />
+<addr name="CH2CMDPTR" addr="0x180" />
+<addr name="CH3CMDPTR" addr="0x1c0" />
<field name="ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CHnSEMA" base="0x110" count="3" offset="0x40" sct="">
-<reg name="CH0SEMA" addr="0x110" index="0">
-</reg>
-<reg name="CH1SEMA" addr="0x150" index="1">
-</reg>
-<reg name="CH2SEMA" addr="0x190" index="2">
-</reg>
-<reg name="CH3SEMA" addr="0x1d0" index="3">
</reg>
+<reg name="CHnSEMA" sct="no">
+<formula string="0x110+n*0x40"/>
+<addr name="CH0SEMA" addr="0x110" />
+<addr name="CH1SEMA" addr="0x150" />
+<addr name="CH2SEMA" addr="0x190" />
+<addr name="CH3SEMA" addr="0x1d0" />
<field name="RSVD2" bitrange="31:24">
</field>
<field name="VALUE" bitrange="23:16">
@@ -2767,16 +2454,13 @@ KIND, either express or implied.
</field>
<field name="INCREMENT" bitrange="7:0">
</field>
-</multireg>
-<multireg name="CHnSTAT" base="0x120" count="3" offset="0x40" sct="SCT">
-<reg name="CH0STAT" addr="0x120" index="0">
-</reg>
-<reg name="CH1STAT" addr="0x160" index="1">
-</reg>
-<reg name="CH2STAT" addr="0x1a0" index="2">
-</reg>
-<reg name="CH3STAT" addr="0x1e0" index="3">
</reg>
+<reg name="CHnSTAT" sct="yes">
+<formula string="0x120+n*0x40"/>
+<addr name="CH0STAT" addr="0x120" />
+<addr name="CH1STAT" addr="0x160" />
+<addr name="CH2STAT" addr="0x1a0" />
+<addr name="CH3STAT" addr="0x1e0" />
<field name="TAG" bitrange="31:24">
</field>
<field name="ERROR_CODE" bitrange="23:16">
@@ -2807,22 +2491,20 @@ KIND, either express or implied.
</field>
<field name="RSVD_COMPLETE" bitrange="0:0">
</field>
-</multireg>
-<multireg name="CHnOPTS" base="0x130" count="3" offset="0x40" sct="SCT">
-<reg name="CH0OPTS" addr="0x130" index="0">
-</reg>
-<reg name="CH1OPTS" addr="0x170" index="1">
-</reg>
-<reg name="CH2OPTS" addr="0x1b0" index="2">
-</reg>
-<reg name="CH3OPTS" addr="0x1f0" index="3">
</reg>
+<reg name="CHnOPTS" sct="yes">
+<formula string="0x130+n*0x40"/>
+<addr name="CH0OPTS" addr="0x130" />
+<addr name="CH1OPTS" addr="0x170" />
+<addr name="CH2OPTS" addr="0x1b0" />
+<addr name="CH3OPTS" addr="0x1f0" />
<field name="RSVD" bitrange="31:16">
</field>
<field name="RECOVERY_TIMER" bitrange="15:0">
</field>
-</multireg>
-<reg name="CSCCTRL0" addr="0x300" sct="yes">
+</reg>
+<reg name="CSCCTRL0" sct="yes">
+<addr name="CSCCTRL0" addr="0x300" />
<field name="RSVD1" bitrange="31:16">
</field>
<field name="CLIP" bitrange="15:15">
@@ -2858,7 +2540,8 @@ KIND, either express or implied.
<field name="ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="CSCSTAT" addr="0x310" sct="yes">
+<reg name="CSCSTAT" sct="yes">
+<addr name="CSCSTAT" addr="0x310" />
<field name="RSVD3" bitrange="31:24">
</field>
<field name="ERROR_CODE" bitrange="23:16">
@@ -2888,7 +2571,8 @@ KIND, either express or implied.
<field name="COMPLETE" bitrange="0:0">
</field>
</reg>
-<reg name="CSCOUTBUFPARAM" addr="0x320" sct="no">
+<reg name="CSCOUTBUFPARAM" sct="no">
+<addr name="CSCOUTBUFPARAM" addr="0x320" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="FIELD_SIZE" bitrange="23:12">
@@ -2896,29 +2580,35 @@ KIND, either express or implied.
<field name="LINE_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="CSCINBUFPARAM" addr="0x330" sct="no">
+<reg name="CSCINBUFPARAM" sct="no">
+<addr name="CSCINBUFPARAM" addr="0x330" />
<field name="RSVD1" bitrange="31:12">
</field>
<field name="LINE_SIZE" bitrange="11:0">
</field>
</reg>
-<reg name="CSCRGB" addr="0x340" sct="no">
+<reg name="CSCRGB" sct="no">
+<addr name="CSCRGB" addr="0x340" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCLUMA" addr="0x350" sct="no">
+<reg name="CSCLUMA" sct="no">
+<addr name="CSCLUMA" addr="0x350" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCCHROMAU" addr="0x360" sct="no">
+<reg name="CSCCHROMAU" sct="no">
+<addr name="CSCCHROMAU" addr="0x360" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCCHROMAV" addr="0x370" sct="no">
+<reg name="CSCCHROMAV" sct="no">
+<addr name="CSCCHROMAV" addr="0x370" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="CSCCOEFF0" addr="0x380" sct="no">
+<reg name="CSCCOEFF0" sct="no">
+<addr name="CSCCOEFF0" addr="0x380" />
<field name="RSVD1" bitrange="31:26">
</field>
<field name="C0" bitrange="25:16">
@@ -2928,7 +2618,8 @@ KIND, either express or implied.
<field name="Y_OFFSET" bitrange="7:0">
</field>
</reg>
-<reg name="CSCCOEFF1" addr="0x390" sct="no">
+<reg name="CSCCOEFF1" sct="no">
+<addr name="CSCCOEFF1" addr="0x390" />
<field name="RSVD1" bitrange="31:26">
</field>
<field name="C1" bitrange="25:16">
@@ -2938,7 +2629,8 @@ KIND, either express or implied.
<field name="C4" bitrange="9:0">
</field>
</reg>
-<reg name="CSCCOEFF2" addr="0x3a0" sct="no">
+<reg name="CSCCOEFF2" sct="no">
+<addr name="CSCCOEFF2" addr="0x3a0" />
<field name="RSVD1" bitrange="31:26">
</field>
<field name="C2" bitrange="25:16">
@@ -2948,7 +2640,8 @@ KIND, either express or implied.
<field name="C3" bitrange="9:0">
</field>
</reg>
-<reg name="CSCCLIP" addr="0x3d0" sct="no">
+<reg name="CSCCLIP" sct="no">
+<addr name="CSCCLIP" addr="0x3d0" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="HEIGHT" bitrange="23:12">
@@ -2956,7 +2649,8 @@ KIND, either express or implied.
<field name="WIDTH" bitrange="11:0">
</field>
</reg>
-<reg name="CSCXSCALE" addr="0x3e0" sct="no">
+<reg name="CSCXSCALE" sct="no">
+<addr name="CSCXSCALE" addr="0x3e0" />
<field name="RSVD1" bitrange="31:26">
</field>
<field name="INT" bitrange="25:24">
@@ -2966,7 +2660,8 @@ KIND, either express or implied.
<field name="WIDTH" bitrange="11:0">
</field>
</reg>
-<reg name="CSCYSCALE" addr="0x3f0" sct="no">
+<reg name="CSCYSCALE" sct="no">
+<addr name="CSCYSCALE" addr="0x3f0" />
<field name="RSVD1" bitrange="31:26">
</field>
<field name="INT" bitrange="25:24">
@@ -2976,7 +2671,8 @@ KIND, either express or implied.
<field name="HEIGHT" bitrange="11:0">
</field>
</reg>
-<reg name="DBGSELECT" addr="0x400" sct="no">
+<reg name="DBGSELECT" sct="no">
+<addr name="DBGSELECT" addr="0x400" />
<field name="RSVD" bitrange="31:8">
</field>
<field name="INDEX" bitrange="7:0">
@@ -2992,11 +2688,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DBGDATA" addr="0x410" sct="no">
+<reg name="DBGDATA" sct="no">
+<addr name="DBGDATA" addr="0x410" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="PAGETABLE" addr="0x420" sct="no">
+<reg name="PAGETABLE" sct="no">
+<addr name="PAGETABLE" addr="0x420" />
<field name="BASE" bitrange="31:2">
</field>
<field name="FLUSH" bitrange="1:1">
@@ -3004,7 +2702,8 @@ KIND, either express or implied.
<field name="ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0x430" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x430" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -3013,8 +2712,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="DIGCTL" addr="0x8001c000" long_name="Digital Control" desc="Digital Control and On-Chip RAM">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="DIGCTL" long_name="Digital Control" desc="Digital Control and On-Chip RAM" version="3.2.0">
+<addr name="DIGCTL" addr="0x8001c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="RSVD3" bitrange="31:31">
</field>
<field name="XTAL24M_GATE" bitrange="30:30">
@@ -3108,7 +2809,8 @@ KIND, either express or implied.
<field name="LATCH_ENTROPY" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS" addr="0x10" sct="yes">
+<reg name="STATUS" sct="yes">
+<addr name="STATUS" addr="0x10" />
<field name="USB_HS_PRESENT" bitrange="31:31">
</field>
<field name="USB_OTG_PRESENT" bitrange="30:30">
@@ -3138,11 +2840,13 @@ KIND, either express or implied.
<field name="WRITTEN" bitrange="0:0">
</field>
</reg>
-<reg name="HCLKCOUNT" addr="0x20" sct="yes">
+<reg name="HCLKCOUNT" sct="yes">
+<addr name="HCLKCOUNT" addr="0x20" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="RAMCTRL" addr="0x30" sct="yes">
+<reg name="RAMCTRL" sct="yes">
+<addr name="RAMCTRL" addr="0x30" />
<field name="RSVD1" bitrange="31:12">
</field>
<field name="SPEED_SELECT" bitrange="11:8">
@@ -3152,31 +2856,37 @@ KIND, either express or implied.
<field name="RAM_REPAIR_EN" bitrange="0:0">
</field>
</reg>
-<reg name="RAMREPAIR" addr="0x40" sct="yes">
+<reg name="RAMREPAIR" sct="yes">
+<addr name="RAMREPAIR" addr="0x40" />
<field name="RSVD1" bitrange="31:16">
</field>
<field name="ADDR" bitrange="15:0">
</field>
</reg>
-<reg name="ROMCTRL" addr="0x50" sct="yes">
+<reg name="ROMCTRL" sct="yes">
+<addr name="ROMCTRL" addr="0x50" />
<field name="RSVD0" bitrange="31:4">
</field>
<field name="RD_MARGIN" bitrange="3:0">
</field>
</reg>
-<reg name="WRITEONCE" addr="0x60" sct="no">
+<reg name="WRITEONCE" sct="no">
+<addr name="WRITEONCE" addr="0x60" />
<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="ENTROPY" addr="0x90" sct="no">
+<reg name="ENTROPY" sct="no">
+<addr name="ENTROPY" addr="0x90" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="ENTROPY_LATCHED" addr="0xa0" sct="no">
+<reg name="ENTROPY_LATCHED" sct="no">
+<addr name="ENTROPY_LATCHED" addr="0xa0" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="SJTAGDBG" addr="0xb0" sct="yes">
+<reg name="SJTAGDBG" sct="yes">
+<addr name="SJTAGDBG" addr="0xb0" />
<field name="RSVD2" bitrange="31:27">
</field>
<field name="SJTAG_STATE" bitrange="26:16">
@@ -3200,19 +2910,23 @@ KIND, either express or implied.
<field name="SJTAG_DEBUG_OE" bitrange="0:0">
</field>
</reg>
-<reg name="MICROSECONDS" addr="0xc0" sct="yes">
+<reg name="MICROSECONDS" sct="yes">
+<addr name="MICROSECONDS" addr="0xc0" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="DBGRD" addr="0xd0" sct="no">
+<reg name="DBGRD" sct="no">
+<addr name="DBGRD" addr="0xd0" />
<field name="COMPLEMENT" bitrange="31:0">
</field>
</reg>
-<reg name="DBG" addr="0xe0" sct="no">
+<reg name="DBG" sct="no">
+<addr name="DBG" addr="0xe0" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_BIST_CSR" addr="0xf0" sct="yes">
+<reg name="OCRAM_BIST_CSR" sct="yes">
+<addr name="OCRAM_BIST_CSR" addr="0xf0" />
<field name="RSVD1" bitrange="31:11">
</field>
<field name="BIST_DEBUG_MODE" bitrange="10:10">
@@ -3232,39 +2946,48 @@ KIND, either express or implied.
<field name="START" bitrange="0:0">
</field>
</reg>
-<reg name="OCRAM_STATUS0" addr="0x110" sct="yes">
+<reg name="OCRAM_STATUS0" sct="yes">
+<addr name="OCRAM_STATUS0" addr="0x110" />
<field name="FAILDATA00" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS1" addr="0x120" sct="yes">
+<reg name="OCRAM_STATUS1" sct="yes">
+<addr name="OCRAM_STATUS1" addr="0x120" />
<field name="FAILDATA01" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS2" addr="0x130" sct="yes">
+<reg name="OCRAM_STATUS2" sct="yes">
+<addr name="OCRAM_STATUS2" addr="0x130" />
<field name="FAILDATA10" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS3" addr="0x140" sct="yes">
+<reg name="OCRAM_STATUS3" sct="yes">
+<addr name="OCRAM_STATUS3" addr="0x140" />
<field name="FAILDATA11" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS4" addr="0x150" sct="yes">
+<reg name="OCRAM_STATUS4" sct="yes">
+<addr name="OCRAM_STATUS4" addr="0x150" />
<field name="FAILDATA20" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS5" addr="0x160" sct="yes">
+<reg name="OCRAM_STATUS5" sct="yes">
+<addr name="OCRAM_STATUS5" addr="0x160" />
<field name="FAILDATA21" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS6" addr="0x170" sct="yes">
+<reg name="OCRAM_STATUS6" sct="yes">
+<addr name="OCRAM_STATUS6" addr="0x170" />
<field name="FAILDATA30" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS7" addr="0x180" sct="yes">
+<reg name="OCRAM_STATUS7" sct="yes">
+<addr name="OCRAM_STATUS7" addr="0x180" />
<field name="FAILDATA31" bitrange="31:0">
</field>
</reg>
-<reg name="OCRAM_STATUS8" addr="0x190" sct="yes">
+<reg name="OCRAM_STATUS8" sct="yes">
+<addr name="OCRAM_STATUS8" addr="0x190" />
<field name="RSVD3" bitrange="31:29">
</field>
<field name="FAILADDR01" bitrange="28:16">
@@ -3274,7 +2997,8 @@ KIND, either express or implied.
<field name="FAILADDR00" bitrange="12:0">
</field>
</reg>
-<reg name="OCRAM_STATUS9" addr="0x1a0" sct="yes">
+<reg name="OCRAM_STATUS9" sct="yes">
+<addr name="OCRAM_STATUS9" addr="0x1a0" />
<field name="RSVD3" bitrange="31:29">
</field>
<field name="FAILADDR11" bitrange="28:16">
@@ -3284,7 +3008,8 @@ KIND, either express or implied.
<field name="FAILADDR10" bitrange="12:0">
</field>
</reg>
-<reg name="OCRAM_STATUS10" addr="0x1b0" sct="yes">
+<reg name="OCRAM_STATUS10" sct="yes">
+<addr name="OCRAM_STATUS10" addr="0x1b0" />
<field name="RSVD3" bitrange="31:29">
</field>
<field name="FAILADDR21" bitrange="28:16">
@@ -3294,7 +3019,8 @@ KIND, either express or implied.
<field name="FAILADDR20" bitrange="12:0">
</field>
</reg>
-<reg name="OCRAM_STATUS11" addr="0x1c0" sct="yes">
+<reg name="OCRAM_STATUS11" sct="yes">
+<addr name="OCRAM_STATUS11" addr="0x1c0" />
<field name="RSVD3" bitrange="31:29">
</field>
<field name="FAILADDR31" bitrange="28:16">
@@ -3304,7 +3030,8 @@ KIND, either express or implied.
<field name="FAILADDR30" bitrange="12:0">
</field>
</reg>
-<reg name="OCRAM_STATUS12" addr="0x1d0" sct="yes">
+<reg name="OCRAM_STATUS12" sct="yes">
+<addr name="OCRAM_STATUS12" addr="0x1d0" />
<field name="RSVD3" bitrange="31:28">
</field>
<field name="FAILSTATE11" bitrange="27:24">
@@ -3322,7 +3049,8 @@ KIND, either express or implied.
<field name="FAILSTATE00" bitrange="3:0">
</field>
</reg>
-<reg name="OCRAM_STATUS13" addr="0x1e0" sct="yes">
+<reg name="OCRAM_STATUS13" sct="yes">
+<addr name="OCRAM_STATUS13" addr="0x1e0" />
<field name="RSVD3" bitrange="31:28">
</field>
<field name="FAILSTATE31" bitrange="27:24">
@@ -3340,15 +3068,18 @@ KIND, either express or implied.
<field name="FAILSTATE20" bitrange="3:0">
</field>
</reg>
-<reg name="SCRATCH0" addr="0x290" sct="no">
+<reg name="SCRATCH0" sct="no">
+<addr name="SCRATCH0" addr="0x290" />
<field name="PTR" bitrange="31:0">
</field>
</reg>
-<reg name="SCRATCH1" addr="0x2a0" sct="no">
+<reg name="SCRATCH1" sct="no">
+<addr name="SCRATCH1" addr="0x2a0" />
<field name="PTR" bitrange="31:0">
</field>
</reg>
-<reg name="ARMCACHE" addr="0x2b0" sct="no">
+<reg name="ARMCACHE" sct="no">
+<addr name="ARMCACHE" addr="0x2b0" />
<field name="RSVD4" bitrange="31:18">
</field>
<field name="VALID_SS" bitrange="17:16">
@@ -3370,19 +3101,23 @@ KIND, either express or implied.
<field name="ITAG_SS" bitrange="1:0">
</field>
</reg>
-<reg name="DEBUG_TRAP_ADDR_LOW" addr="0x2c0" sct="no">
+<reg name="DEBUG_TRAP_ADDR_LOW" sct="no">
+<addr name="DEBUG_TRAP_ADDR_LOW" addr="0x2c0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG_TRAP_ADDR_HIGH" addr="0x2d0" sct="no">
+<reg name="DEBUG_TRAP_ADDR_HIGH" sct="no">
+<addr name="DEBUG_TRAP_ADDR_HIGH" addr="0x2d0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="SGTL" addr="0x300" sct="no">
+<reg name="SGTL" sct="no">
+<addr name="SGTL" addr="0x300" />
<field name="COPYRIGHT" bitrange="31:0">
</field>
</reg>
-<reg name="CHIPID" addr="0x310" sct="no">
+<reg name="CHIPID" sct="no">
+<addr name="CHIPID" addr="0x310" />
<field name="PRODUCT_CODE" bitrange="31:16">
</field>
<field name="RSVD0" bitrange="15:8">
@@ -3390,7 +3125,8 @@ KIND, either express or implied.
<field name="REVISION" bitrange="7:0">
</field>
</reg>
-<reg name="AHB_STATS_SELECT" addr="0x330" sct="no">
+<reg name="AHB_STATS_SELECT" sct="no">
+<addr name="AHB_STATS_SELECT" addr="0x330" />
<field name="RSVD3" bitrange="31:28">
</field>
<field name="L3_MASTER_SELECT" bitrange="27:24">
@@ -3422,101 +3158,101 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="L0_AHB_ACTIVE_CYCLES" addr="0x340" sct="no">
+<reg name="L0_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L0_AHB_ACTIVE_CYCLES" addr="0x340" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L0_AHB_DATA_STALLED" addr="0x350" sct="no">
+<reg name="L0_AHB_DATA_STALLED" sct="no">
+<addr name="L0_AHB_DATA_STALLED" addr="0x350" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L0_AHB_DATA_CYCLES" addr="0x360" sct="no">
+<reg name="L0_AHB_DATA_CYCLES" sct="no">
+<addr name="L0_AHB_DATA_CYCLES" addr="0x360" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L1_AHB_ACTIVE_CYCLES" addr="0x370" sct="no">
+<reg name="L1_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L1_AHB_ACTIVE_CYCLES" addr="0x370" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L1_AHB_DATA_STALLED" addr="0x380" sct="no">
+<reg name="L1_AHB_DATA_STALLED" sct="no">
+<addr name="L1_AHB_DATA_STALLED" addr="0x380" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L1_AHB_DATA_CYCLES" addr="0x390" sct="no">
+<reg name="L1_AHB_DATA_CYCLES" sct="no">
+<addr name="L1_AHB_DATA_CYCLES" addr="0x390" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L2_AHB_ACTIVE_CYCLES" addr="0x3a0" sct="no">
+<reg name="L2_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L2_AHB_ACTIVE_CYCLES" addr="0x3a0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L2_AHB_DATA_STALLED" addr="0x3b0" sct="no">
+<reg name="L2_AHB_DATA_STALLED" sct="no">
+<addr name="L2_AHB_DATA_STALLED" addr="0x3b0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L2_AHB_DATA_CYCLES" addr="0x3c0" sct="no">
+<reg name="L2_AHB_DATA_CYCLES" sct="no">
+<addr name="L2_AHB_DATA_CYCLES" addr="0x3c0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L3_AHB_ACTIVE_CYCLES" addr="0x3d0" sct="no">
+<reg name="L3_AHB_ACTIVE_CYCLES" sct="no">
+<addr name="L3_AHB_ACTIVE_CYCLES" addr="0x3d0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L3_AHB_DATA_STALLED" addr="0x3e0" sct="no">
+<reg name="L3_AHB_DATA_STALLED" sct="no">
+<addr name="L3_AHB_DATA_STALLED" addr="0x3e0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="L3_AHB_DATA_CYCLES" addr="0x3f0" sct="no">
+<reg name="L3_AHB_DATA_CYCLES" sct="no">
+<addr name="L3_AHB_DATA_CYCLES" addr="0x3f0" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<multireg name="MPTEn_LOC" base="0x400" count="15" offset="0x10" sct="">
-<reg name="MPTE0_LOC" addr="0x400" index="0">
-</reg>
-<reg name="MPTE1_LOC" addr="0x410" index="1">
-</reg>
-<reg name="MPTE2_LOC" addr="0x420" index="2">
-</reg>
-<reg name="MPTE3_LOC" addr="0x430" index="3">
-</reg>
-<reg name="MPTE4_LOC" addr="0x440" index="4">
-</reg>
-<reg name="MPTE5_LOC" addr="0x450" index="5">
-</reg>
-<reg name="MPTE6_LOC" addr="0x460" index="6">
-</reg>
-<reg name="MPTE7_LOC" addr="0x470" index="7">
-</reg>
-<reg name="MPTE8_LOC" addr="0x480" index="8">
-</reg>
-<reg name="MPTE9_LOC" addr="0x490" index="9">
-</reg>
-<reg name="MPTE10_LOC" addr="0x4a0" index="10">
-</reg>
-<reg name="MPTE11_LOC" addr="0x4b0" index="11">
-</reg>
-<reg name="MPTE12_LOC" addr="0x4c0" index="12">
-</reg>
-<reg name="MPTE13_LOC" addr="0x4d0" index="13">
-</reg>
-<reg name="MPTE14_LOC" addr="0x4e0" index="14">
-</reg>
-<reg name="MPTE15_LOC" addr="0x4f0" index="15">
-</reg>
+<reg name="MPTEn_LOC" sct="no">
+<formula string="0x400+n*0x10"/>
+<addr name="MPTE0_LOC" addr="0x400" />
+<addr name="MPTE1_LOC" addr="0x410" />
+<addr name="MPTE2_LOC" addr="0x420" />
+<addr name="MPTE3_LOC" addr="0x430" />
+<addr name="MPTE4_LOC" addr="0x440" />
+<addr name="MPTE5_LOC" addr="0x450" />
+<addr name="MPTE6_LOC" addr="0x460" />
+<addr name="MPTE7_LOC" addr="0x470" />
+<addr name="MPTE8_LOC" addr="0x480" />
+<addr name="MPTE9_LOC" addr="0x490" />
+<addr name="MPTE10_LOC" addr="0x4a0" />
+<addr name="MPTE11_LOC" addr="0x4b0" />
+<addr name="MPTE12_LOC" addr="0x4c0" />
+<addr name="MPTE13_LOC" addr="0x4d0" />
+<addr name="MPTE14_LOC" addr="0x4e0" />
+<addr name="MPTE15_LOC" addr="0x4f0" />
<field name="RSVD0" bitrange="31:12">
</field>
<field name="LOC" bitrange="11:0">
</field>
-</multireg>
-<reg name="EMICLK_DELAY" addr="0x500" sct="no">
+</reg>
+<reg name="EMICLK_DELAY" sct="no">
+<addr name="EMICLK_DELAY" addr="0x500" />
<field name="RSVD0" bitrange="31:5">
</field>
<field name="NUM_TAPS" bitrange="4:0">
</field>
</reg>
</dev>
-<dev name="DRAM" addr="0x800e0000" long_name="DRAM Registers" desc="DRAM Registers">
-<reg name="CTL00" addr="0x0" sct="no">
+<dev name="DRAM" long_name="DRAM Registers" desc="DRAM Registers" version="3.2.0">
+<addr name="DRAM" addr="0x800e0000" />
+<reg name="CTL00" sct="no">
+<addr name="CTL00" addr="0x0" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="AHB0_W_PRIORITY" bitrange="24:24">
@@ -3534,7 +3270,8 @@ KIND, either express or implied.
<field name="ADDR_CMP_EN" bitrange="0:0">
</field>
</reg>
-<reg name="CTL01" addr="0x4" sct="no">
+<reg name="CTL01" sct="no">
+<addr name="CTL01" addr="0x4" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="AHB2_FIFO_TYPE_REG" bitrange="24:24">
@@ -3552,7 +3289,8 @@ KIND, either express or implied.
<field name="AHB1_FIFO_TYPE_REG" bitrange="0:0">
</field>
</reg>
-<reg name="CTL02" addr="0x8" sct="no">
+<reg name="CTL02" sct="no">
+<addr name="CTL02" addr="0x8" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="AHB3_R_PRIORITY" bitrange="24:24">
@@ -3570,7 +3308,8 @@ KIND, either express or implied.
<field name="AHB2_R_PRIORITY" bitrange="0:0">
</field>
</reg>
-<reg name="CTL03" addr="0xc" sct="no">
+<reg name="CTL03" sct="no">
+<addr name="CTL03" addr="0xc" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="AUTO_REFRESH_MODE" bitrange="24:24">
@@ -3588,7 +3327,8 @@ KIND, either express or implied.
<field name="AHB3_W_PRIORITY" bitrange="0:0">
</field>
</reg>
-<reg name="CTL04" addr="0x10" sct="no">
+<reg name="CTL04" sct="no">
+<addr name="CTL04" addr="0x10" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="DLL_BYPASS_MODE" bitrange="24:24">
@@ -3606,7 +3346,8 @@ KIND, either express or implied.
<field name="BANK_SPLIT_EN" bitrange="0:0">
</field>
</reg>
-<reg name="CTL05" addr="0x14" sct="no">
+<reg name="CTL05" sct="no">
+<addr name="CTL05" addr="0x14" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="INTRPTREADA" bitrange="24:24">
@@ -3624,7 +3365,8 @@ KIND, either express or implied.
<field name="EN_LOWPOWER_MODE" bitrange="0:0">
</field>
</reg>
-<reg name="CTL06" addr="0x18" sct="no">
+<reg name="CTL06" sct="no">
+<addr name="CTL06" addr="0x18" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="POWER_DOWN" bitrange="24:24">
@@ -3642,7 +3384,8 @@ KIND, either express or implied.
<field name="INTRPTWRITEA" bitrange="0:0">
</field>
</reg>
-<reg name="CTL07" addr="0x1c" sct="no">
+<reg name="CTL07" sct="no">
+<addr name="CTL07" addr="0x1c" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="RW_SAME_EN" bitrange="24:24">
@@ -3660,7 +3403,8 @@ KIND, either express or implied.
<field name="PRIORITY_EN" bitrange="0:0">
</field>
</reg>
-<reg name="CTL08" addr="0x20" sct="no">
+<reg name="CTL08" sct="no">
+<addr name="CTL08" addr="0x20" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="TRAS_LOCKOUT" bitrange="24:24">
@@ -3678,7 +3422,8 @@ KIND, either express or implied.
<field name="SDR_MODE" bitrange="0:0">
</field>
</reg>
-<reg name="CTL09" addr="0x24" sct="no">
+<reg name="CTL09" sct="no">
+<addr name="CTL09" addr="0x24" />
<field name="RSVD4" bitrange="31:26">
</field>
<field name="OUT_OF_RANGE_TYPE" bitrange="25:24">
@@ -3696,7 +3441,8 @@ KIND, either express or implied.
<field name="WRITEINTERP" bitrange="0:0">
</field>
</reg>
-<reg name="CTL10" addr="0x28" sct="no">
+<reg name="CTL10" sct="no">
+<addr name="CTL10" addr="0x28" />
<field name="RSVD4" bitrange="31:27">
</field>
<field name="AGE_COUNT" bitrange="26:24">
@@ -3714,7 +3460,8 @@ KIND, either express or implied.
<field name="Q_FULLNESS" bitrange="1:0">
</field>
</reg>
-<reg name="CTL11" addr="0x2c" sct="no">
+<reg name="CTL11" sct="no">
+<addr name="CTL11" addr="0x2c" />
<field name="RSVD4" bitrange="31:27">
</field>
<field name="MAX_CS_REG" bitrange="26:24">
@@ -3732,7 +3479,8 @@ KIND, either express or implied.
<field name="CASLAT" bitrange="2:0">
</field>
</reg>
-<reg name="CTL12" addr="0x30" sct="no">
+<reg name="CTL12" sct="no">
+<addr name="CTL12" addr="0x30" />
<field name="RSVD3" bitrange="31:27">
</field>
<field name="TWR_INT" bitrange="26:24">
@@ -3748,7 +3496,8 @@ KIND, either express or implied.
<field name="TCKE" bitrange="2:0">
</field>
</reg>
-<reg name="CTL13" addr="0x34" sct="no">
+<reg name="CTL13" sct="no">
+<addr name="CTL13" addr="0x34" />
<field name="RSVD4" bitrange="31:28">
</field>
<field name="CASLAT_LIN_GATE" bitrange="27:24">
@@ -3766,7 +3515,8 @@ KIND, either express or implied.
<field name="TWTR" bitrange="2:0">
</field>
</reg>
-<reg name="CTL14" addr="0x38" sct="no">
+<reg name="CTL14" sct="no">
+<addr name="CTL14" addr="0x38" />
<field name="RSVD4" bitrange="31:28">
</field>
<field name="MAX_COL_REG" bitrange="27:24">
@@ -3784,7 +3534,8 @@ KIND, either express or implied.
<field name="CS_MAP" bitrange="3:0">
</field>
</reg>
-<reg name="CTL15" addr="0x3c" sct="no">
+<reg name="CTL15" sct="no">
+<addr name="CTL15" addr="0x3c" />
<field name="RSVD4" bitrange="31:28">
</field>
<field name="TRP" bitrange="27:24">
@@ -3802,7 +3553,8 @@ KIND, either express or implied.
<field name="MAX_ROW_REG" bitrange="3:0">
</field>
</reg>
-<reg name="CTL16" addr="0x40" sct="no">
+<reg name="CTL16" sct="no">
+<addr name="CTL16" addr="0x40" />
<field name="RSVD4" bitrange="31:29">
</field>
<field name="TMRD" bitrange="28:24">
@@ -3820,7 +3572,8 @@ KIND, either express or implied.
<field name="INT_ACK" bitrange="3:0">
</field>
</reg>
-<reg name="CTL17" addr="0x44" sct="no">
+<reg name="CTL17" sct="no">
+<addr name="CTL17" addr="0x44" />
<field name="DLL_START_POINT" bitrange="31:24">
</field>
<field name="DLL_LOCK" bitrange="23:16">
@@ -3832,7 +3585,8 @@ KIND, either express or implied.
<field name="TRC" bitrange="4:0">
</field>
</reg>
-<reg name="CTL18" addr="0x48" sct="no">
+<reg name="CTL18" sct="no">
+<addr name="CTL18" addr="0x48" />
<field name="RSVD4" bitrange="31:31">
</field>
<field name="DLL_DQS_DELAY_1" bitrange="30:24">
@@ -3850,7 +3604,8 @@ KIND, either express or implied.
<field name="INT_MASK" bitrange="4:0">
</field>
</reg>
-<reg name="CTL19" addr="0x4c" sct="no">
+<reg name="CTL19" sct="no">
+<addr name="CTL19" addr="0x4c" />
<field name="DQS_OUT_SHIFT_BYPASS" bitrange="31:24">
</field>
<field name="RSVD1" bitrange="23:23">
@@ -3862,7 +3617,8 @@ KIND, either express or implied.
<field name="DLL_DQS_DELAY_BYPASS_0" bitrange="7:0">
</field>
</reg>
-<reg name="CTL20" addr="0x50" sct="no">
+<reg name="CTL20" sct="no">
+<addr name="CTL20" addr="0x50" />
<field name="TRCD_INT" bitrange="31:24">
</field>
<field name="TRAS_MIN" bitrange="23:16">
@@ -3874,7 +3630,8 @@ KIND, either express or implied.
<field name="WR_DQS_SHIFT" bitrange="6:0">
</field>
</reg>
-<reg name="CTL21" addr="0x54" sct="no">
+<reg name="CTL21" sct="no">
+<addr name="CTL21" addr="0x54" />
<field name="OBSOLETE" bitrange="31:24">
</field>
<field name="RSVD1" bitrange="23:18">
@@ -3884,7 +3641,8 @@ KIND, either express or implied.
<field name="TRFC" bitrange="7:0">
</field>
</reg>
-<reg name="CTL22" addr="0x58" sct="no">
+<reg name="CTL22" sct="no">
+<addr name="CTL22" addr="0x58" />
<field name="RSVD2" bitrange="31:27">
</field>
<field name="AHB0_WRCNT" bitrange="26:16">
@@ -3894,7 +3652,8 @@ KIND, either express or implied.
<field name="AHB0_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL23" addr="0x5c" sct="no">
+<reg name="CTL23" sct="no">
+<addr name="CTL23" addr="0x5c" />
<field name="RSVD2" bitrange="31:27">
</field>
<field name="AHB1_WRCNT" bitrange="26:16">
@@ -3904,7 +3663,8 @@ KIND, either express or implied.
<field name="AHB1_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL24" addr="0x60" sct="no">
+<reg name="CTL24" sct="no">
+<addr name="CTL24" addr="0x60" />
<field name="RSVD2" bitrange="31:27">
</field>
<field name="AHB2_WRCNT" bitrange="26:16">
@@ -3914,7 +3674,8 @@ KIND, either express or implied.
<field name="AHB2_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL25" addr="0x64" sct="no">
+<reg name="CTL25" sct="no">
+<addr name="CTL25" addr="0x64" />
<field name="RSVD2" bitrange="31:27">
</field>
<field name="AHB3_WRCNT" bitrange="26:16">
@@ -3924,7 +3685,8 @@ KIND, either express or implied.
<field name="AHB3_RDCNT" bitrange="10:0">
</field>
</reg>
-<reg name="CTL26" addr="0x68" sct="no">
+<reg name="CTL26" sct="no">
+<addr name="CTL26" addr="0x68" />
<field name="OBSOLETE" bitrange="31:16">
</field>
<field name="RSVD1" bitrange="15:12">
@@ -3932,57 +3694,67 @@ KIND, either express or implied.
<field name="TREF" bitrange="11:0">
</field>
</reg>
-<reg name="CTL27" addr="0x6c" sct="no">
+<reg name="CTL27" sct="no">
+<addr name="CTL27" addr="0x6c" />
<field name="OBSOLETE" bitrange="31:0">
</field>
</reg>
-<reg name="CTL28" addr="0x70" sct="no">
+<reg name="CTL28" sct="no">
+<addr name="CTL28" addr="0x70" />
<field name="OBSOLETE" bitrange="31:0">
</field>
</reg>
-<reg name="CTL29" addr="0x74" sct="no">
+<reg name="CTL29" sct="no">
+<addr name="CTL29" addr="0x74" />
<field name="LOWPOWER_INTERNAL_CNT" bitrange="31:16">
</field>
<field name="LOWPOWER_EXTERNAL_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTL30" addr="0x78" sct="no">
+<reg name="CTL30" sct="no">
+<addr name="CTL30" addr="0x78" />
<field name="LOWPOWER_REFRESH_HOLD" bitrange="31:16">
</field>
<field name="LOWPOWER_POWER_DOWN_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTL31" addr="0x7c" sct="no">
+<reg name="CTL31" sct="no">
+<addr name="CTL31" addr="0x7c" />
<field name="TDLL" bitrange="31:16">
</field>
<field name="LOWPOWER_SELF_REFRESH_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTL32" addr="0x80" sct="no">
+<reg name="CTL32" sct="no">
+<addr name="CTL32" addr="0x80" />
<field name="TXSNR" bitrange="31:16">
</field>
<field name="TRAS_MAX" bitrange="15:0">
</field>
</reg>
-<reg name="CTL33" addr="0x84" sct="no">
+<reg name="CTL33" sct="no">
+<addr name="CTL33" addr="0x84" />
<field name="VERSION" bitrange="31:16">
</field>
<field name="TXSR" bitrange="15:0">
</field>
</reg>
-<reg name="CTL34" addr="0x88" sct="no">
+<reg name="CTL34" sct="no">
+<addr name="CTL34" addr="0x88" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="TINIT" bitrange="23:0">
</field>
</reg>
-<reg name="CTL35" addr="0x8c" sct="no">
+<reg name="CTL35" sct="no">
+<addr name="CTL35" addr="0x8c" />
<field name="RSVD1" bitrange="31:31">
</field>
<field name="OUT_OF_RANGE_ADDR" bitrange="30:0">
</field>
</reg>
-<reg name="CTL36" addr="0x90" sct="no">
+<reg name="CTL36" sct="no">
+<addr name="CTL36" addr="0x90" />
<field name="RSVD4" bitrange="31:25">
</field>
<field name="PWRUP_SREFRESH_EXIT" bitrange="24:24">
@@ -4000,7 +3772,8 @@ KIND, either express or implied.
<field name="ACTIVE_AGING" bitrange="0:0">
</field>
</reg>
-<reg name="CTL37" addr="0x94" sct="no">
+<reg name="CTL37" sct="no">
+<addr name="CTL37" addr="0x94" />
<field name="OBSOLETE" bitrange="31:24">
</field>
<field name="RSVD2" bitrange="23:18">
@@ -4012,7 +3785,8 @@ KIND, either express or implied.
<field name="TREF_ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="CTL38" addr="0x98" sct="no">
+<reg name="CTL38" sct="no">
+<addr name="CTL38" addr="0x98" />
<field name="RSVD2" bitrange="31:29">
</field>
<field name="EMRS2_DATA_0" bitrange="28:16">
@@ -4022,7 +3796,8 @@ KIND, either express or implied.
<field name="EMRS1_DATA" bitrange="12:0">
</field>
</reg>
-<reg name="CTL39" addr="0x9c" sct="no">
+<reg name="CTL39" sct="no">
+<addr name="CTL39" addr="0x9c" />
<field name="RSVD2" bitrange="31:29">
</field>
<field name="EMRS2_DATA_2" bitrange="28:16">
@@ -4032,7 +3807,8 @@ KIND, either express or implied.
<field name="EMRS2_DATA_1" bitrange="12:0">
</field>
</reg>
-<reg name="CTL40" addr="0xa0" sct="no">
+<reg name="CTL40" sct="no">
+<addr name="CTL40" addr="0xa0" />
<field name="TPDEX" bitrange="31:16">
</field>
<field name="RSVD1" bitrange="15:13">
@@ -4041,8 +3817,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="DRI" addr="0x80074000" long_name="Digital Radio Interface" desc="Digital Radio Interface (DRI)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="DRI" long_name="Digital Radio Interface" desc="Digital Radio Interface (DRI)" version="3.2.0">
+<addr name="DRI" addr="0x80074000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -4132,7 +3910,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMING" addr="0x10" sct="no">
+<reg name="TIMING" sct="no">
+<addr name="TIMING" addr="0x10" />
<field name="RSVD2" bitrange="31:20">
</field>
<field name="PILOT_REP_RATE" bitrange="19:16">
@@ -4142,7 +3921,8 @@ KIND, either express or implied.
<field name="GAP_DETECTION_INTERVAL" bitrange="7:0">
</field>
</reg>
-<reg name="STAT" addr="0x20" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x20" />
<field name="DRI_PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -4176,11 +3956,13 @@ KIND, either express or implied.
<field name="RSVD1" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x30" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x30" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x40" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x40" />
<field name="DMAREQ" bitrange="31:31">
</field>
<field name="DMACMDKICK" bitrange="30:30">
@@ -4202,7 +3984,8 @@ KIND, either express or implied.
<field name="FRAME" bitrange="17:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x50" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x50" />
<field name="INVERT_PILOT" bitrange="31:31">
<value name="NORMAL" value="0x0">
</value>
@@ -4238,7 +4021,8 @@ KIND, either express or implied.
<field name="SWIZZLED_FRAME" bitrange="17:0">
</field>
</reg>
-<reg name="VERSION" addr="0x60" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x60" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4247,8 +4031,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="ECC8" addr="0x80008000" long_name="Reed-Solomon ECC" desc="8-Symbol Correcting ECC Accelerator (ECC8)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="ECC8" long_name="Reed-Solomon ECC" desc="8-Symbol Correcting ECC Accelerator (ECC8)" version="3.2.0">
+<addr name="ECC8" addr="0x80008000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -4290,7 +4076,8 @@ KIND, either express or implied.
<field name="COMPLETE_IRQ" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS0" addr="0x10" sct="no">
+<reg name="STATUS0" sct="no">
+<addr name="STATUS0" addr="0x10" />
<field name="HANDLE" bitrange="31:20">
</field>
<field name="COMPLETED_CE" bitrange="19:16">
@@ -4332,7 +4119,8 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="1:0">
</field>
</reg>
-<reg name="STATUS1" addr="0x20" sct="no">
+<reg name="STATUS1" sct="no">
+<addr name="STATUS1" addr="0x20" />
<field name="STATUS_PAYLOAD7" bitrange="31:28">
<value name="NO_ERRORS" value="0x0">
</value>
@@ -4542,7 +4330,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DEBUG0" addr="0x30" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x30" />
<field name="RSRVD1" bitrange="31:25">
</field>
<field name="KES_DEBUG_SYNDROME_SYMBOL" bitrange="24:16">
@@ -4592,27 +4381,33 @@ KIND, either express or implied.
<field name="DEBUG_REG_SELECT" bitrange="5:0">
</field>
</reg>
-<reg name="DBGKESREAD" addr="0x40" sct="no">
+<reg name="DBGKESREAD" sct="no">
+<addr name="DBGKESREAD" addr="0x40" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGCSFEREAD" addr="0x50" sct="no">
+<reg name="DBGCSFEREAD" sct="no">
+<addr name="DBGCSFEREAD" addr="0x50" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGSYNDGENREAD" addr="0x60" sct="no">
+<reg name="DBGSYNDGENREAD" sct="no">
+<addr name="DBGSYNDGENREAD" addr="0x60" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="DBGAHBMREAD" addr="0x70" sct="no">
+<reg name="DBGAHBMREAD" sct="no">
+<addr name="DBGAHBMREAD" addr="0x70" />
<field name="VALUES" bitrange="31:0">
</field>
</reg>
-<reg name="BLOCKNAME" addr="0x80" sct="no">
+<reg name="BLOCKNAME" sct="no">
+<addr name="BLOCKNAME" addr="0x80" />
<field name="NAME" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0xa0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xa0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4621,8 +4416,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="EMI" addr="0x80020000" long_name="External Memory Interface" desc="External Memory Interface (EMI)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="EMI" long_name="External Memory Interface" desc="External Memory Interface (EMI)" version="3.2.0">
+<addr name="EMI" addr="0x80020000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -4734,7 +4531,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x10" />
<field name="DRAM_PRESENT" bitrange="31:31">
</field>
<field name="NOR_PRESENT" bitrange="30:30">
@@ -4756,7 +4554,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIME" addr="0x20" sct="yes">
+<reg name="TIME" sct="yes">
+<addr name="TIME" addr="0x20" />
<field name="RSVD4" bitrange="31:28">
</field>
<field name="THZ" bitrange="27:24">
@@ -4774,7 +4573,8 @@ KIND, either express or implied.
<field name="TAS" bitrange="3:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_CSR" addr="0x30" sct="yes">
+<reg name="DDR_TEST_MODE_CSR" sct="yes">
+<addr name="DDR_TEST_MODE_CSR" addr="0x30" />
<field name="RSVD1" bitrange="31:2">
</field>
<field name="DONE" bitrange="1:1">
@@ -4782,33 +4582,39 @@ KIND, either express or implied.
<field name="START" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x80" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x80" />
<field name="RSVD1" bitrange="31:4">
</field>
<field name="NOR_STATE" bitrange="3:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS0" addr="0x90" sct="no">
+<reg name="DDR_TEST_MODE_STATUS0" sct="no">
+<addr name="DDR_TEST_MODE_STATUS0" addr="0x90" />
<field name="RSVD1" bitrange="31:13">
</field>
<field name="ADDR0" bitrange="12:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS1" addr="0xa0" sct="no">
+<reg name="DDR_TEST_MODE_STATUS1" sct="no">
+<addr name="DDR_TEST_MODE_STATUS1" addr="0xa0" />
<field name="RSVD1" bitrange="31:13">
</field>
<field name="ADDR1" bitrange="12:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS2" addr="0xb0" sct="no">
+<reg name="DDR_TEST_MODE_STATUS2" sct="no">
+<addr name="DDR_TEST_MODE_STATUS2" addr="0xb0" />
<field name="DATA0" bitrange="31:0">
</field>
</reg>
-<reg name="DDR_TEST_MODE_STATUS3" addr="0xc0" sct="no">
+<reg name="DDR_TEST_MODE_STATUS3" sct="no">
+<addr name="DDR_TEST_MODE_STATUS3" addr="0xc0" />
<field name="DATA1" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0xf0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xf0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -4817,8 +4623,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="GPMI" addr="0x8000c000" long_name="General Purpose Media Interface" desc="General Purpose Media Interface">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="GPMI" long_name="General Purpose Media Interface" desc="General Purpose Media Interface" version="3.2.0">
+<addr name="GPMI" addr="0x8000c000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -4888,13 +4696,15 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="COMPARE" addr="0x10" sct="no">
+<reg name="COMPARE" sct="no">
+<addr name="COMPARE" addr="0x10" />
<field name="MASK" bitrange="31:16">
</field>
<field name="REFERENCE" bitrange="15:0">
</field>
</reg>
-<reg name="ECCCTRL" addr="0x20" sct="yes">
+<reg name="ECCCTRL" sct="yes">
+<addr name="ECCCTRL" addr="0x20" />
<field name="HANDLE" bitrange="31:16">
</field>
<field name="RSVD2" bitrange="15:15">
@@ -4942,25 +4752,29 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ECCCOUNT" addr="0x30" sct="no">
+<reg name="ECCCOUNT" sct="no">
+<addr name="ECCCOUNT" addr="0x30" />
<field name="RSVD2" bitrange="31:16">
</field>
<field name="COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="PAYLOAD" addr="0x40" sct="no">
+<reg name="PAYLOAD" sct="no">
+<addr name="PAYLOAD" addr="0x40" />
<field name="ADDRESS" bitrange="31:2">
</field>
<field name="RSVD0" bitrange="1:0">
</field>
</reg>
-<reg name="AUXILIARY" addr="0x50" sct="no">
+<reg name="AUXILIARY" sct="no">
+<addr name="AUXILIARY" addr="0x50" />
<field name="ADDRESS" bitrange="31:2">
</field>
<field name="RSVD0" bitrange="1:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x60" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x60" />
<field name="RSVD2" bitrange="31:24">
</field>
<field name="CE3_SEL" bitrange="23:23">
@@ -5018,7 +4832,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMING0" addr="0x70" sct="no">
+<reg name="TIMING0" sct="no">
+<addr name="TIMING0" addr="0x70" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="ADDRESS_SETUP" bitrange="23:16">
@@ -5028,13 +4843,15 @@ KIND, either express or implied.
<field name="DATA_SETUP" bitrange="7:0">
</field>
</reg>
-<reg name="TIMING1" addr="0x80" sct="no">
+<reg name="TIMING1" sct="no">
+<addr name="TIMING1" addr="0x80" />
<field name="DEVICE_BUSY_TIMEOUT" bitrange="31:16">
</field>
<field name="RSVD1" bitrange="15:0">
</field>
</reg>
-<reg name="TIMING2" addr="0x90" sct="no">
+<reg name="TIMING2" sct="no">
+<addr name="TIMING2" addr="0x90" />
<field name="UDMA_TRP" bitrange="31:24">
</field>
<field name="UDMA_ENV" bitrange="23:16">
@@ -5044,11 +4861,13 @@ KIND, either express or implied.
<field name="UDMA_SETUP" bitrange="7:0">
</field>
</reg>
-<reg name="DATA" addr="0xa0" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0xa0" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0xb0" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0xb0" />
<field name="PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -5084,7 +4903,8 @@ KIND, either express or implied.
<field name="DEV0_ERROR" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0xc0" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0xc0" />
<field name="READY3" bitrange="31:31">
</field>
<field name="READY2" bitrange="30:30">
@@ -5170,7 +4990,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="VERSION" addr="0xd0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xd0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -5178,7 +4999,8 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG2" addr="0xe0" sct="no">
+<reg name="DEBUG2" sct="no">
+<addr name="DEBUG2" addr="0xe0" />
<field name="RSVD1" bitrange="31:16">
</field>
<field name="SYND2GPMI_BE" bitrange="15:12">
@@ -5198,15 +5020,18 @@ KIND, either express or implied.
<field name="RDN_TAP" bitrange="5:0">
</field>
</reg>
-<reg name="DEBUG3" addr="0xf0" sct="no">
+<reg name="DEBUG3" sct="no">
+<addr name="DEBUG3" addr="0xf0" />
<field name="APB_WORD_CNTR" bitrange="31:16">
</field>
<field name="DEV_WORD_CNTR" bitrange="15:0">
</field>
</reg>
</dev>
-<dev name="I2C" addr="0x80058000" long_name="I2C Interface" desc="I2C Interface">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="I2C" long_name="I2C Interface" desc="I2C Interface" version="3.2.0">
+<addr name="I2C" addr="0x80058000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -5294,7 +5119,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="TIMING0" addr="0x10" sct="yes">
+<reg name="TIMING0" sct="yes">
+<addr name="TIMING0" addr="0x10" />
<field name="RSVD2" bitrange="31:26">
</field>
<field name="HIGH_COUNT" bitrange="25:16">
@@ -5304,7 +5130,8 @@ KIND, either express or implied.
<field name="RCV_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="TIMING1" addr="0x20" sct="yes">
+<reg name="TIMING1" sct="yes">
+<addr name="TIMING1" addr="0x20" />
<field name="RSVD2" bitrange="31:26">
</field>
<field name="LOW_COUNT" bitrange="25:16">
@@ -5314,7 +5141,8 @@ KIND, either express or implied.
<field name="XMIT_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="TIMING2" addr="0x30" sct="yes">
+<reg name="TIMING2" sct="yes">
+<addr name="TIMING2" addr="0x30" />
<field name="RSVD2" bitrange="31:26">
</field>
<field name="BUS_FREE" bitrange="25:16">
@@ -5324,7 +5152,8 @@ KIND, either express or implied.
<field name="LEADIN_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x40" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x40" />
<field name="RSVD1" bitrange="31:29">
</field>
<field name="CLR_GOT_A_NAK" bitrange="28:28">
@@ -5448,7 +5277,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STAT" addr="0x50" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x50" />
<field name="MASTER_PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -5574,11 +5404,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x60" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x60" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x70" sct="yes">
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x70" />
<field name="DMAREQ" bitrange="31:31">
</field>
<field name="DMAENDCMD" bitrange="30:30">
@@ -5606,7 +5438,8 @@ KIND, either express or implied.
<field name="SLAVE_STATE" bitrange="9:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x80" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x80" />
<field name="I2C_CLK_IN" bitrange="31:31">
</field>
<field name="I2C_DATA_IN" bitrange="30:30">
@@ -5644,7 +5477,8 @@ KIND, either express or implied.
<field name="FORCE_I2C_CLK_OE" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0x90" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x90" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -5653,14 +5487,17 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="ICOLL" addr="0x80000000" long_name="Interrupt Collector" desc="Interrupt Collector">
-<reg name="VECTOR" addr="0x0" sct="yes">
+<dev name="ICOLL" long_name="Interrupt Collector" desc="Interrupt Collector" version="3.2.0">
+<addr name="ICOLL" addr="0x80000000" />
+<reg name="VECTOR" sct="yes">
+<addr name="VECTOR" addr="0x0" />
<field name="IRQVECTOR" bitrange="31:2">
</field>
<field name="RSRVD1" bitrange="1:0">
</field>
</reg>
-<reg name="LEVELACK" addr="0x10" sct="no">
+<reg name="LEVELACK" sct="no">
+<addr name="LEVELACK" addr="0x10" />
<field name="RSRVD1" bitrange="31:4">
</field>
<field name="IRQLEVELACK" bitrange="3:0">
@@ -5674,7 +5511,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL" addr="0x20" sct="yes">
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x20" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -5736,287 +5574,159 @@ KIND, either express or implied.
<field name="RSRVD1" bitrange="15:0">
</field>
</reg>
-<reg name="VBASE" addr="0x40" sct="yes">
+<reg name="VBASE" sct="yes">
+<addr name="VBASE" addr="0x40" />
<field name="TABLE_ADDRESS" bitrange="31:2">
</field>
<field name="RSRVD1" bitrange="1:0">
</field>
</reg>
-<reg name="STAT" addr="0x70" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x70" />
<field name="RSRVD1" bitrange="31:7">
</field>
<field name="VECTOR_NUMBER" bitrange="6:0">
</field>
</reg>
-<multireg name="RAWn" base="0xa0" count="3" offset="0x10" sct="SCT">
-<reg name="RAW0" addr="0xa0" index="0">
-</reg>
-<reg name="RAW1" addr="0xb0" index="1">
-</reg>
-<reg name="RAW2" addr="0xc0" index="2">
-</reg>
-<reg name="RAW3" addr="0xd0" index="3">
-</reg>
+<reg name="RAWn" sct="yes">
+<formula string="0xa0+n*0x10"/>
+<addr name="RAW0" addr="0xa0" />
+<addr name="RAW1" addr="0xb0" />
+<addr name="RAW2" addr="0xc0" />
+<addr name="RAW3" addr="0xd0" />
<field name="RAW_IRQS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="INTERRUPTn" base="0x120" count="127" offset="0x10" sct="SCT">
-<reg name="INTERRUPT0" addr="0x120" index="0">
-</reg>
-<reg name="INTERRUPT1" addr="0x130" index="1">
-</reg>
-<reg name="INTERRUPT2" addr="0x140" index="2">
-</reg>
-<reg name="INTERRUPT3" addr="0x150" index="3">
-</reg>
-<reg name="INTERRUPT4" addr="0x160" index="4">
-</reg>
-<reg name="INTERRUPT5" addr="0x170" index="5">
-</reg>
-<reg name="INTERRUPT6" addr="0x180" index="6">
-</reg>
-<reg name="INTERRUPT7" addr="0x190" index="7">
-</reg>
-<reg name="INTERRUPT8" addr="0x1a0" index="8">
-</reg>
-<reg name="INTERRUPT9" addr="0x1b0" index="9">
-</reg>
-<reg name="INTERRUPT10" addr="0x1c0" index="10">
-</reg>
-<reg name="INTERRUPT11" addr="0x1d0" index="11">
-</reg>
-<reg name="INTERRUPT12" addr="0x1e0" index="12">
-</reg>
-<reg name="INTERRUPT13" addr="0x1f0" index="13">
-</reg>
-<reg name="INTERRUPT14" addr="0x200" index="14">
-</reg>
-<reg name="INTERRUPT15" addr="0x210" index="15">
-</reg>
-<reg name="INTERRUPT16" addr="0x220" index="16">
-</reg>
-<reg name="INTERRUPT17" addr="0x230" index="17">
-</reg>
-<reg name="INTERRUPT18" addr="0x240" index="18">
-</reg>
-<reg name="INTERRUPT19" addr="0x250" index="19">
-</reg>
-<reg name="INTERRUPT20" addr="0x260" index="20">
-</reg>
-<reg name="INTERRUPT21" addr="0x270" index="21">
-</reg>
-<reg name="INTERRUPT22" addr="0x280" index="22">
-</reg>
-<reg name="INTERRUPT23" addr="0x290" index="23">
-</reg>
-<reg name="INTERRUPT24" addr="0x2a0" index="24">
-</reg>
-<reg name="INTERRUPT25" addr="0x2b0" index="25">
-</reg>
-<reg name="INTERRUPT26" addr="0x2c0" index="26">
-</reg>
-<reg name="INTERRUPT27" addr="0x2d0" index="27">
-</reg>
-<reg name="INTERRUPT28" addr="0x2e0" index="28">
-</reg>
-<reg name="INTERRUPT29" addr="0x2f0" index="29">
-</reg>
-<reg name="INTERRUPT30" addr="0x300" index="30">
-</reg>
-<reg name="INTERRUPT31" addr="0x310" index="31">
-</reg>
-<reg name="INTERRUPT32" addr="0x320" index="32">
-</reg>
-<reg name="INTERRUPT33" addr="0x330" index="33">
-</reg>
-<reg name="INTERRUPT34" addr="0x340" index="34">
-</reg>
-<reg name="INTERRUPT35" addr="0x350" index="35">
-</reg>
-<reg name="INTERRUPT36" addr="0x360" index="36">
-</reg>
-<reg name="INTERRUPT37" addr="0x370" index="37">
-</reg>
-<reg name="INTERRUPT38" addr="0x380" index="38">
-</reg>
-<reg name="INTERRUPT39" addr="0x390" index="39">
-</reg>
-<reg name="INTERRUPT40" addr="0x3a0" index="40">
-</reg>
-<reg name="INTERRUPT41" addr="0x3b0" index="41">
-</reg>
-<reg name="INTERRUPT42" addr="0x3c0" index="42">
-</reg>
-<reg name="INTERRUPT43" addr="0x3d0" index="43">
-</reg>
-<reg name="INTERRUPT44" addr="0x3e0" index="44">
-</reg>
-<reg name="INTERRUPT45" addr="0x3f0" index="45">
-</reg>
-<reg name="INTERRUPT46" addr="0x400" index="46">
-</reg>
-<reg name="INTERRUPT47" addr="0x410" index="47">
-</reg>
-<reg name="INTERRUPT48" addr="0x420" index="48">
-</reg>
-<reg name="INTERRUPT49" addr="0x430" index="49">
-</reg>
-<reg name="INTERRUPT50" addr="0x440" index="50">
-</reg>
-<reg name="INTERRUPT51" addr="0x450" index="51">
-</reg>
-<reg name="INTERRUPT52" addr="0x460" index="52">
-</reg>
-<reg name="INTERRUPT53" addr="0x470" index="53">
-</reg>
-<reg name="INTERRUPT54" addr="0x480" index="54">
-</reg>
-<reg name="INTERRUPT55" addr="0x490" index="55">
-</reg>
-<reg name="INTERRUPT56" addr="0x4a0" index="56">
-</reg>
-<reg name="INTERRUPT57" addr="0x4b0" index="57">
-</reg>
-<reg name="INTERRUPT58" addr="0x4c0" index="58">
-</reg>
-<reg name="INTERRUPT59" addr="0x4d0" index="59">
-</reg>
-<reg name="INTERRUPT60" addr="0x4e0" index="60">
-</reg>
-<reg name="INTERRUPT61" addr="0x4f0" index="61">
-</reg>
-<reg name="INTERRUPT62" addr="0x500" index="62">
-</reg>
-<reg name="INTERRUPT63" addr="0x510" index="63">
-</reg>
-<reg name="INTERRUPT64" addr="0x520" index="64">
-</reg>
-<reg name="INTERRUPT65" addr="0x530" index="65">
-</reg>
-<reg name="INTERRUPT66" addr="0x540" index="66">
-</reg>
-<reg name="INTERRUPT67" addr="0x550" index="67">
-</reg>
-<reg name="INTERRUPT68" addr="0x560" index="68">
-</reg>
-<reg name="INTERRUPT69" addr="0x570" index="69">
-</reg>
-<reg name="INTERRUPT70" addr="0x580" index="70">
-</reg>
-<reg name="INTERRUPT71" addr="0x590" index="71">
-</reg>
-<reg name="INTERRUPT72" addr="0x5a0" index="72">
-</reg>
-<reg name="INTERRUPT73" addr="0x5b0" index="73">
-</reg>
-<reg name="INTERRUPT74" addr="0x5c0" index="74">
-</reg>
-<reg name="INTERRUPT75" addr="0x5d0" index="75">
-</reg>
-<reg name="INTERRUPT76" addr="0x5e0" index="76">
-</reg>
-<reg name="INTERRUPT77" addr="0x5f0" index="77">
-</reg>
-<reg name="INTERRUPT78" addr="0x600" index="78">
-</reg>
-<reg name="INTERRUPT79" addr="0x610" index="79">
-</reg>
-<reg name="INTERRUPT80" addr="0x620" index="80">
-</reg>
-<reg name="INTERRUPT81" addr="0x630" index="81">
-</reg>
-<reg name="INTERRUPT82" addr="0x640" index="82">
-</reg>
-<reg name="INTERRUPT83" addr="0x650" index="83">
-</reg>
-<reg name="INTERRUPT84" addr="0x660" index="84">
-</reg>
-<reg name="INTERRUPT85" addr="0x670" index="85">
-</reg>
-<reg name="INTERRUPT86" addr="0x680" index="86">
-</reg>
-<reg name="INTERRUPT87" addr="0x690" index="87">
-</reg>
-<reg name="INTERRUPT88" addr="0x6a0" index="88">
-</reg>
-<reg name="INTERRUPT89" addr="0x6b0" index="89">
-</reg>
-<reg name="INTERRUPT90" addr="0x6c0" index="90">
-</reg>
-<reg name="INTERRUPT91" addr="0x6d0" index="91">
-</reg>
-<reg name="INTERRUPT92" addr="0x6e0" index="92">
-</reg>
-<reg name="INTERRUPT93" addr="0x6f0" index="93">
-</reg>
-<reg name="INTERRUPT94" addr="0x700" index="94">
-</reg>
-<reg name="INTERRUPT95" addr="0x710" index="95">
-</reg>
-<reg name="INTERRUPT96" addr="0x720" index="96">
-</reg>
-<reg name="INTERRUPT97" addr="0x730" index="97">
-</reg>
-<reg name="INTERRUPT98" addr="0x740" index="98">
-</reg>
-<reg name="INTERRUPT99" addr="0x750" index="99">
-</reg>
-<reg name="INTERRUPT100" addr="0x760" index="100">
-</reg>
-<reg name="INTERRUPT101" addr="0x770" index="101">
-</reg>
-<reg name="INTERRUPT102" addr="0x780" index="102">
-</reg>
-<reg name="INTERRUPT103" addr="0x790" index="103">
-</reg>
-<reg name="INTERRUPT104" addr="0x7a0" index="104">
-</reg>
-<reg name="INTERRUPT105" addr="0x7b0" index="105">
-</reg>
-<reg name="INTERRUPT106" addr="0x7c0" index="106">
-</reg>
-<reg name="INTERRUPT107" addr="0x7d0" index="107">
-</reg>
-<reg name="INTERRUPT108" addr="0x7e0" index="108">
-</reg>
-<reg name="INTERRUPT109" addr="0x7f0" index="109">
-</reg>
-<reg name="INTERRUPT110" addr="0x800" index="110">
-</reg>
-<reg name="INTERRUPT111" addr="0x810" index="111">
-</reg>
-<reg name="INTERRUPT112" addr="0x820" index="112">
-</reg>
-<reg name="INTERRUPT113" addr="0x830" index="113">
-</reg>
-<reg name="INTERRUPT114" addr="0x840" index="114">
-</reg>
-<reg name="INTERRUPT115" addr="0x850" index="115">
-</reg>
-<reg name="INTERRUPT116" addr="0x860" index="116">
-</reg>
-<reg name="INTERRUPT117" addr="0x870" index="117">
-</reg>
-<reg name="INTERRUPT118" addr="0x880" index="118">
-</reg>
-<reg name="INTERRUPT119" addr="0x890" index="119">
-</reg>
-<reg name="INTERRUPT120" addr="0x8a0" index="120">
-</reg>
-<reg name="INTERRUPT121" addr="0x8b0" index="121">
-</reg>
-<reg name="INTERRUPT122" addr="0x8c0" index="122">
-</reg>
-<reg name="INTERRUPT123" addr="0x8d0" index="123">
-</reg>
-<reg name="INTERRUPT124" addr="0x8e0" index="124">
-</reg>
-<reg name="INTERRUPT125" addr="0x8f0" index="125">
-</reg>
-<reg name="INTERRUPT126" addr="0x900" index="126">
-</reg>
-<reg name="INTERRUPT127" addr="0x910" index="127">
</reg>
+<reg name="INTERRUPTn" sct="yes">
+<formula string="0x120+n*0x10"/>
+<addr name="INTERRUPT0" addr="0x120" />
+<addr name="INTERRUPT1" addr="0x130" />
+<addr name="INTERRUPT2" addr="0x140" />
+<addr name="INTERRUPT3" addr="0x150" />
+<addr name="INTERRUPT4" addr="0x160" />
+<addr name="INTERRUPT5" addr="0x170" />
+<addr name="INTERRUPT6" addr="0x180" />
+<addr name="INTERRUPT7" addr="0x190" />
+<addr name="INTERRUPT8" addr="0x1a0" />
+<addr name="INTERRUPT9" addr="0x1b0" />
+<addr name="INTERRUPT10" addr="0x1c0" />
+<addr name="INTERRUPT11" addr="0x1d0" />
+<addr name="INTERRUPT12" addr="0x1e0" />
+<addr name="INTERRUPT13" addr="0x1f0" />
+<addr name="INTERRUPT14" addr="0x200" />
+<addr name="INTERRUPT15" addr="0x210" />
+<addr name="INTERRUPT16" addr="0x220" />
+<addr name="INTERRUPT17" addr="0x230" />
+<addr name="INTERRUPT18" addr="0x240" />
+<addr name="INTERRUPT19" addr="0x250" />
+<addr name="INTERRUPT20" addr="0x260" />
+<addr name="INTERRUPT21" addr="0x270" />
+<addr name="INTERRUPT22" addr="0x280" />
+<addr name="INTERRUPT23" addr="0x290" />
+<addr name="INTERRUPT24" addr="0x2a0" />
+<addr name="INTERRUPT25" addr="0x2b0" />
+<addr name="INTERRUPT26" addr="0x2c0" />
+<addr name="INTERRUPT27" addr="0x2d0" />
+<addr name="INTERRUPT28" addr="0x2e0" />
+<addr name="INTERRUPT29" addr="0x2f0" />
+<addr name="INTERRUPT30" addr="0x300" />
+<addr name="INTERRUPT31" addr="0x310" />
+<addr name="INTERRUPT32" addr="0x320" />
+<addr name="INTERRUPT33" addr="0x330" />
+<addr name="INTERRUPT34" addr="0x340" />
+<addr name="INTERRUPT35" addr="0x350" />
+<addr name="INTERRUPT36" addr="0x360" />
+<addr name="INTERRUPT37" addr="0x370" />
+<addr name="INTERRUPT38" addr="0x380" />
+<addr name="INTERRUPT39" addr="0x390" />
+<addr name="INTERRUPT40" addr="0x3a0" />
+<addr name="INTERRUPT41" addr="0x3b0" />
+<addr name="INTERRUPT42" addr="0x3c0" />
+<addr name="INTERRUPT43" addr="0x3d0" />
+<addr name="INTERRUPT44" addr="0x3e0" />
+<addr name="INTERRUPT45" addr="0x3f0" />
+<addr name="INTERRUPT46" addr="0x400" />
+<addr name="INTERRUPT47" addr="0x410" />
+<addr name="INTERRUPT48" addr="0x420" />
+<addr name="INTERRUPT49" addr="0x430" />
+<addr name="INTERRUPT50" addr="0x440" />
+<addr name="INTERRUPT51" addr="0x450" />
+<addr name="INTERRUPT52" addr="0x460" />
+<addr name="INTERRUPT53" addr="0x470" />
+<addr name="INTERRUPT54" addr="0x480" />
+<addr name="INTERRUPT55" addr="0x490" />
+<addr name="INTERRUPT56" addr="0x4a0" />
+<addr name="INTERRUPT57" addr="0x4b0" />
+<addr name="INTERRUPT58" addr="0x4c0" />
+<addr name="INTERRUPT59" addr="0x4d0" />
+<addr name="INTERRUPT60" addr="0x4e0" />
+<addr name="INTERRUPT61" addr="0x4f0" />
+<addr name="INTERRUPT62" addr="0x500" />
+<addr name="INTERRUPT63" addr="0x510" />
+<addr name="INTERRUPT64" addr="0x520" />
+<addr name="INTERRUPT65" addr="0x530" />
+<addr name="INTERRUPT66" addr="0x540" />
+<addr name="INTERRUPT67" addr="0x550" />
+<addr name="INTERRUPT68" addr="0x560" />
+<addr name="INTERRUPT69" addr="0x570" />
+<addr name="INTERRUPT70" addr="0x580" />
+<addr name="INTERRUPT71" addr="0x590" />
+<addr name="INTERRUPT72" addr="0x5a0" />
+<addr name="INTERRUPT73" addr="0x5b0" />
+<addr name="INTERRUPT74" addr="0x5c0" />
+<addr name="INTERRUPT75" addr="0x5d0" />
+<addr name="INTERRUPT76" addr="0x5e0" />
+<addr name="INTERRUPT77" addr="0x5f0" />
+<addr name="INTERRUPT78" addr="0x600" />
+<addr name="INTERRUPT79" addr="0x610" />
+<addr name="INTERRUPT80" addr="0x620" />
+<addr name="INTERRUPT81" addr="0x630" />
+<addr name="INTERRUPT82" addr="0x640" />
+<addr name="INTERRUPT83" addr="0x650" />
+<addr name="INTERRUPT84" addr="0x660" />
+<addr name="INTERRUPT85" addr="0x670" />
+<addr name="INTERRUPT86" addr="0x680" />
+<addr name="INTERRUPT87" addr="0x690" />
+<addr name="INTERRUPT88" addr="0x6a0" />
+<addr name="INTERRUPT89" addr="0x6b0" />
+<addr name="INTERRUPT90" addr="0x6c0" />
+<addr name="INTERRUPT91" addr="0x6d0" />
+<addr name="INTERRUPT92" addr="0x6e0" />
+<addr name="INTERRUPT93" addr="0x6f0" />
+<addr name="INTERRUPT94" addr="0x700" />
+<addr name="INTERRUPT95" addr="0x710" />
+<addr name="INTERRUPT96" addr="0x720" />
+<addr name="INTERRUPT97" addr="0x730" />
+<addr name="INTERRUPT98" addr="0x740" />
+<addr name="INTERRUPT99" addr="0x750" />
+<addr name="INTERRUPT100" addr="0x760" />
+<addr name="INTERRUPT101" addr="0x770" />
+<addr name="INTERRUPT102" addr="0x780" />
+<addr name="INTERRUPT103" addr="0x790" />
+<addr name="INTERRUPT104" addr="0x7a0" />
+<addr name="INTERRUPT105" addr="0x7b0" />
+<addr name="INTERRUPT106" addr="0x7c0" />
+<addr name="INTERRUPT107" addr="0x7d0" />
+<addr name="INTERRUPT108" addr="0x7e0" />
+<addr name="INTERRUPT109" addr="0x7f0" />
+<addr name="INTERRUPT110" addr="0x800" />
+<addr name="INTERRUPT111" addr="0x810" />
+<addr name="INTERRUPT112" addr="0x820" />
+<addr name="INTERRUPT113" addr="0x830" />
+<addr name="INTERRUPT114" addr="0x840" />
+<addr name="INTERRUPT115" addr="0x850" />
+<addr name="INTERRUPT116" addr="0x860" />
+<addr name="INTERRUPT117" addr="0x870" />
+<addr name="INTERRUPT118" addr="0x880" />
+<addr name="INTERRUPT119" addr="0x890" />
+<addr name="INTERRUPT120" addr="0x8a0" />
+<addr name="INTERRUPT121" addr="0x8b0" />
+<addr name="INTERRUPT122" addr="0x8c0" />
+<addr name="INTERRUPT123" addr="0x8d0" />
+<addr name="INTERRUPT124" addr="0x8e0" />
+<addr name="INTERRUPT125" addr="0x8f0" />
+<addr name="INTERRUPT126" addr="0x900" />
+<addr name="INTERRUPT127" addr="0x910" />
<field name="RSRVD1" bitrange="31:5">
</field>
<field name="ENFIQ" bitrange="4:4">
@@ -6047,8 +5757,9 @@ KIND, either express or implied.
<value name="LEVEL3" value="0x3">
</value>
</field>
-</multireg>
-<reg name="DEBUG" addr="0x1120" sct="yes">
+</reg>
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0x1120" />
<field name="INSERVICE" bitrange="31:28">
<value name="LEVEL0" value="0x1">
</value>
@@ -6120,33 +5831,34 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DBGREAD0" addr="0x1130" sct="yes">
+<reg name="DBGREAD0" sct="yes">
+<addr name="DBGREAD0" addr="0x1130" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="DBGREAD1" addr="0x1140" sct="yes">
+<reg name="DBGREAD1" sct="yes">
+<addr name="DBGREAD1" addr="0x1140" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="DBGFLAG" addr="0x1150" sct="yes">
+<reg name="DBGFLAG" sct="yes">
+<addr name="DBGFLAG" addr="0x1150" />
<field name="RSRVD1" bitrange="31:16">
</field>
<field name="FLAG" bitrange="15:0">
</field>
</reg>
-<multireg name="DBGREQUESTn" base="0x1160" count="3" offset="0x10" sct="SCT">
-<reg name="DBGREQUEST0" addr="0x1160" index="0">
-</reg>
-<reg name="DBGREQUEST1" addr="0x1170" index="1">
-</reg>
-<reg name="DBGREQUEST2" addr="0x1180" index="2">
-</reg>
-<reg name="DBGREQUEST3" addr="0x1190" index="3">
-</reg>
+<reg name="DBGREQUESTn" sct="yes">
+<formula string="0x1160+n*0x10"/>
+<addr name="DBGREQUEST0" addr="0x1160" />
+<addr name="DBGREQUEST1" addr="0x1170" />
+<addr name="DBGREQUEST2" addr="0x1180" />
+<addr name="DBGREQUEST3" addr="0x1190" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0x11e0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x11e0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -6155,8 +5867,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="IR" addr="0x80078000" long_name="IrDA" desc="IrDA Controller">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="IR" long_name="IrDA" desc="IrDA Controller" version="3.2.0">
+<addr name="IR" addr="0x80078000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -6242,7 +5956,8 @@ KIND, either express or implied.
<field name="RXEN" bitrange="0:0">
</field>
</reg>
-<reg name="TXDMA" addr="0x10" sct="yes">
+<reg name="TXDMA" sct="yes">
+<addr name="TXDMA" addr="0x10" />
<field name="RUN" bitrange="31:31">
</field>
<field name="RSVD2" bitrange="30:30">
@@ -6266,7 +5981,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="11:0">
</field>
</reg>
-<reg name="RXDMA" addr="0x20" sct="yes">
+<reg name="RXDMA" sct="yes">
+<addr name="RXDMA" addr="0x20" />
<field name="RUN" bitrange="31:31">
</field>
<field name="RSVD" bitrange="30:10">
@@ -6274,7 +5990,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="9:0">
</field>
</reg>
-<reg name="DBGCTRL" addr="0x30" sct="yes">
+<reg name="DBGCTRL" sct="yes">
+<addr name="DBGCTRL" addr="0x30" />
<field name="RSVD2" bitrange="31:13">
</field>
<field name="VFIRSWZ" bitrange="12:12">
@@ -6308,7 +6025,8 @@ KIND, either express or implied.
<field name="MIO_EN" bitrange="0:0">
</field>
</reg>
-<reg name="INTR" addr="0x40" sct="yes">
+<reg name="INTR" sct="yes">
+<addr name="INTR" addr="0x40" />
<field name="RSVD2" bitrange="31:23">
</field>
<field name="RXABORT_IRQ_EN" bitrange="22:22">
@@ -6398,11 +6116,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x50" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x50" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0x60" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x60" />
<field name="PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -6478,7 +6198,8 @@ KIND, either express or implied.
<field name="TX_ACTIVE" bitrange="0:0">
</field>
</reg>
-<reg name="TCCTRL" addr="0x70" sct="yes">
+<reg name="TCCTRL" sct="yes">
+<addr name="TCCTRL" addr="0x70" />
<field name="INIT" bitrange="31:31">
</field>
<field name="GO" bitrange="30:30">
@@ -6504,7 +6225,8 @@ KIND, either express or implied.
<field name="C" bitrange="0:0">
</field>
</reg>
-<reg name="SI_READ" addr="0x80" sct="no">
+<reg name="SI_READ" sct="no">
+<addr name="SI_READ" addr="0x80" />
<field name="RSVD1" bitrange="31:9">
</field>
<field name="ABORT" bitrange="8:8">
@@ -6512,7 +6234,8 @@ KIND, either express or implied.
<field name="DATA" bitrange="7:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x90" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x90" />
<field name="RSVD1" bitrange="31:6">
</field>
<field name="TXDMAKICK" bitrange="5:5">
@@ -6528,7 +6251,8 @@ KIND, either express or implied.
<field name="RXDMAREQ" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0xa0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xa0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -6537,8 +6261,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="LCDIF" addr="0x80030000" long_name="LCD Interface" desc="LCD Interface (LCDIF)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="LCDIF" long_name="LCD Interface" desc="LCD Interface (LCDIF)" version="3.2.0">
+<addr name="LCDIF" addr="0x80030000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -6644,7 +6370,8 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="RSRVD1" bitrange="31:27">
</field>
<field name="BM_ERROR_IRQ_EN" bitrange="26:26">
@@ -6732,21 +6459,25 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TRANSFER_COUNT" addr="0x20" sct="no">
+<reg name="TRANSFER_COUNT" sct="no">
+<addr name="TRANSFER_COUNT" addr="0x20" />
<field name="V_COUNT" bitrange="31:16">
</field>
<field name="H_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CUR_BUF" addr="0x30" sct="no">
+<reg name="CUR_BUF" sct="no">
+<addr name="CUR_BUF" addr="0x30" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="NEXT_BUF" addr="0x40" sct="no">
+<reg name="NEXT_BUF" sct="no">
+<addr name="NEXT_BUF" addr="0x40" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="PAGETABLE" addr="0x50" sct="no">
+<reg name="PAGETABLE" sct="no">
+<addr name="PAGETABLE" addr="0x50" />
<field name="BASE" bitrange="31:14">
</field>
<field name="RSVD1" bitrange="13:2">
@@ -6756,7 +6487,8 @@ KIND, either express or implied.
<field name="ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="TIMING" addr="0x60" sct="no">
+<reg name="TIMING" sct="no">
+<addr name="TIMING" addr="0x60" />
<field name="CMD_HOLD" bitrange="31:24">
</field>
<field name="CMD_SETUP" bitrange="23:16">
@@ -6766,7 +6498,8 @@ KIND, either express or implied.
<field name="DATA_SETUP" bitrange="7:0">
</field>
</reg>
-<reg name="VDCTRL0" addr="0x70" sct="yes">
+<reg name="VDCTRL0" sct="yes">
+<addr name="VDCTRL0" addr="0x70" />
<field name="RSRVD2" bitrange="31:30">
</field>
<field name="VSYNC_OEB" bitrange="29:29">
@@ -6798,11 +6531,13 @@ KIND, either express or implied.
<field name="VSYNC_PULSE_WIDTH" bitrange="17:0">
</field>
</reg>
-<reg name="VDCTRL1" addr="0x80" sct="no">
+<reg name="VDCTRL1" sct="no">
+<addr name="VDCTRL1" addr="0x80" />
<field name="VSYNC_PERIOD" bitrange="31:0">
</field>
</reg>
-<reg name="VDCTRL2" addr="0x90" sct="no">
+<reg name="VDCTRL2" sct="no">
+<addr name="VDCTRL2" addr="0x90" />
<field name="HSYNC_PULSE_WIDTH" bitrange="31:24">
</field>
<field name="RSRVD0" bitrange="23:18">
@@ -6810,7 +6545,8 @@ KIND, either express or implied.
<field name="HSYNC_PERIOD" bitrange="17:0">
</field>
</reg>
-<reg name="VDCTRL3" addr="0xa0" sct="no">
+<reg name="VDCTRL3" sct="no">
+<addr name="VDCTRL3" addr="0xa0" />
<field name="RSRVD0" bitrange="31:30">
</field>
<field name="MUX_SYNC_SIGNALS" bitrange="29:29">
@@ -6822,7 +6558,8 @@ KIND, either express or implied.
<field name="VERTICAL_WAIT_CNT" bitrange="15:0">
</field>
</reg>
-<reg name="VDCTRL4" addr="0xb0" sct="no">
+<reg name="VDCTRL4" sct="no">
+<addr name="VDCTRL4" addr="0xb0" />
<field name="RSRVD0" bitrange="31:19">
</field>
<field name="SYNC_SIGNALS_ON" bitrange="18:18">
@@ -6830,7 +6567,8 @@ KIND, either express or implied.
<field name="DOTCLK_H_VALID_DATA_CNT" bitrange="17:0">
</field>
</reg>
-<reg name="DVICTRL0" addr="0xc0" sct="no">
+<reg name="DVICTRL0" sct="no">
+<addr name="DVICTRL0" addr="0xc0" />
<field name="START_TRS" bitrange="31:31">
</field>
<field name="H_ACTIVE_CNT" bitrange="30:20">
@@ -6840,7 +6578,8 @@ KIND, either express or implied.
<field name="V_LINES_CNT" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL1" addr="0xd0" sct="no">
+<reg name="DVICTRL1" sct="no">
+<addr name="DVICTRL1" addr="0xd0" />
<field name="RSRVD0" bitrange="31:30">
</field>
<field name="F1_START_LINE" bitrange="29:20">
@@ -6850,7 +6589,8 @@ KIND, either express or implied.
<field name="F2_START_LINE" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL2" addr="0xe0" sct="no">
+<reg name="DVICTRL2" sct="no">
+<addr name="DVICTRL2" addr="0xe0" />
<field name="RSRVD0" bitrange="31:30">
</field>
<field name="F2_END_LINE" bitrange="29:20">
@@ -6860,7 +6600,8 @@ KIND, either express or implied.
<field name="V1_BLANK_END_LINE" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL3" addr="0xf0" sct="no">
+<reg name="DVICTRL3" sct="no">
+<addr name="DVICTRL3" addr="0xf0" />
<field name="RSRVD1" bitrange="31:26">
</field>
<field name="V2_BLANK_START_LINE" bitrange="25:16">
@@ -6870,7 +6611,8 @@ KIND, either express or implied.
<field name="V2_BLANK_END_LINE" bitrange="9:0">
</field>
</reg>
-<reg name="DVICTRL4" addr="0x100" sct="no">
+<reg name="DVICTRL4" sct="no">
+<addr name="DVICTRL4" addr="0x100" />
<field name="Y_FILL_VALUE" bitrange="31:24">
</field>
<field name="CB_FILL_VALUE" bitrange="23:16">
@@ -6880,7 +6622,8 @@ KIND, either express or implied.
<field name="H_FILL_CNT" bitrange="7:0">
</field>
</reg>
-<reg name="CSC_COEFF0" addr="0x110" sct="no">
+<reg name="CSC_COEFF0" sct="no">
+<addr name="CSC_COEFF0" addr="0x110" />
<field name="RSRVD1" bitrange="31:26">
</field>
<field name="C0" bitrange="25:16">
@@ -6898,7 +6641,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CSC_COEFF1" addr="0x120" sct="no">
+<reg name="CSC_COEFF1" sct="no">
+<addr name="CSC_COEFF1" addr="0x120" />
<field name="RSRVD1" bitrange="31:26">
</field>
<field name="C2" bitrange="25:16">
@@ -6908,7 +6652,8 @@ KIND, either express or implied.
<field name="C1" bitrange="9:0">
</field>
</reg>
-<reg name="CSC_COEFF2" addr="0x130" sct="no">
+<reg name="CSC_COEFF2" sct="no">
+<addr name="CSC_COEFF2" addr="0x130" />
<field name="RSRVD1" bitrange="31:26">
</field>
<field name="C4" bitrange="25:16">
@@ -6918,7 +6663,8 @@ KIND, either express or implied.
<field name="C3" bitrange="9:0">
</field>
</reg>
-<reg name="CSC_COEFF3" addr="0x140" sct="no">
+<reg name="CSC_COEFF3" sct="no">
+<addr name="CSC_COEFF3" addr="0x140" />
<field name="RSRVD1" bitrange="31:26">
</field>
<field name="C6" bitrange="25:16">
@@ -6928,7 +6674,8 @@ KIND, either express or implied.
<field name="C5" bitrange="9:0">
</field>
</reg>
-<reg name="CSC_COEFF4" addr="0x150" sct="no">
+<reg name="CSC_COEFF4" sct="no">
+<addr name="CSC_COEFF4" addr="0x150" />
<field name="RSRVD1" bitrange="31:26">
</field>
<field name="C8" bitrange="25:16">
@@ -6938,7 +6685,8 @@ KIND, either express or implied.
<field name="C7" bitrange="9:0">
</field>
</reg>
-<reg name="CSC_OFFSET" addr="0x160" sct="no">
+<reg name="CSC_OFFSET" sct="no">
+<addr name="CSC_OFFSET" addr="0x160" />
<field name="RSRVD1" bitrange="31:25">
</field>
<field name="CBCR_OFFSET" bitrange="24:16">
@@ -6948,7 +6696,8 @@ KIND, either express or implied.
<field name="Y_OFFSET" bitrange="8:0">
</field>
</reg>
-<reg name="CSC_LIMIT" addr="0x170" sct="no">
+<reg name="CSC_LIMIT" sct="no">
+<addr name="CSC_LIMIT" addr="0x170" />
<field name="CBCR_MIN" bitrange="31:24">
</field>
<field name="CBCR_MAX" bitrange="23:16">
@@ -6958,7 +6707,8 @@ KIND, either express or implied.
<field name="Y_MAX" bitrange="7:0">
</field>
</reg>
-<reg name="PIN_SHARING_CTRL0" addr="0x180" sct="yes">
+<reg name="PIN_SHARING_CTRL0" sct="yes">
+<addr name="PIN_SHARING_CTRL0" addr="0x180" />
<field name="RSRVD1" bitrange="31:6">
</field>
<field name="MUX_OVERRIDE" bitrange="5:4">
@@ -6984,15 +6734,18 @@ KIND, either express or implied.
<field name="PIN_SHARING_ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="PIN_SHARING_CTRL1" addr="0x190" sct="no">
+<reg name="PIN_SHARING_CTRL1" sct="no">
+<addr name="PIN_SHARING_CTRL1" addr="0x190" />
<field name="THRESHOLD1" bitrange="31:0">
</field>
</reg>
-<reg name="PIN_SHARING_CTRL2" addr="0x1a0" sct="no">
+<reg name="PIN_SHARING_CTRL2" sct="no">
+<addr name="PIN_SHARING_CTRL2" addr="0x1a0" />
<field name="THRESHOLD2" bitrange="31:0">
</field>
</reg>
-<reg name="DATA" addr="0x1b0" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x1b0" />
<field name="DATA_THREE" bitrange="31:24">
</field>
<field name="DATA_TWO" bitrange="23:16">
@@ -7002,11 +6755,13 @@ KIND, either express or implied.
<field name="DATA_ZERO" bitrange="7:0">
</field>
</reg>
-<reg name="BM_ERROR_STAT" addr="0x1c0" sct="no">
+<reg name="BM_ERROR_STAT" sct="no">
+<addr name="BM_ERROR_STAT" addr="0x1c0" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0x1d0" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x1d0" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="DMA_REQ" bitrange="30:30">
@@ -7026,7 +6781,8 @@ KIND, either express or implied.
<field name="RSRVD0" bitrange="23:0">
</field>
</reg>
-<reg name="VERSION" addr="0x1e0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x1e0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7034,7 +6790,8 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x1f0" sct="no">
+<reg name="DEBUG0" sct="no">
+<addr name="DEBUG0" addr="0x1f0" />
<field name="STREAMING_END_DETECTED" bitrange="31:31">
</field>
<field name="WAIT_FOR_VSYNC_EDGE_OUT" bitrange="30:30">
@@ -7070,15 +6827,18 @@ KIND, either express or implied.
<field name="RSRVD0" bitrange="9:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x200" sct="no">
+<reg name="DEBUG1" sct="no">
+<addr name="DEBUG1" addr="0x200" />
<field name="H_DATA_COUNT" bitrange="31:16">
</field>
<field name="V_DATA_COUNT" bitrange="15:0">
</field>
</reg>
</dev>
-<dev name="LRADC" addr="0x80050000" long_name="Low Resolution ADC" desc="Low-Resolution ADC and Touch-Screen Interface">
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="LRADC" long_name="Low Resolution ADC" desc="Low-Resolution ADC and Touch-Screen Interface" version="3.2.0">
+<addr name="LRADC" addr="0x80050000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -7126,7 +6886,8 @@ KIND, either express or implied.
<field name="SCHEDULE" bitrange="7:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="RSRVD2" bitrange="31:25">
</field>
<field name="TOUCH_DETECT_IRQ_EN" bitrange="24:24">
@@ -7240,7 +7001,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL2" addr="0x20" sct="yes">
+<reg name="CTRL2" sct="yes">
+<addr name="CTRL2" addr="0x20" />
<field name="DIVIDE_BY_TWO" bitrange="31:24">
</field>
<field name="BL_AMP_BYPASS" bitrange="23:23">
@@ -7354,7 +7116,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CTRL3" addr="0x30" sct="yes">
+<reg name="CTRL3" sct="yes">
+<addr name="CTRL3" addr="0x30" />
<field name="RSRVD5" bitrange="31:26">
</field>
<field name="DISCARD" bitrange="25:24">
@@ -7418,7 +7181,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="STATUS" addr="0x40" sct="yes">
+<reg name="STATUS" sct="yes">
+<addr name="STATUS" addr="0x40" />
<field name="RSRVD3" bitrange="31:27">
</field>
<field name="TEMP1_PRESENT" bitrange="26:26">
@@ -7452,23 +7216,16 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<multireg name="CHn" base="0x50" count="7" offset="0x10" sct="SCT">
-<reg name="CH0" addr="0x50" index="0">
-</reg>
-<reg name="CH1" addr="0x60" index="1">
-</reg>
-<reg name="CH2" addr="0x70" index="2">
-</reg>
-<reg name="CH3" addr="0x80" index="3">
-</reg>
-<reg name="CH4" addr="0x90" index="4">
-</reg>
-<reg name="CH5" addr="0xa0" index="5">
-</reg>
-<reg name="CH6" addr="0xb0" index="6">
-</reg>
-<reg name="CH7" addr="0xc0" index="7">
-</reg>
+<reg name="CHn" sct="yes">
+<formula string="0x50+n*0x10"/>
+<addr name="CH0" addr="0x50" />
+<addr name="CH1" addr="0x60" />
+<addr name="CH2" addr="0x70" />
+<addr name="CH3" addr="0x80" />
+<addr name="CH4" addr="0x90" />
+<addr name="CH5" addr="0xa0" />
+<addr name="CH6" addr="0xb0" />
+<addr name="CH7" addr="0xc0" />
<field name="TOGGLE" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:30">
@@ -7481,16 +7238,13 @@ KIND, either express or implied.
</field>
<field name="VALUE" bitrange="17:0">
</field>
-</multireg>
-<multireg name="DELAYn" base="0xd0" count="3" offset="0x10" sct="SCT">
-<reg name="DELAY0" addr="0xd0" index="0">
-</reg>
-<reg name="DELAY1" addr="0xe0" index="1">
-</reg>
-<reg name="DELAY2" addr="0xf0" index="2">
-</reg>
-<reg name="DELAY3" addr="0x100" index="3">
</reg>
+<reg name="DELAYn" sct="yes">
+<formula string="0xd0+n*0x10"/>
+<addr name="DELAY0" addr="0xd0" />
+<addr name="DELAY1" addr="0xe0" />
+<addr name="DELAY2" addr="0xf0" />
+<addr name="DELAY3" addr="0x100" />
<field name="TRIGGER_LRADCS" bitrange="31:24">
</field>
<field name="RSRVD2" bitrange="23:21">
@@ -7503,8 +7257,9 @@ KIND, either express or implied.
</field>
<field name="DELAY" bitrange="10:0">
</field>
-</multireg>
-<reg name="DEBUG0" addr="0x110" sct="yes">
+</reg>
+<reg name="DEBUG0" sct="yes">
+<addr name="DEBUG0" addr="0x110" />
<field name="READONLY" bitrange="31:16">
</field>
<field name="RSRVD1" bitrange="15:12">
@@ -7512,7 +7267,8 @@ KIND, either express or implied.
<field name="STATE" bitrange="11:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x120" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x120" />
<field name="RSRVD3" bitrange="31:24">
</field>
<field name="REQUEST" bitrange="23:16">
@@ -7542,7 +7298,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CONVERSION" addr="0x130" sct="yes">
+<reg name="CONVERSION" sct="yes">
+<addr name="CONVERSION" addr="0x130" />
<field name="RSRVD3" bitrange="31:21">
</field>
<field name="AUTOMATIC" bitrange="20:20">
@@ -7568,7 +7325,8 @@ KIND, either express or implied.
<field name="SCALED_BATT_VOLTAGE" bitrange="9:0">
</field>
</reg>
-<reg name="CTRL4" addr="0x140" sct="yes">
+<reg name="CTRL4" sct="yes">
+<addr name="CTRL4" addr="0x140" />
<field name="LRADC7SELECT" bitrange="31:28">
<value name="CHANNEL0" value="0x0">
</value>
@@ -7842,7 +7600,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="VERSION" addr="0x150" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x150" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -7851,8 +7610,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="OCOTP" addr="0x8002c000" long_name="One-time Programmable Array Controller" desc="On-Chip OTP (OCOTP) Controller">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="OCOTP" long_name="One-time Programmable Array Controller" desc="On-Chip OTP (OCOTP) Controller" version="3.2.0">
+<addr name="OCOTP" addr="0x8002c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="WR_UNLOCK" bitrange="31:16">
<value name="KEY" value="0x3e77">
</value>
@@ -7874,55 +7635,47 @@ KIND, either express or implied.
<field name="ADDR" bitrange="4:0">
</field>
</reg>
-<reg name="DATA" addr="0x10" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x10" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<multireg name="CUSTn" base="0x20" count="3" offset="0x10" sct="">
-<reg name="CUST0" addr="0x20" index="0">
-</reg>
-<reg name="CUST1" addr="0x30" index="1">
-</reg>
-<reg name="CUST2" addr="0x40" index="2">
-</reg>
-<reg name="CUST3" addr="0x50" index="3">
-</reg>
+<reg name="CUSTn" sct="no">
+<formula string="0x20+n*0x10"/>
+<addr name="CUST0" addr="0x20" />
+<addr name="CUST1" addr="0x30" />
+<addr name="CUST2" addr="0x40" />
+<addr name="CUST3" addr="0x50" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="CRYPTOn" base="0x60" count="3" offset="0x10" sct="">
-<reg name="CRYPTO0" addr="0x60" index="0">
-</reg>
-<reg name="CRYPTO1" addr="0x70" index="1">
-</reg>
-<reg name="CRYPTO2" addr="0x80" index="2">
-</reg>
-<reg name="CRYPTO3" addr="0x90" index="3">
</reg>
+<reg name="CRYPTOn" sct="no">
+<formula string="0x60+n*0x10"/>
+<addr name="CRYPTO0" addr="0x60" />
+<addr name="CRYPTO1" addr="0x70" />
+<addr name="CRYPTO2" addr="0x80" />
+<addr name="CRYPTO3" addr="0x90" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="HWCAPn" base="0xa0" count="5" offset="0x10" sct="">
-<reg name="HWCAP0" addr="0xa0" index="0">
-</reg>
-<reg name="HWCAP1" addr="0xb0" index="1">
-</reg>
-<reg name="HWCAP2" addr="0xc0" index="2">
-</reg>
-<reg name="HWCAP3" addr="0xd0" index="3">
-</reg>
-<reg name="HWCAP4" addr="0xe0" index="4">
-</reg>
-<reg name="HWCAP5" addr="0xf0" index="5">
</reg>
+<reg name="HWCAPn" sct="no">
+<formula string="0xa0+n*0x10"/>
+<addr name="HWCAP0" addr="0xa0" />
+<addr name="HWCAP1" addr="0xb0" />
+<addr name="HWCAP2" addr="0xc0" />
+<addr name="HWCAP3" addr="0xd0" />
+<addr name="HWCAP4" addr="0xe0" />
+<addr name="HWCAP5" addr="0xf0" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<reg name="SWCAP" addr="0x100" sct="no">
+</reg>
+<reg name="SWCAP" sct="no">
+<addr name="SWCAP" addr="0x100" />
<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="CUSTCAP" addr="0x110" sct="no">
+<reg name="CUSTCAP" sct="no">
+<addr name="CUSTCAP" addr="0x110" />
<field name="CUST_DISABLE_WMADRM9" bitrange="31:31">
</field>
<field name="CUST_DISABLE_JANUSDRM10" bitrange="30:30">
@@ -7940,7 +7693,8 @@ KIND, either express or implied.
<field name="RSRVD0" bitrange="0:0">
</field>
</reg>
-<reg name="LOCK" addr="0x120" sct="no">
+<reg name="LOCK" sct="no">
+<addr name="LOCK" addr="0x120" />
<field name="ROM7" bitrange="31:31">
</field>
<field name="ROM6" bitrange="30:30">
@@ -7998,131 +7752,38 @@ KIND, either express or implied.
<field name="CUST0" bitrange="0:0">
</field>
</reg>
-<multireg name="OPSn" base="0x130" count="3" offset="0x10" sct="">
-<reg name="OPS0" addr="0x130" index="0">
-</reg>
-<reg name="OPS1" addr="0x140" index="1">
-</reg>
-<reg name="OPS2" addr="0x150" index="2">
-</reg>
-<reg name="OPS3" addr="0x160" index="3">
-</reg>
+<reg name="OPSn" sct="no">
+<formula string="0x130+n*0x10"/>
+<addr name="OPS0" addr="0x130" />
+<addr name="OPS1" addr="0x140" />
+<addr name="OPS2" addr="0x150" />
+<addr name="OPS3" addr="0x160" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<multireg name="UNn" base="0x170" count="2" offset="0x10" sct="">
-<reg name="UN0" addr="0x170" index="0">
-</reg>
-<reg name="UN1" addr="0x180" index="1">
-</reg>
-<reg name="UN2" addr="0x190" index="2">
</reg>
+<reg name="UNn" sct="no">
+<formula string="0x170+n*0x10"/>
+<addr name="UN0" addr="0x170" />
+<addr name="UN1" addr="0x180" />
+<addr name="UN2" addr="0x190" />
<field name="BITS" bitrange="31:0">
</field>
-</multireg>
-<reg name="ROM0" addr="0x1a0" sct="no">
-<field name="BOOT_MODE" bitrange="31:24">
-</field>
-<field name="ENABLE_PJTAG_12MA_DRIVE" bitrange="23:23">
-</field>
-<field name="USE_PARALLEL_JTAG" bitrange="22:22">
-</field>
-<field name="SD_POWER_GATE_GPIO" bitrange="21:20">
-</field>
-<field name="SD_POWER_UP_DELAY" bitrange="19:14">
-</field>
-<field name="SD_BUS_WIDTH" bitrange="13:12">
-</field>
-<field name="SSP_SCK_INDEX" bitrange="11:8">
-</field>
-<field name="RSRVD3" bitrange="7:7">
-</field>
-<field name="DISABLE_SPI_NOR_FAST_READ" bitrange="6:6">
-</field>
-<field name="ENABLE_USB_BOOT_SERIAL_NUM" bitrange="5:5">
-</field>
-<field name="ENABLE_UNENCRYPTED_BOOT" bitrange="4:4">
-</field>
-<field name="SD_MBR_BOOT" bitrange="3:3">
-</field>
-<field name="RSRVD2" bitrange="2:2">
-</field>
-<field name="RSRVD1" bitrange="1:1">
-</field>
-<field name="RSRVD0" bitrange="0:0">
-</field>
</reg>
-<reg name="ROM1" addr="0x1b0" sct="no">
-<field name="RSRVD1" bitrange="31:30">
-</field>
-<field name="USE_ALT_GPMI_RDY3" bitrange="29:28">
-</field>
-<field name="USE_ALT_GPMI_CE3" bitrange="27:26">
-</field>
-<field name="USE_ALT_GPMI_RDY2" bitrange="25:25">
-</field>
-<field name="USE_ALT_GPMI_CE2" bitrange="24:24">
-</field>
-<field name="ENABLE_NAND3_CE_RDY_PULLUP" bitrange="23:23">
-</field>
-<field name="ENABLE_NAND2_CE_RDY_PULLUP" bitrange="22:22">
-</field>
-<field name="ENABLE_NAND1_CE_RDY_PULLUP" bitrange="21:21">
-</field>
-<field name="ENABLE_NAND0_CE_RDY_PULLUP" bitrange="20:20">
-</field>
-<field name="UNTOUCH_INTERNAL_SSP_PULLUP" bitrange="19:19">
-</field>
-<field name="SSP2_EXT_PULLUP" bitrange="18:18">
-</field>
-<field name="SSP1_EXT_PULLUP" bitrange="17:17">
-</field>
-<field name="SD_INCREASE_INIT_SEQ_TIME" bitrange="16:16">
-</field>
-<field name="SD_INIT_SEQ_2_ENABLE" bitrange="15:15">
-</field>
-<field name="SD_CMD0_DISABLE" bitrange="14:14">
-</field>
-<field name="SD_INIT_SEQ_1_DISABLE" bitrange="13:13">
-</field>
-<field name="USE_ALT_SSP1_DATA4_7" bitrange="12:12">
-</field>
-<field name="BOOT_SEARCH_COUNT" bitrange="11:8">
-</field>
-<field name="RSRVD0" bitrange="7:3">
-</field>
-<field name="NUMBER_OF_NANDS" bitrange="2:0">
-</field>
-</reg>
-<reg name="ROM2" addr="0x1c0" sct="no">
-<field name="USB_VID" bitrange="31:16">
-</field>
-<field name="USB_PID" bitrange="15:0">
-</field>
-</reg>
-<reg name="ROM3" addr="0x1d0" sct="no">
-<field name="RSRVD1" bitrange="31:10">
-</field>
-<field name="RSRVD0" bitrange="9:0">
-</field>
-</reg>
-<reg name="ROM4" addr="0x1e0" sct="no">
-<field name="BITS" bitrange="31:0">
-</field>
-</reg>
-<reg name="ROM5" addr="0x1f0" sct="no">
-<field name="BITS" bitrange="31:0">
-</field>
-</reg>
-<reg name="ROM6" addr="0x200" sct="no">
+<reg name="ROMn" sct="no">
+<formula string="0x1a0+n*0x10"/>
+<addr name="ROM0" addr="0x1a0" />
+<addr name="ROM1" addr="0x1b0" />
+<addr name="ROM2" addr="0x1c0" />
+<addr name="ROM3" addr="0x1d0" />
+<addr name="ROM4" addr="0x1e0" />
+<addr name="ROM5" addr="0x1f0" />
+<addr name="ROM6" addr="0x200" />
+<addr name="ROM7" addr="0x210" />
<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="ROM7" addr="0x210" sct="no">
-<field name="BITS" bitrange="31:0">
-</field>
-</reg>
-<reg name="VERSION" addr="0x220" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x220" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -8131,8 +7792,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="PINCTRL" addr="0x80018000" long_name="Pin Control" desc="Pin Control and GPIO">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="PINCTRL" long_name="Pin Control" desc="Pin Control and GPIO" version="3.2.0">
+<addr name="PINCTRL" addr="0x80018000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -8156,1101 +7819,117 @@ KIND, either express or implied.
<field name="IRQOUT0" bitrange="0:0">
</field>
</reg>
-<reg name="MUXSEL0" addr="0x100" sct="yes">
-<field name="BANK0_PIN15" bitrange="31:30">
-</field>
-<field name="BANK0_PIN14" bitrange="29:28">
-</field>
-<field name="BANK0_PIN13" bitrange="27:26">
-</field>
-<field name="BANK0_PIN12" bitrange="25:24">
-</field>
-<field name="BANK0_PIN11" bitrange="23:22">
-</field>
-<field name="BANK0_PIN10" bitrange="21:20">
-</field>
-<field name="BANK0_PIN09" bitrange="19:18">
-</field>
-<field name="BANK0_PIN08" bitrange="17:16">
-</field>
-<field name="BANK0_PIN07" bitrange="15:14">
-</field>
-<field name="BANK0_PIN06" bitrange="13:12">
-</field>
-<field name="BANK0_PIN05" bitrange="11:10">
-</field>
-<field name="BANK0_PIN04" bitrange="9:8">
-</field>
-<field name="BANK0_PIN03" bitrange="7:6">
-</field>
-<field name="BANK0_PIN02" bitrange="5:4">
-</field>
-<field name="BANK0_PIN01" bitrange="3:2">
-</field>
-<field name="BANK0_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL1" addr="0x110" sct="yes">
-<field name="BANK0_PIN31" bitrange="31:30">
-</field>
-<field name="BANK0_PIN30" bitrange="29:28">
-</field>
-<field name="BANK0_PIN29" bitrange="27:26">
-</field>
-<field name="BANK0_PIN28" bitrange="25:24">
-</field>
-<field name="BANK0_PIN27" bitrange="23:22">
-</field>
-<field name="BANK0_PIN26" bitrange="21:20">
-</field>
-<field name="BANK0_PIN25" bitrange="19:18">
-</field>
-<field name="BANK0_PIN24" bitrange="17:16">
-</field>
-<field name="BANK0_PIN23" bitrange="15:14">
-</field>
-<field name="BANK0_PIN22" bitrange="13:12">
-</field>
-<field name="BANK0_PIN21" bitrange="11:10">
-</field>
-<field name="BANK0_PIN20" bitrange="9:8">
-</field>
-<field name="BANK0_PIN19" bitrange="7:6">
-</field>
-<field name="BANK0_PIN18" bitrange="5:4">
-</field>
-<field name="BANK0_PIN17" bitrange="3:2">
-</field>
-<field name="BANK0_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL2" addr="0x120" sct="yes">
-<field name="BANK1_PIN15" bitrange="31:30">
-</field>
-<field name="BANK1_PIN14" bitrange="29:28">
-</field>
-<field name="BANK1_PIN13" bitrange="27:26">
-</field>
-<field name="BANK1_PIN12" bitrange="25:24">
-</field>
-<field name="BANK1_PIN11" bitrange="23:22">
-</field>
-<field name="BANK1_PIN10" bitrange="21:20">
-</field>
-<field name="BANK1_PIN09" bitrange="19:18">
-</field>
-<field name="BANK1_PIN08" bitrange="17:16">
-</field>
-<field name="BANK1_PIN07" bitrange="15:14">
-</field>
-<field name="BANK1_PIN06" bitrange="13:12">
-</field>
-<field name="BANK1_PIN05" bitrange="11:10">
-</field>
-<field name="BANK1_PIN04" bitrange="9:8">
-</field>
-<field name="BANK1_PIN03" bitrange="7:6">
-</field>
-<field name="BANK1_PIN02" bitrange="5:4">
-</field>
-<field name="BANK1_PIN01" bitrange="3:2">
-</field>
-<field name="BANK1_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL3" addr="0x130" sct="yes">
-<field name="RSRVD0" bitrange="31:30">
-</field>
-<field name="BANK1_PIN30" bitrange="29:28">
-</field>
-<field name="BANK1_PIN29" bitrange="27:26">
-</field>
-<field name="BANK1_PIN28" bitrange="25:24">
-</field>
-<field name="BANK1_PIN27" bitrange="23:22">
-</field>
-<field name="BANK1_PIN26" bitrange="21:20">
-</field>
-<field name="BANK1_PIN25" bitrange="19:18">
-</field>
-<field name="BANK1_PIN24" bitrange="17:16">
-</field>
-<field name="BANK1_PIN23" bitrange="15:14">
-</field>
-<field name="BANK1_PIN22" bitrange="13:12">
-</field>
-<field name="BANK1_PIN21" bitrange="11:10">
-</field>
-<field name="BANK1_PIN20" bitrange="9:8">
-</field>
-<field name="BANK1_PIN19" bitrange="7:6">
-</field>
-<field name="BANK1_PIN18" bitrange="5:4">
-</field>
-<field name="BANK1_PIN17" bitrange="3:2">
-</field>
-<field name="BANK1_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL4" addr="0x140" sct="yes">
-<field name="BANK2_PIN15" bitrange="31:30">
-</field>
-<field name="BANK2_PIN14" bitrange="29:28">
-</field>
-<field name="BANK2_PIN13" bitrange="27:26">
-</field>
-<field name="BANK2_PIN12" bitrange="25:24">
-</field>
-<field name="BANK2_PIN11" bitrange="23:22">
-</field>
-<field name="BANK2_PIN10" bitrange="21:20">
-</field>
-<field name="BANK2_PIN09" bitrange="19:18">
-</field>
-<field name="BANK2_PIN08" bitrange="17:16">
-</field>
-<field name="BANK2_PIN07" bitrange="15:14">
-</field>
-<field name="BANK2_PIN06" bitrange="13:12">
-</field>
-<field name="BANK2_PIN05" bitrange="11:10">
-</field>
-<field name="BANK2_PIN04" bitrange="9:8">
-</field>
-<field name="BANK2_PIN03" bitrange="7:6">
-</field>
-<field name="BANK2_PIN02" bitrange="5:4">
-</field>
-<field name="BANK2_PIN01" bitrange="3:2">
-</field>
-<field name="BANK2_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL5" addr="0x150" sct="yes">
-<field name="BANK2_PIN31" bitrange="31:30">
-</field>
-<field name="BANK2_PIN30" bitrange="29:28">
-</field>
-<field name="BANK2_PIN29" bitrange="27:26">
-</field>
-<field name="BANK2_PIN28" bitrange="25:24">
-</field>
-<field name="BANK2_PIN27" bitrange="23:22">
-</field>
-<field name="BANK2_PIN26" bitrange="21:20">
-</field>
-<field name="BANK2_PIN25" bitrange="19:18">
-</field>
-<field name="BANK2_PIN24" bitrange="17:16">
-</field>
-<field name="BANK2_PIN23" bitrange="15:14">
-</field>
-<field name="BANK2_PIN22" bitrange="13:12">
-</field>
-<field name="BANK2_PIN21" bitrange="11:10">
-</field>
-<field name="BANK2_PIN20" bitrange="9:8">
-</field>
-<field name="BANK2_PIN19" bitrange="7:6">
-</field>
-<field name="BANK2_PIN18" bitrange="5:4">
-</field>
-<field name="BANK2_PIN17" bitrange="3:2">
-</field>
-<field name="BANK2_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL6" addr="0x160" sct="yes">
-<field name="BANK3_PIN15" bitrange="31:30">
-</field>
-<field name="BANK3_PIN14" bitrange="29:28">
-</field>
-<field name="BANK3_PIN13" bitrange="27:26">
-</field>
-<field name="BANK3_PIN12" bitrange="25:24">
-</field>
-<field name="BANK3_PIN11" bitrange="23:22">
-</field>
-<field name="BANK3_PIN10" bitrange="21:20">
-</field>
-<field name="BANK3_PIN09" bitrange="19:18">
-</field>
-<field name="BANK3_PIN08" bitrange="17:16">
-</field>
-<field name="BANK3_PIN07" bitrange="15:14">
-</field>
-<field name="BANK3_PIN06" bitrange="13:12">
-</field>
-<field name="BANK3_PIN05" bitrange="11:10">
-</field>
-<field name="BANK3_PIN04" bitrange="9:8">
-</field>
-<field name="BANK3_PIN03" bitrange="7:6">
-</field>
-<field name="BANK3_PIN02" bitrange="5:4">
-</field>
-<field name="BANK3_PIN01" bitrange="3:2">
-</field>
-<field name="BANK3_PIN00" bitrange="1:0">
-</field>
-</reg>
-<reg name="MUXSEL7" addr="0x170" sct="yes">
-<field name="RSRVD0" bitrange="31:12">
-</field>
-<field name="BANK3_PIN21" bitrange="11:10">
-</field>
-<field name="BANK3_PIN20" bitrange="9:8">
-</field>
-<field name="BANK3_PIN19" bitrange="7:6">
-</field>
-<field name="BANK3_PIN18" bitrange="5:4">
-</field>
-<field name="BANK3_PIN17" bitrange="3:2">
-</field>
-<field name="BANK3_PIN16" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE0" addr="0x200" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK0_PIN07_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK0_PIN06_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK0_PIN05_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK0_PIN04_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK0_PIN03_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK0_PIN02_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK0_PIN01_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK0_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE1" addr="0x210" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK0_PIN15_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK0_PIN14_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK0_PIN13_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK0_PIN12_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK0_PIN11_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK0_PIN10_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK0_PIN09_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK0_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE2" addr="0x220" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK0_PIN23_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK0_PIN22_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK0_PIN21_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK0_PIN20_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK0_PIN19_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK0_PIN18_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK0_PIN17_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK0_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE3" addr="0x230" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK0_PIN31_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK0_PIN30_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK0_PIN29_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK0_PIN28_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK0_PIN27_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK0_PIN26_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK0_PIN25_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK0_PIN24_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE4" addr="0x240" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK1_PIN07_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK1_PIN06_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK1_PIN05_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK1_PIN04_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK1_PIN03_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK1_PIN02_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK1_PIN01_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK1_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE5" addr="0x250" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK1_PIN15_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK1_PIN14_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK1_PIN13_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK1_PIN12_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK1_PIN11_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK1_PIN10_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK1_PIN09_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK1_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE6" addr="0x260" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK1_PIN23_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK1_PIN22_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK1_PIN21_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK1_PIN20_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK1_PIN19_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK1_PIN18_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK1_PIN17_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK1_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE7" addr="0x270" sct="yes">
-<field name="RSRVD7" bitrange="31:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK1_PIN30_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK1_PIN29_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK1_PIN28_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK1_PIN27_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK1_PIN26_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK1_PIN25_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK1_PIN24_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE8" addr="0x280" sct="yes">
-<field name="RSRVD7" bitrange="31:30">
-</field>
-<field name="BANK2_PIN07_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:26">
-</field>
-<field name="BANK2_PIN06_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:22">
-</field>
-<field name="BANK2_PIN05_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK2_PIN04_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK2_PIN03_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:10">
-</field>
-<field name="BANK2_PIN02_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:6">
-</field>
-<field name="BANK2_PIN01_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK2_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE9" addr="0x290" sct="yes">
-<field name="RSRVD7" bitrange="31:31">
-</field>
-<field name="BANK2_PIN15_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN15_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:27">
-</field>
-<field name="BANK2_PIN14_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN14_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:23">
-</field>
-<field name="BANK2_PIN13_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN13_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:19">
-</field>
-<field name="BANK2_PIN12_V" bitrange="18:18">
-</field>
-<field name="BANK2_PIN12_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:15">
-</field>
-<field name="BANK2_PIN11_V" bitrange="14:14">
-</field>
-<field name="BANK2_PIN11_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:11">
-</field>
-<field name="BANK2_PIN10_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN10_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:7">
-</field>
-<field name="BANK2_PIN09_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN09_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:2">
-</field>
-<field name="BANK2_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE10" addr="0x2a0" sct="yes">
-<field name="RSRVD7" bitrange="31:31">
-</field>
-<field name="BANK2_PIN23_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN23_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:27">
-</field>
-<field name="BANK2_PIN22_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN22_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:23">
-</field>
-<field name="BANK2_PIN21_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN21_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:19">
-</field>
-<field name="BANK2_PIN20_V" bitrange="18:18">
-</field>
-<field name="BANK2_PIN20_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:15">
-</field>
-<field name="BANK2_PIN19_V" bitrange="14:14">
-</field>
-<field name="BANK2_PIN19_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:11">
-</field>
-<field name="BANK2_PIN18_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN18_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:7">
-</field>
-<field name="BANK2_PIN17_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN17_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:3">
-</field>
-<field name="BANK2_PIN16_V" bitrange="2:2">
-</field>
-<field name="BANK2_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE11" addr="0x2b0" sct="yes">
-<field name="RSRVD7" bitrange="31:31">
-</field>
-<field name="BANK2_PIN31_V" bitrange="30:30">
-</field>
-<field name="BANK2_PIN31_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:27">
-</field>
-<field name="BANK2_PIN30_V" bitrange="26:26">
-</field>
-<field name="BANK2_PIN30_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:23">
-</field>
-<field name="BANK2_PIN29_V" bitrange="22:22">
-</field>
-<field name="BANK2_PIN29_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:18">
-</field>
-<field name="BANK2_PIN28_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:14">
-</field>
-<field name="BANK2_PIN27_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:11">
-</field>
-<field name="BANK2_PIN26_V" bitrange="10:10">
-</field>
-<field name="BANK2_PIN26_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:7">
-</field>
-<field name="BANK2_PIN25_V" bitrange="6:6">
-</field>
-<field name="BANK2_PIN25_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:3">
-</field>
-<field name="BANK2_PIN24_V" bitrange="2:2">
-</field>
-<field name="BANK2_PIN24_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE12" addr="0x2c0" sct="yes">
-<field name="RSRVD7" bitrange="31:31">
-</field>
-<field name="BANK3_PIN07_V" bitrange="30:30">
-</field>
-<field name="BANK3_PIN07_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:27">
-</field>
-<field name="BANK3_PIN06_V" bitrange="26:26">
-</field>
-<field name="BANK3_PIN06_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:23">
-</field>
-<field name="BANK3_PIN05_V" bitrange="22:22">
-</field>
-<field name="BANK3_PIN05_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:19">
-</field>
-<field name="BANK3_PIN04_V" bitrange="18:18">
-</field>
-<field name="BANK3_PIN04_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:15">
-</field>
-<field name="BANK3_PIN03_V" bitrange="14:14">
-</field>
-<field name="BANK3_PIN03_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:11">
-</field>
-<field name="BANK3_PIN02_V" bitrange="10:10">
-</field>
-<field name="BANK3_PIN02_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:7">
-</field>
-<field name="BANK3_PIN01_V" bitrange="6:6">
-</field>
-<field name="BANK3_PIN01_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:3">
-</field>
-<field name="BANK3_PIN00_V" bitrange="2:2">
-</field>
-<field name="BANK3_PIN00_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE13" addr="0x2d0" sct="yes">
-<field name="RSRVD7" bitrange="31:31">
-</field>
-<field name="BANK3_PIN15_V" bitrange="30:30">
-</field>
-<field name="BANK3_PIN15_MA" bitrange="29:28">
-</field>
-<field name="RSRVD6" bitrange="27:27">
-</field>
-<field name="BANK3_PIN14_V" bitrange="26:26">
-</field>
-<field name="BANK3_PIN14_MA" bitrange="25:24">
-</field>
-<field name="RSRVD5" bitrange="23:23">
-</field>
-<field name="BANK3_PIN13_V" bitrange="22:22">
-</field>
-<field name="BANK3_PIN13_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:19">
-</field>
-<field name="BANK3_PIN12_V" bitrange="18:18">
-</field>
-<field name="BANK3_PIN12_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:15">
-</field>
-<field name="BANK3_PIN11_V" bitrange="14:14">
-</field>
-<field name="BANK3_PIN11_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:11">
-</field>
-<field name="BANK3_PIN10_V" bitrange="10:10">
-</field>
-<field name="BANK3_PIN10_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:7">
-</field>
-<field name="BANK3_PIN09_V" bitrange="6:6">
-</field>
-<field name="BANK3_PIN09_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:3">
-</field>
-<field name="BANK3_PIN08_V" bitrange="2:2">
-</field>
-<field name="BANK3_PIN08_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="DRIVE14" addr="0x2e0" sct="yes">
-<field name="RSRVD6" bitrange="31:24">
-</field>
-<field name="RSRVD5" bitrange="23:23">
-</field>
-<field name="BANK3_PIN21_V" bitrange="22:22">
-</field>
-<field name="BANK3_PIN21_MA" bitrange="21:20">
-</field>
-<field name="RSRVD4" bitrange="19:19">
-</field>
-<field name="BANK3_PIN20_V" bitrange="18:18">
-</field>
-<field name="BANK3_PIN20_MA" bitrange="17:16">
-</field>
-<field name="RSRVD3" bitrange="15:15">
-</field>
-<field name="BANK3_PIN19_V" bitrange="14:14">
-</field>
-<field name="BANK3_PIN19_MA" bitrange="13:12">
-</field>
-<field name="RSRVD2" bitrange="11:11">
-</field>
-<field name="BANK3_PIN18_V" bitrange="10:10">
-</field>
-<field name="BANK3_PIN18_MA" bitrange="9:8">
-</field>
-<field name="RSRVD1" bitrange="7:7">
-</field>
-<field name="BANK3_PIN17_V" bitrange="6:6">
-</field>
-<field name="BANK3_PIN17_MA" bitrange="5:4">
-</field>
-<field name="RSRVD0" bitrange="3:3">
-</field>
-<field name="BANK3_PIN16_V" bitrange="2:2">
-</field>
-<field name="BANK3_PIN16_MA" bitrange="1:0">
-</field>
-</reg>
-<reg name="PULL0" addr="0x400" sct="yes">
-<field name="BANK0_PIN31" bitrange="31:31">
-</field>
-<field name="BANK0_PIN30" bitrange="30:30">
-</field>
-<field name="BANK0_PIN29" bitrange="29:29">
-</field>
-<field name="BANK0_PIN28" bitrange="28:28">
-</field>
-<field name="BANK0_PIN27" bitrange="27:27">
-</field>
-<field name="BANK0_PIN26" bitrange="26:26">
-</field>
-<field name="RSRVD2" bitrange="25:23">
-</field>
-<field name="BANK0_PIN22" bitrange="22:22">
-</field>
-<field name="BANK0_PIN21" bitrange="21:21">
-</field>
-<field name="BANK0_PIN20" bitrange="20:20">
-</field>
-<field name="BANK0_PIN19" bitrange="19:19">
-</field>
-<field name="BANK0_PIN18" bitrange="18:18">
-</field>
-<field name="RSRVD1" bitrange="17:16">
-</field>
-<field name="BANK0_PIN15" bitrange="15:15">
-</field>
-<field name="RSRVD0" bitrange="14:12">
-</field>
-<field name="BANK0_PIN11" bitrange="11:11">
-</field>
-<field name="BANK0_PIN10" bitrange="10:10">
-</field>
-<field name="BANK0_PIN09" bitrange="9:9">
-</field>
-<field name="BANK0_PIN08" bitrange="8:8">
-</field>
-<field name="BANK0_PIN07" bitrange="7:7">
-</field>
-<field name="BANK0_PIN06" bitrange="6:6">
-</field>
-<field name="BANK0_PIN05" bitrange="5:5">
-</field>
-<field name="BANK0_PIN04" bitrange="4:4">
-</field>
-<field name="BANK0_PIN03" bitrange="3:3">
-</field>
-<field name="BANK0_PIN02" bitrange="2:2">
-</field>
-<field name="BANK0_PIN01" bitrange="1:1">
-</field>
-<field name="BANK0_PIN00" bitrange="0:0">
-</field>
-</reg>
-<reg name="PULL1" addr="0x410" sct="yes">
-<field name="RSRVD3" bitrange="31:29">
-</field>
-<field name="BANK1_PIN28" bitrange="28:28">
-</field>
-<field name="RSRVD2" bitrange="27:23">
-</field>
-<field name="BANK1_PIN22" bitrange="22:22">
-</field>
-<field name="RSRVD1" bitrange="21:19">
-</field>
-<field name="BANK1_PIN18" bitrange="18:18">
-</field>
-<field name="RSRVD0" bitrange="17:0">
-</field>
-</reg>
-<reg name="PULL2" addr="0x420" sct="yes">
-<field name="RSRVD2" bitrange="31:29">
-</field>
-<field name="BANK2_PIN28" bitrange="28:28">
-</field>
-<field name="BANK2_PIN27" bitrange="27:27">
-</field>
-<field name="RSRVD1" bitrange="26:9">
-</field>
-<field name="BANK2_PIN08" bitrange="8:8">
-</field>
-<field name="RSRVD0" bitrange="7:6">
-</field>
-<field name="BANK2_PIN05" bitrange="5:5">
-</field>
-<field name="BANK2_PIN04" bitrange="4:4">
-</field>
-<field name="BANK2_PIN03" bitrange="3:3">
-</field>
-<field name="BANK2_PIN02" bitrange="2:2">
-</field>
-<field name="BANK2_PIN01" bitrange="1:1">
-</field>
-<field name="BANK2_PIN00" bitrange="0:0">
-</field>
-</reg>
-<reg name="PULL3" addr="0x430" sct="yes">
-<field name="RSRVD0" bitrange="31:18">
-</field>
-<field name="BANK3_PIN17" bitrange="17:17">
-</field>
-<field name="BANK3_PIN16" bitrange="16:16">
-</field>
-<field name="BANK3_PIN15" bitrange="15:15">
-</field>
-<field name="BANK3_PIN14" bitrange="14:14">
-</field>
-<field name="BANK3_PIN13" bitrange="13:13">
-</field>
-<field name="BANK3_PIN12" bitrange="12:12">
-</field>
-<field name="BANK3_PIN11" bitrange="11:11">
-</field>
-<field name="BANK3_PIN10" bitrange="10:10">
-</field>
-<field name="BANK3_PIN09" bitrange="9:9">
-</field>
-<field name="BANK3_PIN08" bitrange="8:8">
-</field>
-<field name="BANK3_PIN07" bitrange="7:7">
-</field>
-<field name="BANK3_PIN06" bitrange="6:6">
-</field>
-<field name="BANK3_PIN05" bitrange="5:5">
-</field>
-<field name="BANK3_PIN04" bitrange="4:4">
-</field>
-<field name="BANK3_PIN03" bitrange="3:3">
-</field>
-<field name="BANK3_PIN02" bitrange="2:2">
-</field>
-<field name="BANK3_PIN01" bitrange="1:1">
-</field>
-<field name="BANK3_PIN00" bitrange="0:0">
-</field>
-</reg>
-<reg name="DOUT0" addr="0x500" sct="yes">
-<field name="DOUT" bitrange="31:0">
-</field>
-</reg>
-<reg name="DOUT1" addr="0x510" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="DOUT" bitrange="30:0">
-</field>
-</reg>
-<reg name="DOUT2" addr="0x520" sct="yes">
-<field name="DOUT" bitrange="31:0">
-</field>
-</reg>
-<reg name="DIN0" addr="0x600" sct="yes">
-<field name="DIN" bitrange="31:0">
-</field>
-</reg>
-<reg name="DIN1" addr="0x610" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="DIN" bitrange="30:0">
-</field>
-</reg>
-<reg name="DIN2" addr="0x620" sct="yes">
-<field name="DIN" bitrange="31:0">
-</field>
-</reg>
-<reg name="DOE0" addr="0x700" sct="yes">
-<field name="DOE" bitrange="31:0">
-</field>
-</reg>
-<reg name="DOE1" addr="0x710" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="DOE" bitrange="30:0">
-</field>
-</reg>
-<reg name="DOE2" addr="0x720" sct="yes">
-<field name="DOE" bitrange="31:0">
-</field>
-</reg>
-<reg name="PIN2IRQ0" addr="0x800" sct="yes">
-<field name="PIN2IRQ" bitrange="31:0">
-</field>
-</reg>
-<reg name="PIN2IRQ1" addr="0x810" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="PIN2IRQ" bitrange="30:0">
-</field>
-</reg>
-<reg name="PIN2IRQ2" addr="0x820" sct="yes">
-<field name="PIN2IRQ" bitrange="31:0">
-</field>
-</reg>
-<reg name="IRQEN0" addr="0x900" sct="yes">
-<field name="IRQEN" bitrange="31:0">
-</field>
-</reg>
-<reg name="IRQEN1" addr="0x910" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="IRQEN" bitrange="30:0">
+<reg name="MUXSELn" sct="yes">
+<formula string="0x100+n*0x10"/>
+<addr name="MUXSEL0" addr="0x100" />
+<addr name="MUXSEL1" addr="0x110" />
+<addr name="MUXSEL2" addr="0x120" />
+<addr name="MUXSEL3" addr="0x130" />
+<addr name="MUXSEL4" addr="0x140" />
+<addr name="MUXSEL5" addr="0x150" />
+<addr name="MUXSEL6" addr="0x160" />
+<addr name="MUXSEL7" addr="0x170" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQEN2" addr="0x920" sct="yes">
-<field name="IRQEN" bitrange="31:0">
+<reg name="DRIVEn" sct="yes">
+<formula string="0x200+n*0x10"/>
+<addr name="DRIVE0" addr="0x200" />
+<addr name="DRIVE1" addr="0x210" />
+<addr name="DRIVE2" addr="0x220" />
+<addr name="DRIVE3" addr="0x230" />
+<addr name="DRIVE4" addr="0x240" />
+<addr name="DRIVE5" addr="0x250" />
+<addr name="DRIVE6" addr="0x260" />
+<addr name="DRIVE7" addr="0x270" />
+<addr name="DRIVE8" addr="0x280" />
+<addr name="DRIVE9" addr="0x290" />
+<addr name="DRIVE10" addr="0x2a0" />
+<addr name="DRIVE11" addr="0x2b0" />
+<addr name="DRIVE12" addr="0x2c0" />
+<addr name="DRIVE13" addr="0x2d0" />
+<addr name="DRIVE14" addr="0x2e0" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQLEVEL0" addr="0xa00" sct="yes">
-<field name="IRQLEVEL" bitrange="31:0">
+<reg name="PULLn" sct="yes">
+<formula string="0x400+n*0x10"/>
+<addr name="PULL0" addr="0x400" />
+<addr name="PULL1" addr="0x410" />
+<addr name="PULL2" addr="0x420" />
+<addr name="PULL3" addr="0x430" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQLEVEL1" addr="0xa10" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="IRQLEVEL" bitrange="30:0">
+<reg name="DOUTn" sct="yes">
+<formula string="0x500+n*0x10"/>
+<addr name="DOUT0" addr="0x500" />
+<addr name="DOUT1" addr="0x510" />
+<addr name="DOUT2" addr="0x520" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQLEVEL2" addr="0xa20" sct="yes">
-<field name="IRQLEVEL" bitrange="31:0">
+<reg name="DINn" sct="yes">
+<formula string="0x600+n*0x10"/>
+<addr name="DIN0" addr="0x600" />
+<addr name="DIN1" addr="0x610" />
+<addr name="DIN2" addr="0x620" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQPOL0" addr="0xb00" sct="yes">
-<field name="IRQPOL" bitrange="31:0">
+<reg name="DOEn" sct="yes">
+<formula string="0x700+n*0x10"/>
+<addr name="DOE0" addr="0x700" />
+<addr name="DOE1" addr="0x710" />
+<addr name="DOE2" addr="0x720" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQPOL1" addr="0xb10" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="IRQPOL" bitrange="30:0">
+<reg name="PIN2IRQn" sct="yes">
+<formula string="0x800+n*0x10"/>
+<addr name="PIN2IRQ0" addr="0x800" />
+<addr name="PIN2IRQ1" addr="0x810" />
+<addr name="PIN2IRQ2" addr="0x820" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQPOL2" addr="0xb20" sct="yes">
-<field name="IRQPOL" bitrange="31:0">
+<reg name="IRQENn" sct="yes">
+<formula string="0x900+n*0x10"/>
+<addr name="IRQEN0" addr="0x900" />
+<addr name="IRQEN1" addr="0x910" />
+<addr name="IRQEN2" addr="0x920" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQSTAT0" addr="0xc00" sct="yes">
-<field name="IRQSTAT" bitrange="31:0">
+<reg name="IRQLEVELn" sct="yes">
+<formula string="0xa00+n*0x10"/>
+<addr name="IRQLEVEL0" addr="0xa00" />
+<addr name="IRQLEVEL1" addr="0xa10" />
+<addr name="IRQLEVEL2" addr="0xa20" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQSTAT1" addr="0xc10" sct="yes">
-<field name="RSRVD1" bitrange="31:31">
-</field>
-<field name="IRQSTAT" bitrange="30:0">
+<reg name="IRQPOLn" sct="yes">
+<formula string="0xb00+n*0x10"/>
+<addr name="IRQPOL0" addr="0xb00" />
+<addr name="IRQPOL1" addr="0xb10" />
+<addr name="IRQPOL2" addr="0xb20" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
-<reg name="IRQSTAT2" addr="0xc20" sct="yes">
-<field name="IRQSTAT" bitrange="31:0">
+<reg name="IRQSTATn" sct="yes">
+<formula string="0xc00+n*0x10"/>
+<addr name="IRQSTAT0" addr="0xc00" />
+<addr name="IRQSTAT1" addr="0xc10" />
+<addr name="IRQSTAT2" addr="0xc20" />
+<field name="BITS" bitrange="31:0">
</field>
</reg>
</dev>
-<dev name="POWER" addr="0x80044000" long_name="Power Control" desc="Power Supply">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="POWER" long_name="Power Control" desc="Power Supply" version="3.2.0">
+<addr name="POWER" addr="0x80044000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="RSRVD3" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -9312,7 +7991,8 @@ KIND, either express or implied.
<field name="ENIRQ_VDD5V_GT_VDDIO" bitrange="0:0">
</field>
</reg>
-<reg name="5VCTRL" addr="0x10" sct="yes">
+<reg name="5VCTRL" sct="yes">
+<addr name="5VCTRL" addr="0x10" />
<field name="RSRVD6" bitrange="31:30">
</field>
<field name="VBUSDROOP_TRSH" bitrange="29:28">
@@ -9350,7 +8030,8 @@ KIND, either express or implied.
<field name="ENABLE_DCDC" bitrange="0:0">
</field>
</reg>
-<reg name="MINPWR" addr="0x20" sct="yes">
+<reg name="MINPWR" sct="yes">
+<addr name="MINPWR" addr="0x20" />
<field name="RSRVD1" bitrange="31:15">
</field>
<field name="LOWPWR_4P2" bitrange="14:14">
@@ -9384,7 +8065,8 @@ KIND, either express or implied.
<field name="DC_HALFCLK" bitrange="0:0">
</field>
</reg>
-<reg name="CHARGE" addr="0x30" sct="yes">
+<reg name="CHARGE" sct="yes">
+<addr name="CHARGE" addr="0x30" />
<field name="RSRVD4" bitrange="31:27">
</field>
<field name="ADJ_VOLT" bitrange="26:24">
@@ -9414,7 +8096,8 @@ KIND, either express or implied.
<field name="BATTCHRG_I" bitrange="5:0">
</field>
</reg>
-<reg name="VDDDCTRL" addr="0x40" sct="no">
+<reg name="VDDDCTRL" sct="no">
+<addr name="VDDDCTRL" addr="0x40" />
<field name="ADJTN" bitrange="31:28">
</field>
<field name="RSRVD4" bitrange="27:24">
@@ -9440,7 +8123,8 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="VDDACTRL" addr="0x50" sct="no">
+<reg name="VDDACTRL" sct="no">
+<addr name="VDDACTRL" addr="0x50" />
<field name="RSRVD4" bitrange="31:20">
</field>
<field name="PWDN_BRNOUT" bitrange="19:19">
@@ -9464,7 +8148,8 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="VDDIOCTRL" addr="0x60" sct="no">
+<reg name="VDDIOCTRL" sct="no">
+<addr name="VDDIOCTRL" addr="0x60" />
<field name="RSRVD5" bitrange="31:24">
</field>
<field name="ADJTN" bitrange="23:20">
@@ -9490,7 +8175,8 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="VDDMEMCTRL" addr="0x70" sct="no">
+<reg name="VDDMEMCTRL" sct="no">
+<addr name="VDDMEMCTRL" addr="0x70" />
<field name="RSRVD2" bitrange="31:11">
</field>
<field name="PULLDOWN_ACTIVE" bitrange="10:10">
@@ -9504,7 +8190,8 @@ KIND, either express or implied.
<field name="TRG" bitrange="4:0">
</field>
</reg>
-<reg name="DCDC4P2" addr="0x80" sct="no">
+<reg name="DCDC4P2" sct="no">
+<addr name="DCDC4P2" addr="0x80" />
<field name="DROPOUT_CTRL" bitrange="31:28">
</field>
<field name="RSRVD5" bitrange="27:26">
@@ -9532,7 +8219,8 @@ KIND, either express or implied.
<field name="CMPTRIP" bitrange="4:0">
</field>
</reg>
-<reg name="MISC" addr="0x90" sct="no">
+<reg name="MISC" sct="no">
+<addr name="MISC" addr="0x90" />
<field name="RSRVD2" bitrange="31:7">
</field>
<field name="FREQSEL" bitrange="6:4">
@@ -9546,7 +8234,8 @@ KIND, either express or implied.
<field name="SEL_PLLCLK" bitrange="0:0">
</field>
</reg>
-<reg name="DCLIMITS" addr="0xa0" sct="no">
+<reg name="DCLIMITS" sct="no">
+<addr name="DCLIMITS" addr="0xa0" />
<field name="RSRVD3" bitrange="31:16">
</field>
<field name="RSRVD2" bitrange="15:15">
@@ -9558,7 +8247,8 @@ KIND, either express or implied.
<field name="NEGLIMIT" bitrange="6:0">
</field>
</reg>
-<reg name="LOOPCTRL" addr="0xb0" sct="yes">
+<reg name="LOOPCTRL" sct="yes">
+<addr name="LOOPCTRL" addr="0xb0" />
<field name="RSRVD3" bitrange="31:21">
</field>
<field name="TOGGLE_DIF" bitrange="20:20">
@@ -9588,7 +8278,8 @@ KIND, either express or implied.
<field name="DC_C" bitrange="1:0">
</field>
</reg>
-<reg name="STS" addr="0xc0" sct="no">
+<reg name="STS" sct="no">
+<addr name="STS" addr="0xc0" />
<field name="RSRVD3" bitrange="31:30">
</field>
<field name="PWRUP_SOURCE" bitrange="29:24">
@@ -9636,7 +8327,8 @@ KIND, either express or implied.
<field name="SESSEND" bitrange="0:0">
</field>
</reg>
-<reg name="SPEED" addr="0xd0" sct="yes">
+<reg name="SPEED" sct="yes">
+<addr name="SPEED" addr="0xd0" />
<field name="RSRVD1" bitrange="31:24">
</field>
<field name="STATUS" bitrange="23:16">
@@ -9646,7 +8338,8 @@ KIND, either express or implied.
<field name="CTRL" bitrange="1:0">
</field>
</reg>
-<reg name="BATTMONITOR" addr="0xe0" sct="no">
+<reg name="BATTMONITOR" sct="no">
+<addr name="BATTMONITOR" addr="0xe0" />
<field name="RSRVD3" bitrange="31:26">
</field>
<field name="BATT_VAL" bitrange="25:16">
@@ -9664,7 +8357,8 @@ KIND, either express or implied.
<field name="BRWNOUT_LVL" bitrange="4:0">
</field>
</reg>
-<reg name="RESET" addr="0x100" sct="yes">
+<reg name="RESET" sct="yes">
+<addr name="RESET" addr="0x100" />
<field name="UNLOCK" bitrange="31:16">
<value name="KEY" value="0x3e77">
</value>
@@ -9676,7 +8370,8 @@ KIND, either express or implied.
<field name="PWD" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x110" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0x110" />
<field name="RSRVD0" bitrange="31:4">
</field>
<field name="VBUSVALIDPIOLOCK" bitrange="3:3">
@@ -9688,11 +8383,13 @@ KIND, either express or implied.
<field name="SESSENDPIOLOCK" bitrange="0:0">
</field>
</reg>
-<reg name="SPECIAL" addr="0x120" sct="yes">
+<reg name="SPECIAL" sct="yes">
+<addr name="SPECIAL" addr="0x120" />
<field name="TEST" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0x130" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x130" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -9701,8 +8398,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="PWM" addr="0x80064000" long_name="Pulse width Modulation" desc="Pulse-Width Modulator (PWM) Controller">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="PWM" long_name="Pulse width Modulation" desc="Pulse-Width Modulator (PWM) Controller" version="3.2.0">
+<addr name="PWM" addr="0x80064000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -9734,33 +8433,25 @@ KIND, either express or implied.
<field name="PWM0_ENABLE" bitrange="0:0">
</field>
</reg>
-<multireg name="ACTIVEn" base="0x10" count="4" offset="0x20" sct="SCT">
-<reg name="ACTIVE0" addr="0x10" index="0">
-</reg>
-<reg name="ACTIVE1" addr="0x30" index="1">
-</reg>
-<reg name="ACTIVE2" addr="0x50" index="2">
-</reg>
-<reg name="ACTIVE3" addr="0x70" index="3">
-</reg>
-<reg name="ACTIVE4" addr="0x90" index="4">
-</reg>
+<reg name="ACTIVEn" sct="yes">
+<formula string="0x10+n*0x20"/>
+<addr name="ACTIVE0" addr="0x10" />
+<addr name="ACTIVE1" addr="0x30" />
+<addr name="ACTIVE2" addr="0x50" />
+<addr name="ACTIVE3" addr="0x70" />
+<addr name="ACTIVE4" addr="0x90" />
<field name="INACTIVE" bitrange="31:16">
</field>
<field name="ACTIVE" bitrange="15:0">
</field>
-</multireg>
-<multireg name="PERIODn" base="0x20" count="4" offset="0x20" sct="SCT">
-<reg name="PERIOD0" addr="0x20" index="0">
-</reg>
-<reg name="PERIOD1" addr="0x40" index="1">
-</reg>
-<reg name="PERIOD2" addr="0x60" index="2">
-</reg>
-<reg name="PERIOD3" addr="0x80" index="3">
-</reg>
-<reg name="PERIOD4" addr="0xa0" index="4">
</reg>
+<reg name="PERIODn" sct="yes">
+<formula string="0x20+n*0x20"/>
+<addr name="PERIOD0" addr="0x20" />
+<addr name="PERIOD1" addr="0x40" />
+<addr name="PERIOD2" addr="0x60" />
+<addr name="PERIOD3" addr="0x80" />
+<addr name="PERIOD4" addr="0xa0" />
<field name="RSRVD2" bitrange="31:25">
</field>
<field name="MATT_SEL" bitrange="24:24">
@@ -9803,8 +8494,9 @@ KIND, either express or implied.
</field>
<field name="PERIOD" bitrange="15:0">
</field>
-</multireg>
-<reg name="VERSION" addr="0xb0" sct="no">
+</reg>
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xb0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -9813,8 +8505,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="PXP" addr="0x8002a000" long_name="Pixel Pipeline" desc="Pixel Pipeline (PXP)">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="PXP" long_name="Pixel Pipeline" desc="Pixel Pipeline (PXP)" version="3.2.0">
+<addr name="PXP" addr="0x8002a000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -9904,7 +8598,8 @@ KIND, either express or implied.
<field name="ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="BLOCKX" bitrange="31:24">
</field>
<field name="BLOCKY" bitrange="23:16">
@@ -9922,15 +8617,18 @@ KIND, either express or implied.
<field name="IRQ" bitrange="0:0">
</field>
</reg>
-<reg name="RGBBUF" addr="0x20" sct="no">
+<reg name="RGBBUF" sct="no">
+<addr name="RGBBUF" addr="0x20" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="RGBBUF2" addr="0x30" sct="no">
+<reg name="RGBBUF2" sct="no">
+<addr name="RGBBUF2" addr="0x30" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="RGBSIZE" addr="0x40" sct="no">
+<reg name="RGBSIZE" sct="no">
+<addr name="RGBSIZE" addr="0x40" />
<field name="ALPHA" bitrange="31:24">
</field>
<field name="WIDTH" bitrange="23:12">
@@ -9938,19 +8636,23 @@ KIND, either express or implied.
<field name="HEIGHT" bitrange="11:0">
</field>
</reg>
-<reg name="S0BUF" addr="0x50" sct="no">
+<reg name="S0BUF" sct="no">
+<addr name="S0BUF" addr="0x50" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="S0UBUF" addr="0x60" sct="no">
+<reg name="S0UBUF" sct="no">
+<addr name="S0UBUF" addr="0x60" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="S0VBUF" addr="0x70" sct="no">
+<reg name="S0VBUF" sct="no">
+<addr name="S0VBUF" addr="0x70" />
<field name="ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="S0PARAM" addr="0x80" sct="no">
+<reg name="S0PARAM" sct="no">
+<addr name="S0PARAM" addr="0x80" />
<field name="XBASE" bitrange="31:24">
</field>
<field name="YBASE" bitrange="23:16">
@@ -9960,11 +8662,13 @@ KIND, either express or implied.
<field name="HEIGHT" bitrange="7:0">
</field>
</reg>
-<reg name="S0BACKGROUND" addr="0x90" sct="no">
+<reg name="S0BACKGROUND" sct="no">
+<addr name="S0BACKGROUND" addr="0x90" />
<field name="COLOR" bitrange="31:0">
</field>
</reg>
-<reg name="S0CROP" addr="0xa0" sct="no">
+<reg name="S0CROP" sct="no">
+<addr name="S0CROP" addr="0xa0" />
<field name="XBASE" bitrange="31:24">
</field>
<field name="YBASE" bitrange="23:16">
@@ -9974,7 +8678,8 @@ KIND, either express or implied.
<field name="HEIGHT" bitrange="7:0">
</field>
</reg>
-<reg name="S0SCALE" addr="0xb0" sct="no">
+<reg name="S0SCALE" sct="no">
+<addr name="S0SCALE" addr="0xb0" />
<field name="RSVD2" bitrange="31:30">
</field>
<field name="YSCALE" bitrange="29:16">
@@ -9984,7 +8689,8 @@ KIND, either express or implied.
<field name="XSCALE" bitrange="13:0">
</field>
</reg>
-<reg name="S0OFFSET" addr="0xc0" sct="no">
+<reg name="S0OFFSET" sct="no">
+<addr name="S0OFFSET" addr="0xc0" />
<field name="RSVD2" bitrange="31:28">
</field>
<field name="YOFFSET" bitrange="27:16">
@@ -9994,7 +8700,8 @@ KIND, either express or implied.
<field name="XOFFSET" bitrange="11:0">
</field>
</reg>
-<reg name="CSCCOEFF0" addr="0xd0" sct="no">
+<reg name="CSCCOEFF0" sct="no">
+<addr name="CSCCOEFF0" addr="0xd0" />
<field name="YCBCR_MODE" bitrange="31:31">
</field>
<field name="RSVD1" bitrange="30:29">
@@ -10006,7 +8713,8 @@ KIND, either express or implied.
<field name="Y_OFFSET" bitrange="8:0">
</field>
</reg>
-<reg name="CSCCOEFF1" addr="0xe0" sct="no">
+<reg name="CSCCOEFF1" sct="no">
+<addr name="CSCCOEFF1" addr="0xe0" />
<field name="RSVD1" bitrange="31:27">
</field>
<field name="C1" bitrange="26:16">
@@ -10016,7 +8724,8 @@ KIND, either express or implied.
<field name="C4" bitrange="10:0">
</field>
</reg>
-<reg name="CSCCOEFF2" addr="0xf0" sct="no">
+<reg name="CSCCOEFF2" sct="no">
+<addr name="CSCCOEFF2" addr="0xf0" />
<field name="RSVD1" bitrange="31:27">
</field>
<field name="C2" bitrange="26:16">
@@ -10026,7 +8735,8 @@ KIND, either express or implied.
<field name="C3" bitrange="10:0">
</field>
</reg>
-<reg name="NEXT" addr="0x100" sct="yes">
+<reg name="NEXT" sct="yes">
+<addr name="NEXT" addr="0x100" />
<field name="POINTER" bitrange="31:2">
</field>
<field name="RSVD" bitrange="1:1">
@@ -10034,7 +8744,8 @@ KIND, either express or implied.
<field name="ENABLED" bitrange="0:0">
</field>
</reg>
-<reg name="PAGETABLE" addr="0x170" sct="no">
+<reg name="PAGETABLE" sct="no">
+<addr name="PAGETABLE" addr="0x170" />
<field name="BASE" bitrange="31:14">
</field>
<field name="RSVD1" bitrange="13:2">
@@ -10044,31 +8755,36 @@ KIND, either express or implied.
<field name="ENABLE" bitrange="0:0">
</field>
</reg>
-<reg name="S0COLORKEYLOW" addr="0x180" sct="no">
+<reg name="S0COLORKEYLOW" sct="no">
+<addr name="S0COLORKEYLOW" addr="0x180" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="PIXEL" bitrange="23:0">
</field>
</reg>
-<reg name="S0COLORKEYHIGH" addr="0x190" sct="no">
+<reg name="S0COLORKEYHIGH" sct="no">
+<addr name="S0COLORKEYHIGH" addr="0x190" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="PIXEL" bitrange="23:0">
</field>
</reg>
-<reg name="OLCOLORKEYLOW" addr="0x1a0" sct="no">
+<reg name="OLCOLORKEYLOW" sct="no">
+<addr name="OLCOLORKEYLOW" addr="0x1a0" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="PIXEL" bitrange="23:0">
</field>
</reg>
-<reg name="OLCOLORKEYHIGH" addr="0x1b0" sct="no">
+<reg name="OLCOLORKEYHIGH" sct="no">
+<addr name="OLCOLORKEYHIGH" addr="0x1b0" />
<field name="RSVD1" bitrange="31:24">
</field>
<field name="PIXEL" bitrange="23:0">
</field>
</reg>
-<reg name="DEBUGCTRL" addr="0x1d0" sct="no">
+<reg name="DEBUGCTRL" sct="no">
+<addr name="DEBUGCTRL" addr="0x1d0" />
<field name="RSVD" bitrange="31:9">
</field>
<field name="RESET_TLB_STATS" bitrange="8:8">
@@ -10094,11 +8810,13 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DEBUG" addr="0x1e0" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x1e0" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0x1f0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x1f0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -10106,43 +8824,29 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-<multireg name="OLn" base="0x200" count="7" offset="0x40" sct="">
-<reg name="OL0" addr="0x200" index="0">
-</reg>
-<reg name="OL1" addr="0x240" index="1">
-</reg>
-<reg name="OL2" addr="0x280" index="2">
-</reg>
-<reg name="OL3" addr="0x2c0" index="3">
-</reg>
-<reg name="OL4" addr="0x300" index="4">
-</reg>
-<reg name="OL5" addr="0x340" index="5">
-</reg>
-<reg name="OL6" addr="0x380" index="6">
-</reg>
-<reg name="OL7" addr="0x3c0" index="7">
-</reg>
+<reg name="OLn" sct="no">
+<formula string="0x200+n*0x40"/>
+<addr name="OL0" addr="0x200" />
+<addr name="OL1" addr="0x240" />
+<addr name="OL2" addr="0x280" />
+<addr name="OL3" addr="0x2c0" />
+<addr name="OL4" addr="0x300" />
+<addr name="OL5" addr="0x340" />
+<addr name="OL6" addr="0x380" />
+<addr name="OL7" addr="0x3c0" />
<field name="ADDR" bitrange="31:0">
</field>
-</multireg>
-<multireg name="OLnSIZE" base="0x210" count="7" offset="0x40" sct="">
-<reg name="OL0SIZE" addr="0x210" index="0">
-</reg>
-<reg name="OL1SIZE" addr="0x250" index="1">
-</reg>
-<reg name="OL2SIZE" addr="0x290" index="2">
-</reg>
-<reg name="OL3SIZE" addr="0x2d0" index="3">
-</reg>
-<reg name="OL4SIZE" addr="0x310" index="4">
-</reg>
-<reg name="OL5SIZE" addr="0x350" index="5">
-</reg>
-<reg name="OL6SIZE" addr="0x390" index="6">
-</reg>
-<reg name="OL7SIZE" addr="0x3d0" index="7">
</reg>
+<reg name="OLnSIZE" sct="no">
+<formula string="0x210+n*0x40"/>
+<addr name="OL0SIZE" addr="0x210" />
+<addr name="OL1SIZE" addr="0x250" />
+<addr name="OL2SIZE" addr="0x290" />
+<addr name="OL3SIZE" addr="0x2d0" />
+<addr name="OL4SIZE" addr="0x310" />
+<addr name="OL5SIZE" addr="0x350" />
+<addr name="OL6SIZE" addr="0x390" />
+<addr name="OL7SIZE" addr="0x3d0" />
<field name="XBASE" bitrange="31:24">
</field>
<field name="YBASE" bitrange="23:16">
@@ -10151,24 +8855,17 @@ KIND, either express or implied.
</field>
<field name="HEIGHT" bitrange="7:0">
</field>
-</multireg>
-<multireg name="OLnPARAM" base="0x220" count="7" offset="0x40" sct="">
-<reg name="OL0PARAM" addr="0x220" index="0">
-</reg>
-<reg name="OL1PARAM" addr="0x260" index="1">
-</reg>
-<reg name="OL2PARAM" addr="0x2a0" index="2">
-</reg>
-<reg name="OL3PARAM" addr="0x2e0" index="3">
-</reg>
-<reg name="OL4PARAM" addr="0x320" index="4">
-</reg>
-<reg name="OL5PARAM" addr="0x360" index="5">
-</reg>
-<reg name="OL6PARAM" addr="0x3a0" index="6">
-</reg>
-<reg name="OL7PARAM" addr="0x3e0" index="7">
</reg>
+<reg name="OLnPARAM" sct="no">
+<formula string="0x220+n*0x40"/>
+<addr name="OL0PARAM" addr="0x220" />
+<addr name="OL1PARAM" addr="0x260" />
+<addr name="OL2PARAM" addr="0x2a0" />
+<addr name="OL3PARAM" addr="0x2e0" />
+<addr name="OL4PARAM" addr="0x320" />
+<addr name="OL5PARAM" addr="0x360" />
+<addr name="OL6PARAM" addr="0x3a0" />
+<addr name="OL7PARAM" addr="0x3e0" />
<field name="RSVD1" bitrange="31:20">
</field>
<field name="ROP" bitrange="19:16">
@@ -10225,30 +8922,25 @@ KIND, either express or implied.
</field>
<field name="ENABLE" bitrange="0:0">
</field>
-</multireg>
-<multireg name="OLnPARAM2" base="0x230" count="7" offset="0x40" sct="">
-<reg name="OL0PARAM2" addr="0x230" index="0">
-</reg>
-<reg name="OL1PARAM2" addr="0x270" index="1">
-</reg>
-<reg name="OL2PARAM2" addr="0x2b0" index="2">
-</reg>
-<reg name="OL3PARAM2" addr="0x2f0" index="3">
-</reg>
-<reg name="OL4PARAM2" addr="0x330" index="4">
-</reg>
-<reg name="OL5PARAM2" addr="0x370" index="5">
-</reg>
-<reg name="OL6PARAM2" addr="0x3b0" index="6">
-</reg>
-<reg name="OL7PARAM2" addr="0x3f0" index="7">
</reg>
+<reg name="OLnPARAM2" sct="no">
+<formula string="0x230+n*0x40"/>
+<addr name="OL0PARAM2" addr="0x230" />
+<addr name="OL1PARAM2" addr="0x270" />
+<addr name="OL2PARAM2" addr="0x2b0" />
+<addr name="OL3PARAM2" addr="0x2f0" />
+<addr name="OL4PARAM2" addr="0x330" />
+<addr name="OL5PARAM2" addr="0x370" />
+<addr name="OL6PARAM2" addr="0x3b0" />
+<addr name="OL7PARAM2" addr="0x3f0" />
<field name="RSVD" bitrange="31:0">
</field>
-</multireg>
+</reg>
</dev>
-<dev name="RTC" addr="0x8005c000" long_name="Real Time Clock" desc="Real-Time Clock, Alarm, Watchdog, Persistent Bits">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="RTC" long_name="Real Time Clock" desc="Real-Time Clock, Alarm, Watchdog, Persistent Bits" version="3.2.0">
+<addr name="RTC" addr="0x8005c000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -10270,7 +8962,8 @@ KIND, either express or implied.
<field name="ALARM_IRQ_EN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="RTC_PRESENT" bitrange="31:31">
</field>
<field name="ALARM_PRESENT" bitrange="30:30">
@@ -10290,23 +8983,28 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="7:0">
</field>
</reg>
-<reg name="MILLISECONDS" addr="0x20" sct="yes">
+<reg name="MILLISECONDS" sct="yes">
+<addr name="MILLISECONDS" addr="0x20" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="SECONDS" addr="0x30" sct="yes">
+<reg name="SECONDS" sct="yes">
+<addr name="SECONDS" addr="0x30" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="ALARM" addr="0x40" sct="yes">
+<reg name="ALARM" sct="yes">
+<addr name="ALARM" addr="0x40" />
<field name="VALUE" bitrange="31:0">
</field>
</reg>
-<reg name="WATCHDOG" addr="0x50" sct="yes">
+<reg name="WATCHDOG" sct="yes">
+<addr name="WATCHDOG" addr="0x50" />
<field name="COUNT" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT0" addr="0x60" sct="yes">
+<reg name="PERSISTENT0" sct="yes">
+<addr name="PERSISTENT0" addr="0x60" />
<field name="SPARE_ANALOG" bitrange="31:18">
</field>
<field name="AUTO_RESTART" bitrange="17:17">
@@ -10336,7 +9034,8 @@ KIND, either express or implied.
<field name="CLOCKSOURCE" bitrange="0:0">
</field>
</reg>
-<reg name="PERSISTENT1" addr="0x70" sct="yes">
+<reg name="PERSISTENT1" sct="yes">
+<addr name="PERSISTENT1" addr="0x70" />
<field name="GENERAL" bitrange="31:0">
<value name="ENUMERATE_500MA_TWICE" value="0x1000">
</value>
@@ -10352,23 +9051,28 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="PERSISTENT2" addr="0x80" sct="yes">
+<reg name="PERSISTENT2" sct="yes">
+<addr name="PERSISTENT2" addr="0x80" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT3" addr="0x90" sct="yes">
+<reg name="PERSISTENT3" sct="yes">
+<addr name="PERSISTENT3" addr="0x90" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT4" addr="0xa0" sct="yes">
+<reg name="PERSISTENT4" sct="yes">
+<addr name="PERSISTENT4" addr="0xa0" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="PERSISTENT5" addr="0xb0" sct="yes">
+<reg name="PERSISTENT5" sct="yes">
+<addr name="PERSISTENT5" addr="0xb0" />
<field name="GENERAL" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG" addr="0xc0" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0xc0" />
<field name="RSVD0" bitrange="31:2">
</field>
<field name="WATCHDOG_RESET_MASK" bitrange="1:1">
@@ -10376,7 +9080,8 @@ KIND, either express or implied.
<field name="WATCHDOG_RESET" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0xd0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xd0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -10385,12 +9090,11 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<multidev name="SAIF" long_name="Sync Audio Interface" desc="Sync Audio Interface (SAIF)" base="0x80042000" count="2" offset="0x4000">
-<dev name="SAIF1" addr="0x80042000" index="1">
-</dev>
-<dev name="SAIF2" addr="0x80046000" index="2">
-</dev>
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="SAIF" long_name="Sync Audio Interface" desc="Sync Audio Interface (SAIF)" version="3.2.0">
+<addr name="SAIF1" addr="0x80042000" />
+<addr name="SAIF2" addr="0x80046000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -10432,7 +9136,8 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="RSRVD2" bitrange="30:17">
@@ -10452,13 +9157,15 @@ KIND, either express or implied.
<field name="BUSY" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x20" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0x20" />
<field name="PCM_RIGHT" bitrange="31:16">
</field>
<field name="PCM_LEFT" bitrange="15:0">
</field>
</reg>
-<reg name="VERSION" addr="0x30" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x30" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -10466,9 +9173,11 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-</multidev>
-<dev name="SPDIF" addr="0x80054000" long_name="Sony/Phillips Digital Audio Interface" desc="SPDIF Transmitter">
-<reg name="CTRL" addr="0x0" sct="yes">
+</dev>
+<dev name="SPDIF" long_name="Sony/Phillips Digital Audio Interface" desc="SPDIF Transmitter" version="3.2.0">
+<addr name="SPDIF" addr="0x80054000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -10492,7 +9201,8 @@ KIND, either express or implied.
<field name="RUN" bitrange="0:0">
</field>
</reg>
-<reg name="STAT" addr="0x10" sct="yes">
+<reg name="STAT" sct="yes">
+<addr name="STAT" addr="0x10" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="RSRVD1" bitrange="30:1">
@@ -10500,7 +9210,8 @@ KIND, either express or implied.
<field name="END_XFER" bitrange="0:0">
</field>
</reg>
-<reg name="FRAMECTRL" addr="0x20" sct="yes">
+<reg name="FRAMECTRL" sct="yes">
+<addr name="FRAMECTRL" addr="0x20" />
<field name="RSRVD2" bitrange="31:18">
</field>
<field name="V_CONFIG" bitrange="17:17">
@@ -10528,7 +9239,8 @@ KIND, either express or implied.
<field name="PRO" bitrange="0:0">
</field>
</reg>
-<reg name="SRR" addr="0x30" sct="yes">
+<reg name="SRR" sct="yes">
+<addr name="SRR" addr="0x30" />
<field name="RSRVD1" bitrange="31:31">
</field>
<field name="BASEMULT" bitrange="30:28">
@@ -10538,7 +9250,8 @@ KIND, either express or implied.
<field name="RATE" bitrange="19:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x40" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0x40" />
<field name="RSRVD1" bitrange="31:2">
</field>
<field name="DMA_PREQ" bitrange="1:1">
@@ -10546,13 +9259,15 @@ KIND, either express or implied.
<field name="FIFO_STATUS" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x50" sct="yes">
+<reg name="DATA" sct="yes">
+<addr name="DATA" addr="0x50" />
<field name="HIGH" bitrange="31:16">
</field>
<field name="LOW" bitrange="15:0">
</field>
</reg>
-<reg name="VERSION" addr="0x60" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x60" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -10561,12 +9276,11 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<multidev name="SSP" long_name="Sync Serial Port" desc="Synchronous Serial Ports (SSP)" base="0x80010000" count="2" offset="0x24000">
-<dev name="SSP1" addr="0x80010000" index="1">
-</dev>
-<dev name="SSP2" addr="0x80034000" index="2">
-</dev>
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="SSP" long_name="Sync Serial Port" desc="Synchronous Serial Ports (SSP)" version="3.2.0">
+<addr name="SSP1" addr="0x80010000" />
+<addr name="SSP2" addr="0x80034000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -10606,7 +9320,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CMD0" addr="0x10" sct="yes">
+<reg name="CMD0" sct="yes">
+<addr name="CMD0" addr="0x10" />
<field name="RSVD0" bitrange="31:23">
</field>
<field name="SLOW_CLKING_EN" bitrange="22:22">
@@ -10756,19 +9471,23 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CMD1" addr="0x20" sct="no">
+<reg name="CMD1" sct="no">
+<addr name="CMD1" addr="0x20" />
<field name="CMD_ARG" bitrange="31:0">
</field>
</reg>
-<reg name="COMPREF" addr="0x30" sct="no">
+<reg name="COMPREF" sct="no">
+<addr name="COMPREF" addr="0x30" />
<field name="REFERENCE" bitrange="31:0">
</field>
</reg>
-<reg name="COMPMASK" addr="0x40" sct="no">
+<reg name="COMPMASK" sct="no">
+<addr name="COMPMASK" addr="0x40" />
<field name="MASK" bitrange="31:0">
</field>
</reg>
-<reg name="TIMING" addr="0x50" sct="no">
+<reg name="TIMING" sct="no">
+<addr name="TIMING" addr="0x50" />
<field name="TIMEOUT" bitrange="31:16">
</field>
<field name="CLOCK_DIVIDE" bitrange="15:8">
@@ -10776,7 +9495,8 @@ KIND, either express or implied.
<field name="CLOCK_RATE" bitrange="7:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x60" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x60" />
<field name="SDIO_IRQ" bitrange="31:31">
</field>
<field name="SDIO_IRQ_EN" bitrange="30:30">
@@ -10852,27 +9572,33 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DATA" addr="0x70" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x70" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP0" addr="0x80" sct="no">
+<reg name="SDRESP0" sct="no">
+<addr name="SDRESP0" addr="0x80" />
<field name="RESP0" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP1" addr="0x90" sct="no">
+<reg name="SDRESP1" sct="no">
+<addr name="SDRESP1" addr="0x90" />
<field name="RESP1" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP2" addr="0xa0" sct="no">
+<reg name="SDRESP2" sct="no">
+<addr name="SDRESP2" addr="0xa0" />
<field name="RESP2" bitrange="31:0">
</field>
</reg>
-<reg name="SDRESP3" addr="0xb0" sct="no">
+<reg name="SDRESP3" sct="no">
+<addr name="SDRESP3" addr="0xb0" />
<field name="RESP3" bitrange="31:0">
</field>
</reg>
-<reg name="STATUS" addr="0xc0" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0xc0" />
<field name="PRESENT" bitrange="31:31">
</field>
<field name="MS_PRESENT" bitrange="30:30">
@@ -10926,7 +9652,8 @@ KIND, either express or implied.
<field name="BUSY" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x100" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x100" />
<field name="DATACRC_ERR" bitrange="31:28">
</field>
<field name="DATA_STALL" bitrange="27:27">
@@ -11034,7 +9761,8 @@ KIND, either express or implied.
<field name="SSP_RXD" bitrange="7:0">
</field>
</reg>
-<reg name="VERSION" addr="0x110" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x110" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -11042,9 +9770,11 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-</multidev>
-<dev name="SYDMA" addr="0x80026000" long_name="SYDMA" desc="SYDMA">
-<reg name="CTRL" addr="0x0" sct="yes">
+</dev>
+<dev name="SYDMA" long_name="SYDMA" desc="SYDMA" version="3.2.0">
+<addr name="SYDMA" addr="0x80026000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
<value name="RUN" value="0x0">
</value>
@@ -11078,19 +9808,23 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="RADDR" addr="0x10" sct="no">
+<reg name="RADDR" sct="no">
+<addr name="RADDR" addr="0x10" />
<field name="RSRC_ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="WADDR" addr="0x20" sct="no">
+<reg name="WADDR" sct="no">
+<addr name="WADDR" addr="0x20" />
<field name="WSRC_ADDR" bitrange="31:0">
</field>
</reg>
-<reg name="XFER_COUNT" addr="0x30" sct="no">
+<reg name="XFER_COUNT" sct="no">
+<addr name="XFER_COUNT" addr="0x30" />
<field name="SIZE" bitrange="31:0">
</field>
</reg>
-<reg name="BURST" addr="0x40" sct="no">
+<reg name="BURST" sct="no">
+<addr name="BURST" addr="0x40" />
<field name="RSVD0" bitrange="31:4">
</field>
<field name="WLEN" bitrange="3:2">
@@ -11114,7 +9848,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="DACK" addr="0x50" sct="no">
+<reg name="DACK" sct="no">
+<addr name="DACK" addr="0x50" />
<field name="RSVD0" bitrange="31:8">
</field>
<field name="WDELAY" bitrange="7:4">
@@ -11122,19 +9857,23 @@ KIND, either express or implied.
<field name="RDELAY" bitrange="3:0">
</field>
</reg>
-<reg name="DEBUG0" addr="0x100" sct="no">
+<reg name="DEBUG0" sct="no">
+<addr name="DEBUG0" addr="0x100" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x110" sct="no">
+<reg name="DEBUG1" sct="no">
+<addr name="DEBUG1" addr="0x110" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="DEBUG2" addr="0x120" sct="no">
+<reg name="DEBUG2" sct="no">
+<addr name="DEBUG2" addr="0x120" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="VERSION" addr="0x130" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x130" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -11143,8 +9882,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="TIMROT" addr="0x80068000" long_name="Timers/Rotary Interface" desc="Timers and Rotary Decoder">
-<reg name="ROTCTRL" addr="0x0" sct="yes">
+<dev name="TIMROT" long_name="Timers/Rotary Interface" desc="Timers and Rotary Decoder" version="3.2.0">
+<addr name="TIMROT" addr="0x80068000" />
+<reg name="ROTCTRL" sct="yes">
+<addr name="ROTCTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -11222,19 +9963,18 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ROTCOUNT" addr="0x10" sct="no">
+<reg name="ROTCOUNT" sct="no">
+<addr name="ROTCOUNT" addr="0x10" />
<field name="RSRVD1" bitrange="31:16">
</field>
<field name="UPDOWN" bitrange="15:0">
</field>
</reg>
-<multireg name="TIMCTRLn" base="0x20" count="2" offset="0x20" sct="SCT">
-<reg name="TIMCTRL0" addr="0x20" index="0">
-</reg>
-<reg name="TIMCTRL1" addr="0x40" index="1">
-</reg>
-<reg name="TIMCTRL2" addr="0x60" index="2">
-</reg>
+<reg name="TIMCTRLn" sct="yes">
+<formula string="0x20+n*0x20"/>
+<addr name="TIMCTRL0" addr="0x20" />
+<addr name="TIMCTRL1" addr="0x40" />
+<addr name="TIMCTRL2" addr="0x60" />
<field name="RSRVD2" bitrange="31:16">
</field>
<field name="IRQ" bitrange="15:15">
@@ -11287,20 +10027,19 @@ KIND, either express or implied.
<value name="TICK_ALWAYS" value="0xc">
</value>
</field>
-</multireg>
-<multireg name="TIMCOUNTn" base="0x30" count="2" offset="0x20" sct="">
-<reg name="TIMCOUNT0" addr="0x30" index="0">
-</reg>
-<reg name="TIMCOUNT1" addr="0x50" index="1">
-</reg>
-<reg name="TIMCOUNT2" addr="0x70" index="2">
</reg>
+<reg name="TIMCOUNTn" sct="no">
+<formula string="0x30+n*0x20"/>
+<addr name="TIMCOUNT0" addr="0x30" />
+<addr name="TIMCOUNT1" addr="0x50" />
+<addr name="TIMCOUNT2" addr="0x70" />
<field name="RUNNING_COUNT" bitrange="31:16">
</field>
<field name="FIXED_COUNT" bitrange="15:0">
</field>
-</multireg>
-<reg name="TIMCTRL3" addr="0x80" sct="yes">
+</reg>
+<reg name="TIMCTRL3" sct="yes">
+<addr name="TIMCTRL3" addr="0x80" />
<field name="RSRVD2" bitrange="31:20">
</field>
<field name="TEST_SIGNAL" bitrange="19:16">
@@ -11386,13 +10125,15 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="TIMCOUNT3" addr="0x90" sct="no">
+<reg name="TIMCOUNT3" sct="no">
+<addr name="TIMCOUNT3" addr="0x90" />
<field name="LOW_RUNNING_COUNT" bitrange="31:16">
</field>
<field name="HIGH_FIXED_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="VERSION" addr="0xa0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0xa0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -11401,8 +10142,10 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<dev name="TVENC" addr="0x80038000" long_name="TV Encoder" desc="Video DAC">
-<reg name="CTRL" addr="0x0" sct="yes">
+<dev name="TVENC" long_name="TV Encoder" desc="Video DAC" version="3.2.0">
+<addr name="TVENC" addr="0x80038000" />
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -11428,7 +10171,8 @@ KIND, either express or implied.
<field name="DAC_MUX_MODE" bitrange="0:0">
</field>
</reg>
-<reg name="CONFIG" addr="0x10" sct="yes">
+<reg name="CONFIG" sct="yes">
+<addr name="CONFIG" addr="0x10" />
<field name="RSRVD5" bitrange="31:28">
</field>
<field name="DEFAULT_PICFORM" bitrange="27:27">
@@ -11470,7 +10214,8 @@ KIND, either express or implied.
<field name="ENCD_MODE" bitrange="2:0">
</field>
</reg>
-<reg name="FILTCTRL" addr="0x20" sct="yes">
+<reg name="FILTCTRL" sct="yes">
+<addr name="FILTCTRL" addr="0x20" />
<field name="RSRVD1" bitrange="31:20">
</field>
<field name="YSHARP_BW" bitrange="19:19">
@@ -11498,7 +10243,8 @@ KIND, either express or implied.
<field name="RSRVD4" bitrange="7:0">
</field>
</reg>
-<reg name="SYNCOFFSET" addr="0x30" sct="yes">
+<reg name="SYNCOFFSET" sct="yes">
+<addr name="SYNCOFFSET" addr="0x30" />
<field name="RSRVD1" bitrange="31:31">
</field>
<field name="HSO" bitrange="30:20">
@@ -11508,7 +10254,8 @@ KIND, either express or implied.
<field name="HLC" bitrange="9:0">
</field>
</reg>
-<reg name="HTIMINGSYNC0" addr="0x40" sct="yes">
+<reg name="HTIMINGSYNC0" sct="yes">
+<addr name="HTIMINGSYNC0" addr="0x40" />
<field name="RSRVD2" bitrange="31:26">
</field>
<field name="SYNC_END" bitrange="25:16">
@@ -11518,7 +10265,8 @@ KIND, either express or implied.
<field name="SYNC_STRT" bitrange="9:0">
</field>
</reg>
-<reg name="HTIMINGSYNC1" addr="0x50" sct="yes">
+<reg name="HTIMINGSYNC1" sct="yes">
+<addr name="HTIMINGSYNC1" addr="0x50" />
<field name="RSRVD2" bitrange="31:26">
</field>
<field name="SYNC_EQEND" bitrange="25:16">
@@ -11528,7 +10276,8 @@ KIND, either express or implied.
<field name="SYNC_SREND" bitrange="9:0">
</field>
</reg>
-<reg name="HTIMINGACTIVE" addr="0x60" sct="yes">
+<reg name="HTIMINGACTIVE" sct="yes">
+<addr name="HTIMINGACTIVE" addr="0x60" />
<field name="RSRVD2" bitrange="31:26">
</field>
<field name="ACTV_END" bitrange="25:16">
@@ -11538,7 +10287,8 @@ KIND, either express or implied.
<field name="ACTV_STRT" bitrange="9:0">
</field>
</reg>
-<reg name="HTIMINGBURST0" addr="0x70" sct="yes">
+<reg name="HTIMINGBURST0" sct="yes">
+<addr name="HTIMINGBURST0" addr="0x70" />
<field name="RSRVD2" bitrange="31:26">
</field>
<field name="WBRST_STRT" bitrange="25:16">
@@ -11548,13 +10298,15 @@ KIND, either express or implied.
<field name="NBRST_STRT" bitrange="9:0">
</field>
</reg>
-<reg name="HTIMINGBURST1" addr="0x80" sct="yes">
+<reg name="HTIMINGBURST1" sct="yes">
+<addr name="HTIMINGBURST1" addr="0x80" />
<field name="RSRVD1" bitrange="31:10">
</field>
<field name="BRST_END" bitrange="9:0">
</field>
</reg>
-<reg name="VTIMING0" addr="0x90" sct="yes">
+<reg name="VTIMING0" sct="yes">
+<addr name="VTIMING0" addr="0x90" />
<field name="RSRVD3" bitrange="31:26">
</field>
<field name="VSTRT_PREEQ" bitrange="25:16">
@@ -11568,7 +10320,8 @@ KIND, either express or implied.
<field name="VSTRT_SUBPH" bitrange="5:0">
</field>
</reg>
-<reg name="VTIMING1" addr="0xa0" sct="yes">
+<reg name="VTIMING1" sct="yes">
+<addr name="VTIMING1" addr="0xa0" />
<field name="RSRVD3" bitrange="31:30">
</field>
<field name="VSTRT_POSTEQ" bitrange="29:24">
@@ -11582,7 +10335,8 @@ KIND, either express or implied.
<field name="LAST_FLD_LN" bitrange="9:0">
</field>
</reg>
-<reg name="MISC" addr="0xb0" sct="yes">
+<reg name="MISC" sct="yes">
+<addr name="MISC" addr="0xb0" />
<field name="RSRVD3" bitrange="31:25">
</field>
<field name="LPF_RST_OFF" bitrange="24:16">
@@ -11606,15 +10360,18 @@ KIND, either express or implied.
<field name="Y_BLANK_CTRL" bitrange="1:0">
</field>
</reg>
-<reg name="COLORSUB0" addr="0xc0" sct="yes">
+<reg name="COLORSUB0" sct="yes">
+<addr name="COLORSUB0" addr="0xc0" />
<field name="PHASE_INC" bitrange="31:0">
</field>
</reg>
-<reg name="COLORSUB1" addr="0xd0" sct="yes">
+<reg name="COLORSUB1" sct="yes">
+<addr name="COLORSUB1" addr="0xd0" />
<field name="PHASE_OFFSET" bitrange="31:0">
</field>
</reg>
-<reg name="COPYPROTECT" addr="0xe0" sct="yes">
+<reg name="COPYPROTECT" sct="yes">
+<addr name="COPYPROTECT" addr="0xe0" />
<field name="RSRVD1" bitrange="31:16">
</field>
<field name="WSS_ENBL" bitrange="15:15">
@@ -11624,7 +10381,8 @@ KIND, either express or implied.
<field name="WSS_CGMS_DATA" bitrange="13:0">
</field>
</reg>
-<reg name="CLOSEDCAPTION" addr="0xf0" sct="yes">
+<reg name="CLOSEDCAPTION" sct="yes">
+<addr name="CLOSEDCAPTION" addr="0xf0" />
<field name="RSRVD1" bitrange="31:20">
</field>
<field name="CC_ENBL" bitrange="19:18">
@@ -11634,7 +10392,8 @@ KIND, either express or implied.
<field name="CC_DATA" bitrange="15:0">
</field>
</reg>
-<reg name="COLORBURST" addr="0x140" sct="yes">
+<reg name="COLORBURST" sct="yes">
+<addr name="COLORBURST" addr="0x140" />
<field name="NBA" bitrange="31:24">
</field>
<field name="PBA" bitrange="23:16">
@@ -11644,23 +10403,28 @@ KIND, either express or implied.
<field name="RSRVD2" bitrange="11:0">
</field>
</reg>
-<reg name="MACROVISION0" addr="0x150" sct="yes">
+<reg name="MACROVISION0" sct="yes">
+<addr name="MACROVISION0" addr="0x150" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="MACROVISION1" addr="0x160" sct="yes">
+<reg name="MACROVISION1" sct="yes">
+<addr name="MACROVISION1" addr="0x160" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="MACROVISION2" addr="0x170" sct="yes">
+<reg name="MACROVISION2" sct="yes">
+<addr name="MACROVISION2" addr="0x170" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="MACROVISION3" addr="0x180" sct="yes">
+<reg name="MACROVISION3" sct="yes">
+<addr name="MACROVISION3" addr="0x180" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="MACROVISION4" addr="0x190" sct="yes">
+<reg name="MACROVISION4" sct="yes">
+<addr name="MACROVISION4" addr="0x190" />
<field name="RSRVD2" bitrange="31:24">
</field>
<field name="MACV_TST" bitrange="23:16">
@@ -11670,7 +10434,8 @@ KIND, either express or implied.
<field name="DATA" bitrange="10:0">
</field>
</reg>
-<reg name="DACCTRL" addr="0x1a0" sct="yes">
+<reg name="DACCTRL" sct="yes">
+<addr name="DACCTRL" addr="0x1a0" />
<field name="TEST3" bitrange="31:31">
</field>
<field name="RSRVD1" bitrange="30:30">
@@ -11728,7 +10493,8 @@ KIND, either express or implied.
<field name="CASC_ADJ" bitrange="1:0">
</field>
</reg>
-<reg name="DACSTATUS" addr="0x1b0" sct="yes">
+<reg name="DACSTATUS" sct="yes">
+<addr name="DACSTATUS" addr="0x1b0" />
<field name="RSRVD1" bitrange="31:13">
</field>
<field name="RSRVD2" bitrange="12:12">
@@ -11758,7 +10524,8 @@ KIND, either express or implied.
<field name="ENIRQ_JACK" bitrange="0:0">
</field>
</reg>
-<reg name="VDACTEST" addr="0x1c0" sct="yes">
+<reg name="VDACTEST" sct="yes">
+<addr name="VDACTEST" addr="0x1c0" />
<field name="RSRVD1" bitrange="31:14">
</field>
<field name="ENABLE_PIX_INT_GAIN" bitrange="13:13">
@@ -11772,7 +10539,8 @@ KIND, either express or implied.
<field name="DATA" bitrange="9:0">
</field>
</reg>
-<reg name="VERSION" addr="0x1d0" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x1d0" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -11781,12 +10549,11 @@ KIND, either express or implied.
</field>
</reg>
</dev>
-<multidev name="UARTAPP" long_name="Application UART" desc="Application UART" base="0x8006c000" count="2" offset="0x2000">
-<dev name="UARTAPP1" addr="0x8006c000" index="1">
-</dev>
-<dev name="UARTAPP2" addr="0x8006e000" index="2">
-</dev>
-<reg name="CTRL0" addr="0x0" sct="yes">
+<dev name="UARTAPP" long_name="Application UART" desc="Application UART" version="3.2.0">
+<addr name="UARTAPP1" addr="0x8006c000" />
+<addr name="UARTAPP2" addr="0x8006e000" />
+<reg name="CTRL0" sct="yes">
+<addr name="CTRL0" addr="0x0" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -11802,7 +10569,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTRL1" addr="0x10" sct="yes">
+<reg name="CTRL1" sct="yes">
+<addr name="CTRL1" addr="0x10" />
<field name="RSVD2" bitrange="31:29">
</field>
<field name="RUN" bitrange="28:28">
@@ -11812,7 +10580,8 @@ KIND, either express or implied.
<field name="XFER_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="CTRL2" addr="0x20" sct="yes">
+<reg name="CTRL2" sct="yes">
+<addr name="CTRL2" addr="0x20" />
<field name="INVERT_RTS" bitrange="31:31">
</field>
<field name="INVERT_CTS" bitrange="30:30">
@@ -11898,7 +10667,8 @@ KIND, either express or implied.
<field name="UARTEN" bitrange="0:0">
</field>
</reg>
-<reg name="LINECTRL" addr="0x30" sct="yes">
+<reg name="LINECTRL" sct="yes">
+<addr name="LINECTRL" addr="0x30" />
<field name="BAUD_DIVINT" bitrange="31:16">
</field>
<field name="RSVD" bitrange="15:14">
@@ -11920,7 +10690,8 @@ KIND, either express or implied.
<field name="BRK" bitrange="0:0">
</field>
</reg>
-<reg name="LINECTRL2" addr="0x40" sct="yes">
+<reg name="LINECTRL2" sct="yes">
+<addr name="LINECTRL2" addr="0x40" />
<field name="BAUD_DIVINT" bitrange="31:16">
</field>
<field name="RSVD" bitrange="15:14">
@@ -11942,7 +10713,8 @@ KIND, either express or implied.
<field name="RSVD1" bitrange="0:0">
</field>
</reg>
-<reg name="INTR" addr="0x50" sct="yes">
+<reg name="INTR" sct="yes">
+<addr name="INTR" addr="0x50" />
<field name="RSVD1" bitrange="31:27">
</field>
<field name="OEIEN" bitrange="26:26">
@@ -11992,11 +10764,13 @@ KIND, either express or implied.
<field name="RIMIS" bitrange="0:0">
</field>
</reg>
-<reg name="DATA" addr="0x60" sct="no">
+<reg name="DATA" sct="no">
+<addr name="DATA" addr="0x60" />
<field name="DATA" bitrange="31:0">
</field>
</reg>
-<reg name="STAT" addr="0x70" sct="no">
+<reg name="STAT" sct="no">
+<addr name="STAT" addr="0x70" />
<field name="PRESENT" bitrange="31:31">
<value name="UNAVAILABLE" value="0x0">
</value>
@@ -12034,7 +10808,8 @@ KIND, either express or implied.
<field name="RXCOUNT" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x80" sct="no">
+<reg name="DEBUG" sct="no">
+<addr name="DEBUG" addr="0x80" />
<field name="RXIBAUD_DIV" bitrange="31:16">
</field>
<field name="RXFBAUD_DIV" bitrange="15:10">
@@ -12054,7 +10829,8 @@ KIND, either express or implied.
<field name="RXDMARQ" bitrange="0:0">
</field>
</reg>
-<reg name="VERSION" addr="0x90" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x90" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -12062,7 +10838,8 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-<reg name="AUTOBAUD" addr="0xa0" sct="no">
+<reg name="AUTOBAUD" sct="no">
+<addr name="AUTOBAUD" addr="0xa0" />
<field name="REFCHAR1" bitrange="31:24">
</field>
<field name="REFCHAR0" bitrange="23:16">
@@ -12080,11 +10857,318 @@ KIND, either express or implied.
<field name="BAUD_DETECT_ENABLE" bitrange="0:0">
</field>
</reg>
-</multidev>
-<dev name="UARTDBG" addr="0x80070000" long_name="Debug UART" desc="Debug UART">
</dev>
-<dev name="USBCTRL" addr="0x80080000" long_name="USB Controller" desc="USB High-Speed Host/Device Controller">
-<reg name="ID" addr="0x0" sct="no">
+<dev name="UARTDBG" long_name="Debug UART" desc="Debug UART" version="3.2.0">
+<addr name="UARTDBG" addr="0x80070000" />
+<reg name="DR" sct="no">
+<addr name="DR" addr="0x0" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:12">
+</field>
+<field name="OE" bitrange="11:11">
+</field>
+<field name="BE" bitrange="10:10">
+</field>
+<field name="PE" bitrange="9:9">
+</field>
+<field name="FE" bitrange="8:8">
+</field>
+<field name="DATA" bitrange="7:0">
+</field>
+</reg>
+<reg name="RSR_ECR" sct="no">
+<addr name="RSR_ECR" addr="0x4" />
+<field name="UNAVAILABLE" bitrange="31:8">
+</field>
+<field name="EC" bitrange="7:4">
+</field>
+<field name="OE" bitrange="3:3">
+</field>
+<field name="BE" bitrange="2:2">
+</field>
+<field name="PE" bitrange="1:1">
+</field>
+<field name="FE" bitrange="0:0">
+</field>
+</reg>
+<reg name="FR" sct="no">
+<addr name="FR" addr="0x18" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:9">
+</field>
+<field name="RI" bitrange="8:8">
+</field>
+<field name="TXFE" bitrange="7:7">
+</field>
+<field name="RXFF" bitrange="6:6">
+</field>
+<field name="TXFF" bitrange="5:5">
+</field>
+<field name="RXFE" bitrange="4:4">
+</field>
+<field name="BUSY" bitrange="3:3">
+</field>
+<field name="DCD" bitrange="2:2">
+</field>
+<field name="DSR" bitrange="1:1">
+</field>
+<field name="CTS" bitrange="0:0">
+</field>
+</reg>
+<reg name="ILPR" sct="no">
+<addr name="ILPR" addr="0x20" />
+<field name="UNAVAILABLE" bitrange="31:8">
+</field>
+<field name="ILPDVSR" bitrange="7:0">
+</field>
+</reg>
+<reg name="IBRD" sct="no">
+<addr name="IBRD" addr="0x24" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="BAUD_DIVINT" bitrange="15:0">
+</field>
+</reg>
+<reg name="FBRD" sct="no">
+<addr name="FBRD" addr="0x28" />
+<field name="UNAVAILABLE" bitrange="31:8">
+</field>
+<field name="RESERVED" bitrange="7:6">
+</field>
+<field name="BAUD_DIVFRAC" bitrange="5:0">
+</field>
+</reg>
+<reg name="LCR_H" sct="no">
+<addr name="LCR_H" addr="0x2c" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:8">
+</field>
+<field name="SPS" bitrange="7:7">
+</field>
+<field name="WLEN" bitrange="6:5">
+</field>
+<field name="FEN" bitrange="4:4">
+</field>
+<field name="STP2" bitrange="3:3">
+</field>
+<field name="EPS" bitrange="2:2">
+</field>
+<field name="PEN" bitrange="1:1">
+</field>
+<field name="BRK" bitrange="0:0">
+</field>
+</reg>
+<reg name="CR" sct="no">
+<addr name="CR" addr="0x30" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="CTSEN" bitrange="15:15">
+</field>
+<field name="RTSEN" bitrange="14:14">
+</field>
+<field name="OUT2" bitrange="13:13">
+</field>
+<field name="OUT1" bitrange="12:12">
+</field>
+<field name="RTS" bitrange="11:11">
+</field>
+<field name="DTR" bitrange="10:10">
+</field>
+<field name="RXE" bitrange="9:9">
+</field>
+<field name="TXE" bitrange="8:8">
+</field>
+<field name="LBE" bitrange="7:7">
+</field>
+<field name="RESERVED" bitrange="6:3">
+</field>
+<field name="SIRLP" bitrange="2:2">
+</field>
+<field name="SIREN" bitrange="1:1">
+</field>
+<field name="UARTEN" bitrange="0:0">
+</field>
+</reg>
+<reg name="IFLS" sct="no">
+<addr name="IFLS" addr="0x34" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:6">
+</field>
+<field name="RXIFLSEL" bitrange="5:3">
+<value name="NOT_EMPTY" value="0x0">
+</value>
+<value name="ONE_QUARTER" value="0x1">
+</value>
+<value name="ONE_HALF" value="0x2">
+</value>
+<value name="THREE_QUARTERS" value="0x3">
+</value>
+<value name="SEVEN_EIGHTHS" value="0x4">
+</value>
+<value name="INVALID5" value="0x5">
+</value>
+<value name="INVALID6" value="0x6">
+</value>
+<value name="INVALID7" value="0x7">
+</value>
+</field>
+<field name="TXIFLSEL" bitrange="2:0">
+<value name="EMPTY" value="0x0">
+</value>
+<value name="ONE_QUARTER" value="0x1">
+</value>
+<value name="ONE_HALF" value="0x2">
+</value>
+<value name="THREE_QUARTERS" value="0x3">
+</value>
+<value name="SEVEN_EIGHTHS" value="0x4">
+</value>
+<value name="INVALID5" value="0x5">
+</value>
+<value name="INVALID6" value="0x6">
+</value>
+<value name="INVALID7" value="0x7">
+</value>
+</field>
+</reg>
+<reg name="IMSC" sct="no">
+<addr name="IMSC" addr="0x38" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:11">
+</field>
+<field name="OEIM" bitrange="10:10">
+</field>
+<field name="BEIM" bitrange="9:9">
+</field>
+<field name="PEIM" bitrange="8:8">
+</field>
+<field name="FEIM" bitrange="7:7">
+</field>
+<field name="RTIM" bitrange="6:6">
+</field>
+<field name="TXIM" bitrange="5:5">
+</field>
+<field name="RXIM" bitrange="4:4">
+</field>
+<field name="DSRMIM" bitrange="3:3">
+</field>
+<field name="DCDMIM" bitrange="2:2">
+</field>
+<field name="CTSMIM" bitrange="1:1">
+</field>
+<field name="RIMIM" bitrange="0:0">
+</field>
+</reg>
+<reg name="RIS" sct="no">
+<addr name="RIS" addr="0x3c" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:11">
+</field>
+<field name="OERIS" bitrange="10:10">
+</field>
+<field name="BERIS" bitrange="9:9">
+</field>
+<field name="PERIS" bitrange="8:8">
+</field>
+<field name="FERIS" bitrange="7:7">
+</field>
+<field name="RTRIS" bitrange="6:6">
+</field>
+<field name="TXRIS" bitrange="5:5">
+</field>
+<field name="RXRIS" bitrange="4:4">
+</field>
+<field name="DSRRMIS" bitrange="3:3">
+</field>
+<field name="DCDRMIS" bitrange="2:2">
+</field>
+<field name="CTSRMIS" bitrange="1:1">
+</field>
+<field name="RIRMIS" bitrange="0:0">
+</field>
+</reg>
+<reg name="MIS" sct="no">
+<addr name="MIS" addr="0x40" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:11">
+</field>
+<field name="OEMIS" bitrange="10:10">
+</field>
+<field name="BEMIS" bitrange="9:9">
+</field>
+<field name="PEMIS" bitrange="8:8">
+</field>
+<field name="FEMIS" bitrange="7:7">
+</field>
+<field name="RTMIS" bitrange="6:6">
+</field>
+<field name="TXMIS" bitrange="5:5">
+</field>
+<field name="RXMIS" bitrange="4:4">
+</field>
+<field name="DSRMMIS" bitrange="3:3">
+</field>
+<field name="DCDMMIS" bitrange="2:2">
+</field>
+<field name="CTSMMIS" bitrange="1:1">
+</field>
+<field name="RIMMIS" bitrange="0:0">
+</field>
+</reg>
+<reg name="ICR" sct="no">
+<addr name="ICR" addr="0x44" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:11">
+</field>
+<field name="OEIC" bitrange="10:10">
+</field>
+<field name="BEIC" bitrange="9:9">
+</field>
+<field name="PEIC" bitrange="8:8">
+</field>
+<field name="FEIC" bitrange="7:7">
+</field>
+<field name="RTIC" bitrange="6:6">
+</field>
+<field name="TXIC" bitrange="5:5">
+</field>
+<field name="RXIC" bitrange="4:4">
+</field>
+<field name="DSRMIC" bitrange="3:3">
+</field>
+<field name="DCDMIC" bitrange="2:2">
+</field>
+<field name="CTSMIC" bitrange="1:1">
+</field>
+<field name="RIMIC" bitrange="0:0">
+</field>
+</reg>
+<reg name="DMACR" sct="no">
+<addr name="DMACR" addr="0x48" />
+<field name="UNAVAILABLE" bitrange="31:16">
+</field>
+<field name="RESERVED" bitrange="15:3">
+</field>
+<field name="DMAONERR" bitrange="2:2">
+</field>
+<field name="TXDMAE" bitrange="1:1">
+</field>
+<field name="RXDMAE" bitrange="0:0">
+</field>
+</reg>
+</dev>
+<dev name="USBCTRL" long_name="USB Controller" desc="USB High-Speed Host/Device Controller" version="3.2.0">
+<addr name="USBCTRL" addr="0x80080000" />
+<reg name="ID" sct="no">
+<addr name="ID" addr="0x0" />
<field name="CIVERSION" bitrange="31:29">
</field>
<field name="VERSION" bitrange="28:25">
@@ -12102,7 +11186,8 @@ KIND, either express or implied.
<field name="ID" bitrange="5:0">
</field>
</reg>
-<reg name="HWGENERAL" addr="0x4" sct="no">
+<reg name="HWGENERAL" sct="no">
+<addr name="HWGENERAL" addr="0x4" />
<field name="RSVD" bitrange="31:11">
</field>
<field name="SM" bitrange="10:9">
@@ -12118,7 +11203,8 @@ KIND, either express or implied.
<field name="RT" bitrange="0:0">
</field>
</reg>
-<reg name="HWHOST" addr="0x8" sct="no">
+<reg name="HWHOST" sct="no">
+<addr name="HWHOST" addr="0x8" />
<field name="TTPER" bitrange="31:24">
</field>
<field name="TTASY" bitrange="23:16">
@@ -12130,7 +11216,8 @@ KIND, either express or implied.
<field name="HC" bitrange="0:0">
</field>
</reg>
-<reg name="HWDEVICE" addr="0xc" sct="no">
+<reg name="HWDEVICE" sct="no">
+<addr name="HWDEVICE" addr="0xc" />
<field name="RSVD" bitrange="31:6">
</field>
<field name="DEVEP" bitrange="5:1">
@@ -12138,7 +11225,8 @@ KIND, either express or implied.
<field name="DC" bitrange="0:0">
</field>
</reg>
-<reg name="HWTXBUF" addr="0x10" sct="no">
+<reg name="HWTXBUF" sct="no">
+<addr name="HWTXBUF" addr="0x10" />
<field name="TXLCR" bitrange="31:31">
</field>
<field name="RSVD" bitrange="30:24">
@@ -12150,7 +11238,8 @@ KIND, either express or implied.
<field name="TXBURST" bitrange="7:0">
</field>
</reg>
-<reg name="HWRXBUF" addr="0x14" sct="no">
+<reg name="HWRXBUF" sct="no">
+<addr name="HWRXBUF" addr="0x14" />
<field name="RSVD" bitrange="31:16">
</field>
<field name="RXADD" bitrange="15:8">
@@ -12158,13 +11247,15 @@ KIND, either express or implied.
<field name="RXBURST" bitrange="7:0">
</field>
</reg>
-<reg name="GPTIMER0LD" addr="0x80" sct="no">
+<reg name="GPTIMER0LD" sct="no">
+<addr name="GPTIMER0LD" addr="0x80" />
<field name="RSVD0" bitrange="31:24">
</field>
<field name="GPTLD" bitrange="23:0">
</field>
</reg>
-<reg name="GPTIMER0CTRL" addr="0x84" sct="no">
+<reg name="GPTIMER0CTRL" sct="no">
+<addr name="GPTIMER0CTRL" addr="0x84" />
<field name="GPTRUN" bitrange="31:31">
<value name="STOP" value="0x0">
</value>
@@ -12188,13 +11279,15 @@ KIND, either express or implied.
<field name="GPTCNT" bitrange="23:0">
</field>
</reg>
-<reg name="GPTIMER1LD" addr="0x88" sct="no">
+<reg name="GPTIMER1LD" sct="no">
+<addr name="GPTIMER1LD" addr="0x88" />
<field name="RSVD0" bitrange="31:24">
</field>
<field name="GPTLD" bitrange="23:0">
</field>
</reg>
-<reg name="GPTIMER1CTRL" addr="0x8c" sct="no">
+<reg name="GPTIMER1CTRL" sct="no">
+<addr name="GPTIMER1CTRL" addr="0x8c" />
<field name="GPTRUN" bitrange="31:31">
<value name="STOP" value="0x0">
</value>
@@ -12218,7 +11311,8 @@ KIND, either express or implied.
<field name="GPTCNT" bitrange="23:0">
</field>
</reg>
-<reg name="SBUSCFG" addr="0x90" sct="no">
+<reg name="SBUSCFG" sct="no">
+<addr name="SBUSCFG" addr="0x90" />
<field name="RSVD" bitrange="31:3">
</field>
<field name="AHBBRST" bitrange="2:0">
@@ -12240,7 +11334,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="CAPLENGTH" addr="0x100" sct="no">
+<reg name="CAPLENGTH" sct="no">
+<addr name="CAPLENGTH" addr="0x100" />
<field name="HCIVERSION" bitrange="31:16">
</field>
<field name="RSVD" bitrange="15:8">
@@ -12248,7 +11343,8 @@ KIND, either express or implied.
<field name="CAPLENGTH" bitrange="7:0">
</field>
</reg>
-<reg name="HCSPARAMS" addr="0x104" sct="no">
+<reg name="HCSPARAMS" sct="no">
+<addr name="HCSPARAMS" addr="0x104" />
<field name="RSVD2" bitrange="31:28">
</field>
<field name="N_TT" bitrange="27:24">
@@ -12270,7 +11366,8 @@ KIND, either express or implied.
<field name="N_PORTS" bitrange="3:0">
</field>
</reg>
-<reg name="HCCPARAMS" addr="0x108" sct="no">
+<reg name="HCCPARAMS" sct="no">
+<addr name="HCCPARAMS" addr="0x108" />
<field name="RSVD2" bitrange="31:16">
</field>
<field name="EECP" bitrange="15:8">
@@ -12286,13 +11383,15 @@ KIND, either express or implied.
<field name="ADC" bitrange="0:0">
</field>
</reg>
-<reg name="DCIVERSION" addr="0x120" sct="no">
+<reg name="DCIVERSION" sct="no">
+<addr name="DCIVERSION" addr="0x120" />
<field name="RSVD" bitrange="31:16">
</field>
<field name="DCIVERSION" bitrange="15:0">
</field>
</reg>
-<reg name="DCCPARAMS" addr="0x124" sct="no">
+<reg name="DCCPARAMS" sct="no">
+<addr name="DCCPARAMS" addr="0x124" />
<field name="RSVD1" bitrange="31:9">
</field>
<field name="HC" bitrange="8:8">
@@ -12304,7 +11403,8 @@ KIND, either express or implied.
<field name="DEN" bitrange="4:0">
</field>
</reg>
-<reg name="USBCMD" addr="0x140" sct="no">
+<reg name="USBCMD" sct="no">
+<addr name="USBCMD" addr="0x140" />
<field name="RSVD3" bitrange="31:24">
</field>
<field name="ITC" bitrange="23:16">
@@ -12356,7 +11456,8 @@ KIND, either express or implied.
<field name="RS" bitrange="0:0">
</field>
</reg>
-<reg name="USBSTS" addr="0x144" sct="no">
+<reg name="USBSTS" sct="no">
+<addr name="USBSTS" addr="0x144" />
<field name="RSVD5" bitrange="31:26">
</field>
<field name="TI1" bitrange="25:25">
@@ -12406,7 +11507,8 @@ KIND, either express or implied.
<field name="UI" bitrange="0:0">
</field>
</reg>
-<reg name="USBINTR" addr="0x148" sct="no">
+<reg name="USBINTR" sct="no">
+<addr name="USBINTR" addr="0x148" />
<field name="RSVD5" bitrange="31:26">
</field>
<field name="TIE1" bitrange="25:25">
@@ -12448,7 +11550,8 @@ KIND, either express or implied.
<field name="UE" bitrange="0:0">
</field>
</reg>
-<reg name="FRINDEX" addr="0x14c" sct="no">
+<reg name="FRINDEX" sct="no">
+<addr name="FRINDEX" addr="0x14c" />
<field name="RSVD" bitrange="31:14">
</field>
<field name="FRINDEX" bitrange="13:3">
@@ -12472,13 +11575,15 @@ KIND, either express or implied.
<field name="UINDEX" bitrange="2:0">
</field>
</reg>
-<reg name="PERIODICLISTBASE" addr="0x154" sct="no">
+<reg name="PERIODICLISTBASE" sct="no">
+<addr name="PERIODICLISTBASE" addr="0x154" />
<field name="PERBASE" bitrange="31:12">
</field>
<field name="RSVD" bitrange="11:0">
</field>
</reg>
-<reg name="DEVICEADDR" addr="0x154" sct="no">
+<reg name="DEVICEADDR" sct="no">
+<addr name="DEVICEADDR" addr="0x154" />
<field name="USBADR" bitrange="31:25">
</field>
<field name="USBADRA" bitrange="24:24">
@@ -12486,19 +11591,22 @@ KIND, either express or implied.
<field name="RSVD" bitrange="23:0">
</field>
</reg>
-<reg name="ASYNCLISTADDR" addr="0x158" sct="no">
+<reg name="ASYNCLISTADDR" sct="no">
+<addr name="ASYNCLISTADDR" addr="0x158" />
<field name="ASYBASE" bitrange="31:5">
</field>
<field name="RSVD" bitrange="4:0">
</field>
</reg>
-<reg name="ENDPOINTLISTADDR" addr="0x158" sct="no">
+<reg name="ENDPOINTLISTADDR" sct="no">
+<addr name="ENDPOINTLISTADDR" addr="0x158" />
<field name="EPBASE" bitrange="31:11">
</field>
<field name="RSVD" bitrange="10:0">
</field>
</reg>
-<reg name="TTCTRL" addr="0x15c" sct="no">
+<reg name="TTCTRL" sct="no">
+<addr name="TTCTRL" addr="0x15c" />
<field name="RSVD1" bitrange="31:31">
</field>
<field name="TTHA" bitrange="30:24">
@@ -12506,7 +11614,8 @@ KIND, either express or implied.
<field name="RSVD2" bitrange="23:0">
</field>
</reg>
-<reg name="BURSTSIZE" addr="0x160" sct="no">
+<reg name="BURSTSIZE" sct="no">
+<addr name="BURSTSIZE" addr="0x160" />
<field name="RSVD" bitrange="31:16">
</field>
<field name="TXPBURST" bitrange="15:8">
@@ -12514,7 +11623,8 @@ KIND, either express or implied.
<field name="RXPBURST" bitrange="7:0">
</field>
</reg>
-<reg name="TXFILLTUNING" addr="0x164" sct="no">
+<reg name="TXFILLTUNING" sct="no">
+<addr name="TXFILLTUNING" addr="0x164" />
<field name="RSVD2" bitrange="31:22">
</field>
<field name="TXFIFOTHRES" bitrange="21:16">
@@ -12528,7 +11638,8 @@ KIND, either express or implied.
<field name="TXSCHOH" bitrange="6:0">
</field>
</reg>
-<reg name="IC_USB" addr="0x16c" sct="no">
+<reg name="IC_USB" sct="no">
+<addr name="IC_USB" addr="0x16c" />
<field name="RSVD" bitrange="31:4">
</field>
<field name="IC_ENABLE" bitrange="3:3">
@@ -12552,7 +11663,8 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ULPI" addr="0x170" sct="no">
+<reg name="ULPI" sct="no">
+<addr name="ULPI" addr="0x170" />
<field name="ULPIWU" bitrange="31:31">
</field>
<field name="ULPIRUN" bitrange="30:30">
@@ -12572,7 +11684,8 @@ KIND, either express or implied.
<field name="ULPIDATWR" bitrange="7:0">
</field>
</reg>
-<reg name="ENDPTNAK" addr="0x178" sct="no">
+<reg name="ENDPTNAK" sct="no">
+<addr name="ENDPTNAK" addr="0x178" />
<field name="RSVD1" bitrange="31:21">
</field>
<field name="EPTN" bitrange="20:16">
@@ -12582,7 +11695,8 @@ KIND, either express or implied.
<field name="EPRN" bitrange="4:0">
</field>
</reg>
-<reg name="ENDPTNAKEN" addr="0x17c" sct="no">
+<reg name="ENDPTNAKEN" sct="no">
+<addr name="ENDPTNAKEN" addr="0x17c" />
<field name="RSVD1" bitrange="31:21">
</field>
<field name="EPTNE" bitrange="20:16">
@@ -12592,7 +11706,8 @@ KIND, either express or implied.
<field name="EPRNE" bitrange="4:0">
</field>
</reg>
-<reg name="PORTSC1" addr="0x184" sct="no">
+<reg name="PORTSC1" sct="no">
+<addr name="PORTSC1" addr="0x184" />
<field name="PTS" bitrange="31:30">
<value name="UTMI" value="0x0">
</value>
@@ -12690,7 +11805,8 @@ KIND, either express or implied.
<field name="CCS" bitrange="0:0">
</field>
</reg>
-<reg name="OTGSC" addr="0x1a4" sct="no">
+<reg name="OTGSC" sct="no">
+<addr name="OTGSC" addr="0x1a4" />
<field name="RSVD2" bitrange="31:31">
</field>
<field name="DPIE" bitrange="30:30">
@@ -12756,7 +11872,8 @@ KIND, either express or implied.
<field name="VD" bitrange="0:0">
</field>
</reg>
-<reg name="USBMODE" addr="0x1a8" sct="no">
+<reg name="USBMODE" sct="no">
+<addr name="USBMODE" addr="0x1a8" />
<field name="RSVD" bitrange="31:6">
</field>
<field name="VBPS" bitrange="5:5">
@@ -12776,13 +11893,15 @@ KIND, either express or implied.
</value>
</field>
</reg>
-<reg name="ENDPTSETUPSTAT" addr="0x1ac" sct="no">
+<reg name="ENDPTSETUPSTAT" sct="no">
+<addr name="ENDPTSETUPSTAT" addr="0x1ac" />
<field name="RSVD" bitrange="31:5">
</field>
<field name="ENDPTSETUPSTAT" bitrange="4:0">
</field>
</reg>
-<reg name="ENDPTPRIME" addr="0x1b0" sct="no">
+<reg name="ENDPTPRIME" sct="no">
+<addr name="ENDPTPRIME" addr="0x1b0" />
<field name="RSVD1" bitrange="31:21">
</field>
<field name="PETB" bitrange="20:16">
@@ -12792,7 +11911,8 @@ KIND, either express or implied.
<field name="PERB" bitrange="4:0">
</field>
</reg>
-<reg name="ENDPTFLUSH" addr="0x1b4" sct="no">
+<reg name="ENDPTFLUSH" sct="no">
+<addr name="ENDPTFLUSH" addr="0x1b4" />
<field name="RSVD1" bitrange="31:21">
</field>
<field name="FETB" bitrange="20:16">
@@ -12802,7 +11922,8 @@ KIND, either express or implied.
<field name="FERB" bitrange="4:0">
</field>
</reg>
-<reg name="ENDPTSTAT" addr="0x1b8" sct="no">
+<reg name="ENDPTSTAT" sct="no">
+<addr name="ENDPTSTAT" addr="0x1b8" />
<field name="RSVD1" bitrange="31:21">
</field>
<field name="ETBR" bitrange="20:16">
@@ -12812,7 +11933,8 @@ KIND, either express or implied.
<field name="ERBR" bitrange="4:0">
</field>
</reg>
-<reg name="ENDPTCOMPLETE" addr="0x1bc" sct="no">
+<reg name="ENDPTCOMPLETE" sct="no">
+<addr name="ENDPTCOMPLETE" addr="0x1bc" />
<field name="RSVD1" bitrange="31:21">
</field>
<field name="ETCE" bitrange="20:16">
@@ -12822,17 +11944,13 @@ KIND, either express or implied.
<field name="ERCE" bitrange="4:0">
</field>
</reg>
-<multireg name="ENDPTCTRLn" base="0x1c0" count="4" offset="0x4" sct="">
-<reg name="ENDPTCTRL0" addr="0x1c0" index="0">
-</reg>
-<reg name="ENDPTCTRL1" addr="0x1c4" index="1">
-</reg>
-<reg name="ENDPTCTRL2" addr="0x1c8" index="2">
-</reg>
-<reg name="ENDPTCTRL3" addr="0x1cc" index="3">
-</reg>
-<reg name="ENDPTCTRL4" addr="0x1d0" index="4">
-</reg>
+<reg name="ENDPTCTRLn" sct="no">
+<formula string="0x1c0+n*0x4"/>
+<addr name="ENDPTCTRL0" addr="0x1c0" />
+<addr name="ENDPTCTRL1" addr="0x1c4" />
+<addr name="ENDPTCTRL2" addr="0x1c8" />
+<addr name="ENDPTCTRL3" addr="0x1cc" />
+<addr name="ENDPTCTRL4" addr="0x1d0" />
<field name="RSVD6" bitrange="31:24">
</field>
<field name="TXE" bitrange="23:23">
@@ -12881,10 +11999,12 @@ KIND, either express or implied.
</field>
<field name="RXS" bitrange="0:0">
</field>
-</multireg>
+</reg>
</dev>
-<dev name="USBPHY" addr="0x8007c000" long_name="USB Physical Interface" desc="Integrated USB 2.0 PHY">
-<reg name="PWD" addr="0x0" sct="yes">
+<dev name="USBPHY" long_name="USB Physical Interface" desc="Integrated USB 2.0 PHY" version="3.2.0">
+<addr name="USBPHY" addr="0x8007c000" />
+<reg name="PWD" sct="yes">
+<addr name="PWD" addr="0x0" />
<field name="RSVD2" bitrange="31:21">
</field>
<field name="RXPWDRX" bitrange="20:20">
@@ -12906,7 +12026,8 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="9:0">
</field>
</reg>
-<reg name="TX" addr="0x10" sct="yes">
+<reg name="TX" sct="yes">
+<addr name="TX" addr="0x10" />
<field name="RSVD5" bitrange="31:29">
</field>
<field name="USBPHY_TX_EDGECTRL" bitrange="28:26">
@@ -12936,7 +12057,8 @@ KIND, either express or implied.
<field name="D_CAL" bitrange="3:0">
</field>
</reg>
-<reg name="RX" addr="0x20" sct="yes">
+<reg name="RX" sct="yes">
+<addr name="RX" addr="0x20" />
<field name="RSVD2" bitrange="31:23">
</field>
<field name="RXDBYPASS" bitrange="22:22">
@@ -12950,7 +12072,8 @@ KIND, either express or implied.
<field name="ENVADJ" bitrange="2:0">
</field>
</reg>
-<reg name="CTRL" addr="0x30" sct="yes">
+<reg name="CTRL" sct="yes">
+<addr name="CTRL" addr="0x30" />
<field name="SFTRST" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -12990,7 +12113,8 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="0:0">
</field>
</reg>
-<reg name="STATUS" addr="0x40" sct="no">
+<reg name="STATUS" sct="no">
+<addr name="STATUS" addr="0x40" />
<field name="RSVD4" bitrange="31:11">
</field>
<field name="RESUME_STATUS" bitrange="10:10">
@@ -13010,7 +12134,8 @@ KIND, either express or implied.
<field name="RSVD0" bitrange="2:0">
</field>
</reg>
-<reg name="DEBUG" addr="0x50" sct="yes">
+<reg name="DEBUG" sct="yes">
+<addr name="DEBUG" addr="0x50" />
<field name="RSVD3" bitrange="31:31">
</field>
<field name="CLKGATE" bitrange="30:30">
@@ -13042,7 +12167,8 @@ KIND, either express or implied.
<field name="OTGIDPIOLOCK" bitrange="0:0">
</field>
</reg>
-<reg name="DEBUG0_STATUS" addr="0x60" sct="no">
+<reg name="DEBUG0_STATUS" sct="no">
+<addr name="DEBUG0_STATUS" addr="0x60" />
<field name="SQUELCH_COUNT" bitrange="31:26">
</field>
<field name="UTMI_RXERROR_FAIL_COUNT" bitrange="25:16">
@@ -13050,7 +12176,8 @@ KIND, either express or implied.
<field name="LOOP_BACK_FAIL_COUNT" bitrange="15:0">
</field>
</reg>
-<reg name="DEBUG1" addr="0x70" sct="yes">
+<reg name="DEBUG1" sct="yes">
+<addr name="DEBUG1" addr="0x70" />
<field name="RSVD1" bitrange="31:15">
</field>
<field name="ENTAILADJVD" bitrange="14:13">
@@ -13062,7 +12189,8 @@ KIND, either express or implied.
<field name="DBG_ADDRESS" bitrange="3:0">
</field>
</reg>
-<reg name="VERSION" addr="0x80" sct="no">
+<reg name="VERSION" sct="no">
+<addr name="VERSION" addr="0x80" />
<field name="MAJOR" bitrange="31:24">
</field>
<field name="MINOR" bitrange="23:16">
@@ -13070,7 +12198,8 @@ KIND, either express or implied.
<field name="STEP" bitrange="15:0">
</field>
</reg>
-<reg name="IP" addr="0x90" sct="yes">
+<reg name="IP" sct="yes">
+<addr name="IP" addr="0x90" />
<field name="RSVD1" bitrange="31:25">
</field>
<field name="DIV_SEL" bitrange="24:23">
diff --git a/utils/regtools/desc_parser.hpp b/utils/regtools/desc_parser.hpp
deleted file mode 100644
index 908cff8940..0000000000
--- a/utils/regtools/desc_parser.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2002 by Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef __DESC_PARSER__
-#define __DESC_PARSER__
-
-#include <stdint.h>
-#include <vector>
-#include <string>
-
-typedef uint32_t soc_addr_t;
-typedef uint32_t soc_word_t;
-typedef uint32_t soc_reg_flags_t;
-
-const soc_addr_t SOC_NO_ADDR = 0xffffffff;
-const soc_reg_flags_t REG_HAS_SCT = 1 << 0;
-
-struct soc_reg_field_value_t
-{
- std::string name;
- soc_word_t value;
-};
-
-struct soc_reg_field_t
-{
- std::string name;
- unsigned first_bit, last_bit;
-
- soc_word_t bitmask() const
- {
- return ((1 << (last_bit - first_bit + 1)) - 1) << first_bit;
- }
-
- std::vector< soc_reg_field_value_t > values;
-};
-
-struct soc_reg_t
-{
- std::string name;
- soc_addr_t addr;
- soc_reg_flags_t flags;
-
- std::vector< soc_reg_field_t > fields;
-};
-
-struct soc_multireg_t
-{
- std::string name;
- soc_addr_t base;
- unsigned count;
- soc_addr_t offset;
- soc_reg_flags_t flags;
-
- std::vector< soc_reg_t > regs;
- std::vector< soc_reg_field_t > fields;
-};
-
-struct soc_dev_t
-{
- std::string name;
- std::string long_name;
- std::string desc;
- soc_addr_t addr;
-
- std::vector< soc_multireg_t > multiregs;
- std::vector< soc_reg_t > regs;
-};
-
-struct soc_multidev_t
-{
- std::string name;
- std::string long_name;
- std::string desc;
-
- std::vector< soc_dev_t > devs;
- std::vector< soc_multireg_t > multiregs;
- std::vector< soc_reg_t > regs;
-};
-
-struct soc_t
-{
- std::string name;
- std::string desc;
-
- std::vector< soc_dev_t > devs;
- std::vector< soc_multidev_t > multidevs;
-};
-
-bool parse_soc_desc(const std::string& filename, std::vector< soc_t >& soc);
-
-#endif /* __DESC_PARSER__ */ \ No newline at end of file
diff --git a/utils/regtools/headergen.cpp b/utils/regtools/headergen.cpp
index b6905363d8..fc1ce6fba6 100644
--- a/utils/regtools/headergen.cpp
+++ b/utils/regtools/headergen.cpp
@@ -7,7 +7,7 @@
* \/ \/ \/ \/ \/
* $Id$
*
- * Copyright (C) 2002 by Amaury Pouly
+ * Copyright (C) 2013 by Amaury Pouly
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -18,22 +18,26 @@
* KIND, either express or implied.
*
****************************************************************************/
-#include "desc_parser.hpp"
+#include "soc_desc.hpp"
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <map>
+#include <sstream>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#define HEADERGEN_VERSION "2.1.7"
#define error(...) do{ fprintf(stderr, __VA_ARGS__); exit(1); } while(0)
std::string g_soc_name;
std::string g_soc_dev;
std::string g_soc_reg;
+std::string g_soc_field;
std::string g_soc_dev_regs_base;
-std::string g_soc_dev_reg_core_name;
namespace {
-
std::string tolower(const std::string s)
{
std::string res = s;
@@ -47,11 +51,32 @@ std::string toupper(const std::string& s)
std::transform(res.begin(), res.end(), res.begin(), ::toupper);
return res;
}
+}
+
+template< typename T >
+std::string to_str(const T& v)
+{
+ std::ostringstream oss;
+ oss << v;
+ return oss.str();
+}
+template< typename T >
+std::string to_hex(const T& v)
+{
+ std::ostringstream oss;
+ oss << std::hex << v;
+ return oss.str();
}
-void fprint_copyright(FILE *f)
+typedef std::pair< std::string, std::string > xml_ver_t;
+
+void fprint_copyright(FILE *f, const std::vector< xml_ver_t >& versions)
{
+ std::ostringstream ver;
+ for(size_t i = 0; i < versions.size(); i++)
+ ver << " " << versions[i].first << ":" << versions[i].second;
+
fprintf(f,"\
/***************************************************************************\n\
* __________ __ ___.\n\
@@ -61,8 +86,10 @@ void fprint_copyright(FILE *f)
* Firmware |____|_ /\\____/ \\___ >__|_ \\|___ /\\____/__/\\_ \\\n\
* \\/ \\/ \\/ \\/ \\/\n\
* This file was automatically generated by headergen, DO NOT EDIT it.\n\
+ * headergen version: " HEADERGEN_VERSION "\n\
+ * XML versions:%s\n\
*\n\
- * Copyright (C) 2012 by Amaury Pouly\n\
+ * Copyright (C) 2013 by Amaury Pouly\n\
*\n\
* This program is free software; you can redistribute it and/or\n\
* modify it under the terms of the GNU General Public License\n\
@@ -72,7 +99,13 @@ void fprint_copyright(FILE *f)
* This software is distributed on an \"AS IS\" basis, WITHOUT WARRANTY OF ANY\n\
* KIND, either express or implied.\n\
*\n\
- ****************************************************************************/\n");
+ ****************************************************************************/\n",
+ver.str().c_str());
+}
+
+void fprint_copyright(FILE *f, const xml_ver_t& version)
+{
+ fprint_copyright(f, std::vector< xml_ver_t >(1, version));
}
void fprint_include_guard_ex(FILE *f, bool begin, const std::string& name)
@@ -81,7 +114,6 @@ void fprint_include_guard_ex(FILE *f, bool begin, const std::string& name)
{
fprintf(f, "#ifndef %s\n", name.c_str());
fprintf(f, "#define %s\n", name.c_str());
- fprintf(f, "\n#include \"imx233.h\"\n");
}
else
fprintf(f, "#endif /* %s */\n", name.c_str());
@@ -89,108 +121,188 @@ void fprint_include_guard_ex(FILE *f, bool begin, const std::string& name)
void fprint_include_guard(FILE *f, bool begin)
{
- std::string name = "__" + toupper(g_soc_name) + "__" + toupper(g_soc_dev)
+ std::string name = "__HEADERGEN__" + toupper(g_soc_name) + "__" + toupper(g_soc_dev)
+ "__H__";
fprint_include_guard_ex(f, begin, name);
}
-void fprint_fields(FILE *f, const std::vector< soc_reg_field_t >& fields)
+struct define_align_context_t
{
- for(size_t i = 0; i < fields.size(); i++)
+ define_align_context_t():m_max_name(0) {}
+ void add(const std::string& name, const std::string& val)
{
- fprintf(f, "#define BM_%s_%s %#x\n", g_soc_dev_reg_core_name.c_str(),
- fields[i].name.c_str(), fields[i].bitmask());
- fprintf(f, "#define BP_%s_%s %d\n", g_soc_dev_reg_core_name.c_str(),
- fields[i].name.c_str(), fields[i].first_bit);
- fprintf(f, "#define BF_%s_%s(v) (((v) << %d) & %#x)\n",
- g_soc_dev_reg_core_name.c_str(), fields[i].name.c_str(),
- fields[i].first_bit, fields[i].bitmask());
- if(fields[i].values.size() > 0)
- {
- fprintf(f, "#define BF_%s_%s_V(sym) ((BV_%s_%s__##sym << %d) & %#x)\n",
- g_soc_dev_reg_core_name.c_str(), fields[i].name.c_str(),
- g_soc_dev_reg_core_name.c_str(), fields[i].name.c_str(),
- fields[i].first_bit, fields[i].bitmask());
- }
- for(size_t j = 0; j < fields[i].values.size(); j++)
+ m_lines.push_back(std::make_pair(name, val));
+ m_max_name = std::max(m_max_name, name.size());
+ }
+
+ void print(FILE *f)
+ {
+ std::string define = "#define ";
+ size_t align = define.size() + m_max_name + 1;
+ align = ((align + 3) / 4) * 4;
+
+ for(size_t i = 0; i < m_lines.size(); i++)
{
- fprintf(f, "#define BV_%s_%s__%s %#x\n", g_soc_dev_reg_core_name.c_str(),
- fields[i].name.c_str(), fields[i].values[j].name.c_str(),
- fields[i].values[j].value);
+ std::string name = m_lines[i].first;
+ name.insert(name.end(), align - define.size() - name.size(), ' ');
+ fprintf(f, "%s%s%s\n", define.c_str(), name.c_str(), m_lines[i].second.c_str());
}
}
+
+ size_t m_max_name;
+ std::vector< std::pair< std::string, std::string > > m_lines;
+};
+
+void gen_soc_field(define_align_context_t& ctx, bool multidev, bool multireg, const soc_reg_field_t& field)
+{
+ std::string prefix = g_soc_dev + "_" + g_soc_reg + "_" + g_soc_field;
+ ctx.add("BP_" + prefix, to_str(field.first_bit));
+ ctx.add("BM_" + prefix, "0x" + to_hex(field.bitmask()));
+
+ for(size_t i = 0; i < field.value.size(); i++)
+ ctx.add("BV_" + prefix + "__" + field.value[i].name, "0x" + to_hex(field.value[i].value));
+
+ ctx.add("BF_" + prefix + "(v)", "(((v) << " + to_str(field.first_bit) + ") & 0x" + to_hex(field.bitmask()) + ")");
+
+ if(field.value.size() > 0)
+ ctx.add("BF_" + prefix + "_V(v)", "((BV_" + prefix + "__##v" + " << " + to_str(field.first_bit) + ") & 0x" + to_hex(field.bitmask()) + ")");
}
-void fprint_reg(FILE *f, const soc_reg_t& reg)
+void gen_soc_reg(FILE *f, bool multidev, const soc_reg_t& reg)
{
- g_soc_dev_reg_core_name = toupper(g_soc_dev) + "_" + toupper(reg.name);
+ bool multireg = reg.addr.size() > 1;
- fprintf(f, "#define RA_%s %#x\n", g_soc_dev_reg_core_name.c_str(), reg.addr);
- fprintf(f, "#define HW_%s HW_REG(%s, %s)\n", g_soc_dev_reg_core_name.c_str(),
- toupper(g_soc_dev).c_str(), toupper(reg.name).c_str());
- if(reg.flags & REG_HAS_SCT)
+ static const char *suffix[] = {"", "_SET", "_CLR", "_TOG"};
+ bool sct = !!(reg.flags & REG_HAS_SCT);
+
+ fprintf(f, "/**\n");
+ fprintf(f, " * Register: HW_%s_%s\n", g_soc_dev.c_str(), g_soc_reg.c_str());
+ fprintf(f, " * Address:");
+ if(multireg && reg.formula.type == REG_FORMULA_STRING)
{
- fprintf(f, "#define HW_%s_SET HW_SET(%s, %s)\n", g_soc_dev_reg_core_name.c_str(),
- toupper(g_soc_dev).c_str(), toupper(reg.name).c_str());
- fprintf(f, "#define HW_%s_CLR HW_CLR(%s, %s)\n", g_soc_dev_reg_core_name.c_str(),
- toupper(g_soc_dev).c_str(), toupper(reg.name).c_str());
- fprintf(f, "#define HW_%s_TOG HW_TOG(%s, %s)\n", g_soc_dev_reg_core_name.c_str(),
- toupper(g_soc_dev).c_str(), toupper(reg.name).c_str());
+ fprintf(f, " %s\n", reg.formula.string.c_str());
}
- fprint_fields(f, reg.fields);
- fprintf(f, "\n");
-}
+ else
+ {
+ for(size_t i = 0; i < reg.addr.size(); i++)
+ fprintf(f, " %#x", reg.addr[i].addr);
+ fprintf(f, "\n");
+ }
+ fprintf(f, " * SCT: %s\n", sct ? "yes" : "no");
-void fprint_mreg(FILE *f, const soc_multireg_t& mreg)
-{
+ fprintf(f, "*/\n");
+
+ define_align_context_t ctx;
+
+ for(int i = 0; i < (sct ? 4 : 1); i++)
+ {
+ std::ostringstream name;
+ name << "HW_" << g_soc_dev << "_" << g_soc_reg << suffix[i];
+ if(multidev || multireg)
+ {
+ name << "(";
+ if(multidev)
+ name << "d";
+ if(multidev && multireg)
+ name << ",";
+ if(multireg)
+ name << "n";
+ name << ")";
+ }
+ std::ostringstream value;
+ value << "(*(volatile unsigned long *)(" << g_soc_dev_regs_base;
+ if(multidev)
+ value << "(d)";
+ value << " + ";
+ if(multireg)
+ {
+ if(reg.formula.type != REG_FORMULA_STRING)
+ printf("Warning: register HW_%s_%s has no formula !\n", g_soc_dev.c_str(), g_soc_reg.c_str());
+ std::string formula = reg.formula.string.c_str();
+ size_t pos = formula.find("n");
+ while(pos != std::string::npos)
+ {
+ formula.replace(pos, 1, "(n)");
+ pos = formula.find("n", pos + 2);
+ }
+ value << formula;
+ }
+ else
+ value << "0x" << std::hex << reg.addr[0].addr;
+
+ if(sct)
+ value << " + 0x" << std::hex << (i * 4);
+ value << "))";
+
+ ctx.add(name.str(), value.str());
+ }
+
+ for(size_t i = 0; i < reg.field.size(); i++)
+ {
+ g_soc_field = reg.field[i].name;
+ gen_soc_field(ctx, multidev, multireg, reg.field[i]);
+ }
+
+ ctx.print(f);
+
+ fprintf(f, "\n");
}
-void gen_dev_header(const std::string& filename, const soc_dev_t& dev)
+void gen_soc_dev_header(const std::string& filename, const xml_ver_t& ver, const soc_dev_t& dev)
{
- g_soc_dev = dev.name;
- printf(" Generate header for device %s: write to %s\n", dev.name.c_str(),
- filename.c_str());
+ /*
+ printf("Generate headers for soc %s, dev %s: use file %s\n", g_soc_name.c_str(),
+ g_soc_dev.c_str(), filename.c_str());
+ */
FILE *f = fopen(filename.c_str(), "w");
if(f == NULL)
- error("Cannot open file %s\n", filename.c_str());
- fprint_copyright(f);
+ {
+ printf("Cannot open %s for writing: %m\n", filename.c_str());
+ return;
+ }
+ fprint_copyright(f, ver);
fprint_include_guard(f, true);
+
+ /* print base */
fprintf(f, "\n");
- g_soc_dev_regs_base = "RB_" + toupper(dev.name);
- fprintf(f, "#define %s %#x\n", g_soc_dev_regs_base.c_str(), dev.addr);
- fprintf(f, "\n");
+ g_soc_dev_regs_base = "REGS_" + g_soc_dev + "_BASE";
+ fprintf(f, "#define %s", g_soc_dev_regs_base.c_str());
- for(size_t i = 0; i < dev.regs.size(); i++)
- fprint_reg(f, dev.regs[i]);
- for(size_t i = 0; i < dev.multiregs.size(); i++)
- fprint_mreg(f, dev.multiregs[i]);
+ if(dev.addr.size() > 1)
+ fprintf(f, "(i)");
+ fprintf(f, " (");
+ for(size_t i = 0; i < dev.addr.size() - 1; i++)
+ fprintf(f, "(i) == %d ? %#x : ", (int)i + 1, dev.addr[i].addr);
+
+ fprintf(f, "%#x)\n", dev.addr[dev.addr.size() - 1].addr);
+
+ fprintf(f, "\n");
+
+ /* print version */
+ fprintf(f, "#define REGS_%s_VERSION \"%s\"\n\n", g_soc_dev.c_str(), dev.version.c_str());
+
+ for(size_t i = 0; i < dev.reg.size(); i++)
+ {
+ g_soc_reg = dev.reg[i].name;
+ gen_soc_reg(f, dev.addr.size() > 1, dev.reg[i]);
+ }
+
fprint_include_guard(f, false);
fclose(f);
}
-void gen_mdev_header(const std::string& filename, const soc_multidev_t& dev)
-{
- g_soc_dev = dev.name;
- printf(" Generate header for multi device %s: write to %s\n", dev.name.c_str(),
- filename.c_str());
-}
-
void gen_soc_headers(const std::string& prefix, const soc_t& soc)
{
- printf("Generate headers for soc %s: use directory %s (must exists)\n", soc.desc.c_str(),
+ printf("Generate headers for soc %s: use directory %s\n", soc.desc.c_str(),
prefix.c_str());
- for(size_t i = 0; i < soc.devs.size(); i++)
- {
- std::string name = soc.devs[i].name;
- name = tolower(name);
- gen_dev_header(prefix + "/regs-" + name + ".h", soc.devs[i]);
- }
- for(size_t i = 0; i < soc.multidevs.size(); i++)
+ mkdir(prefix.c_str(), 0770);
+
+ for(size_t i = 0; i < soc.dev.size(); i++)
{
- std::string name = soc.multidevs[i].name;
- name = tolower(name);
- gen_mdev_header(prefix + "/regs-" + name + ".h", soc.multidevs[i]);
+ g_soc_dev = soc.dev[i].name;
+ xml_ver_t ver(soc.name, soc.dev[i].version);
+ gen_soc_dev_header(prefix + "/regs-" + tolower(g_soc_dev.c_str()) + ".h", ver, soc.dev[i]);
}
}
@@ -203,31 +315,30 @@ void gen_headers(const std::string& prefix, const std::vector< soc_t >& socs)
}
}
-typedef std::map< std::string, std::vector< std::string > > general_dev_list_t;
+typedef std::map< std::string, std::vector< std::pair< size_t, size_t > > > general_dev_list_t;
general_dev_list_t build_general_dev_list(const std::vector< soc_t >& socs)
{
general_dev_list_t map;
for(size_t i = 0; i < socs.size(); i++)
{
- for(size_t j = 0; j < socs[i].devs.size(); j++)
- map[tolower(socs[i].devs[j].name)].push_back(socs[i].name);
- for(size_t j = 0; j < socs[i].multidevs.size(); j++)
- map[tolower(socs[i].multidevs[j].name)].push_back(socs[i].name);
+ for(size_t j = 0; j < socs[i].dev.size(); j++)
+ map[tolower(socs[i].dev[j].name)].push_back(std::make_pair(i,j));
}
return map;
}
void gen_select_header(const std::string& filename, const std::string& dev,
- const std::vector< std::string >& socs)
+ const std::vector< std::string >& socs, const std::vector< xml_ver_t >& ver)
{
+ /*
printf("Generate select header for device %s: write to %s\n", dev.c_str(),
filename.c_str());
-
+ */
std::string guard = "__SELECT__" + toupper(dev) + "__H__";
FILE *f = fopen(filename.c_str(), "w");
if(f == NULL)
error("Cannot open file %s\n", filename.c_str());
- fprint_copyright(f);
+ fprint_copyright(f, ver);
fprint_include_guard_ex(f, true, guard);
fprintf(f, "\n");
@@ -251,24 +362,38 @@ void gen_selectors(const std::string& prefix, const std::vector< soc_t >& socs)
{
general_dev_list_t map = build_general_dev_list(socs);
for(general_dev_list_t::iterator it = map.begin(); it != map.end(); ++it)
- gen_select_header(prefix + "/regs-" + it->first + ".h", it->first, it->second);
+ {
+ std::vector< xml_ver_t > ver;
+ std::vector< std::string > names;
+ for(size_t i = 0; i < it->second.size(); i++)
+ {
+ size_t soc_nr = it->second[i].first;
+ size_t dev_in_soc_nr = it->second[i].second;
+ ver.push_back(std::make_pair(socs[soc_nr].name, socs[soc_nr].dev[dev_in_soc_nr].version));
+ names.push_back(socs[soc_nr].name);
+ }
+ gen_select_header(prefix + "/regs-" + it->first + ".h", it->first, names, ver);
+ }
}
void usage()
{
- printf("usage: headergen <desc file> <output prefix>\n");
+ printf("usage: headergen <desc files...> <output directory>\n");
exit(1);
}
int main(int argc, char **argv)
{
- if(argc != 3)
+ if(argc < 3)
usage();
std::vector< soc_t > socs;
- bool ret = parse_soc_desc(argv[1], socs);
- printf("parse result: %d\n", ret);
- if(!ret) return 1;
- gen_headers(argv[2], socs);
- gen_selectors(argv[2], socs);
+ for(int i = 1; i < argc - 1; i++)
+ if(!soc_desc_parse_xml(argv[i], socs))
+ {
+ printf("Cannot parse %s\n", argv[i]);
+ return 1;
+ }
+ gen_headers(argv[argc - 1], socs);
+ gen_selectors(argv[argc - 1], socs);
return 0;
} \ No newline at end of file
diff --git a/utils/regtools/hwemulgen.cpp b/utils/regtools/hwemulgen.cpp
deleted file mode 100644
index ae8b9dbec5..0000000000
--- a/utils/regtools/hwemulgen.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2002 by Amaury Pouly
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#include "desc_parser.hpp"
-#include <stdio.h>
-#include <stdlib.h>
-#include <algorithm>
-#include <map>
-
-#define error(...) do{ fprintf(stderr, __VA_ARGS__); exit(1); } while(0)
-
-int g_soc_count;
-int g_reg_count;
-int g_field_count;
-
-namespace {
-
-std::string tolower(const std::string s)
-{
- std::string res = s;
- std::transform(res.begin(), res.end(), res.begin(), ::tolower);
- return res;
-}
-
-std::string toupper(const std::string& s)
-{
- std::string res = s;
- std::transform(res.begin(), res.end(), res.begin(), ::toupper);
- return res;
-}
-
-bool lex_comp(const std::string& a, const std::string& b)
-{
- return std::lexicographical_compare(a.begin(), a.end(), b.begin(), b.end());
-}
-
-}
-
-void fprint_copyright(FILE *f)
-{
- fprintf(f,"\
-/***************************************************************************\n\
- * __________ __ ___.\n\
- * Open \\______ \\ ____ ____ | | _\\_ |__ _______ ___\n\
- * Source | _// _ \\_/ ___\\| |/ /| __ \\ / _ \\ \\/ /\n\
- * Jukebox | | ( <_> ) \\___| < | \\_\\ ( <_> > < <\n\
- * Firmware |____|_ /\\____/ \\___ >__|_ \\|___ /\\____/__/\\_ \\\n\
- * \\/ \\/ \\/ \\/ \\/\n\
- * This file was automatically generated by hwemulgen, DO NOT EDIT it.\n\
- *\n\
- * Copyright (C) 2012 by Amaury Pouly\n\
- *\n\
- * This program is free software; you can redistribute it and/or\n\
- * modify it under the terms of the GNU General Public License\n\
- * as published by the Free Software Foundation; either version 2\n\
- * of the License, or (at your option) any later version.\n\
- *\n\
- * This software is distributed on an \"AS IS\" basis, WITHOUT WARRANTY OF ANY\n\
- * KIND, either express or implied.\n\
- *\n\
- ****************************************************************************/\n");
-}
-
-void gen_header(const std::string& filename)
-{
- FILE *f = fopen(filename.c_str(), "w");
- if(f == NULL)
- error("Cannot open file %s\n", filename.c_str());
- fprint_copyright(f);
- fprintf(f, "#ifndef __HWEMUL_SOC_HEADER__\n");
- fprintf(f, "#define __HWEMUL_SOC_HEADER__\n");
- fprintf(f, "\n");
- fprintf(f, "#include \"stddef.h\"\n");
- fprintf(f, "#include \"stdint.h\"\n");
-
- fprintf(f, "\n\
-#define HWEMUL_SOC_REG_HAS_SCT (1 << 0)\n\
-\n\
-struct hwemul_soc_reg_field_t\n\
-{\n\
- const char *name;\n\
- unsigned short first_bit, last_bit;\n\
-};\n\
-\n\
-struct hwemul_soc_reg_t\n\
-{\n\
- const char *name;\n\
- uint32_t addr;\n\
- uint32_t flags;\n\
- size_t nr_fields;\n\
- struct hwemul_soc_reg_field_t *fields_by_name[]; /* ordered by lexicographic order */\n\
-};\n\
-\n\
-struct hwemul_soc_t\n\
-{\n\
- const char *name;\n\
- size_t nr_regs;\n\
- struct hwemul_soc_reg_t *regs_by_name[]; /* ordered by lexicographic order */\n\
-};\n\
-\n\
-struct hwemul_soc_list_t\n\
-{\n\
- size_t nr_socs;\n\
- struct hwemul_soc_t *socs[];\n\
-};\n\
-\n\
-struct hwemul_soc_list_t *hwemul_get_soc_list(void);\n\
-\n");
-
- fprintf(f, "#endif\n");
- fclose(f);
-}
-
-std::string extract_last_part(std::string s)
-{
- size_t pos = s.find_last_of("/\\");
- if(pos != std::string::npos)
- s = s.substr(pos + 1);
- pos = s.find_last_of(".");
- if(pos != std::string::npos)
- s = s.substr(0, pos);
- return s;
-}
-
-std::vector< std::string > gen_fields(FILE *f, std::string prefix,
- const std::vector< soc_reg_field_t >& fields)
-{
- std::vector< std::string > list;
-
- for(size_t i = 0; i < fields.size(); i++)
- {
- g_field_count++;
- std::string var_name = prefix + tolower(fields[i].name);
- list.push_back(var_name);
-
- fprintf(f, "\
-static struct hwemul_soc_reg_field_t %s =\n\
-{\n\
- \"%s\",\n\
- %d, %d\n\
-};\n\
-\n", var_name.c_str(), fields[i].name.c_str(), fields[i].first_bit, fields[i].last_bit);
- }
-
- return list;
-}
-
-std::vector< std::string > gen_common_regs(FILE *f, std::string prefix, std::string devname,
- soc_addr_t devaddr, const std::vector< soc_reg_t >& regs,
- const std::vector< soc_multireg_t >& multiregs)
-{
- std::vector< std::string > list;
-
- for(size_t i = 0; i < regs.size(); i++)
- {
- g_reg_count++;
- std::string var_name = prefix + tolower(regs[i].name);
-
- list.push_back(var_name);
-
- std::vector< std::string > field_vars = gen_fields(f, var_name + "_",
- regs[i].fields);
-
- std::sort(field_vars.begin(), field_vars.end(), lex_comp);
-
- fprintf(f, "\
-static struct hwemul_soc_reg_t %s =\n\
-{\n\
- \"HW_%s_%s\",\n\
- %#x,\n\
- 0", var_name.c_str(), devname.c_str(), regs[i].name.c_str(), devaddr + regs[i].addr);
- if(regs[i].flags & REG_HAS_SCT)
- fprintf(f, " | HWEMUL_SOC_REG_HAS_SCT");
- fprintf(f, ",\n");
- fprintf(f, "\
- %u,\n\
- {", (unsigned)field_vars.size());
- if(field_vars.size() != 0)
- fprintf(f, "\n");
- for(size_t j = 0; j < field_vars.size(); j++)
- fprintf(f, " &%s,\n", field_vars[j].c_str());
- if(field_vars.size() != 0)
- fprintf(f, " ");
- fprintf(f,"\
-}\n};\n\
-\n");
- }
-
- for(size_t i = 0; i < multiregs.size(); i++)
- {
- g_reg_count++;
- std::vector< std::string > field_vars = gen_fields(f,
- prefix + tolower(multiregs[i].name) + "_", multiregs[i].fields);
- std::sort(field_vars.begin(), field_vars.end(), lex_comp);
-
- for(size_t j = 0; j < multiregs[i].regs.size(); j++)
- {
- g_reg_count++;
- std::string var_name = prefix + tolower(multiregs[i].regs[j].name);
-
- list.push_back(var_name);
-
- fprintf(f, "\
-static struct hwemul_soc_reg_t %s =\n\
-{\n\
- \"HW_%s_%s\",\n\
- %#x,\n\
- 0", var_name.c_str(), devname.c_str(), multiregs[i].regs[j].name.c_str(), devaddr + multiregs[i].regs[j].addr);
- if(multiregs[i].flags & REG_HAS_SCT)
- fprintf(f, " | HWEMUL_SOC_REG_HAS_SCT");
- fprintf(f, ",\n");
- fprintf(f,"\
- %u,\n\
- {", (unsigned)field_vars.size());
- if(field_vars.size() != 0)
- fprintf(f, "\n");
- for(size_t k = 0; k < field_vars.size(); k++)
- fprintf(f, " &%s,\n", field_vars[k].c_str());
- if(field_vars.size() != 0)
- fprintf(f, " ");
- fprintf(f,"\
-}\n};\n\
-\n");
- }
- }
-
- return list;
-}
-
-std::vector< std::string > gen_dev_regs(FILE *f, std::string prefix, const soc_dev_t& dev)
-{
- return gen_common_regs(f, prefix + tolower(dev.name) + "_", dev.name, dev.addr,
- dev.regs, dev.multiregs);
-}
-
-std::vector< std::string > gen_multidev_regs(FILE *f, std::string prefix, const soc_multidev_t& mdev)
-{
- std::vector< std::string > list;
-
- for(size_t i = 0; i < mdev.devs.size(); i++)
- {
- std::vector< std::string > sub_list = gen_common_regs(f,
- prefix + tolower(mdev.devs[i].name) + "_", mdev.devs[i].name,
- mdev.devs[i].addr, mdev.regs, mdev.multiregs);
- list.insert(list.end(), sub_list.begin(), sub_list.end());
- }
-
- return list;
-}
-
-std::vector< std::string > gen_regs(FILE *f, std::string prefix, const soc_t& soc)
-{
- std::vector< std::string > list;
-
- for(size_t i = 0; i < soc.devs.size(); i++)
- {
- std::vector< std::string > sub_list = gen_dev_regs(f,
- prefix, soc.devs[i]);
- list.insert(list.end(), sub_list.begin(), sub_list.end());
- }
-
- for(size_t i = 0; i < soc.multidevs.size(); i++)
- {
- std::vector< std::string > sub_list = gen_multidev_regs(f,
- prefix, soc.multidevs[i]);
- list.insert(list.end(), sub_list.begin(), sub_list.end());
- }
-
- return list;
-}
-
-std::vector< std::string > gen_socs(FILE *f, std::string prefix, const std::vector< soc_t >& socs)
-{
- std::vector< std::string > list;
- for(size_t i = 0; i < socs.size(); i++)
- {
- g_soc_count++;
- std::string var_name = prefix + socs[i].name;
- list.push_back(var_name);
-
- std::vector< std::string > reg_vars = gen_regs(f, var_name + "_", socs[i]);
-
- std::sort(reg_vars.begin(), reg_vars.end(), lex_comp);
-
- fprintf(f, "\
-static struct hwemul_soc_t %s =\n\
-{\n\
- \"%s\",\n\
- %u,\n\
- {\n", var_name.c_str(), socs[i].name.c_str(), (unsigned)reg_vars.size());
-
- for(size_t j = 0; j < reg_vars.size(); j++)
- fprintf(f, " &%s,\n", reg_vars[j].c_str());
- fprintf(f, "\
- }\n\
-};\n\
-\n");
- }
-
- return list;
-}
-
-void gen_impl(const std::string& filename, const std::vector< soc_t >& socs)
-{
- FILE *f = fopen(filename.c_str(), "w");
- if(f == NULL)
- error("Cannot open file %s\n", filename.c_str());
- fprint_copyright(f);
- std::string last_part = extract_last_part(filename);
- fprintf(f, "#include \"%s.h\"\n\n", last_part.c_str());
-
- std::vector< std::string > socs_var = gen_socs(f, "soc_", socs);
-
- fprintf(f, "\
-static struct hwemul_soc_list_t hwemul_soc_list =\n\
-{\n\
- %u,\n\
- {", (unsigned) socs_var.size());
-
- for(size_t i = 0; i < socs_var.size(); i++)
- {
- fprintf(f, "&%s", socs_var[i].c_str());
- if(i + 1 != socs_var.size())
- fprintf(f, ", ");
- }
- fprintf(f, "\
-}\n\
-};\n\
-\n");
-
- fprintf(f,"\
-struct hwemul_soc_list_t *hwemul_get_soc_list(void)\n\
-{\n\
- return &hwemul_soc_list;\n\
-}\n\
-\n");
-
- fclose(f);
-}
-
-void gen_files(const std::string& output, const std::vector< soc_t >& socs)
-{
- gen_header(output + ".h");
- gen_impl(output + ".c", socs);
-}
-
-void usage()
-{
- printf("usage: headergen <desc file list> <output file prefix>\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- if(argc < 3)
- usage();
- std::vector< soc_t > socs;
- for(int i = 1; i < argc - 1; i++)
- {
- bool ret = parse_soc_desc(argv[i], socs);
- if(!ret)
- {
- printf("Cannot parse '%s'\n", argv[i]);
- return 1;
- }
- }
- gen_files(argv[argc - 1], socs);
- printf("%d socs, %d registers and %d fields dumped!\n", g_soc_count, g_reg_count, g_field_count);
- return 0;
-} \ No newline at end of file
diff --git a/utils/regtools/lib/Makefile b/utils/regtools/lib/Makefile
new file mode 100644
index 0000000000..ef8d4c0533
--- /dev/null
+++ b/utils/regtools/lib/Makefile
@@ -0,0 +1,23 @@
+CC=gcc
+CXX=g++
+AR=ar
+CFLAGS=-Wall -O2 `xml2-config --cflags` -std=c99 -g -fPIC
+CXXFLAGS=-Wall -O2 `xml2-config --cflags` -g -fPIC
+LIB=libsocdesc.a
+SRC=$(wildcard *.c)
+SRCXX=$(wildcard *.cpp)
+OBJ=$(SRC:.c=.o) $(SRCXX:.cpp=.o)
+
+all: $(LIB) $(EXEC)
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+$(LIB): $(OBJ)
+ $(AR) rcs $@ $^
+
+clean:
+ rm -rf $(OBJ) $(LIB) \ No newline at end of file
diff --git a/utils/regtools/desc_parser.cpp b/utils/regtools/lib/soc_desc.cpp
index 940a619f5c..413c30936f 100644
--- a/utils/regtools/desc_parser.cpp
+++ b/utils/regtools/lib/soc_desc.cpp
@@ -7,7 +7,7 @@
* \/ \/ \/ \/ \/
* $Id$
*
- * Copyright (C) 2002 by Amaury Pouly
+ * Copyright (C) 2012 by Amaury Pouly
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -18,7 +18,7 @@
* KIND, either express or implied.
*
****************************************************************************/
-#include "desc_parser.hpp"
+#include "soc_desc.hpp"
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <stdio.h>
@@ -150,74 +150,78 @@ bool parse_field_elem(xmlNode *node, soc_reg_field_t& field)
END_ATTR_MATCH()
BEGIN_NODE_MATCH(node->children)
- SOFT_MATCH_ELEM_NODE("value", field.values, parse_value_elem)
+ SOFT_MATCH_ELEM_NODE("value", field.value, parse_value_elem)
END_NODE_MATCH()
return true;
}
-bool parse_reg_elem(xmlNode *node, soc_reg_t& reg)
+bool parse_reg_addr_elem(xmlNode *node, soc_reg_addr_t& addr)
{
BEGIN_ATTR_MATCH(node->properties)
- MATCH_TEXT_ATTR("name", reg.name)
- MATCH_UINT32_ATTR("addr", reg.addr)
- SOFT_MATCH_SCT_ATTR("sct", reg.flags)
+ MATCH_TEXT_ATTR("name", addr.name)
+ MATCH_UINT32_ATTR("addr", addr.addr)
END_ATTR_MATCH()
- BEGIN_NODE_MATCH(node->children)
- MATCH_ELEM_NODE("field", reg.fields, parse_field_elem)
- END_NODE_MATCH()
-
return true;
}
-bool parse_multireg_elem(xmlNode *node, soc_multireg_t& mreg)
+bool parse_reg_formula_elem(xmlNode *node, soc_reg_formula_t& formula)
{
BEGIN_ATTR_MATCH(node->properties)
- MATCH_TEXT_ATTR("name", mreg.name)
- MATCH_UINT32_ATTR("base", mreg.base)
- MATCH_UINT32_ATTR("count", mreg.count)
- MATCH_UINT32_ATTR("offset", mreg.offset)
- SOFT_MATCH_SCT_ATTR("sct", mreg.flags)
+ MATCH_TEXT_ATTR("string", formula.string)
END_ATTR_MATCH()
- BEGIN_NODE_MATCH(node->children)
- MATCH_ELEM_NODE("reg", mreg.regs, parse_reg_elem)
- MATCH_ELEM_NODE("field", mreg.fields, parse_field_elem)
- END_NODE_MATCH()
+ formula.type = REG_FORMULA_STRING;
return true;
}
-bool parse_dev_elem(xmlNode *node, soc_dev_t& dev)
+bool parse_reg_elem(xmlNode *node, soc_reg_t& reg)
{
+ std::vector< soc_reg_formula_t > formulas;
BEGIN_ATTR_MATCH(node->properties)
- MATCH_TEXT_ATTR("name", dev.name)
- MATCH_UINT32_ATTR("addr", dev.addr)
- MATCH_TEXT_ATTR("long_name", dev.long_name)
- MATCH_TEXT_ATTR("desc", dev.desc)
+ MATCH_TEXT_ATTR("name", reg.name)
+ SOFT_MATCH_SCT_ATTR("sct", reg.flags)
END_ATTR_MATCH()
BEGIN_NODE_MATCH(node->children)
- MATCH_ELEM_NODE("multireg", dev.multiregs, parse_multireg_elem)
- MATCH_ELEM_NODE("reg", dev.regs, parse_reg_elem)
+ MATCH_ELEM_NODE("addr", reg.addr, parse_reg_addr_elem)
+ MATCH_ELEM_NODE("formula", formulas, parse_reg_formula_elem)
+ MATCH_ELEM_NODE("field", reg.field, parse_field_elem)
END_NODE_MATCH()
+ if(formulas.size() > 1)
+ {
+ fprintf(stderr, "Only one formula is allowed per register\n");
+ return false;
+ }
+ if(formulas.size() == 1)
+ reg.formula = formulas[0];
+
+ return true;
+}
+
+bool parse_dev_addr_elem(xmlNode *node, soc_dev_addr_t& addr)
+{
+ BEGIN_ATTR_MATCH(node->properties)
+ MATCH_TEXT_ATTR("name", addr.name)
+ MATCH_UINT32_ATTR("addr", addr.addr)
+ END_ATTR_MATCH()
+
return true;
}
-bool parse_multidev_elem(xmlNode *node, soc_multidev_t& dev)
+bool parse_dev_elem(xmlNode *node, soc_dev_t& dev)
{
BEGIN_ATTR_MATCH(node->properties)
MATCH_TEXT_ATTR("name", dev.name)
- MATCH_TEXT_ATTR("long_name", dev.long_name)
- MATCH_TEXT_ATTR("desc", dev.desc)
+ MATCH_TEXT_ATTR("version", dev.version)
END_ATTR_MATCH()
BEGIN_NODE_MATCH(node->children)
- MATCH_ELEM_NODE("dev", dev.devs, parse_dev_elem)
- MATCH_ELEM_NODE("multireg", dev.multiregs, parse_multireg_elem)
- MATCH_ELEM_NODE("reg", dev.regs, parse_reg_elem)
+ MATCH_ELEM_NODE("addr", dev.addr, parse_dev_addr_elem)
+ MATCH_ELEM_NODE("reg", dev.reg, parse_reg_elem)
END_NODE_MATCH()
return true;
@@ -231,22 +235,21 @@ bool parse_soc_elem(xmlNode *node, soc_t& soc)
END_ATTR_MATCH()
BEGIN_NODE_MATCH(node->children)
- MATCH_ELEM_NODE("dev", soc.devs, parse_dev_elem)
- MATCH_ELEM_NODE("multidev", soc.multidevs, parse_multidev_elem)
+ MATCH_ELEM_NODE("dev", soc.dev, parse_dev_elem)
END_NODE_MATCH()
return true;
}
-bool parse_root_elem(xmlNode *node, std::vector< soc_t >& socs)
+bool parse_root_elem(xmlNode *node, std::vector< soc_t >& soc)
{
BEGIN_NODE_MATCH(node)
- MATCH_ELEM_NODE("soc", socs, parse_soc_elem)
+ MATCH_ELEM_NODE("soc", soc, parse_soc_elem)
END_NODE_MATCH()
return true;
}
-bool parse_soc_desc(const std::string& filename, std::vector< soc_t >& socs)
+bool soc_desc_parse_xml(const std::string& filename, std::vector< soc_t >& socs)
{
LIBXML_TEST_VERSION
diff --git a/utils/regtools/lib/soc_desc.hpp b/utils/regtools/lib/soc_desc.hpp
new file mode 100644
index 0000000000..476ea1d242
--- /dev/null
+++ b/utils/regtools/lib/soc_desc.hpp
@@ -0,0 +1,147 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2012 by Amaury Pouly
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#ifndef __SOC_DESC__
+#define __SOC_DESC__
+
+#include <stdint.h>
+#include <vector>
+#include <string>
+
+/**
+ * These data structures represent the SoC register in a convenient way.
+ * The basic structure is the following:
+ * - each SoC has several devices
+ * - each device has a generic name, a list of {name,address} and several registers
+ * - each register has a generic name, a list of {name,address}, flags,
+ * several fields
+ * - each field has a name, a first and last bit position, can apply either
+ * to all addresses of a register or be specific to one only and has several values
+ * - each field value has a name and a value
+ *
+ * All addresses, values and names are relative to the parents. For example a field
+ * value BV_LCDIF_CTRL_WORD_LENGTH_18_BIT is represented has:
+ * - device LCDIF, register CTRL, field WORD_LENGTH, value 16_BIT
+ * The address of CTRL is related to the address of LCDIF, the value of 16_BIT
+ * ignores the position of the WORD_LENGTH field in the register.
+ */
+
+/**
+ * Typedef for SoC types: word, address and flags */
+typedef uint32_t soc_addr_t;
+typedef uint32_t soc_word_t;
+typedef uint32_t soc_reg_flags_t;
+
+/** SoC register generic formula */
+enum soc_reg_formula_type_t
+{
+ REG_FORMULA_NONE, /// register has no generic formula
+ REG_FORMULA_STRING, /// register has a generic formula represented by a string
+};
+
+/** <soc_reg_t>.<flags> values */
+const soc_reg_flags_t REG_HAS_SCT = 1 << 0; /// register SCT variants
+
+/** SoC register field named value */
+struct soc_reg_field_value_t
+{
+ std::string name;
+ soc_word_t value;
+};
+
+/** SoC register field */
+struct soc_reg_field_t
+{
+ std::string name;
+ unsigned first_bit, last_bit;
+
+ soc_word_t bitmask() const
+ {
+ // WARNING beware of the case where first_bit=0 and last_bit=31
+ if(first_bit == 0 && last_bit == 31)
+ return 0xffffffff;
+ else
+ return ((1 << (last_bit - first_bit + 1)) - 1) << first_bit;
+ }
+
+ bool is_reserved() const
+ {
+ return name.substr(0, 4) == "RSVD" || name.substr(0, 5) == "RSRVD";
+ }
+
+ std::vector< soc_reg_field_value_t > value;
+};
+
+/** SoC register address */
+struct soc_reg_addr_t
+{
+ std::string name; /// actual register name
+ soc_addr_t addr;
+};
+
+/** SoC register formula */
+struct soc_reg_formula_t
+{
+ enum soc_reg_formula_type_t type;
+ std::string string; /// for STRING
+};
+
+/** SoC register */
+struct soc_reg_t
+{
+ std::string name; /// generic name (for multi registers) or actual name
+ std::vector< soc_reg_addr_t > addr;
+ soc_reg_formula_t formula;
+ soc_reg_flags_t flags; /// ORed value
+
+ std::vector< soc_reg_field_t > field;
+};
+
+/** Soc device address */
+struct soc_dev_addr_t
+{
+ std::string name; /// actual device name
+ soc_addr_t addr;
+};
+
+/** SoC device */
+struct soc_dev_t
+{
+ std::string name; /// generic name (of multi devices) or actual name
+ std::string version; /// description version
+ std::vector< soc_dev_addr_t > addr;
+
+ std::vector< soc_reg_t > reg;
+};
+
+/** SoC */
+struct soc_t
+{
+ std::string name; /// codename (rockbox)
+ std::string desc; /// SoC name
+
+ std::vector< soc_dev_t > dev;
+};
+
+/** Parse a SoC description from a XML file, append it to <soc>. A file
+ * can contain multiple SoC descriptions */
+bool soc_desc_parse_xml(const std::string& filename, std::vector< soc_t >& soc);
+
+#endif /* __SOC_DESC__ */ \ No newline at end of file
diff --git a/utils/regtools/tester.cpp b/utils/regtools/tester.cpp
index a46d310f2a..1fa21c6894 100644
--- a/utils/regtools/tester.cpp
+++ b/utils/regtools/tester.cpp
@@ -7,7 +7,7 @@
* \/ \/ \/ \/ \/
* $Id$
*
- * Copyright (C) 2002 by Amaury Pouly
+ * Copyright (C) 2012 by Amaury Pouly
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -18,7 +18,7 @@
* KIND, either express or implied.
*
****************************************************************************/
-#include "desc_parser.hpp"
+#include "soc_desc.hpp"
#include <stdio.h>
#include <stdlib.h>
@@ -31,8 +31,8 @@ void print_field_desc(const soc_reg_field_t& field)
{
printf(" FIELD %s (%d:%d)\n", field.name.c_str(), field.last_bit,
field.first_bit);
- for(size_t i = 0; i < field.values.size(); i++)
- print_value_desc(field.values[i]);
+ for(size_t i = 0; i < field.value.size(); i++)
+ print_value_desc(field.value[i]);
}
std::string compute_sct(soc_reg_flags_t f)
@@ -41,69 +41,40 @@ std::string compute_sct(soc_reg_flags_t f)
else return "";
}
-void print_reg_desc(const soc_reg_t& reg, bool in_multi)
+void print_reg_addr_desc(const soc_reg_addr_t& reg)
{
- if(in_multi)
- {
- printf(" REG %s (%#x)\n", reg.name.c_str(), reg.addr);
- }
- else
- {
- std::string sct = compute_sct(reg.flags);
- printf(" REG %s %s(%#x)\n", reg.name.c_str(), sct.c_str(), reg.addr);
- for(size_t i = 0; i < reg.fields.size(); i++)
- print_field_desc(reg.fields[i]);
- }
+ printf(" ADDR %s %#x\n", reg.name.c_str(), reg.addr);
}
-void print_multireg_desc(const soc_multireg_t& mreg)
+void print_reg_desc(const soc_reg_t& reg)
{
- std::string sct = compute_sct(mreg.flags);
- printf(" MULTIREG %s %s(%#x * %d, +%#x)\n", mreg.name.c_str(), sct.c_str(),
- mreg.base, mreg.count, mreg.offset);
- for(size_t i = 0; i < mreg.regs.size(); i++)
- print_reg_desc(mreg.regs[i], true);
- for(size_t i = 0; i < mreg.fields.size(); i++)
- print_field_desc(mreg.fields[i]);
+ std::string sct = compute_sct(reg.flags);
+ printf(" REG %s %s\n", reg.name.c_str(), sct.c_str());
+ for(size_t i = 0; i < reg.addr.size(); i++)
+ print_reg_addr_desc(reg.addr[i]);
+ for(size_t i = 0; i < reg.field.size(); i++)
+ print_field_desc(reg.field[i]);
}
-
-void print_dev_desc(const soc_dev_t& dev, bool in_multi)
+void print_dev_addr_desc(const soc_dev_addr_t& dev)
{
- if(in_multi)
- {
- printf(" DEV %s (%#x)\n", dev.name.c_str(), dev.addr);
- }
- else
- {
- printf(" DEV %s (%#x, %s, %s)\n", dev.name.c_str(), dev.addr,
- dev.long_name.c_str(), dev.desc.c_str());
- for(size_t i = 0; i < dev.multiregs.size(); i++)
- print_multireg_desc(dev.multiregs[i]);
- for(size_t i = 0; i < dev.regs.size(); i++)
- print_reg_desc(dev.regs[i], false);
- }
+ printf(" ADDR %s %#x\n", dev.name.c_str(), dev.addr);
}
-void print_multidev_desc(const soc_multidev_t& dev)
+void print_dev_desc(const soc_dev_t& dev)
{
- printf(" MULTIDEV %s (%s, %s)\n", dev.name.c_str(), dev.long_name.c_str(),
- dev.desc.c_str());
- for(size_t i = 0; i < dev.devs.size(); i++)
- print_dev_desc(dev.devs[i], true);
- for(size_t i = 0; i < dev.multiregs.size(); i++)
- print_multireg_desc(dev.multiregs[i]);
- for(size_t i = 0; i < dev.regs.size(); i++)
- print_reg_desc(dev.regs[i], false);
+ printf(" DEV %s\n", dev.name.c_str());
+ for(size_t i = 0; i < dev.addr.size(); i++)
+ print_dev_addr_desc(dev.addr[i]);
+ for(size_t i = 0; i < dev.reg.size(); i++)
+ print_reg_desc(dev.reg[i]);
}
void print_soc_desc(const soc_t& soc)
{
printf("SOC %s (%s)\n", soc.name.c_str(), soc.desc.c_str());
- for(size_t i = 0; i < soc.devs.size(); i++)
- print_dev_desc(soc.devs[i], false);
- for(size_t i = 0; i < soc.multidevs.size(); i++)
- print_multidev_desc(soc.multidevs[i]);
+ for(size_t i = 0; i < soc.dev.size(); i++)
+ print_dev_desc(soc.dev[i]);
}
void usage()
@@ -117,7 +88,7 @@ int main(int argc, char **argv)
if(argc != 2)
usage();
std::vector< soc_t > socs;
- bool ret = parse_soc_desc(argv[1], socs);
+ bool ret = soc_desc_parse_xml(argv[1], socs);
printf("parse result: %d\n", ret);
if(ret)
for(size_t i = 0; i < socs.size(); i++)