empty_project_28377D/device/driverlib/inc/hw_hic.h

343 lines
20 KiB
C
Raw Permalink Normal View History

//###########################################################################
//
// FILE: hw_hic.h
//
// TITLE: Definitions for the HIC registers.
//
//###########################################################################
// $TI Release: $
// $Release Date: $
// $Copyright:
// Copyright (C) 2022 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 HW_HIC_H
#define HW_HIC_H
//*************************************************************************************************
//
// The following are defines for the HIC register offsets
//
//*************************************************************************************************
#define HIC_O_REV 0x0U // Module Revision Register
#define HIC_O_GCR 0x2U // Global Control Register
#define HIC_O_LOCK 0x4U // Lock Register
#define HIC_O_MODECR 0x6U // Mode Control Register
#define HIC_O_PINPOLCR 0x8U // Pin Polarity Control Register
#define HIC_O_BASESEL 0xAU // Base Select Register
#define HIC_O_HOSTCR 0xCU // Host Control Register
#define HIC_O_ERRADDR 0xEU // Host Error Address register
#define HIC_O_H2DTOKEN 0x10U // Host to Device Token Register
#define HIC_O_D2HTOKEN 0x12U // Devie to Host Token Register
#define HIC_O_DBADDR0 0x14U // Device Base Address Register 0
#define HIC_O_DBADDR1 0x16U // Device Base Address Register 1
#define HIC_O_DBADDR2 0x18U // Device Base Address Register 2
#define HIC_O_DBADDR3 0x1AU // Device Base Address Register 3
#define HIC_O_DBADDR4 0x1CU // Device Base Address Register 4
#define HIC_O_DBADDR5 0x1EU // Device Base Address Register 5
#define HIC_O_DBADDR6 0x20U // Device Base Address Register 6
#define HIC_O_DBADDR7 0x22U // Device Base Address Register 7
#define HIC_O_H2DINTEN 0x28U // H2D Interrupt Enable
#define HIC_O_H2DINTFLG 0x2AU // H2D Interrupt status Flag
#define HIC_O_H2DINTCLR 0x2CU // H2D Interrupt status Clear
#define HIC_O_H2DINTFRC 0x2EU // H2D Interrupt Set Force
#define HIC_O_D2HINTEN 0x30U // D2H Interrupt Enable
#define HIC_O_D2HINTFLG 0x32U // D2H Interrupt status Flag
#define HIC_O_D2HINTCLR 0x34U // D2H Interrupt status Clear
#define HIC_O_D2HINTFRC 0x36U // D2H Interrupt Set Force
#define HIC_O_ACCVIOADDR 0x38U // Access Violation Address
#define HIC_O_H2D_BUF0 0x40U // Host to Device Buffer 0
#define HIC_O_H2D_BUF1 0x42U // Host to Device Buffer 1
#define HIC_O_H2D_BUF2 0x44U // Host to Device Buffer 2
#define HIC_O_H2D_BUF3 0x46U // Host to Device Buffer 3
#define HIC_O_H2D_BUF4 0x48U // Host to Device Buffer 4
#define HIC_O_H2D_BUF5 0x4AU // Host to Device Buffer 5
#define HIC_O_H2D_BUF6 0x4CU // Host to Device Buffer 6
#define HIC_O_H2D_BUF7 0x4EU // Host to Device Buffer 7
#define HIC_O_H2D_BUF8 0x50U // Host to Device Buffer 8
#define HIC_O_H2D_BUF9 0x52U // Host to Device Buffer 9
#define HIC_O_H2D_BUF10 0x54U // Host to Device Buffer 10
#define HIC_O_H2D_BUF11 0x56U // Host to Device Buffer 11
#define HIC_O_H2D_BUF12 0x58U // Host to Device Buffer 12
#define HIC_O_H2D_BUF13 0x5AU // Host to Device Buffer 13
#define HIC_O_H2D_BUF14 0x5CU // Host to Device Buffer 14
#define HIC_O_H2D_BUF15 0x5EU // Host to Device Buffer 15
#define HIC_O_D2H_BUF0 0x60U // Device to Host Buffer 0
#define HIC_O_D2H_BUF1 0x62U // Device to Host Buffer 1
#define HIC_O_D2H_BUF2 0x64U // Device to Host Buffer 2
#define HIC_O_D2H_BUF3 0x66U // Device to Host Buffer 3
#define HIC_O_D2H_BUF4 0x68U // Device to Host Buffer 4
#define HIC_O_D2H_BUF5 0x6AU // Device to Host Buffer 5
#define HIC_O_D2H_BUF6 0x6CU // Device to Host Buffer 6
#define HIC_O_D2H_BUF7 0x6EU // Device to Host Buffer 7
#define HIC_O_D2H_BUF8 0x70U // Device to Host Buffer 8
#define HIC_O_D2H_BUF9 0x72U // Device to Host Buffer 9
#define HIC_O_D2H_BUF10 0x74U // Device to Host Buffer 10
#define HIC_O_D2H_BUF11 0x76U // Device to Host Buffer 11
#define HIC_O_D2H_BUF12 0x78U // Device to Host Buffer 12
#define HIC_O_D2H_BUF13 0x7AU // Device to Host Buffer 13
#define HIC_O_D2H_BUF14 0x7CU // Device to Host Buffer 14
#define HIC_O_D2H_BUF15 0x7EU // Device to Host Buffer 15
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICREV register
//
//*************************************************************************************************
#define HIC_REV_MINOR_S 0U
#define HIC_REV_MINOR_M 0x3FU // Minor Revision Number
#define HIC_REV_CUSTOM_S 6U
#define HIC_REV_CUSTOM_M 0xC0U // Custom Module Number
#define HIC_REV_MAJOR_S 8U
#define HIC_REV_MAJOR_M 0x700U // Major Revision Number
#define HIC_REV_RTL_S 11U
#define HIC_REV_RTL_M 0xF800U // Design Release Number
#define HIC_REV_FUNC_S 16U
#define HIC_REV_FUNC_M 0xFFF0000U // Functional Release Number
#define HIC_REV_SCHEME_S 30U
#define HIC_REV_SCHEME_M 0xC0000000U // Defines Scheme for Module
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICGCR register
//
//*************************************************************************************************
#define HIC_GCR_HICEN_S 0U
#define HIC_GCR_HICEN_M 0xFU // Host Interface Enable
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICLOCK register
//
//*************************************************************************************************
#define HIC_LOCK_LOCK 0x1U // LOCK enable
#define HIC_LOCK_WRITE_ENABLE_KEY_S 16U
#define HIC_LOCK_WRITE_ENABLE_KEY_M 0xFFFF0000U // Key for enabling write
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICMODECR register
//
//*************************************************************************************************
#define HIC_MODECR_DW_MODE_S 0U
#define HIC_MODECR_DW_MODE_M 0x3U // Data Width Mode
#define HIC_MODECR_RW_MODE 0x10U // Read-Write Mode
#define HIC_MODECR_BEN_PRESENT 0x20U // Byte Enable Pins are present
#define HIC_MODECR_RDY_PRESENT 0x40U // Ready pin present
#define HIC_MODECR_H2DBUF_DEVWREN 0x100U // Write Enable for Device to H2D Buffer
#define HIC_MODECR_D2HBUF_HOSTWREN 0x200U // Write Enable for Host to D2H Buffer
#define HIC_MODECR_EN_DEVACC 0x400U // Enable Host access to Device region
#define HIC_MODECR_EN_HOSTWREALLOW 0x800U // Enable Host Write to EALLOWCTL register
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICPINPOLCR register
//
//*************************************************************************************************
#define HIC_PINPOLCR_CS_POL 0x1U // Chip Select Polarity
#define HIC_PINPOLCR_BEN_POL 0x2U // Byte Enable Polarity
#define HIC_PINPOLCR_OE_POL 0x4U // Output Enable Polarity
#define HIC_PINPOLCR_WE_POL 0x8U // Write Enable Polarity
#define HIC_PINPOLCR_RDY_POL 0x10U // Ready Polarity
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICBASESEL register
//
//*************************************************************************************************
#define HIC_BASESEL_BASE_SELECT_S 0U
#define HIC_BASESEL_BASE_SELECT_M 0x7U // Base Select
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICHOSTCR register
//
//*************************************************************************************************
#define HIC_HOSTCR_EALLOW_EN 0x1U // EALLOW Enable
#define HIC_HOSTCR_ACCSIZE 0x2U // Access Size
#define HIC_HOSTCR_PAGESEL 0x4U // Page Select
#define HIC_HOSTCR_HKEY_S 8U
#define HIC_HOSTCR_HKEY_M 0xFF00U // Host Key
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICERRADDR register
//
//*************************************************************************************************
#define HIC_ERRADDR_H2D_ERR_ADDR_S 0U
#define HIC_ERRADDR_H2D_ERR_ADDR_M 0xFFU // Address of the Host bus captured upon an
// error for Device
#define HIC_ERRADDR_H2D_BASE_SEL_S 12U
#define HIC_ERRADDR_H2D_BASE_SEL_M 0x7000U // Base Select corresponding to H2D error event
#define HIC_ERRADDR_D2H_ERR_ADDR_S 16U
#define HIC_ERRADDR_D2H_ERR_ADDR_M 0xFF0000U // Address of the Host bus captured upon an
// error for Host
#define HIC_ERRADDR_D2H_BASE_SEL_S 28U
#define HIC_ERRADDR_D2H_BASE_SEL_M 0x70000000U // Base Select corresponding to D2H error event
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR0 register
//
//*************************************************************************************************
#define HIC_DBADDR0_BASE_ADDR_S 7U
#define HIC_DBADDR0_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR1 register
//
//*************************************************************************************************
#define HIC_DBADDR1_BASE_ADDR_S 7U
#define HIC_DBADDR1_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR2 register
//
//*************************************************************************************************
#define HIC_DBADDR2_BASE_ADDR_S 7U
#define HIC_DBADDR2_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR3 register
//
//*************************************************************************************************
#define HIC_DBADDR3_BASE_ADDR_S 7U
#define HIC_DBADDR3_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR4 register
//
//*************************************************************************************************
#define HIC_DBADDR4_BASE_ADDR_S 7U
#define HIC_DBADDR4_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR5 register
//
//*************************************************************************************************
#define HIC_DBADDR5_BASE_ADDR_S 7U
#define HIC_DBADDR5_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR6 register
//
//*************************************************************************************************
#define HIC_DBADDR6_BASE_ADDR_S 7U
#define HIC_DBADDR6_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICDBADDR7 register
//
//*************************************************************************************************
#define HIC_DBADDR7_BASE_ADDR_S 7U
#define HIC_DBADDR7_BASE_ADDR_M 0xFFFFFF80U // Base address of device region
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICH2DINTEN register
//
//*************************************************************************************************
#define HIC_H2DINTEN_H2D_INTEN 0x1U // Host To Device Interrupt Enable
#define HIC_H2DINTEN_BUSERR_INTEN 0x2U // BusError Interrupt Enable
#define HIC_H2DINTEN_ILLWR_INTEN 0x4U // Illegal Write event interrupt enable
#define HIC_H2DINTEN_ILLRD_INTEN 0x8U // Illegal Read event interrupt enable
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICH2DINTFLG register
//
//*************************************************************************************************
#define HIC_H2DINTFLG_H2D_FLG 0x1U // Host To Device Interrupt Flag
#define HIC_H2DINTFLG_BUSERR_FLG 0x2U // BusError Interrupt Flag
#define HIC_H2DINTFLG_ILLWR_FLG 0x4U // Illegal write event interrupt flag
#define HIC_H2DINTFLG_ILLRD_FLG 0x8U // Illegal read event interrupt flag
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICH2DINTCLR register
//
//*************************************************************************************************
#define HIC_H2DINTCLR_H2D_CLR 0x1U // Host To Device Interrupt Clear
#define HIC_H2DINTCLR_BUSERR_CLR 0x2U // BusError Interrupt Clear
#define HIC_H2DINTCLR_ILLWR_CLR 0x4U // Illegal Write Interrupt Clear
#define HIC_H2DINTCLR_ILLRD_CLR 0x8U // Illegal Read Interrupt Clear
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICH2DINTFRC register
//
//*************************************************************************************************
#define HIC_H2DINTFRC_H2D_INTFRC 0x1U // Host To Device Force Set
#define HIC_H2DINTFRC_BUSERR_INTFRC 0x2U // BusError Interrupt Force Set
#define HIC_H2DINTFRC_ILLWR_INTFRC 0x4U // Illegal Write Interrupt Force Set
#define HIC_H2DINTFRC_ILLRD_INTFRC 0x8U // Illegal Read Interrupt Force Set
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICD2HINTEN register
//
//*************************************************************************************************
#define HIC_D2HINTEN_D2H_INTEN 0x1U // Device to Host Data Ready Interrupt Enable
#define HIC_D2HINTEN_BUSERR_INTEN 0x2U // BusError Interrupt Enable
#define HIC_D2HINTEN_ILLWR_INTEN 0x4U // Illegal Write event Interrupt Enable
#define HIC_D2HINTEN_ILLRD_INTEN 0x8U // Illegal Read event Interrupt Enable
#define HIC_D2HINTEN_ACCVIO_INTEN 0x10U // Access Violation Interrupt Enable
#define HIC_D2HINTEN_EVTRIG_INTEN_S 16U
#define HIC_D2HINTEN_EVTRIG_INTEN_M 0xFFFF0000U // Event Trigger Interrupt Enable
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICD2HINTFLG register
//
//*************************************************************************************************
#define HIC_D2HINTFLG_D2H_FLG 0x1U // Device to Host Data Ready Flag
#define HIC_D2HINTFLG_BUSERR_FLG 0x2U // BusError Flag
#define HIC_D2HINTFLG_ILLWR_FLG 0x4U // Illegal Write event Flag
#define HIC_D2HINTFLG_ILLRD_FLG 0x8U // Illegal Read event Flag
#define HIC_D2HINTFLG_ACCVIO_FLG 0x10U // Access Violation Flag
#define HIC_D2HINTFLG_EVTRIG_FLG_S 16U
#define HIC_D2HINTFLG_EVTRIG_FLG_M 0xFFFF0000U // Event Trigger Flag
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICD2HINTCLR register
//
//*************************************************************************************************
#define HIC_D2HINTCLR_D2H_CLR 0x1U // Device to Host Interrupt Clear
#define HIC_D2HINTCLR_BUSERR_CLR 0x2U // BusError Interrupt Clear
#define HIC_D2HINTCLR_ILLWR_CLR 0x4U // Illegal Write Interrupt Clear
#define HIC_D2HINTCLR_ILLRD_CLR 0x8U // Illegal Read Interrupt Clear
#define HIC_D2HINTCLR_ACCVIO_CLR 0x10U // Access Violation Interrupt Clear
#define HIC_D2HINTCLR_EVTRIG_CLR_S 16U
#define HIC_D2HINTCLR_EVTRIG_CLR_M 0xFFFF0000U // Event Trigger Interrupt Clear
//*************************************************************************************************
//
// The following are defines for the bit fields in the HICD2HINTFRC register
//
//*************************************************************************************************
#define HIC_D2HINTFRC_D2H_INTFRC 0x1U // Device to Host Force Set
#define HIC_D2HINTFRC_BUSERR_INTFRC 0x2U // BusError Interrupt Force Set
#define HIC_D2HINTFRC_ILLWR_INTFRC 0x4U // Illegal Write Interrupt Force Set
#define HIC_D2HINTFRC_ILLRD_INTFRC 0x8U // Illegal Read Interrupt Force Set
#define HIC_D2HINTFRC_ACCVIO_INTFRC 0x10U // Access Violation Interrupt Force Set
#define HIC_D2HINTFRC_EVTRIG_INTFRC_S 16U
#define HIC_D2HINTFRC_EVTRIG_INTFRC_M 0xFFFF0000U // Event Trigger Interrupt Force Set
#endif