11-11-2020 11:06 AM - 编辑日期 11-12-2020 02:02 PM
你好 @tiger_k ,
需要修改一下设备树,qspi下flash的compatible属性修改为n25q00a,对应器件ID为0x20bb21
参考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部分设备树
修改时间 11-09-2020 01:42 PM
你好 @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
修改时间 11-09-2020 04:02 PM
我在更换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
这些都已经是设定好的呀
我不知道该怎么办了
11-11-2020 11:06 AM - 编辑日期 11-12-2020 02:02 PM
你好 @tiger_k ,
需要修改一下设备树,qspi下flash的compatible属性修改为n25q00a,对应器件ID为0x20bb21
参考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部分设备树
修改时间 11-11-2020 09:22 PM
非常感谢,我在修改了设备树之后 系统加载并启动成功。
目前 虽然在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
#
这是驱动的问题吗?该如何修改呢?
修改时间 11-12-2020 10:00 AM
你好 @tiger_k ,
请将启动完整log信息和最终的设备树以附件的形式发一下
11-12-2020 02:00 PM - 编辑日期 11-12-2020 02:02 PM
你好 @tiger_k ,
我查了一下,驱动中compatible属性有n25q00和n25q00a两种,后者的器件ID(0x20bb21)是符合手册的。
所以需要修改设备树compatible属性为n25q00a,再试一下
修改时间 11-13-2020 10:34 AM
我在petalinux2018.2中 测试了
compatible = "n25q00";
compatible = "n25q00a";
compatible = "n25q00aa";
compatible = "n25q00a","micron,n25q00a", "jedec,spi-nor";
这几种设备树的配置 目前都是可以运行系统,但是看不到flash分区和mtd设备
另外我查看了kernel中的驱动配置 MTD驱动默认就是支持的
下面我准备在petalinux2019.2上再试试
修改时间 11-13-2020 10:49 AM
你好 @tiger_k ,
另外就是spi-max-frequency可以调低些
11-13-2020 10:52 AM - 编辑日期 11-13-2020 10:54 AM
compatible属性为n25q00a对应的器件ID是这个,可以查看内核源码和数据手册
你使用的vivado版本需要和petalinux版本一致,不然无法保证会成功的
修改时间 11-13-2020 11:48 AM
修改时间 11-27-2020 11:59 AM