问题标签 [amba]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
fpga - AXI 总线上的自定义 IP
我有一个 Xilinx Zybo 板。我按照此处的说明在AXI 总线上创建了一个自定义乘法器。网站上显示的乘数处理一个输入并生成一个输出。我怎样才能修改它,使它可以像管道一样处理流输入。有什么提示吗?
hardware - 字节如何映射到小端系统上的 AXI4 总线
如果在小端处理器上运行的程序将值 0xaabbccdd 未缓存写入地址 0,并且处理器使用 32 位宽的 AXI4 总线,那么 WDATA 的 31-24 位是 0xaa 还是 0xdd?
AXI 不公开字节可寻址存储器——它只能读取或写入完整的数据总线宽度(在本例中为 32 位)。问题是它如何将字节值的地址映射到数据总线位。
AXI 规范(rev E)的 A3.4.3 节讨论了“字节不变”字节序,但似乎没有解释数据总线上的字节顺序。
linux-device-driver - MT7621 Soc 加密引擎 - IRQ 未映射
我正在使用最新的 Openwrt 主干固件(内核 4.3)并成功编译了 CryptoEngine 的驱动程序,这是 MT7621 Soc 的内部 ipsec 加速器(据我所知,它位于称为 AMBA / APB 的内部总线上)。
该驱动程序似乎可以工作(CryptoEngine 通过发送和接收数据包成功配置,因此它确实对内存映射寄存器“做出反应”)。
但是驱动程序无法连接 irq(因此它仅在轮询模式下工作),因为 request_irq 总是在 IRQ 19 上失败并出现错误代码 89(需要 EDESTADDRREQ 目标地址)(驱动程序日志之前没有给出任何错误),我可以'不明白为什么(我不是linux设备驱动专家,只是基本了解,假设我设法重新编译了驱动程序)。
知道为什么会这样吗?会不会是板 dts 文件有问题?以下是 dmesg 日志和使用的 dts 文件的链接( Dmesg日志太长,无法包含,Soc dtsi (dev.openwrt.org/browser/trunk/target/linux/ramips/dts/mt7621.dtsi) 和Board dts) )
CryptoEngine 内存映射 0x1E004000-0x1E004FFF
root@OpenWrt:/# lspci
00:00.0 PCI 桥:设备 0e8d:0801 (rev 01)
00:01.0 PCI 桥:设备 0e8d:0801 (rev 01)
00:02.0 PCI 桥:设备 0e8d:0801 (rev 01)
01 :00.0 网络控制器:MEDIATEK Corp. MT7662E 802.11ac PCI Express 无线网络适配器
02:00.0 网络控制器:MEDIATEK Corp. MT7662E 802.11ac PCI Express 无线网络适配器
03:00.0 SATA 控制器:ASMedia Technology Inc. ASM1062 串行 ATA 控制器(修订版 01 )
root@OpenWrt:/# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
8: 63126 63253 63143 63987 MIPS GIC Local 1 timer
10: 1513 0 0 0 MIPS GIC 10 1e100000.ethernet
11: 2 0 0 0 MIPS GIC 11 mt76pci
29: 0 0 0 0 MIPS GIC 29 xhci-hcd:usb1
31: 2 0 0 0 MIPS GIC 31 mt76pci
33: 7976 0 0 0 MIPS GIC 33 串行
63: 1178 0 0 0 MIPS GIC 63 IPI 调用
64:0 1305 0 0 MIPS GIC 64 IPI 调用
65:0 0 1257 0 MIPS GIC 65 IPI 调用
66:0 0 0 1087 MIPS GIC 66 IPI 调用
67:144709 0 0 0 MIPS GIC 67 IPI 重新调度
68: 0 25822 0 0 MIPS GIC 68 IPI resched
69: 0 0 97134 0 MIPS GIC 69 IPI resched
70: 0 0 0 43037 MIPS GIC 70 IPI resched
root@OpenWrt:/# cat /proc/ioports
ffffffff-ffffffff : /pcie @1e140000
debugging - 访问 ARM-Cortex-M4 寄存器的 JTAG 指令
我有一个调试探针,允许我执行 JTAG 操作(指令和数据扫描)。有了这个,我想知道如何知道我使用的 SOC 实现了由 ARM CoreSight 调试架构定义的 JTAG 调试端口,我如何访问 MCU 寄存器。
我的猜测是,这意味着通过调试端口、访问端口、AMBA AHB 总线接口和来自 ARM 内核的 IO 端口进行事务。这些事务在 IR 和 DR 扫描方面是如何进行的?我在哪里可以找到一个例子?
protocols - AXI4-关于事务、数据传输、突发和节拍的解释
我对上述概念之间的关系有点困惑。
突发是否只是 AXI 事务的一种类型> 单时钟事务能否占用更多时间?
究竟什么是节拍?它包含地址和数据吗?
amba - AXI4-Stream 位置字节
有人能解释一下 AXI4-Streaming 接口上下文中的位置字节是什么吗?我不明白,虽然它与空字节不同,但它不必传输给从机。
arm - 使用 AXI4Lite 读写的最小时钟周期数是多少
我想知道在 AXI4Lite 总线上进行简单访问的最小时钟周期数是多少。
我认为是4,但我不确定。
arm - Cyclone V 的使能 SDRAM 桥被阻塞
我有一个来自 Terasic 的带有 1 GB 外部 DDR3 RAM 的 DE10-Nano Cyclone V开发板,我想实现一个驱动程序,它可以管理在 ARM Cortex-A9 处理器上运行的 Linux 和 FPGA 架构之间的通信Cyclone V.
使用dma_alloc_coherent
i 分配一定数量的内存并将硬件地址写入我编程的 FPGA 模块。
然后,我继续通过 SDRAM AXI 接口将任意数字写入给定地址,但显然AWREADY和WREADY信号都不会被 SDRAM AXI-slave 断言。
我已将 SDRAM AXI 接口配置为以325 MHz运行,为256 位宽(数据长度),具有32 位寻址长度并成为AXI3 从机。SDRAM 接口配置为TrustZone-aware设备(ARM TrustZone 设置)
。
在 Linux (/sys/class/fpga-bridge/br4) 中查看 FPGA 桥驱动程序时,状态显示为“启用”。
网桥仍然阻止通信的原因可能是什么?
谢谢你的帮助。
arm - AMBA AXI 协议附加控制信息
我最近在工作场所学习 AMBA 总线架构。我被困在附加控制信息上。具体来说,缓存支持是我遇到的问题。
当您查看第 5.1 节缓存支持时,会出现 ARCACHE[3:0] 和 AWCACHE[3:0] 并谈论信号。
Cacheable (C) 位 Cacheable 位是什么意思?我可以理解 Cacheable 的简短含义,因为这意味着数据可以在缓存中。但那又怎样?使数据可缓存的原因是什么?这怎么可能是 0010 的“可缓存,但不分配”?使用可缓存标志,读取数据或将数据写入缓存后,它必须在缓存上,不是吗?
为什么总线协议系统中存在对系统级缓存的缓存支持?这是否意味着缓存在总线上?或者这是否意味着 Master 和 Slave 必须在内部有缓存,这样两个组件才能支持缓存支持?
我现在对这个问题真的很恼火......如果你不介意,你能给我一个关于何时使用 Cacheable 标志的实际例子吗?我无法捕捉到任何东西,因为在使用 Cacheable 标志时没有任何线索。无论如何,谢谢你阅读我的问题:)