Replies: 1 comment
-
Hi @skanda19 , To erase or program the flash in your application, you need to use a flash driver for that, which is why I see IS25WX256 is an octal DDR flash. There are some similar flash devices that have their own FlexSPI driver, like these 2 below. You can use those as a reference for enabling the IS25WX256. Best regards |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I been working with a custom board based on the RT600 with an octal memory ISSI IS25WX256-JHLE. I been trying to add support for Little FS and eventually MCUBOOT but when I explored the examples available with these features, both of them use CONFIG_FLASH and some other Kconfig options. In my case when I am working with my FCB without these Kconfig options my system boots and works just fine, but as soon as I add CONFIG_FLASH, my system just bricks and I get no output on my console.
I been trying multiple workarounds like commentating some of the initialization routines of the driver "flash_mcux_flexspi_nor.c", but my ideas doesn't seem to work.
my current flash_config.c looks like this:
const flexspi_nor_config_t flexspi_config = {
.memConfig = {
.tag = FLASH_CONFIG_BLOCK_TAG, /* 0x42464346 /
.version = FLASH_CONFIG_BLOCK_VERSION, / 0x56010400 /
.csHoldTime = 3,
.csSetupTime = 3,
.readSampleClkSrc = 3,
.deviceModeCfgEnable = 1,
.deviceModeType = kDeviceConfigCmdType_Generic, / kDeviceConfigCmdType_Spi2Xpi /
.waitTimeCfgCommands = 1,
.deviceModeType = 2, // cambiado
.waitTimeCfgCommands = 1,
.deviceModeSeq =
{
.seqNum = 1,
.seqId = 3,
},
.deviceModeArg = 0xE7,
.configCmdEnable = 1, // cambiado
.configModeType = {2, 0, 0},
.waitTimeCfgCommands = 1,
// .configCmdSeqs =
// {
// {
// .seqNum = 1,
// .seqId = 2,
// },
// {
// .seqNum = 2,
// .seqId = 8,
// },
// {
// .seqNum = 1,
// .seqId = 11,
// },
// },
.configCmdSeqs = {
{.seqNum = 1, .seqId = 3},
{0},
{0},
},
// .configCmdArgs = {0x2, 0x81},
.configCmdArgs = {0xE7, 0, 0},
.controllerMiscOption = 0x50,
.deviceType = 1, / NOR Flash /
.sflashPadType = kSerialFlash_8Pads, / kSerialFlash_8Pads /
.serialClkFreq = kFlexSpiSerialClk_SDR_48MHz,
.sflashA1Size = 0x2000000U, / 32MB /
.lookupTable = {
/ Read (Octal DDR) - Comando FDh (DDR Fast Read) */
[0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xFD, RADDR_DDR, FLEXSPI_8PAD, 0x20),
[1] = FLEXSPI_LUT_SEQ(DUMMY_DDR, FLEXSPI_8PAD, 0x06, READ_DDR, FLEXSPI_8PAD, 0x04),
// /* Configure Register (Non-Volatile CR) - Comando B1h */
[4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_8PAD, 0xDC, RADDR_DDR, FLEXSPI_8PAD, 0x20),
};
custom dts and dtsi:
/ {
model = "NXP CUSTOM_RT685 board";
compatible = "nxp,custom_rt685";
};
&flexspi {
pinctrl-0 = <&pinmux_flexspi>;
pinctrl-names = "default";
status = "okay";
};
I been able to read memory areas using memory-map access at 0x8000000 and been able to confirm this by reading the fcb and later verified with j-flash commander reading the exact same region with the same data.
my code is based on the repo version 4.1.0
is there a way I could not use this options and still configure little fs and mcuboot to work with my project ? is there something I missing ?
please any help will be greatly appreciated.
Beta Was this translation helpful? Give feedback.
All reactions