xref: /rk3399_ARM-atf/include/drivers/nxp/flexspi/flash_info.h (revision aa05796e471e2a1a06508c0fb3771f01b44a1d20)
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  *  Copyright 2020-2021 NXP
4  */
5 
6 /**
7  * @Flash info
8  *
9  */
10 #ifndef FLASH_INFO_H
11 #define FLASH_INFO_H
12 
13 #define SZ_16M_BYTES			0x1000000U
14 
15 /* Start of "if defined(CONFIG_MT25QU512A)" */
16 #if defined(CONFIG_MT25QU512A)
17 #define F_SECTOR_64K			0x10000U
18 #define F_PAGE_256			0x100U
19 #define F_SECTOR_4K			0x1000U
20 #define F_FLASH_SIZE_BYTES		0x4000000U
21 #define F_SECTOR_ERASE_SZ		F_SECTOR_64K
22 #ifdef CONFIG_FSPI_4K_ERASE
23 #define F_SECTOR_ERASE_SZ		F_SECTOR_4K
24 #endif
25 
26 /* End of "if defined(CONFIG_MT25QU512A)" */
27 
28 /* Start of "if defined(CONFIG_MX25U25645G)" */
29 #elif defined(CONFIG_MX25U25645G)
30 #define F_SECTOR_64K			0x10000U
31 #define F_PAGE_256			0x100U
32 #define F_SECTOR_4K			0x1000U
33 #define F_FLASH_SIZE_BYTES		0x2000000U
34 #define F_SECTOR_ERASE_SZ		F_SECTOR_64K
35 #ifdef CONFIG_FSPI_4K_ERASE
36 #define F_SECTOR_ERASE_SZ		F_SECTOR_4K
37 #endif
38 
39 /* End of "if defined(CONFIG_MX25U25645G)" */
40 
41 /* Start of "if defined(CONFIG_MX25U51245G)" */
42 #elif defined(CONFIG_MX25U51245G)
43 #define F_SECTOR_64K			0x10000U
44 #define F_PAGE_256			0x100U
45 #define F_SECTOR_4K			0x1000U
46 #define F_FLASH_SIZE_BYTES		0x4000000U
47 #define F_SECTOR_ERASE_SZ		F_SECTOR_64K
48 #ifdef CONFIG_FSPI_4K_ERASE
49 #define F_SECTOR_ERASE_SZ		F_SECTOR_4K
50 #endif
51 
52 /* End of "if defined(CONFIG_MX25U51245G)" */
53 
54 /* Start of "if defined(CONFIG_MT35XU512A)" */
55 #elif defined(CONFIG_MT35XU512A)
56 #define F_SECTOR_128K			0x20000U
57 #define F_SECTOR_32K			0x8000U
58 #define F_PAGE_256			0x100U
59 #define F_SECTOR_4K			0x1000U
60 #define F_FLASH_SIZE_BYTES		0x4000000U
61 #define F_SECTOR_ERASE_SZ		F_SECTOR_128K
62 #ifdef CONFIG_FSPI_4K_ERASE
63 #define F_SECTOR_ERASE_SZ		F_SECTOR_4K
64 #endif
65 /* If Warm boot is enabled for the platform,
66  * count of arm instruction N-OP(s) to mark
67  * the completion of write operation to flash;
68  * varies from one flash to other.
69  */
70 #ifdef NXP_WARM_BOOT
71 #define FLASH_WR_COMP_WAIT_BY_NOP_COUNT	0x20000
72 #endif
73 
74 /* End of "if defined(CONFIG_MT35XU512A)" */
75 
76 /* Start of #elif defined(CONFIG_MT35XU02G) */
77 #elif defined(CONFIG_MT35XU02G)
78 #define F_SECTOR_128K			0x20000U
79 #define F_PAGE_256			0x100U
80 #define F_SECTOR_4K			0x1000U
81 #define F_FLASH_SIZE_BYTES		0x10000000U
82 #define F_SECTOR_ERASE_SZ		F_SECTOR_128K
83 #ifdef CONFIG_FSPI_4K_ERASE
84 #define F_SECTOR_ERASE_SZ		F_SECTOR_4K
85 #endif
86 
87 /* End of #elif defined(CONFIG_MT35XU02G) */
88 
89 /* Start of #elif Micron MT25QU01GBBB, GigaDevice GD55LB01GF, Macronix MX66U1G45G, Winbond W25Q01NW */
90 #elif defined(CONFIG_MT25QU01GBBB) || \
91       defined(CONFIG_GD55LB01GF)   || \
92       defined(CONFIG_MX66U1G45G)   || \
93       defined(CONFIG_W25Q01NW)
94 
95 /* Common geometry for 1Gbit (128MiB) */
96 #define F_SECTOR_64K			0x10000U
97 #define F_PAGE_256			0x100U
98 #define F_SECTOR_4K			0x1000U
99 #define F_FLASH_SIZE_BYTES		0x8000000U   /* 128 MiB */
100 #define F_SECTOR_ERASE_SZ		F_SECTOR_64K
101 #ifdef CONFIG_FSPI_4K_ERASE
102 #undef  F_SECTOR_ERASE_SZ
103 #define F_SECTOR_ERASE_SZ		F_SECTOR_4K
104 #endif
105 
106 /* End of #elif Micron MT25QU01GBBB, GigaDevice GD55LB01GF, Macronix MX66U1G45G, Winbond W25Q01NW */
107 #endif
108 
109 #endif /* FLASH_INFO_H */
110