flexspi driver resetting address space to start after 0x60FF_FFFF

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

flexspi driver resetting address space to start after 0x60FF_FFFF

ソリューションへジャンプ
971件の閲覧回数
VJ2
Contributor II

Hi,

we are using our own custom board with IMXRT1062 and Macronix MX25L2564G (256Mb) flash. We used Freertos_hello_flash operation to erase and write to last sectors of flash. We did not get any error, but it was not erasing and writing to the correct sector. After investigating further, we discovered that we can successfully erase and write only half of the sectors (4095 in our case, total 8191 sectors in flash). At 4096th sector, it resets address to start i.e. when we set sector start address as 0x6100_0000, it actually does operation at 0x6000_0000. In case of last sector, instead of performing operation at 0x61FF_F0000, it executes it at 0x60FF_F0000. As per reference manual Sec 27.3.5, IPCR0 register determines Flash Access Start address. We confirmed that its loading correct address. In case of 8191th sector, it is 0x01FF_F000. I have attached code and snapshot for reference. Can someone suggest what is wrong here?

ラベル(1)
0 件の賞賛
返信
1 解決策
952件の閲覧回数
VJ2
Contributor II

I found out root cause. Flash chip has been divided into top and bottom regions of 128Mb. Extended Address register bit decides which bank to use. Default value is 0, so it is always using lower bank. I will now need to identify way to set EAR bit to 1 so that we can use upper bank.

元の投稿で解決策を見る

0 件の賞賛
返信
1 返信
953件の閲覧回数
VJ2
Contributor II

I found out root cause. Flash chip has been divided into top and bottom regions of 128Mb. Extended Address register bit decides which bank to use. Default value is 0, so it is always using lower bank. I will now need to identify way to set EAR bit to 1 so that we can use upper bank.

0 件の賞賛
返信