diff options
-rw-r--r-- | utils/regtools/Makefile | 33 | ||||
-rw-r--r-- | utils/regtools/desc/XML.txt | 120 | ||||
-rw-r--r-- | utils/regtools/desc/regs-stmp3700.xml | 3324 | ||||
-rw-r--r-- | utils/regtools/desc/regs-stmp3780.xml | 4945 | ||||
-rw-r--r-- | utils/regtools/desc_parser.hpp | 108 | ||||
-rw-r--r-- | utils/regtools/headergen.cpp | 311 | ||||
-rw-r--r-- | utils/regtools/hwemulgen.cpp | 387 | ||||
-rw-r--r-- | utils/regtools/lib/Makefile | 23 | ||||
-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.hpp | 147 | ||||
-rw-r--r-- | utils/regtools/tester.cpp | 77 |
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++) |