Skip to content

Commit 5c359d4

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 5c359d4

File tree

78 files changed

+11792
-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

+11792
-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: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/*
2+
* Copyright 2018-2022 NXP
3+
* All rights reserved.
4+
*
5+
* SPDX-License-Identifier: BSD-3-Clause
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, 0x00, 0x00, 0x00, 0x00,
33+
0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00,
35+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
36+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x04, 0x18, 0x0a, 0x06,
39+
0x32, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x04, 0x04, 0x24, 0x00, 0x00, 0x00, 0x00,
40+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41+
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
42+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
43+
0x04, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
44+
0x00, 0x00, 0x00, 0x00, 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, 0xd8, 0x04, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
46+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x18, 0x08, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
48+
0x60, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
49+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
50+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00,
54+
0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
56+
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57+
0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00};
59+
#else
60+
61+
/* FCB for W25Q64 */
62+
const flexspi_nor_image_config
63+
image_config =
64+
{.image_version = 0xFFFE0001u,
65+
.fcb_config =
66+
{
67+
.memConfig =
68+
{
69+
.tag = FLEXSPI_CFG_BLK_TAG,
70+
.version = FLEXSPI_CFG_BLK_VERSION,
71+
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
72+
.csHoldTime = 3u,
73+
.csSetupTime = 3u,
74+
// Enable DDR mode, Wordaddassable, Safe configuration, Differential clock
75+
.controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable),
76+
.deviceType = kFlexSpiDeviceType_SerialNOR,
77+
.sflashPadType = kSerialFlash_4Pads,
78+
.serialClkFreq = kFlexSpiSerialClk_75MHz,
79+
.sflashA1Size = 8u * 1024u * 1024u,
80+
.lookupTable =
81+
{
82+
// Read LUTs
83+
[0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
84+
[1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
85+
86+
// Read Status LUTs
87+
[4 * 1 + 0] =
88+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04),
89+
90+
// Write Enable LUTs
91+
[4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0),
92+
93+
// Erase Sector LUTs
94+
[4 * 5 + 0] =
95+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),
96+
97+
// Erase Block LUTs
98+
[4 * 8 + 0] =
99+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18),
100+
101+
// Pape Program LUTs
102+
[4 * 9 + 0] =
103+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18),
104+
[4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0),
105+
106+
// Erase Chip LUTs
107+
[4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0),
108+
},
109+
},
110+
.pageSize = 256u,
111+
.sectorSize = 4u * 1024u,
112+
.ipcmdSerialClkFreq = 1u,
113+
.blockSize = 64u * 1024u,
114+
.isUniformBlockSize = false,
115+
}};
116+
#endif

0 commit comments

Comments
 (0)