
Xilinx Zynq pl353-nand使用
打开Vivado IDE,创建一个新的项目。 在项目中添加一个NAND存储器块。 在NAND存储器的属性中,设置合适的参数,如芯片类型、块大小、擦除区间等。 通过用户自定义的IP核或预定义的核进行接口配置,确保与系统总线和其他硬件兼容。 在u-boot的配置文件中,启用NAND支持: 设置mtd设备的ID映射: 根据需要调整NAND存储器的分区配置,确保各分区大小和 offset正确。 查看NAND设备信息: 切换到指定的NAND设备: 执行读写操作: 擅自读取或写入数据时,可使用raw命令: 启用相关配置: 确保NAND驱动文件已加载:
发布日期:2021-05-08 04:05:28
浏览次数:8
分类:精选文章
本文共 1766 字,大约阅读时间需要 5 分钟。
FPGA与NAND存储器配置及常见问题解决方案
FPGA配置
在使用FPGA时,首先需要在Vivado开发环境中设置NAND存储器的参数。具体步骤如下:
u-boot配置
在u-boot中配置NAND存储器参数,确保系统能够正确识别和访问NAND设备。
#define CONFIG_NAND#define CONFIG_NAND_ZYNQ
#define MTDIDS_DEFAULT "nand0=pl353-nand"#define MTDPARTS_DEFAULT "mtdparts=pl353-nand:128k(rcw),219008k(rootfs),32m(rd),128k(dtb),9088k(kernel),128k(fman),128k(bootenv),768k(boot)"
NAND存储器操作
在u-boot环境下,通过NAND子系统命令进行操作和管理。
zynq-uboot> nand info
zynq-uboot> nand device [dev]
zynq-uboot> nand read -addr off|partition sizezynq-uboot> nand write -addr off|partition size
zynq-uboot> nand read.raw -addr off|partition [count]zynq-uboot> nand write.raw -addr off|partition [count]
Linux驱动配置
在Linux内核中,配置NAND驱动以支持Winbond W29N01HV芯片。
CONFIG_PL35X_SMC=yCONFIG_MTD_NAND=yCONFIG_MTD_NAND_PL35X=y
drivers/mtd/nand/pl353_nand.c
常见问题解决
在实际使用过程中,可能会遇到以下问题:
内核启动错误:
- 错误信息表明NAND设备无法正确初始化:
NAND: device found, Manufacturer ID: 0xef, Chip ID: 0xf1NAND: Unknown W29N01HV
- 通过ONFI协议获取NAND信息:
ondie_ecc_state 0ONFI version: 10mtd name: pl353-nandmtd writesize: 2048mtd erasesize: 131072mtd oobsize: 64mtd chipsize: 134217728mtd bits_per_cell: 1mtd busw: 0 # x8mtd ecc_bits: 1mtd ecc_strength_ds: 1mtd ecc_step_ds: 512
处理坏块:
- 找到并标记坏块:
nand badnand markbad off [offset]nand scrub [size]
- 使用 scrub 命令清理坏块:
nand scrub -y off size
分区划分:
- 根据NAND芯片信息,调整分区划分:
mtdparts=pl353-nand:128k(rcw),219008k(rootfs),32m(rd),128k(dtb),9088k(kernel),128k(fman),128k(bootenv),768k(boot)
- 确保各分区大小和 offset无误。
通过以上配置和操作,可以有效解决NAND存储器在FPGA、u_boot、Linux环境下的初始化和使用问题,确保系统稳定运行。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月04日 16时34分16秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!