123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- //###########################################################################
- //
- // FILE: F2837xD_flash.h
- //
- // TITLE: FLASH Register Definitions.
- //
- //###########################################################################
- // $TI Release: F2837xD Support Library v3.05.00.00 $
- // $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
- // $Copyright:
- // Copyright (C) 2013-2018 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 __F2837xD_FLASH_H__
- #define __F2837xD_FLASH_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- //---------------------------------------------------------------------------
- // FLASH Individual Register Bit Definitions:
- struct FRDCNTL_BITS { // bits description
- Uint16 rsvd1:8; // 7:0 Reserved
- Uint16 RWAIT:4; // 11:8 Random Read Waitstate
- Uint16 rsvd2:4; // 15:12 Reserved
- Uint16 rsvd3:16; // 31:16 Reserved
- };
- union FRDCNTL_REG {
- Uint32 all;
- struct FRDCNTL_BITS bit;
- };
- struct FBAC_BITS { // bits description
- Uint16 VREADST:8; // 7:0 VREAD Setup Time Count
- Uint16 rsvd1:8; // 15:8 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FBAC_REG {
- Uint32 all;
- struct FBAC_BITS bit;
- };
- struct FBFALLBACK_BITS { // bits description
- Uint16 BNKPWR0:2; // 1:0 Bank Power Mode
- Uint16 rsvd1:14; // 15:2 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FBFALLBACK_REG {
- Uint32 all;
- struct FBFALLBACK_BITS bit;
- };
- struct FBPRDY_BITS { // bits description
- Uint16 BANKRDY:1; // 0 Flash Bank Active Power State
- Uint16 rsvd1:14; // 14:1 Reserved
- Uint16 PUMPRDY:1; // 15 Flash Pump Active Power Mode
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FBPRDY_REG {
- Uint32 all;
- struct FBPRDY_BITS bit;
- };
- struct FPAC1_BITS { // bits description
- Uint16 PMPPWR:1; // 0 Charge Pump Fallback Power Mode
- Uint16 rsvd1:15; // 15:1 Reserved
- Uint16 PSLEEP:12; // 27:16 Pump Sleep Down Count
- Uint16 rsvd2:4; // 31:28 Reserved
- };
- union FPAC1_REG {
- Uint32 all;
- struct FPAC1_BITS bit;
- };
- struct FMSTAT_BITS { // bits description
- Uint16 rsvd1:1; // 0 Reserved
- Uint16 rsvd2:1; // 1 Reserved
- Uint16 rsvd3:1; // 2 Reserved
- Uint16 VOLTSTAT:1; // 3 Flash Pump Power Status
- Uint16 CSTAT:1; // 4 Command Fail Status
- Uint16 INVDAT:1; // 5 Invalid Data
- Uint16 PGM:1; // 6 Program Operation Status
- Uint16 ERS:1; // 7 Erase Operation Status
- Uint16 BUSY:1; // 8 Busy Bit
- Uint16 rsvd4:1; // 9 Reserved
- Uint16 EV:1; // 10 Erase Verify Status
- Uint16 rsvd5:1; // 11 Reserved
- Uint16 PGV:1; // 12 Programming Verify Status
- Uint16 rsvd6:1; // 13 Reserved
- Uint16 rsvd7:1; // 14 Reserved
- Uint16 rsvd8:1; // 15 Reserved
- Uint16 rsvd9:1; // 16 Reserved
- Uint16 rsvd10:1; // 17 Reserved
- Uint16 rsvd11:14; // 31:18 Reserved
- };
- union FMSTAT_REG {
- Uint32 all;
- struct FMSTAT_BITS bit;
- };
- struct FRD_INTF_CTRL_BITS { // bits description
- Uint16 PREFETCH_EN:1; // 0 Prefetch Enable
- Uint16 DATA_CACHE_EN:1; // 1 Data Cache Enable
- Uint16 rsvd1:14; // 15:2 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FRD_INTF_CTRL_REG {
- Uint32 all;
- struct FRD_INTF_CTRL_BITS bit;
- };
- struct FLASH_CTRL_REGS {
- union FRDCNTL_REG FRDCNTL; // Flash Read Control Register
- Uint16 rsvd1[28]; // Reserved
- union FBAC_REG FBAC; // Flash Bank Access Control Register
- union FBFALLBACK_REG FBFALLBACK; // Flash Bank Fallback Power Register
- union FBPRDY_REG FBPRDY; // Flash Bank Pump Ready Register
- union FPAC1_REG FPAC1; // Flash Pump Access Control Register 1
- Uint16 rsvd2[4]; // Reserved
- union FMSTAT_REG FMSTAT; // Flash Module Status Register
- Uint16 rsvd3[340]; // Reserved
- union FRD_INTF_CTRL_REG FRD_INTF_CTRL; // Flash Read Interface Control Register
- };
- struct ECC_ENABLE_BITS { // bits description
- Uint16 ENABLE:4; // 3:0 Enable ECC
- Uint16 rsvd1:12; // 15:4 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union ECC_ENABLE_REG {
- Uint32 all;
- struct ECC_ENABLE_BITS bit;
- };
- struct ERR_STATUS_BITS { // bits description
- Uint16 FAIL_0_L:1; // 0 Lower 64bits Single Bit Error Corrected Value 0
- Uint16 FAIL_1_L:1; // 1 Lower 64bits Single Bit Error Corrected Value 1
- Uint16 UNC_ERR_L:1; // 2 Lower 64 bits Uncorrectable error occurred
- Uint16 rsvd1:13; // 15:3 Reserved
- Uint16 FAIL_0_H:1; // 16 Upper 64bits Single Bit Error Corrected Value 0
- Uint16 FAIL_1_H:1; // 17 Upper 64bits Single Bit Error Corrected Value 1
- Uint16 UNC_ERR_H:1; // 18 Upper 64 bits Uncorrectable error occurred
- Uint16 rsvd2:13; // 31:19 Reserved
- };
- union ERR_STATUS_REG {
- Uint32 all;
- struct ERR_STATUS_BITS bit;
- };
- struct ERR_POS_BITS { // bits description
- Uint16 ERR_POS_L:6; // 5:0 Bit Position of Single bit Error in lower 64 bits
- Uint16 rsvd1:2; // 7:6 Reserved
- Uint16 ERR_TYPE_L:1; // 8 Error Type in lower 64 bits
- Uint16 rsvd2:7; // 15:9 Reserved
- Uint16 ERR_POS_H:6; // 21:16 Bit Position of Single bit Error in upper 64 bits
- Uint16 rsvd3:2; // 23:22 Reserved
- Uint16 ERR_TYPE_H:1; // 24 Error Type in upper 64 bits
- Uint16 rsvd4:7; // 31:25 Reserved
- };
- union ERR_POS_REG {
- Uint32 all;
- struct ERR_POS_BITS bit;
- };
- struct ERR_STATUS_CLR_BITS { // bits description
- Uint16 FAIL_0_L_CLR:1; // 0 Lower 64bits Single Bit Error Corrected Value 0 Clear
- Uint16 FAIL_1_L_CLR:1; // 1 Lower 64bits Single Bit Error Corrected Value 1 Clear
- Uint16 UNC_ERR_L_CLR:1; // 2 Lower 64 bits Uncorrectable error occurred Clear
- Uint16 rsvd1:13; // 15:3 Reserved
- Uint16 FAIL_0_H_CLR:1; // 16 Upper 64bits Single Bit Error Corrected Value 0 Clear
- Uint16 FAIL_1_H_CLR:1; // 17 Upper 64bits Single Bit Error Corrected Value 1 Clear
- Uint16 UNC_ERR_H_CLR:1; // 18 Upper 64 bits Uncorrectable error occurred Clear
- Uint16 rsvd2:13; // 31:19 Reserved
- };
- union ERR_STATUS_CLR_REG {
- Uint32 all;
- struct ERR_STATUS_CLR_BITS bit;
- };
- struct ERR_CNT_BITS { // bits description
- Uint16 ERR_CNT:16; // 15:0 Error counter
- Uint16 rsvd1:16; // 31:16 Reserved
- };
- union ERR_CNT_REG {
- Uint32 all;
- struct ERR_CNT_BITS bit;
- };
- struct ERR_THRESHOLD_BITS { // bits description
- Uint16 ERR_THRESHOLD:16; // 15:0 Error Threshold
- Uint16 rsvd1:16; // 31:16 Reserved
- };
- union ERR_THRESHOLD_REG {
- Uint32 all;
- struct ERR_THRESHOLD_BITS bit;
- };
- struct ERR_INTFLG_BITS { // bits description
- Uint16 SINGLE_ERR_INTFLG:1; // 0 Single Error Interrupt Flag
- Uint16 UNC_ERR_INTFLG:1; // 1 Uncorrectable Interrupt Flag
- Uint16 rsvd1:14; // 15:2 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union ERR_INTFLG_REG {
- Uint32 all;
- struct ERR_INTFLG_BITS bit;
- };
- struct ERR_INTCLR_BITS { // bits description
- Uint16 SINGLE_ERR_INTCLR:1; // 0 Single Error Interrupt Flag Clear
- Uint16 UNC_ERR_INTCLR:1; // 1 Uncorrectable Interrupt Flag Clear
- Uint16 rsvd1:14; // 15:2 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union ERR_INTCLR_REG {
- Uint32 all;
- struct ERR_INTCLR_BITS bit;
- };
- struct FADDR_TEST_BITS { // bits description
- Uint16 rsvd1:3; // 2:0 Reserved
- Uint16 ADDRL:13; // 15:3 ECC Address Low
- Uint16 ADDRH:6; // 21:16 ECC Address High
- Uint16 rsvd2:10; // 31:22 Reserved
- };
- union FADDR_TEST_REG {
- Uint32 all;
- struct FADDR_TEST_BITS bit;
- };
- struct FECC_TEST_BITS { // bits description
- Uint16 ECC:8; // 7:0 ECC Control Bits
- Uint16 rsvd1:8; // 15:8 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FECC_TEST_REG {
- Uint32 all;
- struct FECC_TEST_BITS bit;
- };
- struct FECC_CTRL_BITS { // bits description
- Uint16 ECC_TEST_EN:1; // 0 Enable ECC Test Logic
- Uint16 ECC_SELECT:1; // 1 ECC Bit Select
- Uint16 DO_ECC_CALC:1; // 2 Enable ECC Calculation
- Uint16 rsvd1:13; // 15:3 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FECC_CTRL_REG {
- Uint32 all;
- struct FECC_CTRL_BITS bit;
- };
- struct FECC_STATUS_BITS { // bits description
- Uint16 SINGLE_ERR:1; // 0 Test Result is Single Bit Error
- Uint16 UNC_ERR:1; // 1 Test Result is Uncorrectable Error
- Uint16 DATA_ERR_POS:6; // 7:2 Holds Bit Position of Error
- Uint16 ERR_TYPE:1; // 8 Holds Bit Position of 8 Check Bits of Error
- Uint16 rsvd1:7; // 15:9 Reserved
- Uint16 rsvd2:16; // 31:16 Reserved
- };
- union FECC_STATUS_REG {
- Uint32 all;
- struct FECC_STATUS_BITS bit;
- };
- struct FLASH_ECC_REGS {
- union ECC_ENABLE_REG ECC_ENABLE; // ECC Enable
- Uint32 SINGLE_ERR_ADDR_LOW; // Single Error Address Low
- Uint32 SINGLE_ERR_ADDR_HIGH; // Single Error Address High
- Uint32 UNC_ERR_ADDR_LOW; // Uncorrectable Error Address Low
- Uint32 UNC_ERR_ADDR_HIGH; // Uncorrectable Error Address High
- union ERR_STATUS_REG ERR_STATUS; // Error Status
- union ERR_POS_REG ERR_POS; // Error Position
- union ERR_STATUS_CLR_REG ERR_STATUS_CLR; // Error Status Clear
- union ERR_CNT_REG ERR_CNT; // Error Control
- union ERR_THRESHOLD_REG ERR_THRESHOLD; // Error Threshold
- union ERR_INTFLG_REG ERR_INTFLG; // Error Interrupt Flag
- union ERR_INTCLR_REG ERR_INTCLR; // Error Interrupt Flag Clear
- Uint32 FDATAH_TEST; // Data High Test
- Uint32 FDATAL_TEST; // Data Low Test
- union FADDR_TEST_REG FADDR_TEST; // ECC Test Address
- union FECC_TEST_REG FECC_TEST; // ECC Test Address
- union FECC_CTRL_REG FECC_CTRL; // ECC Control
- Uint32 FOUTH_TEST; // Test Data Out High
- Uint32 FOUTL_TEST; // Test Data Out Low
- union FECC_STATUS_REG FECC_STATUS; // ECC Status
- };
- struct PUMPREQUEST_BITS { // bits description
- Uint16 PUMP_OWNERSHIP:2; // 1:0 Flash Pump Request Semaphore between CPU1 and CPU2
- Uint16 rsvd1:14; // 15:2 Reserved
- Uint16 KEY:16; // 31:16 Key Qualifier for writes to this register
- };
- union PUMPREQUEST_REG {
- Uint32 all;
- struct PUMPREQUEST_BITS bit;
- };
- struct FLASH_PUMP_SEMAPHORE_REGS {
- union PUMPREQUEST_REG PUMPREQUEST; // Flash programming semaphore PUMP request register
- };
- //---------------------------------------------------------------------------
- // FLASH External References & Function Declarations:
- //
- #ifdef CPU1
- extern volatile struct FLASH_PUMP_SEMAPHORE_REGS FlashPumpSemaphoreRegs;
- extern volatile struct FLASH_CTRL_REGS Flash0CtrlRegs;
- extern volatile struct FLASH_ECC_REGS Flash0EccRegs;
- #endif
- #ifdef CPU2
- extern volatile struct FLASH_PUMP_SEMAPHORE_REGS FlashPumpSemaphoreRegs;
- extern volatile struct FLASH_CTRL_REGS Flash0CtrlRegs;
- extern volatile struct FLASH_ECC_REGS Flash0EccRegs;
- #endif
- #ifdef __cplusplus
- }
- #endif /* extern "C" */
- #endif
- //===========================================================================
- // End of file.
- //===========================================================================
|