diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-05-07 21:19:10 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-05-15 15:00:52 -0400 |
commit | ccaa25eaa5d10291bff332f88194befe643b729f (patch) | |
tree | 3f7128515464c8fcb7f2af33b22e950cc0bbe517 /lib/pru_rpmsg/include/am335x/pru_intc.h | |
parent | 969ee4c8f9a3080bc20b6a78e846bee8c9455dec (diff) | |
download | kutter-ccaa25eaa5d10291bff332f88194befe643b729f.tar.gz kutter-ccaa25eaa5d10291bff332f88194befe643b729f.tar.xz kutter-ccaa25eaa5d10291bff332f88194befe643b729f.zip |
pru: Add initial pru_rpmsg library code for Beaglebone PRU
Add external code for using RPMsg on the Beaglebone PRU.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'lib/pru_rpmsg/include/am335x/pru_intc.h')
-rw-r--r-- | lib/pru_rpmsg/include/am335x/pru_intc.h | 912 |
1 files changed, 912 insertions, 0 deletions
diff --git a/lib/pru_rpmsg/include/am335x/pru_intc.h b/lib/pru_rpmsg/include/am335x/pru_intc.h new file mode 100644 index 00000000..1291940d --- /dev/null +++ b/lib/pru_rpmsg/include/am335x/pru_intc.h @@ -0,0 +1,912 @@ +/* + * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _PRU_INTC_H_ +#define _PRU_INTC_H_ + +/* PRU INTC register set */ +typedef struct { + + /* PRU_INTC_REVID register bit field */ + union { + volatile uint32_t REVID; + + volatile struct { + unsigned REV_MINOR : 6; // 5:0 + unsigned REV_CUSTOM : 2; // 7:6 + unsigned REV_MAJOR : 3; // 10:8 + unsigned REV_RTL : 5; // 15:11 + unsigned REV_MODULE : 12; // 27:16 + unsigned rsvd28 : 2; // 29:28 + unsigned REV_SCHEME : 2; // 31:30 + } REVID_bit; + }; // 0x0 + + + /* PRU_INTC_CR register bit field */ + union { + volatile uint32_t CR; + + volatile struct { + unsigned rsvd0 : 2; // 1:0 + unsigned NEST_MODE : 2; // 3:2 + unsigned rsvd4 : 28; // 31:4 + } CR_bit; + }; // 0x4 + + + uint32_t rsvd8[2]; // 0x8 - 0xC + + + /* PRU_INTC_GER register bit field */ + union { + volatile uint32_t GER; + + volatile struct { + unsigned EN_HINT_ANY : 1; // 0 + unsigned rsvd1 : 31; // 31:1 + } GER_bit; + }; // 0x10 + + + uint32_t rsvd14[2]; // 0x14 - 0x18 + + + /* PRU_INTC_GNLR register bit field */ + union { + volatile uint32_t GNLR; + + volatile struct { + unsigned GLB_NEST_LEVEL : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } GNLR_bit; + }; // 0x1C + + + /* PRU_INTC_SISR register bit field */ + union { + volatile uint32_t SISR; + + volatile struct { + unsigned STS_SET_IDX : 10; // 9:0 + unsigned rsvd10 : 22; // 31:10 + } SISR_bit; + }; // 0x20 + + + /* PRU_INTC_SICR register bit field */ + union { + volatile uint32_t SICR; + + volatile struct { + unsigned STS_CLR_IDX : 10; // 9:0 + unsigned rsvd10 : 22; // 31:10 + } SICR_bit; + }; // 0x24 + + + /* PRU_INTC_EISR register bit field */ + union { + volatile uint32_t EISR; + + volatile struct { + unsigned EN_SET_IDX : 10; // 9:0 + unsigned rsvd10 : 22; // 31:10 + } EISR_bit; + }; // 0x28 + + + /* PRU_INTC_EICR register bit field */ + union { + volatile uint32_t EICR; + + volatile struct { + unsigned EN_CLR_IDX : 10; // 9:0 + unsigned rsvd10 : 22; // 31:10 + } EICR_bit; + }; // 0x2C + + + uint32_t rsvd30; // 0x30 + + + /* PRU_INTC_HIEISR register bit field */ + union { + volatile uint32_t HIEISR; + + volatile struct { + unsigned HINT_EN_SET_IDX : 4; // 3:0 + unsigned rsvd4 : 28; // 31:4 + } HIEISR_bit; + }; // 0x34 + + + /* PRU_INTC_HIDISR register bit field */ + union { + volatile uint32_t HIDISR; + + volatile struct { + unsigned HINT_EN_CLR_IDX : 4; // 3:0 + unsigned rsvd4 : 28; // 31:4 + } HIDISR_bit; + }; // 0x38 + + + uint32_t rsvd3C[17]; // 0x3C - 0x7C + + + /* PRU_INTC_GPIR register bit field */ + union { + volatile uint32_t GPIR; + + volatile struct { + unsigned GLB_PRI_INTR : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned GLB_NONE : 1; // 31 + } GPIR_bit; + }; // 0x80 + + + uint32_t rsvd84[95]; // 0x84 - 0x1FC + + + /* PRU_INTC_SRSR0 register bit field */ + union { + volatile uint32_t SRSR0; + + volatile struct { + unsigned RAW_STS_31_0 : 32; // 31:0 + } SRSR0_bit; + }; // 0x200 + + + /* PRU_INTC_SRSR1 register bit field */ + union { + volatile uint32_t SRSR1; + + volatile struct { + unsigned RAW_STS_63_32 : 32; // 31:0 + } SRSR1_bit; + }; // 0x204 + + + uint32_t rsvd208[30]; // 0x208 - 0x27C + + + /* PRU_INTC_SECR0 register bit field */ + union { + volatile uint32_t SECR0; + + volatile struct { + unsigned ENA_STS_31_0 : 32; // 31:0 + } SECR0_bit; + }; // 0x280 + + + /* PRU_INTC_SECR1 register bit field */ + union { + volatile uint32_t SECR1; + + volatile struct { + unsigned ENA_STS_63_32 : 32; // 31:0 + } SECR1_bit; + }; // 0x284 + + + uint32_t rsvd288[30]; // 0x288 - 0x2FC + + + /* PRU_INTC_ESR0 register bit field */ + union { + volatile uint32_t ESR0; + + volatile struct { + unsigned EN_SET_31_0 : 32; // 31:0 + } ESR0_bit; + }; // 0x300 + + + /* PRU_INTC_ESR1 register bit field */ + union { + volatile uint32_t ESR1; + + volatile struct { + unsigned EN_SET_63_32 : 32; // 31:0 + } ESR1_bit; + }; // 0x304 + + + uint32_t rsvd308[30]; // 0x308 - 0x37C + + + /* PRU_INTC_ECR0 register bit field */ + union { + volatile uint32_t ECR0; + + volatile struct { + unsigned EN_CLR_31_0 : 32; // 31:0 + } ECR0_bit; + }; // 0x380 + + + /* PRU_INTC_ECR1 register bit field */ + union { + volatile uint32_t ECR1; + + volatile struct { + unsigned EN_CLR_63_32 : 32; // 31:0 + } ECR1_bit; + }; // 0x384 + + + uint32_t rsvd388[30]; // 0x388 - 0x3FC + + + /* PRU_INTC_CMR0 register bit field */ + union { + volatile uint32_t CMR0; + + volatile struct { + unsigned CH_MAP_0 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_1 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_2 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_3 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR0_bit; + }; // 0x400 + + + /* PRU_INTC_CMR1 register bit field */ + union { + volatile uint32_t CMR1; + + volatile struct { + unsigned CH_MAP_4 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_5 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_6 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_7 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR1_bit; + }; // 0x404 + + + /* PRU_INTC_CMR2 register bit field */ + union { + volatile uint32_t CMR2; + + volatile struct { + unsigned CH_MAP_8 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_9 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_10 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_11 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR2_bit; + }; // 0x408 + + + /* PRU_INTC_CMR3 register bit field */ + union { + volatile uint32_t CMR3; + + volatile struct { + unsigned CH_MAP_12 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_13 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_14 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_15 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR3_bit; + }; // 0x40C + + + /* PRU_INTC_CMR4 register bit field */ + union { + volatile uint32_t CMR4; + + volatile struct { + unsigned CH_MAP_16 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_17 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_18 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_19 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR4_bit; + }; // 0x410 + + + /* PRU_INTC_CMR5 register bit field */ + union { + volatile uint32_t CMR5; + + volatile struct { + unsigned CH_MAP_20 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_21 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_22 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_23 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR5_bit; + }; // 0x414 + + + /* PRU_INTC_CMR6 register bit field */ + union { + volatile uint32_t CMR6; + + volatile struct { + unsigned CH_MAP_24 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_25 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_26 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_27 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR6_bit; + }; // 0x418 + + + /* PRU_INTC_CMR7 register bit field */ + union { + volatile uint32_t CMR7; + + volatile struct { + unsigned CH_MAP_28 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_29 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_30 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_31 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR7_bit; + }; // 0x41C + + + /* PRU_INTC_CMR8 register bit field */ + union { + volatile uint32_t CMR8; + + volatile struct { + unsigned CH_MAP_32 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_33 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_34 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_35 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR8_bit; + }; // 0x420 + + + /* PRU_INTC_CMR9 register bit field */ + union { + volatile uint32_t CMR9; + + volatile struct { + unsigned CH_MAP_36 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_37 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_38 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_39 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR9_bit; + }; // 0x424 + + + /* PRU_INTC_CMR10 register bit field */ + union { + volatile uint32_t CMR10; + + volatile struct { + unsigned CH_MAP_40 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_41 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_42 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_43 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR10_bit; + }; // 0x428 + + + /* PRU_INTC_CMR11 register bit field */ + union { + volatile uint32_t CMR11; + + volatile struct { + unsigned CH_MAP_44 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_45 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_46 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_47 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR11_bit; + }; // 0x42C + + + /* PRU_INTC_CMR12 register bit field */ + union { + volatile uint32_t CMR12; + + volatile struct { + unsigned CH_MAP_48 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_49 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_50 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_51 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR12_bit; + }; // 0x430 + + + /* PRU_INTC_CMR13 register bit field */ + union { + volatile uint32_t CMR13; + + volatile struct { + unsigned CH_MAP_52 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_53 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_54 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_55 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR13_bit; + }; // 0x434 + + + /* PRU_INTC_CMR14 register bit field */ + union { + volatile uint32_t CMR14; + + volatile struct { + unsigned CH_MAP_56 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_57 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_58 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_59 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR14_bit; + }; // 0x438 + + + /* PRU_INTC_CMR15 register bit field */ + union { + volatile uint32_t CMR15; + + volatile struct { + unsigned CH_MAP_60 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned CH_MAP_61 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned CH_MAP_62 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned CH_MAP_63 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } CMR15_bit; + }; // 0x43C + + + uint32_t rsvd440[240]; // 0x440 - 0x7FC + + + /* PRU_INTC_HMR0 register bit field */ + union { + volatile uint32_t HMR0; + + volatile struct { + unsigned HINT_MAP_0 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned HINT_MAP_1 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned HINT_MAP_2 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned HINT_MAP_3 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } HMR0_bit; + }; // 0x800 + + + /* PRU_INTC_HMR1 register bit field */ + union { + volatile uint32_t HMR1; + + volatile struct { + unsigned HINT_MAP_4 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned HINT_MAP_5 : 4; // 11:8 + unsigned rsvd12 : 4; // 15:12 + unsigned HINT_MAP_6 : 4; // 19:16 + unsigned rsvd20 : 4; // 23:20 + unsigned HINT_MAP_7 : 4; // 27:24 + unsigned rsvd28 : 4; // 31:28 + } HMR1_bit; + }; // 0x804 + + + /* PRU_INTC_HMR2 register bit field */ + union { + volatile uint32_t HMR2; + + volatile struct { + unsigned HINT_MAP_8 : 4; // 3:0 + unsigned rsvd4 : 4; // 7:4 + unsigned HINT_MAP_9 : 4; // 11:8 + unsigned rsvd12 : 20; // 31:12 + } HMR2_bit; + }; // 0x808 + + + uint32_t rsvd80C[61]; // 0x80C - 0x8FC + + + /* PRU_INTC_HIPIR0 register bit field */ + union { + volatile uint32_t HIPIR0; + + volatile struct { + unsigned PRI_HINT_0 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_0 : 1; // 31 + } HIPIR0_bit; + }; // 0x900 + + + /* PRU_INTC_HIPIR1 register bit field */ + union { + volatile uint32_t HIPIR1; + + volatile struct { + unsigned PRI_HINT_1 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_1 : 1; // 31 + } HIPIR1_bit; + }; // 0x904 + + + /* PRU_INTC_HIPIR2 register bit field */ + union { + volatile uint32_t HIPIR2; + + volatile struct { + unsigned PRI_HINT_2 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_2 : 1; // 31 + } HIPIR2_bit; + }; // 0x908 + + + /* PRU_INTC_HIPIR3 register bit field */ + union { + volatile uint32_t HIPIR3; + + volatile struct { + unsigned PRI_HINT_3 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_3 : 1; // 31 + } HIPIR3_bit; + }; // 0x90C + + + /* PRU_INTC_HIPIR4 register bit field */ + union { + volatile uint32_t HIPIR4; + + volatile struct { + unsigned PRI_HINT_4 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_4 : 1; // 31 + } HIPIR4_bit; + }; // 0x910 + + + /* PRU_INTC_HIPIR5 register bit field */ + union { + volatile uint32_t HIPIR5; + + volatile struct { + unsigned PRI_HINT_5 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_5 : 1; // 31 + } HIPIR5_bit; + }; // 0x914 + + + /* PRU_INTC_HIPIR6 register bit field */ + union { + volatile uint32_t HIPIR6; + + volatile struct { + unsigned PRI_HINT_6 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_6 : 1; // 31 + } HIPIR6_bit; + }; // 0x918 + + + /* PRU_INTC_HIPIR7 register bit field */ + union { + volatile uint32_t HIPIR7; + + volatile struct { + unsigned PRI_HINT_7 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_7 : 1; // 31 + } HIPIR7_bit; + }; // 0x91C + + + /* PRU_INTC_HIPIR8 register bit field */ + union { + volatile uint32_t HIPIR8; + + volatile struct { + unsigned PRI_HINT_8 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_8 : 1; // 31 + } HIPIR8_bit; + }; // 0x920 + + + /* PRU_INTC_HIPIR9 register bit field */ + union { + volatile uint32_t HIPIR9; + + volatile struct { + unsigned PRI_HINT_9 : 10; // 9:0 + unsigned rsvd10 : 21; // 30:10 + unsigned NONE_HINT_9 : 1; // 31 + } HIPIR9_bit; + }; // 0x924 + + + uint32_t rsvd928[246]; // 0x928 - 0xCFC + + + /* PRU_INTC_SIPR0 register bit field */ + union { + volatile uint32_t SIPR0; + + volatile struct { + unsigned POLARITY_31_0 : 32; // 31:0 + } SIPR0_bit; + }; // 0xD00 + + + /* PRU_INTC_SIPR1 register bit field */ + union { + volatile uint32_t SIPR1; + + volatile struct { + unsigned POLARITY_63_32 : 32; // 31:0 + } SIPR1_bit; + }; // 0xD04 + + + uint32_t rsvdD08[30]; // 0xD08 - 0xD7C + + + /* PRU_INTC_SITR0 register bit field */ + union { + volatile uint32_t SITR0; + + volatile struct { + unsigned TYPE_31_0 : 32; // 31:0 + } SITR0_bit; + }; // 0xD80 + + + /* PRU_INTC_SITR1 register bit field */ + union { + volatile uint32_t SITR1; + + volatile struct { + unsigned TYPE_63_32 : 32; // 31:0 + } SITR1_bit; + }; // 0xD84 + + + uint32_t rsvdD84[222]; // 0xD88 - 0x10FC + + + /* PRU_INTC_HINLR0 register bit field */ + union { + volatile uint32_t HINLR0; + + volatile struct { + unsigned NEST_HINT_0 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR0_bit; + }; // 0x1100 + + + /* PRU_INTC_HINLR1 register bit field */ + union { + volatile uint32_t HINLR1; + + volatile struct { + unsigned NEST_HINT_1 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR1_bit; + }; // 0x1104 + + + /* PRU_INTC_HINLR2 register bit field */ + union { + volatile uint32_t HINLR2; + + volatile struct { + unsigned NEST_HINT_2 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR2_bit; + }; // 0x1108 + + + /* PRU_INTC_HINLR3 register bit field */ + union { + volatile uint32_t HINLR3; + + volatile struct { + unsigned NEST_HINT_3 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR3_bit; + }; // 0x110C + + + /* PRU_INTC_HINLR4 register bit field */ + union { + volatile uint32_t HINLR4; + + volatile struct { + unsigned NEST_HINT_4 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR4_bit; + }; // 0x1110 + + + /* PRU_INTC_HINLR5 register bit field */ + union { + volatile uint32_t HINLR5; + + volatile struct { + unsigned NEST_HINT_5 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR5_bit; + }; // 0x1114 + + + /* PRU_INTC_HINLR6 register bit field */ + union { + volatile uint32_t HINLR6; + + volatile struct { + unsigned NEST_HINT_6 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR6_bit; + }; // 0x1118 + + + /* PRU_INTC_HINLR7 register bit field */ + union { + volatile uint32_t HINLR7; + + volatile struct { + unsigned NEST_HINT_7 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR7_bit; + }; // 0x111C + + + /* PRU_INTC_HINLR8 register bit field */ + union { + volatile uint32_t HINLR8; + + volatile struct { + unsigned NEST_HINT_8 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR8_bit; + }; // 0x1120 + + + /* PRU_INTC_HINLR9 register bit field */ + union { + volatile uint32_t HINLR9; + + volatile struct { + unsigned NEST_HINT_9 : 9; // 8:0 + unsigned rsvd9 : 22; // 30:9 + unsigned AUTO_OVERRIDE : 1; // 31 + } HINLR9_bit; + }; // 0x1124 + + + uint32_t rsvd1128[246]; // 0x1128 - 0x14FC + + + /* PRU_INTC_HIER register bit field */ + union { + volatile uint32_t HIER; + + volatile struct { + unsigned EN_HINT : 10; // 9:0 + unsigned rsvd9 : 22; // 31:10 + } HIER_bit; + }; // 0x1500 + +} pruIntc; + +#ifdef __GNUC__ +static volatile pruIntc *__CT_INTC = (void *)0x00020000; +#define CT_INTC (*__CT_INTC) +#else +volatile __far pruIntc CT_INTC __attribute__((cregister("PRU_INTC", far), peripheral)); +#endif + +#endif /* _PRU_INTC_H_ */ |