Skip to content

Commit 9e64dd7

Browse files
committed
boards: nxp: Move board specific files from hal to zephyr
Move board specific files (dcd, flash_config, etc.) from nxp hal repo to zephyr repo. Signed-off-by: Zhaoxiang Jin <[email protected]>
1 parent bfad9a0 commit 9e64dd7

File tree

78 files changed

+13560
-154
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+13560
-154
lines changed

boards/nxp/frdm_mcxn947/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ zephyr_library_sources(board.c)
1010
if(CONFIG_FLEXSPI_CONFIG_BLOCK_OFFSET)
1111
# Include flash configuration block
1212
zephyr_compile_definitions(XIP_BOOT_HEADER_ENABLE=1)
13-
set(BOARD_DIR "${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk-ng/boards/frdmmcxn947")
14-
zephyr_library_sources(${BOARD_DIR}/xip/mcxn_flexspi_nor_config.c)
15-
zephyr_library_include_directories(${BOARD_DIR}/xip)
13+
zephyr_library_sources(xip/mcxn_flexspi_nor_config.c)
14+
zephyr_library_include_directories(xip)
1615
endif()
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
/*
2+
* Copyright 2018-2022 NXP
3+
* All rights reserved.
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
#include "mcxn_flexspi_nor_config.h"
9+
10+
/* Component ID definition, used by tools. */
11+
#ifndef FSL_COMPONENT_ID
12+
#define FSL_COMPONENT_ID "platform.drivers.xip_board"
13+
#endif
14+
15+
/*******************************************************************************
16+
* Code
17+
******************************************************************************/
18+
19+
#if defined(__CC_ARM) || defined(__ARMCC_VERSION) || defined(__GNUC__)
20+
__attribute__((section(".flexspi_fcb"), used))
21+
#elif defined(__ICCARM__)
22+
#pragma location = ".flexspi_fcb"
23+
#endif
24+
25+
#ifndef FLEXSPI_USE_CUSTOM_FCB
26+
#define FLEXSPI_USE_CUSTOM_FCB (0)
27+
#endif
28+
29+
#if FLEXSPI_USE_CUSTOM_FCB
30+
/* FCB for W25Q64 */
31+
const uint8_t CUSTOM_FCB[] = {
32+
0x46, 0x43, 0x46, 0x42, 0x00, 0x04, 0x01, 0x56, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03,
33+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36+
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00,
37+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x04, 0x18, 0x0a, 0x06, 0x32, 0x04,
41+
0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x04, 0x04, 0x24, 0x00, 0x00,
42+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
43+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x00,
44+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
45+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04,
46+
0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
48+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
49+
0x00, 0xd8, 0x04, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
50+
0x00, 0x00, 0x02, 0x04, 0x18, 0x08, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52+
0x00, 0x00, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
54+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
61+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
62+
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63+
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
64+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66+
0x00, 0x00};
67+
#else
68+
69+
/* FCB for W25Q64 */
70+
const flexspi_nor_image_config
71+
image_config =
72+
{.image_version = 0xFFFE0001u,
73+
.fcb_config =
74+
{
75+
.memConfig =
76+
{
77+
.tag = FLEXSPI_CFG_BLK_TAG,
78+
.version = FLEXSPI_CFG_BLK_VERSION,
79+
.readSampleClkSrc =
80+
kFlexSPIReadSampleClk_LoopbackFromDqsPad,
81+
.csHoldTime = 3u,
82+
.csSetupTime = 3u,
83+
// Enable DDR mode, Wordaddassable, Safe
84+
// configuration, Differential clock
85+
.controllerMiscOption = (1u
86+
<< kFlexSpiMiscOffset_SafeConfigFreqEnable),
87+
.deviceType = kFlexSpiDeviceType_SerialNOR,
88+
.sflashPadType = kSerialFlash_4Pads,
89+
.serialClkFreq = kFlexSpiSerialClk_75MHz,
90+
.sflashA1Size = 8u * 1024u * 1024u,
91+
.lookupTable =
92+
{
93+
// Read LUTs
94+
[0] =
95+
FLEXSPI_LUT_SEQ(CMD_SDR,
96+
FLEXSPI_1PAD,
97+
0xEB,
98+
RADDR_SDR, FLEXSPI_4PAD, 0x18),
99+
[1] =
100+
FLEXSPI_LUT_SEQ(DUMMY_SDR,
101+
FLEXSPI_4PAD, 0x06,
102+
READ_SDR, FLEXSPI_4PAD, 0x04),
103+
104+
// Read Status LUTs
105+
[4 * 1 + 0] =
106+
FLEXSPI_LUT_SEQ(CMD_SDR,
107+
FLEXSPI_1PAD,
108+
0x05, READ_SDR, FLEXSPI_1PAD, 0x04),
109+
110+
// Write Enable LUTs
111+
[4 * 3 + 0] =
112+
FLEXSPI_LUT_SEQ(CMD_SDR,
113+
FLEXSPI_1PAD,
114+
0x06, STOP, FLEXSPI_1PAD, 0x0),
115+
116+
// Erase Sector LUTs
117+
[4 * 5 + 0] =
118+
FLEXSPI_LUT_SEQ(CMD_SDR,
119+
FLEXSPI_1PAD,
120+
0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),
121+
122+
// Erase Block LUTs
123+
[4 * 8 + 0] =
124+
FLEXSPI_LUT_SEQ(CMD_SDR,
125+
FLEXSPI_1PAD,
126+
0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18),
127+
128+
// Pape Program LUTs
129+
[4 * 9 + 0] =
130+
FLEXSPI_LUT_SEQ(CMD_SDR,
131+
FLEXSPI_1PAD,
132+
0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18),
133+
[4 * 9 +
134+
1] = FLEXSPI_LUT_SEQ(WRITE_SDR,
135+
FLEXSPI_1PAD, 0x04,
136+
STOP, FLEXSPI_1PAD, 0x0),
137+
138+
// Erase Chip LUTs
139+
[4 * 11 + 0] =
140+
FLEXSPI_LUT_SEQ(CMD_SDR,
141+
FLEXSPI_1PAD,
142+
0x60, STOP, FLEXSPI_1PAD, 0x0),
143+
},
144+
},
145+
.pageSize = 256u,
146+
.sectorSize = 4u * 1024u,
147+
.ipcmdSerialClkFreq = 1u,
148+
.blockSize = 64u * 1024u,
149+
.isUniformBlockSize = false,
150+
}};
151+
#endif

0 commit comments

Comments
 (0)