取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Adventurer
Adventurer
961 次查看
注册日期: ‎09-07-2020

ZCU104更换128MBflash

跳至解决方案

我想在板子中存放多个系统以及一些库文件,这使得系统变得很大,为此我想把官方的64MB的flash更换为128MB。不知道这种做法可行吗?有没有可以借鉴的参考呢? 多谢

0 项奖励
回复
1 解答

已接受的解答
Moderator
Moderator
792 次查看
注册日期: ‎07-01-2019

你好 @tiger_k ,

 

需要修改一下设备树,qspi下flash的compatible属性修改为n25q00a,对应器件ID为0x20bb21

https://github.com/Xilinx/linux-xlnx/blob/3ddb25a37b1f2068b9f0d1641072182068b670be/drivers/mtd/spi-nor/spi-nor.c

参考zcu104的设备树:https://github.com/Xilinx/device-tree-xlnx/blob/master/device_tree/data/kernel_dtsi/2018.1/BOARD/zcu104-revc.dtsi

或在你的Petalinux工程目录下/component/plnx_workspace/device-tree/device-tree/system-conf.dtsi中可以找到QSPI部分设备树

 

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
回复
21 回复数
Moderator
Moderator
946 次查看
注册日期: ‎07-01-2019

你好 @tiger_k ,

 

ZCU104上的QSPI型号是MT25QU512ABB8ESF-0SIT

引脚与其兼容的128MB的flash是MT25QU01GBBB8ESF-0SIT,两者都是官方支持的器件:https://www.xilinx.com/support/answers/65463.html

zynq core的配置不需要修改,理论上fsbl会自动检测出flash的信息

 

参考器件手册:

https://www.micron.com/products/nor-flash/serial-nor-flash/part-catalog/mt25qu512abb8esf-0sit

https://www.micron.com/products/nor-flash/serial-nor-flash/part-catalog/mt25qu01gbbb8esf-0sit

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
回复
Adventurer
Adventurer
936 次查看
注册日期: ‎09-07-2020
非常感谢 我下面会进行测试
0 项奖励
回复
Adventurer
Adventurer
920 次查看
注册日期: ‎09-07-2020

我在更换flash之后 用sdk烧写系统总是会卡在地址0处。

f probe 0 0 0

Performing Erase Operation...
sf erase 0 29F0000

用vivado可以烧写进去系统,但是启动是出现了以下问题,uboot不能正常加载系统

Warning: ethernet@ff0c0000 (eth1) using random MAC address - c6:cf:08:58:d3:3c
, eth1: ethernet@ff0c0000
U-BOOT for fix_sys_usb

ethernet@ff0b0000 Waiting for PHY auto negotiation to complete......................................... TIMEOUT !
ethernet@ff0c0000 Waiting for PHY auto negotiation to complete......................................... TIMEOUT !
Hit any key to stop autoboot: 0
SF: unrecognized JEDEC id bytes: 10, 5d, 10
Failed to initialize SPI flash at 0:0 (error -2)
ZynqMP>
ZynqMP> sf read
No SPI flash selected. Please run `sf probe'
ZynqMP>

论坛由帖子说 可以更改 配置文件 添加 CONFIG_SPI_FLASH_MACRONIX = y

可是我在~/工程/project-spec/meta-plnx-generated/recipes-bsp/u-boot/configs/config.cfg中找到

CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_SPI_FLASH_MACRONIX=y

这些都已经是设定好的呀

我不知道该怎么办了

 

0 项奖励
回复
Xilinx Employee
Xilinx Employee
903 次查看
注册日期: ‎05-11-2010

如果你用的是macronix的qspi flash,建议你先用standalone driver的example通过jtag测试一下,另外看看flash datasheet里面有没有quad mode register配置要求。

0 项奖励
回复
Adventurer
Adventurer
823 次查看
注册日期: ‎09-07-2020

这是我选择的flash型号,官方文档中写是支持的呀d1d7122daa74e46ff2a94cd177393b7.pnghttps://www.xilinx.com/support/documentation/user_guides/ug1137-zynq-ultrascale-mpsoc-swdev.pdf

另外,uboot下载进去的uboot也能正常运行的

0 项奖励
回复
Adventurer
Adventurer
822 次查看
注册日期: ‎09-07-2020
Micron的N25Q00AA
0 项奖励
回复
Moderator
Moderator
793 次查看
注册日期: ‎07-01-2019

你好 @tiger_k ,

 

需要修改一下设备树,qspi下flash的compatible属性修改为n25q00a,对应器件ID为0x20bb21

https://github.com/Xilinx/linux-xlnx/blob/3ddb25a37b1f2068b9f0d1641072182068b670be/drivers/mtd/spi-nor/spi-nor.c

参考zcu104的设备树:https://github.com/Xilinx/device-tree-xlnx/blob/master/device_tree/data/kernel_dtsi/2018.1/BOARD/zcu104-revc.dtsi

或在你的Petalinux工程目录下/component/plnx_workspace/device-tree/device-tree/system-conf.dtsi中可以找到QSPI部分设备树

 

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
回复
Adventurer
Adventurer
756 次查看
注册日期: ‎09-07-2020

非常感谢,我在修改了设备树之后 系统加载并启动成功。

目前 虽然在uboot中检测到了flash设备

Warning: ethernet@ff0c0000 (eth1) using random MAC address - 26:58:f4:03:f5:07
, eth1: ethernet@ff0c0000
U-BOOT for flash_N25Q00AA

Hit any key to stop autoboot: 0
SF: Detected n25q1024 with page size 256 Bytes, erase size 64 KiB, total 128 MiB
device 0 offset 0x1040000, size 0x2600000
SF: 39845888 bytes @ 0x1040000 Read: OK
## Loading kernel from FIT Image at 10000000 ...
Using 'conf@system-top.dtb' configuration
Trying 'kernel@1' kernel subimage

但是在系统启动之后 我查看了flash的分区,发现并没有任何信息

# ls /dev/mt*
/dev/mtab
# cat /proc/mtd
dev: size erasesize name

#

 

这是驱动的问题吗?该如何修改呢?

0 项奖励
回复
Moderator
Moderator
719 次查看
注册日期: ‎07-01-2019

你好 @tiger_k ,

 

请将启动完整log信息和最终的设备树以附件的形式发一下

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
回复
Adventurer
Adventurer
710 次查看
注册日期: ‎09-07-2020

这是system-user.dtsi 还有system-conf.dtsi 以及系统的启动信息

0 项奖励
回复
Moderator
Moderator
696 次查看
注册日期: ‎07-01-2019

你好 @tiger_k ,

 

我查了一下,驱动中compatible属性有n25q00和n25q00a两种,后者的器件ID(0x20bb21)是符合手册的。

所以需要修改设备树compatible属性为n25q00a,再试一下

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
回复
Adventurer
Adventurer
645 次查看
注册日期: ‎09-07-2020

我在petalinux2018.2中 测试了 

compatible = "n25q00";

compatible = "n25q00a";

compatible = "n25q00aa";

compatible = "n25q00a","micron,n25q00a", "jedec,spi-nor";

 

这几种设备树的配置 目前都是可以运行系统,但是看不到flash分区和mtd设备

另外我查看了kernel中的驱动配置 MTD驱动默认就是支持的

下面我准备在petalinux2019.2上再试试

 

 

0 项奖励
回复
Adventurer
Adventurer
639 次查看
注册日期: ‎09-07-2020
这个器件ID(0x20bb21)是需要再设备树中体现吗?我没有看到器件ID相关的信息
0 项奖励
回复
Moderator
Moderator
637 次查看
注册日期: ‎07-01-2019

你好 @tiger_k ,

 

另外就是spi-max-frequency可以调低些

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
回复
Moderator
Moderator
634 次查看
注册日期: ‎07-01-2019

compatible属性为n25q00a对应的器件ID是这个,可以查看内核源码和数据手册

你使用的vivado版本需要和petalinux版本一致,不然无法保证会成功的

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
回复
Adventurer
Adventurer
618 次查看
注册日期: ‎09-07-2020
在petalinux2019.2中生成的系统 设备树中改成
compatible = "n25q00a","micron,n25q00a", "jedec,spi-nor";
只能启动uboot,uboot不能识别flash也不能加载启动系统
compatible = "n25q00aa";
uboot可以识别flash 并启动系统,但是依然没有MTD分区 也没有MTD设备
0 项奖励
回复
Adventurer
Adventurer
614 次查看
注册日期: ‎09-07-2020
对的 我在petalinux2019.2中用的是vivado2019.2生成的硬件文件
0 项奖励
回复
Adventurer
Adventurer
614 次查看
注册日期: ‎09-07-2020
好的 我试一下
0 项奖励
回复
Adventurer
Adventurer
439 次查看
注册日期: ‎09-07-2020

降低频率我也试了。降低到40MHZ,系统加载内核变慢了 而且加载会报错,说内核文件损坏。

您意思是我需要在自己生成并添加mtd的ko驱动文件吗?我看到之前的回复中有一个驱动的链接

0 项奖励
回复
Adventurer
Adventurer
351 次查看
注册日期: ‎09-07-2020
你好,
我看到 在zcu104-reva.dtsi中 对于flash MT25QU512ABB8ESF-0SIT的官方设备树配置如下
flash@0 {
compatible = "m25p80"; /* n25q512a 128MiB */
请问这个m25p80和MT25QU512ABB8ESF-0SIT有什么关系?
我在flash驱动的源码中找了下,并没有发现MT25QU512ABB8ESF-0SIT相关的信息。
我该怎么知道MT25QU512ABB8ESF-0SIT所对应的compatible 是m25p80呢?如果我用的是一个新的flash芯片呢?如何去找我对应的
compatible属性?
谢谢
0 项奖励
回复
Adventurer
Adventurer
334 次查看
注册日期: ‎09-07-2020

这是N25q00aa的手册

0 项奖励
回复