UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
517 次查看
注册日期: ‎04-28-2018

从QSPI Flash分区加载根文件系统失败

我使用petalinux2018.2为一块自己的ZU9EG的板子生成了BOOT.BIN和rootfs.jffs2。把这个两个文件烧录到flash之后,以QSPI32的模式启动,BOOT.BIN正常加载并且运行,但是运行到加载根文件系统时,提示找不到jffs2分区,错误信息可以看日志文件。如果以别的方式进入系统,运行 cat   /proc/mtd, 结果为空,没有分区。QSPI flash在支持列表内,在其他板子上加载根文件系统分区正常。我也尝试过把工作正常的工程配置,用到这块板子的工程,但是还是一样的现象。请各位帮忙看看日志,分析什么原因。谢谢!

我的QSPI  Flash型号是: MT25QU512ABB8ESF-0SIT。

我的设备树中flash分区如下:

flash@0 {
compatible = "n25q512a", "micron,m25p80";
spi-tx-bus-width = <0x1>;
spi-rx-bus-width = <0x4>;
reg = <0x0>;
#address-cells = <0x1>;
#size-cells = <0x1>;
spi-max-frequency = <0x66ff300>;

partition@0x00000000 {
label = "boot";
reg = <0x0 0x1b00000>;
};

partition@0x01b00000 {
label = "bootenv";
reg = <0x1b00000 0x20000>;
};

partition@0x01b20000 {
label = "dtb";
reg = <0x1b20000 0x20000>;
};

partition@0x01b40000 {
label = "kernel";
reg = <0x1b40000 0x1000000>;
};

partition@0x02b40000 {
label = "jffs2";
reg = <0x2b40000 0x54c0000>;
};
};

生成烧写文件的.bif内容如下:

the_ROM_image:
{
[fsbl_config]a53_x64
[bootloader]../images/zynqmp_fsbl.elf
[destination_cpu = pmu]../images/pmufw.elf
[destination_device = pl]../images/system.bit
[destination_cpu = a53-0, exception_level = el-3, trustzone]../images/bl31.elf
[destination_cpu = a53-0, exception_level = el-2]../qspiboot-images/u-boot.elf
[offset = 0x1b20000, load = 0x11b20000, destination_cpu = a53-0]../qspiboot-images/system.dtb
[offset = 0x1b40000, load = 0x10000000, destination_cpu = a53-0]../images/image.ub
[offset = 0x2b40000, destination_cpu = a53-0]../rootfs/rootfs.jffs2
}

我的内核相关配置:

CONFIG_SPI=y

CONFIG_SPI_XILINX=y
CONFIG_SPI_ZYNQMP_GQSPI=y

CONFIG_MTD=y

CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y

CONFIG_MTD_M25P80=y

CONFIG_MTD_SPI_NOR=y

0 项奖励
3 条回复3
Moderator
Moderator
472 次查看
注册日期: ‎05-23-2018

回复: 从QSPI Flash分区加载根文件系统失败

Hi, @yannantian198656

可以参考一下这个链接。

https://forums.xilinx.com/t5/Embedded-Linux/Modifying-filesystem-Petalinux/td-p/869056

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

回复: 从QSPI Flash分区加载根文件系统失败

建议你先用petalinux config默认设置的intramfs和相应的flash partition setting完成petalinux build,petalinux package生成一个包含fsbl、pmufw、u-boot、image.ub的BOOT.bin,其中image.u包含了dtb,uImage和rootfs。把这个BOOT.bin烧到qspi flash里boot linux看看/dev里面有没有mtd flash partition。

 

 

0 项奖励
Observer sxmman
Observer
338 次查看
注册日期: ‎05-31-2012

回复: 从QSPI Flash分区加载根文件系统失败

uboot启动的时候,会检测一次QSPI器件,并且打印出来;kernel加载的时候,会检测一次QSPI器件,并且打印出来。可以从这两点判断QSPI是否被驱动。

我估计JFFS2文件系统不能挂载的原因很可能是erasesize的原因,器件的erasesize是驱动写死的,menuconfig只能指定文件系统的erasesize,底层的驱动不一定按这个来。

0 项奖励