平台是ppc852+ vxWorks,nandflash是三星的K9F1208U0C
rominit.s中对OR,BR寄存器进行配置:
lis r5, HIADJ( NAND_CS6_BASE | BR_PS_8 | BR_MS_GPCM |BR_V)
addi r5, r5, LO(NAND_CS6_BASE | BR_PS_8 | BR_MS_GPCM |BR_V)
stw r5, BR6(0)(r4)
lis r5, HIADJ(0xfffe0000 | OR_BI | OR_SCY_0_CLK | OR_CSNT_SAM|OR_TRLX)
addi r5, r5, LO(0xfffe0000 | OR_BI | OR_SCY_0_CLK | OR_CSNT_SAM|OR_TRLX)
stw r5, OR6(0)(r4)
配置完成首先尝试读取ID,结果如下:
vendor:0x76, flashId = 0x3f, temp1 = 0xec, temp2 = 0x5a
有时会读到:
vendor:0x76, flashId = 0x3f, temp1 = 0x74, temp2 = 0x5a
然而根据datasheet读到的值应该是:
vendor:0xec, flashId = 0x76, temp1 = 0x3f, temp2 = 0x5a
是不是我的OR,BR寄存器没有设置对?读写程序应该没有问题ALE,CLE都能送进去,且ID的读取的数据也都出来了。