325t配置:
使用内核自带的linux-xlnx-xilinx-v2021.2/drivers/fpga/xilinx-spi驱动,做serial slave模式,设备树更改如下(根据
linux-xlnx-xilinx-v2021.2/Documentation/devicetree/bindings/fpga/xilinx-slave-serial.txt,修改)slave-serial需要将fpga的m0-m2引脚配置为slave-serial模式,在内核中开启配置

其他内核需要的配置请参考:Solution Zynq PL Programming With FPGA Manager - Xilinx Wiki - Confluence (atlassian.net)

在根节点下添加:
fpga-region1 {
device_type = “fpga-region”;
compatible = “fpga-region”;
fpga-mgr = <&fpga_mgr_spi>;
#address-cells = <0x1>;
#size-cells = <0x1>;
};
Spi节点添加:
&spi0 {
status = “okay”;
is-decoded-cs = <0>;
spi-max-frequency = <60000000>;
num-cs = <2>;
fpga_mgr_spi: fpga-mgr@0 {
compatible = “xlnx,fpga-slave-serial”;
spi-max-frequency = <60000000>;
spi-tx-bus-width = <0x04>;
spi-rx-bus-width = <0x04>;
//spi-cpha; //注意极性,需要根据ug380等手册去定义,spi传输的时序,定义即为1,注释为0,根据手册,这里需要注释
reg = <0>; //注意片选没接,依旧需要标明
prog_b-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
init-b-gpios = <&gpio 51 GPIO_ACTIVE_LOW>;
done-gpios = <&gpio 50 GPIO_ACTIVE_HIGH>;
};
};
此时烧录会报错:(烧录的bin文件必须是325tfpga的bin文件)或者spi-cpha;开启了也会报以下错误

因为参考ug380手册可以知道slave-serial 模式fpga的时序极性都为0。

另外路径/sys/class/fpga_manager/fpga1/下有fpga的几种操作文件路径,相关操作报错可以查看status。错误信息查看(FPGA Manager — The Linux Kernel documentation)
报同步字错误,需要在xilinx-spi.c中更改同步字(每个芯片的同步字不同)。与325t匹配:


烧录可以配置成功,配置不成功done引脚一直低,成功为高

zynqmp 外接fpga linux内核驱动修改相关推荐

  1. 嵌入式 Linux 内核驱动开发【The first day: 36093万字】

    嵌入式 Linux 内核驱动开发[1] 嵌入式 Linux 内核驱动开发前言 第1章 Linux 内核裁剪和定制 [1]Linux 内核开发简介 [2] Linux 源码阅读工具 [1.2.1]Sou ...

  2. vmlinux 反汇编_ARM Linux内核驱动异常定位方法分析--反汇编方式

    通常认为,产生异常的地址是lr寄存器的值,从上面的异常信息可以看到[lr]的值是c01a4e30. 接下来,我们可以通过内核镜像文件反汇编来找到这个地址.内核编译完成后,会在内核代码根目录下生成vml ...

  3. 树莓派基于Linux内核驱动开发详解

    一.驱动认知 首先理解Linux内核框图 文件系统认知,Linux内核框图 1.什么是驱动 linux内核驱动.软件层面上的驱动 广义上是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序 ...

  4. 树莓派Linux内核编译、文件系统、Linux内核驱动基础框架、驱动测试步骤、总线地址

    树莓派高阶开发课程 1. ubuntu18.04版本安装          让程序猿搭建环境太搞笑了,轻松easy! ========================================= ...

  5. Linux内核驱动开发的EXPORT_SYMBOL

    前言 很抱歉各位粉丝啊,博主好久没有更新原创文章,从今天起开始恢复写文章的时光.前段时间各种不顺利,到时心情低落.现在恢复状态了. 简介 本文主要来讲讲Linux内核驱动中,EXPORT_SYMBOL ...

  6. linux内核单步调试,Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)

    如何单步调试Linux内核一直困扰着linux驱动开发人员,内核有其代码量大.逻辑复杂.与硬件交互的特性.因此,有着不同于应用程序的调试方法,据统计Linux内核开 Linux内核驱动开发之KGDB原 ...

  7. linux内核创建字符节点,Tiny6410学习ing—(四)、嵌入式Linux内核驱动进阶—(7)、高级字符设备驱动(自动创建节点)—#931...

    按照国嵌的视频教程上来说的,最后就是-自动创建设备文件! 其实我感觉以前完全可以直接是手动创建了设备文件,然后就可以直接讲述自动创建设备文件,为啥非要拖到最后来讲述,我也就不清楚了!! 不管了,写完收 ...

  8. linux内核下网络驱动流程,基于Linux内核驱动的网络带宽测速方法与流程

    本发明涉及一种测速方法,尤其是一种网络带宽测速方法. 背景技术: :电信运营商为客户提供一定带宽的Internet接入:为了检验带宽是否达标,一般均由客户使用个人电脑在网页上直接测速.但是随着智能网关 ...

  9. linux内核添加spi驱动,Linux内核驱动之spi子系统spi协议.docx

    Linux内核驱动之spi子系统spi协议 概况 SPI接口是摩托罗拉首先提出的全双工三线同步串行外围接口SCK,MOSI,MISO,采用主从模式(Master Slave)架构:支持多slave模式 ...

最新文章

  1. 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )
  2. for...in和for...of以及for( :)的区别
  3. 手动加支付宝遇到的错误--iOS
  4. Chrome 错误代码:ERR_UNSAFE_PORT
  5. 了解SQL Server中的GUID数据类型
  6. 【开发环境】 irun(ncverilog)无法dump fsdb波形问题解决方法
  7. 强悍的 Linux —— tar
  8. python md5加密_如何用python“优雅”的调用有道翻译?
  9. 【转】Nginx双机热备高可用解决方案【二】
  10. 2023年东南大学机械工程考研上岸经验
  11. 基于HTML5+JavaScript+CSS3+PHP的网上商城电子商务购物网站设计
  12. 计算机基础及wps office应用_中职2020《计算机应用基础》期末考试试卷
  13. D - 暴力[百钱百鸡(稍简单)]
  14. 安卓平板隐藏虚拟按键_如何隐藏 Android 下方的三个虚拟按键
  15. Python+selenium+360浏览器实现自动测试
  16. NoSql数据库简介及Redis学习
  17. 怎样用matlab进行仿真,怎么用matlab仿真啊
  18. 淘宝客导购产品设计 (一)
  19. C语言中关于强制类型转换问题
  20. 面向对象程序设计—C++语言描述电子书pdf下载

热门文章

  1. python 单链表添加节点_黄哥Python:单链表的尾部插入方法
  2. “模组+天线”全栈解决方案,提速物联网终端高效部署
  3. 批量制作并上传 NFT opensea eth polygon
  4. 年底整理书柜,第五批半卖半送书单
  5. 【内网渗透】内网基础知识梳理
  6. 华为5大场景下的智慧应急解决方案 附下载
  7. 计算机教学中ppt的作用,多媒体课件在教学中的作用
  8. 去年独角兽,今年被收购,裁员九成员工
  9. 天津理工大学和燕山大学计算机考研哪个好,分数可以去燕山大学,天津理工大学还有浙江工业大学,该怎么选?...
  10. 基于Python+树莓派的婴幼儿智能监测机器人