博客
关于我
Xilinx Zynq pl353-nand使用
阅读量:368 次
发布时间:2019-03-05

本文共 1766 字,大约阅读时间需要 5 分钟。

FPGA与NAND存储器配置及常见问题解决方案

FPGA配置

在使用FPGA时,首先需要在Vivado开发环境中设置NAND存储器的参数。具体步骤如下:

  • 打开Vivado IDE,创建一个新的项目。
  • 在项目中添加一个NAND存储器块。
  • 在NAND存储器的属性中,设置合适的参数,如芯片类型、块大小、擦除区间等。
  • 通过用户自定义的IP核或预定义的核进行接口配置,确保与系统总线和其他硬件兼容。
  • u-boot配置

    在u-boot中配置NAND存储器参数,确保系统能够正确识别和访问NAND设备。

  • 在u-boot的配置文件中,启用NAND支持:
    #define CONFIG_NAND#define CONFIG_NAND_ZYNQ
  • 设置mtd设备的ID映射:
    #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存储器的分区配置,确保各分区大小和 offset正确。
  • NAND存储器操作

    在u-boot环境下,通过NAND子系统命令进行操作和管理。

  • 查看NAND设备信息:
    zynq-uboot> nand info
  • 切换到指定的NAND设备:
    zynq-uboot> nand device [dev]
  • 执行读写操作:
    zynq-uboot> nand read -addr off|partition sizezynq-uboot> nand write -addr off|partition size
  • 擅自读取或写入数据时,可使用raw命令:
    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
  • 确保NAND驱动文件已加载:
    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环境下的初始化和使用问题,确保系统稳定运行。

    转载地址:http://ddgg.baihongyu.com/

    你可能感兴趣的文章
    ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
    查看>>
    SLAM学习笔记-求解视觉SLAM问题
    查看>>
    普歌-允异团队-HashMap面试题
    查看>>
    还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
    查看>>
    Windows下Python安装与使用
    查看>>
    程序员应该知道的97件事
    查看>>
    我编程,我快乐—程序员职业规划之道
    查看>>
    剑指 Offer 29. 顺时针打印矩阵
    查看>>
    Web基础应用 NFS服务基础 触发挂载
    查看>>
    create-react-app路由的实现原理
    查看>>
    PSI值
    查看>>
    海思Hi3531DV100开发环境搭建
    查看>>
    JavaScript上传下载文件
    查看>>
    QWaitCondition把异步调用封装成同步调用
    查看>>
    Linux驱动开发之PCIe Host驱动
    查看>>
    Vue.js Element Basic组件使用
    查看>>
    android 头像选择,裁剪全套解决方案,你值得拥有!
    查看>>
    MapReduce
    查看>>
    springboot swagger2
    查看>>
    shell(十)case的几个典型应用
    查看>>