flash/nor: Add support for TI CC3220SF internal flash
[fw/openocd] / src / flash / nor / cc3220sf.h
1 /***************************************************************************
2  *   Copyright (C) 2017 by Texas Instruments, Inc.                         *
3  *                                                                         *
4  *   This program is free software; you can redistribute it and/or modify  *
5  *   it under the terms of the GNU General Public License as published by  *
6  *   the Free Software Foundation; either version 2 of the License, or     *
7  *   (at your option) any later version.                                   *
8  *                                                                         *
9  *   This program is distributed in the hope that it will be useful,       *
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12  *   GNU General Public License for more details.                          *
13  *                                                                         *
14  *   You should have received a copy of the GNU General Public License     *
15  *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
16  ***************************************************************************/
17
18 #ifndef OPENOCD_FLASH_NOR_CC3220SF_H
19 #define OPENOCD_FLASH_NOR_CC3220SF_H
20
21 /* CC3220SF device types */
22 #define CC3220_NO_TYPE 0 /* Device type not determined yet */
23 #define CC3220_OTHER   1 /* CC3220 variant without flash */
24 #define CC3220SF       2 /* CC3220SF variant with flash */
25
26 /* Flash parameters */
27 #define FLASH_BASE_ADDR   0x01000000
28 #define FLASH_SECTOR_SIZE 2048
29 #define FLASH_NUM_SECTORS 512
30
31 /* CC2200SF flash registers */
32 #define FMA_REGISTER_ADDR 0x400FD000
33 #define FMC_REGISTER_ADDR 0x400FD008
34 #define FMC_DEFAULT_VALUE 0xA4420000
35 #define FMC_ERASE_BIT     0x00000002
36 #define FMC_MERASE_BIT    0x00000004
37 #define FMC_ERASE_VALUE   (FMC_DEFAULT_VALUE | FMC_ERASE_BIT)
38 #define FMC_MERASE_VALUE  (FMC_DEFAULT_VALUE | FMC_MERASE_BIT)
39
40 /* Flash helper algorithm for CC3220SF */
41 const uint8_t cc3220sf_algo[] = {
42 #include "../../../contrib/loaders/flash/cc3220sf/cc3220sf.inc"
43 };
44
45 #endif /* OPENOCD_FLASH_NOR_CC3220SF_H */