添加32MB的XM25QH256C spinor flash,在加載jffs文件系統時出現大量錯誤

Nuvoton_N329 |浏览100次
收藏|2023/12/13 15:32

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0xa020 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0xa010 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0xd230 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000000c: 0x5300 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014: 0x5300 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000018: 0x5300 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000001c: 0xffff instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000020: 0x6000 instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000024: 0x2fff instead

jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000028: 0xe000 instead


满意回答

2023/12/13 15:38

1.{"XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512, 0) }, 最后一个参数必须是0,不是sect_4k

2.因为size超过16MB,地址需要4byte mode,此时需要注意进入4byte的指令是哪一个种类,是Spansion style还是winbond style, 需要查询对应规格

printk("set_4byte = %x",JEDEC_MFR(jedec_id));

switch (JEDEC_MFR(jedec_id)) {

case CFI_MFR_MACRONIX:

case 0xEF /* winbond */:

    case CFI_MFR_EON: /* cFeon */

case CFI_MFR_ST: /*XMC 0x20*/

flash->command[0] = enable ? OPCODE_EN4B : OPCODE_EX4B;

return spi_write(flash->spi, flash->command, 1);

default:

/* Spansion style */

flash->command[0] = OPCODE_BRWR;

flash->command[1] = enable << 7;

return spi_write(flash->spi, flash->command, 2);

}


nuvoton2022

其他回答(0)
0人关注该问题
+1
 加载中...