Error in MIMXRT1170-EVKB mflash_drv.c : Quad mode enable

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Error in MIMXRT1170-EVKB mflash_drv.c : Quad mode enable

350 次查看
hfuhruhurr
Contributor III

Hi all,

there's a bug in the SDK for the EVKB version of the RT1170 eval board. It still persists in the current version 25_06_00.

The flash driver (mflash_drv.c) has obviously been ported from the EVK board which contains a different QSPI flash.

The LUT enry for writing the status reg is

    /* Enable Quad mode */
    [4 * NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG] =
        FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x01, kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04),

and the enable quad mode code is

#if !defined(XIP_EXTERNAL_FLASH) || defined(MFLASH_FORCE_QUAD_MODE)
static status_t flexspi_nor_enable_quad_mode(FLEXSPI_Type *base)
{
    flexspi_transfer_t flashXfer;
    status_t status;
    uint32_t writeValue = 0x40;

    /* Write neable */
    status = flexspi_nor_write_enable(base, 0);

    if (status != kStatus_Success)
    {
        return status;
    }

    /* Enable quad mode. */
    flashXfer.deviceAddress = 0;
    flashXfer.port          = kFLEXSPI_PortA1;
    flashXfer.cmdType       = kFLEXSPI_Write;
    flashXfer.SeqNumber     = 1;
    flashXfer.seqIndex      = NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG;
    flashXfer.data          = &writeValue;
    flashXfer.dataSize      = 1;

    status = FLEXSPI_TransferBlocking(base, &flashXfer);

That is: value 0x40 is written with cmd 0x1.

In the older EVK board, the flash chip is ISSI IS25WP128.

There, cmd 0x1 writes 0x40 to the status register to set the quad enable bit.

In the EVK-B, the flash chip is Winbond W25Q512NW.

There, the quad enable bit is located in S9 which is bit 2 of status reg 2.

Here, value 0x02 needs to be written with cmd 0x31.

Best regards,

Rainer

 

标记 (3)
0 项奖励
回复
1 回复

312 次查看
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @hfuhruhurr,

Thanks for reporting this. I will look into it and escalate to the SDK team so they can do the appropriate changes on a future release of the SDK for the RT1170-EVKB.

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2136485%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMIMXRT1170-EVKB%20mflash_drv.c%20%E4%B8%AD%E7%9A%84%E9%94%99%E8%AF%AF%3A%E5%90%AF%E7%94%A8%E5%9B%9B%E6%A8%A1%E5%BC%8F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2136485%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3ERT1170%20%E8%AF%84%E4%BC%B0%E6%9D%BF%E7%9A%84%20EVKB%20%E7%89%88%E6%9C%AC%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E5%8C%85%E4%B8%AD%E5%AD%98%E5%9C%A8%E9%94%99%E8%AF%AF%E3%80%82%E5%9C%A8%E5%BD%93%E5%89%8D%E7%89%88%E6%9C%AC%2025_06_00%20%E4%B8%AD%E4%BB%8D%E7%84%B6%E5%AD%98%E5%9C%A8%E3%80%82%3C%2FP%3E%3CP%3E%E9%97%AA%E5%AD%98%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%EF%BC%88mflash_drv.c%EF%BC%89%E6%98%BE%E7%84%B6%E6%98%AF%E4%BB%8E%E5%8C%85%E5%90%AB%E4%B8%8D%E5%90%8C%E7%9A%84%20QSPI%20%E9%97%AA%E5%AD%98%E7%9A%84%20EVK%20%E6%9D%BF%E4%B8%8A%E7%A7%BB%E6%A4%8D%E7%9A%84%E3%80%82%3C%2FP%3E%3CP%3E%E5%86%99%E5%85%A5%E7%8A%B6%E6%80%81%E5%AF%84%E5%AD%98%E5%99%A8%E7%9A%84%20LUT%20%E5%80%BC%E4%B8%BA%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%20%20%20%20%2F*%20Enable%20Quad%20mode%20*%2F%0A%20%20%20%20%5B4%20*%20NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG%5D%20%3D%0A%20%20%20%20%20%20%20%20FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR%2C%20kFLEXSPI_1PAD%2C%200x01%2C%20kFLEXSPI_Command_WRITE_SDR%2C%20kFLEXSPI_1PAD%2C%200x04)%2C%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E5%90%AF%E7%94%A8%E5%9B%9B%E6%A8%A1%E5%BC%8F%E7%9A%84%E4%BB%A3%E7%A0%81%E4%B8%BA%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%23if%20!defined(XIP_EXTERNAL_FLASH)%20%7C%7C%20defined(MFLASH_FORCE_QUAD_MODE)%0Astatic%20status_t%20flexspi_nor_enable_quad_mode(FLEXSPI_Type%20*base)%0A%7B%0A%20%20%20%20flexspi_transfer_t%20flashXfer%3B%0A%20%20%20%20status_t%20status%3B%0A%20%20%20%20uint32_t%20writeValue%20%3D%200x40%3B%0A%0A%20%20%20%20%2F*%20Write%20neable%20*%2F%0A%20%20%20%20status%20%3D%20flexspi_nor_write_enable(base%2C%200)%3B%0A%0A%20%20%20%20if%20(status%20!%3D%20kStatus_Success)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%20status%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F*%20Enable%20quad%20mode.%20*%2F%0A%20%20%20%20flashXfer.deviceAddress%20%3D%200%3B%0A%20%20%20%20flashXfer.port%20%20%20%20%20%20%20%20%20%20%3D%20kFLEXSPI_PortA1%3B%0A%20%20%20%20flashXfer.cmdType%20%20%20%20%20%20%20%3D%20kFLEXSPI_Write%3B%0A%20%20%20%20flashXfer.SeqNumber%20%20%20%20%20%3D%201%3B%0A%20%20%20%20flashXfer.seqIndex%20%20%20%20%20%20%3D%20NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG%3B%0A%20%20%20%20flashXfer.data%20%20%20%20%20%20%20%20%20%20%3D%20%26amp%3BwriteValue%3B%0A%20%20%20%20flashXfer.dataSize%20%20%20%20%20%20%3D%201%3B%0A%0A%20%20%20%20status%20%3D%20FLEXSPI_TransferBlocking(base%2C%20%26amp%3BflashXfer)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E5%8D%B3%EF%BC%9A%E5%80%BC%200x40%20%E4%B8%8E%20cmd%200x1%20%E4%B8%80%E8%B5%B7%E5%86%99%E5%85%A5%E3%80%82%3C%2FP%3E%3CP%3E%E5%9C%A8%E8%BE%83%E6%97%A7%E7%9A%84%20EVK%20%E6%9D%BF%E4%B8%AD%EF%BC%8C%E9%97%AA%E5%AD%98%E8%8A%AF%E7%89%87%E6%98%AF%20ISSI%20IS25WP128%E3%80%82%3C%2FP%3E%3CP%3E%E5%9C%A8%E8%BF%99%E9%87%8C%EF%BC%8Ccmd%200x1%20%E5%90%91%E7%8A%B6%E6%80%81%E5%AF%84%E5%AD%98%E5%99%A8%E5%86%99%E5%85%A5%200x40%EF%BC%8C%E4%BB%A5%E8%AE%BE%E7%BD%AE%E5%9B%9B%E9%80%9A%E9%81%93%E4%BD%BF%E8%83%BD%E4%BD%8D%E3%80%82%3C%2FP%3E%3CP%3EEVK-B%20%E7%9A%84%E9%97%AA%E5%AD%98%E8%8A%AF%E7%89%87%E6%98%AF%20Winbond%20W25Q512NW%E3%80%82%3C%2FP%3E%3CP%3E%E5%85%B6%E4%B8%AD%EF%BC%8C%E5%9B%9B%E4%BD%8D%E4%BD%BF%E8%83%BD%E4%BD%8D%E4%BD%8D%E4%BA%8E%20S9%20%E4%B8%AD%EF%BC%8C%E5%8D%B3%E7%8A%B6%E6%80%81%E5%AF%84%E5%AD%98%E5%99%A8%202%20%E7%9A%84%E7%AC%AC%202%20%E4%BD%8D%E3%80%82%3C%2FP%3E%3CP%3E%E8%BF%99%E9%87%8C%E9%9C%80%E8%A6%81%E7%94%A8%20cmd%200x31%20%E5%86%99%E5%85%A5%E5%80%BC%200x02%E3%80%82%3C%2FP%3E%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%3CP%3E%E8%8E%B1%E7%BA%B3%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137724%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Error%20in%20MIMXRT1170-EVKB%20mflash_drv.c%20%3A%20Quad%20mode%20enable%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137724%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%EF%BC%8C%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F164203%22%20target%3D%22_blank%22%3E%40hfuhruhurr%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E6%8A%A5%E5%91%8A%E3%80%82%E6%88%91%E5%B0%86%E5%AF%B9%E6%AD%A4%E8%BF%9B%E8%A1%8C%E8%B0%83%E6%9F%A5%E5%B9%B6%E4%B8%8A%E6%8A%A5%E7%BB%99%20SDK%20%E5%9B%A2%E9%98%9F%EF%BC%8C%E4%BB%A5%E4%BE%BF%E4%BB%96%E4%BB%AC%E8%83%BD%E5%A4%9F%E5%AF%B9%E6%9C%AA%E6%9D%A5%E7%89%88%E6%9C%AC%E7%9A%84%20RT1170-EVKB%20SDK%20%E8%BF%9B%E8%A1%8C%E9%80%82%E5%BD%93%E7%9A%84%E6%9B%B4%E6%94%B9%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E