Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
T1040 板上的 PCI 内存分配(BAR 寄存器) 你好, 我的问题很简单,PCI 没有在 t10420 主板上分配内存。 以下是 “dmesg” 消息和 u-boot 消息。 PCI:探测 PCI 硬件 fsl-pci ffe250000.pcie:PCI 主机桥接到总线 0001:00 pci_bus 0001:00:根总线资源 [io 0xf1050000-0xf105ffff](总线地址 [0x0000-0xffff])pci_bus 0001:00:根总线资源 [mem 0xc100000000-0xc1fffff](总线地址 [0xe0000000-0xefffff])pci_bus 0001:00:根总线资源 [mem 0xc1000000-0x1fffff](总线地址 [0xe0000000-0xefffff]) pci_bus 0001:00:根总线资源 [mem 0xcbus 0001:00:根总线资源 [bus 00-ff] pci_bus 0001:00:busn_res:[bus 00-ff] 结束已更新为 ff pci 0001:00:00.0: [1957:0820] type 01 class 0x060400 pci 0001:00:00.0:reg 0x10: [mem 0xff000000-0xffffffffff] pci 0001:00:00.0:支持 D1 D2 pci 0001:00:00.0:从 D0 D1 D2 D3hot D3cold 支持 PME# fsl-pci ffe250000.pcie:从 iommu 组 19 移除 pci 0001:00:00.0:添加到 iommu 组 21 pci 0001:01:00.0:[1002:6987] type 00 class 0x030000 pci 0001:01:00.0:reg 0x10: [mem 0xc10000000-0xc1fffffff 64bit pref] pci 0001:01:00.0:reg 0x18: [mem 0x1000ffe00000-0x1000ffffffff 64bit pref] pci 0001:01:00.0:reg 0x20: [io 0xf1051100-0xf10511ff] pci 0001:01:00.0:reg 0x24: [mem 0xfffc0000-0xffffffffff] pci 0001:01:00.0:reg 0x30: [mem 0xfffe0000-0xffffffff pref] pci 0001:01:00.0:启用扩展标记 pci 0001:01:00.0:支持 D1 D2 pci 0001:01:00.0:D1 D2 D3hot D3cold pci 0001:01:00.0 支持 PME#:可用 PCIe 带宽为 4.000 Gb/s,在 0001:00:00.0 时受 5.0 GT/s PCIe x1 链接限制(使用 8.0 GT/s PCIe x8 链接可达到 63.008 Gb/s) pci 0001:01:00.0:添加到 iommu 组 21 pci 0001:01:00.1:[1002:aae0] type 00 class 0x040300 pci 0001:01:00.1:reg 0x10: [mem 0x1200ffffc000-0x1200ffffff 64bit] pci 0001:01:00.1:启用扩展标记 pci 0001:01:00.1:支持 D1 D2 pci 0001:01:00.1:添加到 iommu 组 21 pci 0001:00:00.0:PCI 桥接到 [总线 01-ff] pci 0001:00:00.0:bridge window [io 0xf1051000-0xf1051fff] pci 0001:00:00.0:桥接窗口 [mem 0xc100000000-0xc1fffff] pci_bus 0001:01:busn_res:[总线 01-ff] 末端更新为 01 p ci_bus 0001:00:busn_res:[总线 00-ff] 端已更新为 01 PCI:无法分配设备 0001:00:0 的资源区域 0,将重新映射 PCI:无法分配设备 0001:00:0 的资源区域 2 01:00.0,将重新映射 PCI:无法分配设备 0001:01:00.0 的资源区域 5,将重新映射 PCI:无法分配设备 0001:01:00.0 的资源区域 6,将重新映射 PCI:无法分配设备 0001:01:00.1 的资源区域 0,将重新映射 pci 0001:00:00.0:BAR 0: no space for [mem size 0x01000000] pci 0001:00:00.0:BAR 0:分配失败 [内存大小 0x01000000] pci 0001:00:00.0:BAR 9:无空间 [内存大小 0x00200000 64 位前缀] pci 0001:00:00.0:BAR 9:分配失败 [内存大小 0x00200000 64 位前缀] pci 0001:01:00.0:BAR 2: no space for [mem size 0x00200000 64bit pref] pci 0001:01:00.0:BAR 2:分配失败 [内存大小 0x00200000 64 位前缀] pci 0001:01:00.0:BAR 5: no space for [mem size 0x00040000] pci 0001:01:00.0:BAR 5:分配失败 [内存大小 0x00040000] pci 0001:01:00.0:BAR 6: no space for [mem size 0x00020000 pref] pci 0001:01:00.0:BAR 6:分配失败 [内存大小 0x00020000 pref] pci 0001:01:00.1:BAR 0: no space for [mem size 0x00004000 64bit] pci 0001:01:00.1:BAR 0:分配失败 [内存大小 0x00004000 64 位] pci 0001:00:00.0:PCI 桥接到 [总线 01] pci 0001:00:00.0:bridge window [io 0xf1050000-0xf105ffff] pci 0001:00:00.0:桥接窗口 [mem 0xc1000000-0xc1fffff] pci_bus 0001:00:部分 PCI 设备资源未分配,尝试使用 pci=realloc pci_bus 0001:00 启动:资源 4 [io 0xf105000000-0xf105ffff] pci_bus 0001:00:资源 5 [mem 0xc100000000-0xc1fffff] pci_bus 0001:00:资源 5 [mem 0xc100000000-0xc1fffff] pci_b us 0001:00:资源 5 [mem 0xc100000000-0xc1fffff] pci_bus fff] pci_bus 0001:01:资源 0 [io 0xf1050000-0xf105fff] pci_bus 0001:01:资源 1 [mem 0xc1000000-0xc1fffff] HugeTLB 注册了 4.00 MiB 页面大小,预先分配 0 页 HugeTLB 注册了 64.0 MiB 页面大小大小,预计 已分配 0 页 HugeTLB 注册了 256 MiB 页面大小,预先分配 0 页 HugeTLB 注册了 1.00 GiB 页面大小,预先分配 0 页 飞思卡尔 Elo 系列 DMA 驱动程序以下是内核 dts pci1:pcie@ffe250000 { reg =<0xf 0xfe250000 0 0x10000>; ranges =<0x02000000 0 0xe0000000 0xc 0x10000000 0 0x10000000 0x01000000 0 0xf 0xf8010000 0 0x00010000>; pcie@0 { ranges =<0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x10000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; Re: PCI memory allocation (BAR Registers) on T1040 Board GPU 的 BAR 2 请求 0x1000ffe00000 - 这是一个 64 位可预取 BAR ,试图使用 ~163 Terabytes 的地址 。这完全超出了 32 位 PCI 窗口。 T1040 是 32 位 PowerPC e5500 内核 ,通过 MMU 拥有 36 位物理地址空间 。 0x1000ffe00000 而 T1040 硬件不可能提供 48 位地址空间。 您的地址 0x1000ffe00000 在 40 多位的范围内,完全超出了 T1040 的寻址空间。 Re: PCI memory allocation (BAR Registers) on T1040 Board 是的,它是 E9171 AMDGPU Re: PCI memory allocation (BAR Registers) on T1040 Board @Ganesh3955 你连接到 T1040 的端点设备是什么?这是 GPU 吗? Re: PCI memory allocation (BAR Registers) on T1040 Board 你好 谢谢你的回复 没什么变化 PCI 主机桥 /pcie @ffe250000 范围: MEM 0x0000000c100000000... 0x0000000c2fffff-> 0x00000000e000000e0000000 IO 0x00000000... 0x0000000ff105fff-> 0x00000000000000 /pcie @ffe250000:PCICSRBAR @ 0xdf000000 setup_pcie ci_atmu:动态随机存取存储器(DRAM) 80000000 平台的终结 ff6000000 .qman-portal: 添加到 iommu 组 0 platform ff6004000.qman-portal:添加到 iommu 组 1 platform ff6008000.qman-portal:添加到 iommu 组 2 平台 ff600c000.qman-portal:添加到 iommu 组 3 platform ff6010000.qman-portal:添加到 iommu 组 4 platform ff6014000.qman-portal:添加到 iommu 组 5 platform ff6018000.qman-portal:添加到 iommu 组 6 平台 ff601c000.qman-portal:添加到 iommu 组 7 platform ff6020000.qman-portal:添加到 iommu 组 8 平台 ff6024000.qman-portal:添加到 iommu 组 9 平台 ffe100300.dma:添加到 iommu 组 10 平台 ffe101300.dma:添加到 iommu 组 11 平台 ffe114000.sdhc:添加到 iommu 组 12 平台 ffe210000.usb:添加到 iommu 组 13 平台 ffe211000.usb:添加到 iommu 组 14 平台 ffe220000.sata:添加到 iommu 组 15 平台 ffe221000.sata:添加到 iommu 组 16 platform ffe318000.qman:添加到 iommu 组 17 平台 ffe31a000.bman:添加到 iommu 组 18 fsl-pci ffe250000.pcie:添加到 iommu 组 19 平台 ffe140000.qe:添加到 iommu 组 20 software IO TLB: tearing down default memory pool PCI: Probing PCI hardware fsl-pci ffe250000.pcie:PCI 主机桥接到总线 0001:00 pci_bus 0001:00:根总线资源 [io 0xf1050000-0xf105ffff](总线地址 [0x0000-0xffff])pci_bus 0001:00:根总线资源 [mem 0xc100000000-0xc2ffffff](总线地址 [0xe0000000-0xffffff])pci_bus 0001:00:根总线资源 [mem 0xc1000000-0xc2ffffff](总线地址 [0xe0000000-0xffffff]) pci_bus 0001:00:根总线资源 [mem bus 0001:00:根总线资源 [bus 00-ff] pci_bus 0001:00:busn_res:[bus 00-ff] 结束已更新为 ff pci 0001:00:00.0: [1957:0820] type 01 class 0x060400 pci 0001:00:00.0:reg 0x10: [mem 0xdf000000-0xdfffffff] pci 0001:00:00.0:支持 D1 D2 pci 0001:00:00.0:从 D0 D1 D2 D3hot D3cold 支持 PME# fsl-pci ffe250000.pcie:从 iommu 组 19 移除 pci 0001:00:00.0:添加到 iommu 组 21 pci 0001:01:00.0:[1002:6987] type 00 class 0x030000 pci 0001:01:00.0:reg 0x10: [mem 0xc10000000-0xc1fffffff 64bit pref] pci 0001:01:00.0:reg 0x18: [mem 0x1000ffe00000-0x1000ffffffff 64bit pref] pci 0001:01:00.0:reg 0x20: [io 0xf1051100-0xf10511ff] pci 0001:01:00.0:reg 0x24: [mem 0xc2ffc0000-0xc2fffffff] pci 0001:01:00.0:reg 0x30: [mem 0xc2ffe0000-0xc2fffffff pref] pci 0001:01:00.0:启用扩展标记 pci 0001:01:00.0:支持 D1 D2 pci 0001:01:00.0:D1 D2 D3hot D3cold pci 0001:01:00.0 支持 PME#:可用 PCIe 带宽为 4.000 Gb/s,在 0001:00:00.0 时受 5.0 GT/s PCIe x1 链接限制(使用 8.0 GT/s PCIe x8 链接可达到 63.008 Gb/s) pci 0001:01:00.0:添加到 iommu 组 21 pci 0001:01:00.1:[1002:aae0] type 00 class 0x040300 pci 0001:01:00.1:reg 0x10: [mem 0x1200ffffc000-0x1200ffffff 64bit] pci 0001:01:00.1:启用扩展标记 pci 0001:01:00.1:支持 D1 D2 pci 0001:01:00.1:添加到 iommu 组 21 pci 0001:00:00.0:PCI 桥接到 [总线 01-ff] pci 0001:00:00.0:bridge window [io 0xf1051000-0xf1051fff] pci 0001:00:00.0:桥接窗口 [mem 0xc100000000-0xc1fffff] pci_bus 0001:01:busn _res:[总线 01-ff] 末端更新为 01 pci_bus 0001:00:busn_res:[总线 00-ff] 端已更新为 01 PCI:无法分配设备 0001:00:0 的资源区域 0,将重新映射 PCI:无法分配设备 0001:00:0 的资源区域 2 01:00.0,将重新映射 PCI:无法分配设备 0001:01:00.0 的资源区域 6,将重新映射 PCI:无法分配设备 0001:01:00.1 的资源区域 0,将重新映射 pc i 0001:00:00.0: BAR 0: no space for [mem size 0x01000000] pci 0001:00:00.0:BAR 0:分配失败 [内存大小 0x01000000] pci 0001:00:00.0:BAR 9:无空间 [内存大小 0x00200000 64 位前缀] pci 0001:00:00.0:BAR 9:分配失败 [内存大小 0x00200000 64 位前缀] pci 0001:01:00.0:BAR 2: 已分配 [mem 0xc20000000-0xc201fffff 64bit pref] pci 0001:01:00.0:BAR 6: 已分配 [mem 0xc20200000-0xc2021ffff pref] pci 0001:01:00.1:BAR 0: 已分配 [mem 0xc20220000-0xc20223fff 64bit] pci 0001:00:00.0:PCI 桥接到 [总线 01] pci 0001:00:00.0:bridge window [io 0xf1050000-0xf105ffff] pci 0001:00:00.0:桥接窗口 [mem 0xc100000000-0xc2fffff] pci_bus 0001:00:部分 PCI 设备资源未分配,尝试使用 pci=realloc pci_bus 0001:00 启动:资源 4 [io 0xf105000000-0xf105ffff] pci_bus 0001:00:资源 5 [mem 0xc100000000-0xc2fffff] pci_b us 0001:00:资源 5 [mem 0xc100000000-0xc2fffff fff] pci_bus 0001:01:资源 0 [io 0xf1050000-0xf105fff] pci_bus 0001:01:资源 1 [mem 0xc1000000-0xc2fffff] HugeTLB 注册了 4.00 MiB 页面大小,预先分配 0 页 HugeTLB 注册了 64.0 MiB 页面大小大小,预计 已分配 0 页 HugeTLB 注册了 256 MiB 页面大小,预先分配 0 页 H ugeTLB 注册了 1.00 GiB 页面大小,预先分配 0 页飞思卡尔 Elo 系列 DMA 驱动程序 fsl-elo-dma ffe100300.dma: #0 (fsl,eloplus-dma-channel), irq 28 fsl-elo-dma ffe100300.dma:#1 (fsl,eloplus-dma-channel), irq 29 fsl-elo-dma ffe100300.dma:#2 (fsl,eloplus-dma-channel), irq 30 fsl-elo-dma ffe100300.dma:#3 (fsl,eloplus-dma-channel), irq 31 fsl-elo-dma ffe100300.dma:#4 (fsl,eloplus-dma-channel), irq 76 fsl-elo-dma ffe100300.dma:#5 (fsl,eloplus-dma-channel), irq 77 fsl-elo-dma ffe100300.dma:#6 (fsl,eloplus-dma-channel), irq 78 fsl-elo-dma ffe100300.dma:#7 (fsl,eloplus-dma-channel), irq 79 fsl-elo-dma ffe101300.dma:#0 (fsl,eloplus-dma-channel), irq 32 fsl-elo-dma ffe101300.dma:#1 (fsl,eloplus-dma-channel), irq 33 fsl-elo-dma ffe101300.dma:#2 (fsl,eloplus-dma-channel), irq 34 fsl-elo-dma ffe101300.dma:#3 (fsl,eloplus-dma-channel), irq 35 fsl-elo-dma ffe101300.dma:#4 (fsl,eloplus-dma-channel), irq 80 fsl-elo-dma ffe101300.dma:#5 (fsl,eloplus-dma-channel), irq 81 fsl-elo-dma ffe101300.dma:#6 (fsl,eloplus-dma-channel), irq 82 fsl-elo-dma ffe101300.dma:#7(fsl,eloplus-dma-channel),irq 83 iommu:默认功能域类型:已翻译 iommu:DMA 功能域 TLB 失效政策:严格模式 pci 0001:01:00.0:vgaarb:已添加 VGA 设备:decodes=io+mem,owns=无,locks=none pci 0001:01:00.0: vgaarb: 桥接控制可能 pci 0001:01:00.0:vgaarb:设置为引导设备(VGA 旧版资源不可用) Re: PCI memory allocation (BAR Registers) on T1040 Board @Ganesh3955,你能用这个 dts 更改试试吗?:- pci1:pcie@ffe250000 { reg =<0xf 0xfe250000 0 0x10000>; ranges =<0x02000000 0x0 0xe0000000 0xc 0x10000000 0x0 0x20000000 /* 512MB */ 0x01000000 0x0 0x000000 0xf 0xf1050000 0x0 0x00010000> ;/* 64KB I/O */ pcie@0 { ranges =<0x02000000 0x0 0xe0000000 0x02000000 0x0 0xe0000000 0x0 0x20000000 0x01000000 0x0 0x00000000 0x01000000 0x0 0x00000000 0x0 0x00010000>; }; }; Re: PCI memory allocation (BAR Registers) on T1040 Board 嗨 @gaurav_sharma 谢谢你的回复,这个 E9171 AMDGPU 能在 T2080 主板上运行吗? Re: PCI memory allocation (BAR Registers) on T1040 Board 你好@gaurav_sharma 我尝试了这些命令,但得到了相同的错误信息"无效 PCI ROM 头签名:预计为 0xaa55,结果为 0xadde" Re: PCI memory allocation (BAR Registers) on T1040 Board 你好@gaurav_sharma 谢谢你的回复, ,我在配置文件中做了一些改动,就能实现 64 位内核了。现在正在分配内部 BAR(包括 32 位和 64 位)。 但在加载 AMDGPU 驱动程序时,我收到了以下错误信息 root@t1042d4rdb:~# insmod /amdgpu.ko [drm] amdgpu 内核模式设置已启用。 [drm] 初始化内核模式设置(POLARIS12 0x1002:0x6987 0x1787:0x2389 0x80)。 amdgpu 0001:01:00.0:amdgpu:不支持可信内存区域 (TMZ) 功能 [drm] 寄存器 mmio 基础:0x80000000 [drm] 寄存器 mmio 大小:262144 [drm] 不支持 PCIE 原子操作 [drm] 添加 ip 区块编号 0 [drm] 添加 ip 区块编号 1 [drm] 添加 ip 区块编号 2 [drm] 添加编号为 3 的 ip [drm] 添加 ip 区块编号 4 [drm] 添加 ip 区块编号 5 [drm] 添加 ip 区块编号 6 [drm] 添加 ip 区块编号 7 [drm] 添加 ip 区块号 8 amdgpu 0001:01:00.0:无效的 PCI ROM 标头签名:期待 0xaa55,得到 0xadde amdgpu 0001:01:00.0:PCI ROM 标头签名无效:期待 0xaa55,得到 0xadde amdgpu 0001:01:00.0:amdgpu:找不到 BIOS ROM amd gpu 0001:01:00:0 00.0:amdgpu:GPU 初始化期间出现致命错误 amdgpu 0001:01:00.0:amdgpu:amdgpu: amdgpu:amdgpu:amdgpu:am 精加工设备。 尝试在 0x0000000000000000 amdgpu 处取消映射早期的螺栓映射:0001:01:00.0 的探测失败,错误 -22 更新后的设备树如下所示: pci1: pcie@ffe250000 { reg =<0xf 0xfe250000 0 0x10000> ; ranges =<0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x20000000 /* 512MB nonref */ 0x43000000 0xc 0x10000000 0xc 0x10000000 0x0 0x40000000 /* 1GB 64 位前缀 ← 键更改 */ 0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000> ; pcie@0 { }; }; uBoot 变更: #if! 已定义 (CONFIG_DM_PCI) #define CONFIG_FSL_PCI_INIT /* 使用常用的 FSL 初始化代码 */ #define CONFIG_SYS_PCIE1_MEM_BUS 0xe0000000 #define CONFIG_SYS_PCIE1_MEM_SIZE 0x00000000 CONFIG_SYS_PCIE1_BUS 0x00000000 #define CONFIG_SYS_PCIE1_BUS 0x00000000 CONFIG_SYS_PCIE1_BUS 0x00000000 CONFIG_SYS_PCIE1_IO_BUS PCIE1_IO_SIZE 0x00010000 /* 64k */ #define CONFIG_SYS_PCIE2_MEM_BUS 0xe0000000 #define CONFIG_SYS_PCIE2_MEM_ SIZE 0x100000000 /* 256M */ #define #define CONFIG_SYS_PCIE2_IO_BUS 0x00000000 #define CONFIG_SYS_PCIE2_IO_SIZE 0x00010000 /* 64k */ #define CONFIG_SYS_PCIE3_MEM_BUS #define CONFIG_SYS_PCIE3_IO_BUS CONFIG_SYS_PCIE3_IO_BUS CONFIG_SYS_PCIE3_IO_BUS CONFIG_SYS_PCIE3_IO_BUS 0x00000000 #define CONFIG_SYS_PCIE3_IO_SIZE 0x00010000 /* 64k */ #define CONFIG_SYS_PCIE4_MEM_ BUS 0xe0000000 #define #define CONFIG_SYS_PCIE4_MEM_SIZE 0x100000000 /* 256M */ #define CONFIG_SYS_PCIE4_IO_BUS 0x00000000 #define CONFIG_SYS_PCIE4_IO_SIZE 0x00010000 /* 64k */ #define CONFIG_PCI_INDIRECT_BRIDIGE #endif #define CONFIG_PCI_SCAN_SHOW /* 启动时显示 pci 设备 */ #endif /* CONFIG_PCI */ 对于你的问题,以下是答 案: 1。设备树和 uBoot 中的更改如上所述。 2.附上 pci=realloc 的日志 3.内存大小 = 2GB Re: PCI memory allocation (BAR Registers) on T1040 Board @Ganesh3955我想纠正一下之前的说法:- "你的地址 0x1000ffe00000 在 40 多位的范围内,完全超出了 T1040 的寻址空间。" -- 事实并非如此。SOC 的设计适用于高达 64GB 寻址内存空间的大型物理地址空间。假设运行的是 64 位内核 GPU请求的不是地址,只是大小/类型。Linux/ 固件通过对 BAR 编程来分配地址,而你看到的值(如 0x1000ffe00000 )只是当前编程的基数--通常是固件设置错误或 DT 解析错误,直到 Linux 重新分配。 我正在检查为什么会出现这种情况。同时, 1. 你能告诉我除了 dts 之外你在固件/uboot/linux 中是否还有其他与 pcie 相关的更改吗? 2. 你能不能用 pci=realloc 启动一次然后分享日志。 3. 你的主板上的 RAM 大小是多少? Re: PCI memory allocation (BAR Registers) on T1040 Board 当您执行 setpci -s 0001:01:00.0 30.l 时,rom bar 地址编程是否会粘连?执行上述操作后,当您执行以下操作时, :- 。 lspci -vv -s 0001:01:00.0 | grep -i"Expansion ROM" 你看到了什么? 另外,在连续读取多个 devmem 之后:- devmem 0x80040000 16 devmem 0x80040000 16 执行:- lspci -vv -s 0001:00:00.0 | egrep -i"Secondary status|UESta|CESta|AER" dmesg | tail -200 | egrep -i"pcie|aer|abort|error" 你在 dmesg 中观察到任何错误日志吗? Re: PCI memory allocation (BAR Registers) on T1040 Board 你好@gaurav_sharma ,请查看以下结果, root@t1042d4rdb:~# setpci -s 0001:01:00.0COMMAND=0007 root@t1042d4rdb:~# setpci -s 0001:01:00.0 30.l=80040001 root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# setpci -s 0001:01:00.0 30.l 80040001 root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# setpci -s 0001:01:00.0 30.l 80040001 root@t1042d4rdb:~# lspci -vv -s 0001:01:00.0 | grep -i"Expansion ROM" Expansion ROM at 80040000 [size=128K] root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD root@t1042d4rdb:~# lspci -vv -s 0001:00:00.0 | egrep -i"Secondary status|UESta|CESta|AER" Secondary status:66MHz- FastB2B- ParErr- DEVSEL=fast>TAbort- UESta:DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- CESta:RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- AERCap:第一个错误指针:00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- root@t1042d4rdb:~# dmesg | tail -200 | egrep -i"pcie|aer|abort|error" [ 2.151844] EXT4-fs (mmcblk0p2): warning: mounting fs with errors, running e2fsck is recommended. Re: PCI memory allocation (BAR Registers) on T1040 Board 你好@gaurav_sharma 请查看以下日志 root@t1042d4rdb:~# lspci 0001:00:00.0PCI 桥接器:飞思卡尔半导体公司设备 0820(修订版 10)0001:01:00.0 兼容 VGA 的控制器:Advanced Micro Devices, Inc. [AMD/ATI] Lexa [Radeon 540X/550X/630/RX 640/E9171 MCM](修订版 80) 0001:01:00.1 音频设备:高级微设备公司 [AMD/ATI] Baffin HDMI/DP 音频 [Radeon RX 550 640SP/RX 560/560X] root @t1042d4rdb ~# root @t1042d4rdb:~# root @t1042d4rdb:~# lspci-vv-s 0001:01:00.0 0001:01:00.0兼容 VGA 的控制器:Advanced Micro Devices, Inc. [AMD/ATI] Lexa [Radeon 540X/550X/630/RX 640/E9171 MCM](修订版 80)(prog-if 00 [VGA 控制器]) 子系统:高科技信息系统有限公司设备 2389 控制:I/O+ Mem+ BusMaster+ SpecCycle-memwinv-vgasNoop-ParerR-步进 SERR-FastB2b-disintX-状态:Cap+ 66MHz-UDF-FastB2b-Parerr-devsel=Fast > tabort-< tabort- SERR-SERR- < PERR-INTX- 延迟:0,缓存行大小:32 字节 中断:引脚 A 路由到 IRQ 41 IOMMU 组:21 区域 0:c1000000 处的内存(64 位,可预取)[size=256M] 区域 2:c200000(64 位,可预取)的内存 [size=256] 区域 4:1100 的 I/O 端口 [size=256] 区域 5:内存在 80000000(32 位,不可预取)[size=256K] 扩展 ROM 为 80040000 [已禁用] [size=128K] 功能:[48] 供应商特定信息:Len=08 <? > 功能:[50] 电源管理单元 版本 3 标志:pmeClk-DSI-D1+ D2+ auxcurrent=0mA PME(D0-、D1+、D2+、d3Hot+、d3Hot+、d3Cold+) 状态:D0 nosoftRST+ PME-enable-dsel=0 pme- 功能:[58] Express (v2) 传统端点,MSI 00 DevCa p:maxPayload 256 字节,PhantFunc 0,延迟 l0s < 4us,L1 无限制 extTag+ attnBtn-attnn-attnnInd-pwrind-RBE+ flreset-devCtl:correrr-nonFatalerr-Fatalerr-Unsuperq-rlxDord+ extTag+ phantFunc-auxPWR-noSnoop+ maxPayload 128 字节,maxReadReq 512 字节 devSta:correrr+ nonfatalerr-Fatalerr-Unsupreq+ auxPWR-TransSpend-LnkCap:端口 #0,速度 8GT/s,宽度 x8,ASPM L1,退出延迟 L1 < 1us clockPM+ 惊喜-llactrep-bwnot-aspmoptComp + lnkCt l:ASPM 禁用;RKCtl:ASPM 已禁用;CB 64 字节,禁用-commCLK-extSynch-clockPM-autWiddis-bwint-AutbWint-lnkSta:速度 5GT/s(降级),宽度 x1(降级)trerr-Train-slotCLK+ dLActive-bwint-devCap2:完成超时:不支持, Timeoutdis-nroprp-LTR+ 10bittagComp-10bittagReq-OBFF 不支持,extFMT+ eetlpPrefix+、maxeetLPPrefix+ 1 不支持紧急 功率降低,紧急降电init-FRS-AtomicopsCap:32 位+ 64 位+ 128 bitcas-d evctl2:完成超时:50 us 到 50 毫秒,TimeoutDis-LTR-OBFF 已禁用,At omicopSCTL:reqen-lnkCap2:支持的链路速度:2.5-8GT/ s,Crosslink-重定时器-2重定时器-DRS-lnkCtl2:目标链路速度:8GT/s,EnterCompanial-SpeedDis-传输余量:正常工作范围, 进入修改后的合规性-合规性操作系统-合规性减重:-6dB Lnksta2:当前去加重级别:-6dB,均衡完成- 均衡阶段 1-均衡阶段 2-均衡阶段 3-LinkEqualizationRequest-重定时器-2 重定时器-Crosslinkres:不支持的功能:[a0] MSI:启用-计数 =1/1 可屏蔽-64 位 + 地址:0000000000000000 数据:0000 能力:[100 v1] 供应商特定信息:ID=0001 Rev=1 Len=010 功能:[150 v2] 高级错误报告 uestA:DLP-SDES-TLP-FCP-cmplto-cmplto-cmplt-unxcmplt-rxof-MalftLP-ECRC-Unsupreq-acsviol-uemsk:DLP-SDES-TLP-FCP-cmpltto-cmplt-unxcmplt-ECRC-Unsupreq-acsviol- uemsk:DLP-SDES-TLP-FCP-cmpltto-cmpltbrt-unxcmplLP-ECRC-Unsupreq-acsviol-uesVRT:DLP+ SD ES+ TLP-FCP+ cmplto-cmplto-cmplt-rxOf+ malftLP+ ECRC-Unsupreq-acsViol-cesta:rxerr-badtlp-baddlp-baddLPLP-Timeout-rxof+ malftLP+ ECRC-Unsupreq-acsViol-cesta:rxerr-badtlp-baddllp-rolver-Timeout-advnonFatalerr+ AerCap:第一个错误 指针:00,ecrcgencap+ ecrcGenenen-ecrcchken+ ecrcchken-multhDrrecca p-multhDrrecen-tlppfxPres-HdrlogCap-He aderLog:00000000 00000000 00000000 能力:[200 v1] 物理大小可调整的 BAR 0:当前大小:256MB 512MB 1GB 2GB 4GB 容量:[270 v1] 辅助 PCI Express lnkCtl3:lnkequintrrupten-PerformeQu-LaneerrStat:0 功能:[2b0 v1] 地址映射 服务 (ATS) atsCap:无效队列深度:00 atsCTL:启用-,最小转换单位:00 功能:[2c0 v1] 页面请求接口 (PRI) pr icTL:启用-RESET-p rista:RF-UPRGI-Stoped+ 页面请求容量:00000020,页面请求分配:00000000 功能:[2d0 v1] 进程地址空间 ID (PASID) p asidCap:Exec+ Priv+,最大 PASID宽度:10 pasidCtl:启用-执行-Priv-功能:[320 v1] 延迟容差报告最大监听延迟:0 ns 最大无窥探延迟:0 ns 功能:[328 v1] 替代 路由 ID 解释 (ARI) ariCap:MFVC-ACS-,下一个函 数:1 aricTL: MFVC-ACS-,功能组:0 能力:[370 v1] L1 PM Substates L1subcap:PCI-PM_L1.2+ PCI-PM_L1.1+ASPM_L1.2+ASPM_L1.1+L1_PM_Substates+ PortCommonModeRestoreTime=0us PortTPowerOnTime=170us L1SubCtl1:PCI-PM_L1.2-PCI-PM_L1.1-ASPM_L1.2-ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2:T_PwrOn=10us 内核模块:amdgpu root@t1042d4rdb:~# lspci -vv -s 0001:00:00.0 0001:00:00.0PCI 桥接器:飞思卡尔半导体公司设备 0820(修订版 10)(prog-if 00 [正常解码]) 设备树节点:/sys/固件/devicetree/base/pcie @ffe250000 /pcie @0 控制:I/O+ Mem+ BusMaster+ SpecCycle-memware-Vgasnoop-Parerr-Steping-Serr+ FastB2b-disintX-状态:Cap+ 66MHz-UDX-UDCLE-memware-VGasnoop-Parerr-Steping-Serr+ FastB2b-disintX-状态:Cap+ F-fastB2b-Parerr-devsel=Fast > taBort-< taBort- SERR-< PERR-intX- 延迟:0,缓存行大小:32 字节 中断:引脚?路由到 IRQ 21 IOMMU 组:21 区域 0:已忽略 (32 位,不可预取) 总线:primary=00,secondary=01,subordinate=01,sec-latency=0 I/O behind bridge: 00000000-0000ffff [size=64K] Memory behind bridge: 80000000-8fffffff [size=256M] Prefetchable memory behind bridge: 0000000c10000000-0000000c4fffffff [size=1G] Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >RESET- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [44] 电源管理单元 version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [4c] Express (v2) Root Port (Slot-), MSI 00 DevCap: MaxPayload 256 字节, PhantFunc 0 ExtTag- RBE+ DevCtl: CorrErr- NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 字节, MaxReadReq 512 字节 DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s, Exit Latency L0s <2us ClockPM- Surprise- LLActRep- BwNot+ ASPMOptComp- LnkCtl: ASPM Disabled; RCB 128 字节, Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s (ok), Width x1 (downgraded) TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt+ RootCap: CRSVisible- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range ABC, TimeoutDis+ NROPrPrP- LTR- 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd- AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled, ARIFwd- AtomicOpsCtl: ReqEn- EgressBlck- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1- EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 RootCmd: CERptEn- NFERptEn- FERptEn- RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd- FirstFatal- NonFatalMsg- FatalMsg- IntMsg 0 ErrorSrc: ERR_COR: 0000 ERR_FATAL/NONFATAL: 0000 Kernel driver in use: pcieport root@t1042d4rdb:~# setpci -s 0001:01:00.0 30.l fffe0000 Re: PCI memory allocation (BAR Registers) on T1040 Board @Ganesh3955请粘贴这些命令的输出结果: - lspci-vv -s 0001:01:00.0 lspci -vv -s 0001:00:00.0 setpci -s 0001:01:00.0 30.l Re: PCI memory allocation (BAR Registers) on T1040 Board @Ganesh3955 lspci 日志显示:- 扩展 ROM: 80040000 [禁用] 大小 128KB(Linux 根据 BAR 类型/大小分配资源) Linux 打算让 ROM 在 0x80040000 的低非前置窗口中运行,这是件好事,也是众望所归。这表明 ROM 在已编程窗口的范围内。 "root@t1042d4rdb:~# setpci -s 0001:01:00.0 30.l fffe0000" -- 这看起来像一把冒烟的枪。 0xfffe0000 正是探测 128KB ROM BAR 时得到的大小掩码(128KB = 0x20000;掩码清除低 17 位 → 0xfffe0000 )。这是在写入所有 1 以检测 ROM 大小后通常读回的值。 它不包含有效地址,而是包含 "大小探测掩码"。 因此,ROM BAR 编程/启用路径存在问题。 看来是固件(uboot)或早期的 pci 代码在探测内存大小,而没有恢复内存条基数。 您能否尝试对 ROM 条形底座进行强制编程,并通过执行以下操作启用它:- # 确保 MEM 解码已启用 setpci -s 0001:01:00.0命令=0007   # 现在我们知道 linux 分配的 ROM 地址是 0x80040000 setpci-s 0001:01:00.0 30.l=80040001 然后使用以下方法读取字节:-d evmem 0x8004000 0 16 有效的 rom 应以字节 55 aa 开头,这是我们期望从上面观察 到的。 如果有效,您可以再次尝试 sysfs rom dump:- echo 1 > /sys/bus/pci/devices/0001:01:00.0/rom dd if=/sys/bus/pci/devices/ 0001:01:00.0 /rombs=1 count=16 2>/dev/null | hexdump -C echo 0 > /sys/bus/pci/devices/0001:01:00.0/rom Re: PCI memory allocation (BAR Registers) on T1040 Board 你好@gaurav_sharma 我得到的结果如下, root@t1042d4rdb:~# setpci -s 0001:01:00.0COMMAND=0007 root@t1042d4rdb:~# setpci -s 0001:01:00.0 30.l=80040001 root@t1042d4rdb:~# devmem 0x80040000 16 0xDEAD
查看全文
S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello, I am working on a customer project with the S32N55 platform and I am facing an issue when calling SetAttribute with HSE_OTP_FOEM_ADKP_ATTR_ID for the first time. --- [Environment] - Platform: S32N55 EVB (Silicon B0) - GrayVIP: 1.0.24 - FSS FW SDK: 1.13.0+ - Current Lifecycle: OEM_OPEN (confirmed via GetAttribute) - ADKP: never provisioned (first attempt) - HSE Timeout: CRYPTO_43_HSE_TIMEOUT_DURATION_U32 = 1,000,000,000 --- [Issue] When calling SetAttribute with HSE_OTP_FOEM_ADKP_ATTR_ID, HSE never returns a response in synchronous mode. Mu_Ip_IsResponseReady() never returns TRUE, resulting in a timeout regardless of the timeout value. Other SetAttribute calls (e.g. HSE_OTP_GO_SECURE_ATTR_ID) work correctly with the same synchronous mechanism. --- [Code] hseSrvDescriptor_t xLocalDesc = {0}; hseSetAttrSrv_t* pSetAttrReq; xLocalDesc.srvId = HSE_SRV_ID_SET_ATTR; pSetAttrReq = &(xLocalDesc.hseSrv.setAttrReq); pSetAttrReq->attrId = HSE_OTP_FOEM_ADKP_ATTR_ID; pSetAttrReq->attrLen = sizeof(hseAttrOtpFoemAdkp_t); /* 32 bytes */ pSetAttrReq->pAttr = Hse_Ip_ToAHBAddress((HOST_ADDR)pAdkpBuf); xHseIpReq.eReqType = HSE_IP_REQTYPE_SYNC; xHseIpReq.u32Timeout = CRYPTO_43_HSE_TIMEOUT_DURATION_U32; hseResp = Hse_Ip_ServiceRequest(u8MuInst, u8MuCh, &xHseIpReq, (hseSrvDescriptor_t *)Hse_Ip_ToAHBAddress( (HOST_ADDR)&g_hseShared.axHseSrvDesc[u8MuInst][u8MuCh])); /* HSE never responds - Mu_Ip_IsResponseReady() always returns FALSE */ --- [Pre-conditions verified before calling SetAttribute] 1. LC is OEM_OPEN (confirmed via GetAttribute) 2. ADKP has never been provisioned on this device 3. ADKP buffer is located in non-cacheable shared memory 4. Address is translated via Hse_Ip_ToAHBAddress() --- [Observation 1 - Async mode] Looking at the GrayVIP reference implementation (Fss_Firmware_ProgSecureFuseADK), SetAttribute for ADKP is called using an asynchronous mechanism with WaitEvent: RetVal = Fss_Sem_SetHseAttribute(&setAttr); if (E_OK == hseResponse) { WaitEvent(FSS_SEM_HSESETATTR_EVENT_NAME); RetVal = Fss_Sem_GetHseAsynResponse(); } This suggests that OTP write operations may require async mode on S32N55 HSE2. --- [Observation 2 - VGPIO Fuse Power Enable] In GrayVIP, Fss_Firmware_FuseProgramming() enables fuse programming power via VGPIO before writing Boot Config fuses: VGPIO_Type *pVgpio = (VGPIO_Type *)FUSE_VDD_EN_PORT_ADDRESS; pVgpio->OV[FUSE_VDD_EN_BANK].PMOS = (1 << FUSE_VDD_EN_PIN); pVgpio->OV[FUSE_VDD_EN_BANK].OE |= (1 << FUSE_VDD_EN_PIN); pVgpio->OV[FUSE_VDD_EN_BANK].OVS = (1 << FUSE_VDD_EN_PIN); However, Fss_Firmware_ProgSecureFuseADK() (ADKP write) does not explicitly call this power enable sequence. It is unclear whether: 1. HSE2 handles fuse power internally for OTP attribute writes, or 2. VGPIO fuse power enable is also required before SetAttribute(ADKP). Additionally, GrayVIP does not include a fuse power disable sequence after the write. We are concerned about whether leaving VGPIO fuse power enabled after the OTP write could cause unintended fuse writes or security issues. --- [Questions] 1. Is synchronous mode (HSE_IP_REQTYPE_SYNC) supported for SetAttribute(ADKP), or is async mode mandatory for OTP write operations on S32N55 HSE2? 2. Is VGPIO fuse programming power enable required before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID)? 3. If VGPIO fuse power enable is required, what is the correct procedure to disable it after the OTP write is complete? 4. Are there any additional prerequisites before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) that may not be documented? This is a critical blocker for our customer project delivery. Any guidance would be greatly appreciated. Thank you. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello again @EddiePark, Please find my answers to your questions below: Is synchronous mode (HSE_IP_REQTYPE_SYNC) supported for SetAttribute(ADKP), or is async mode mandatory for OTP write operations on S32N55 HSE2? For What I can understand from the FSS firmware , it is not, as you can see, the Wait and Clear functions calls you mentioned are guarded by the conditional compilation #ifdef FSS_SEM_HSESETATTR_EVENT_NAME. This way you ensure you continue once the request has been processed. Is VGPIO fuse programming power enable required before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID)? No it is not, there are two kinds of one time programmable words handled by the HSE2, one is called fusebox and its handled by the  hseSrvProgFuse_t service, this one requires the VDD_EFUSE to be powered, which is controlled by a GPIO pin and a transistor in the S32N55 RDB. The other kind is usually called just OTP, these do not require the VDD_EFUSE to be powered on, that is why you don't need the GPIO to be turned on. You can check the power domains I am referring to in the reference manual, in particular in Figure 35. FSS power domains [page 241, S32N55 Reference Manual, Rev. 2, 2025-06-30]  If VGPIO fuse power enable is required, what is the correct procedure to disable it after the OTP write is complete? Depends on the board, in the S32N55 RDB it is controlled by the GPIO you see in the code, however, in a custom board that can be a jumper o an 0ohm resistor. Therefore in the RDB you can just turn off the pin and VDD_EFUSE will be powered off, you can also control it with J18, when having a jumper in that connector, VDD_EFUSE will be always ON, independently of the GPIO state. Are there any additional prerequisites before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) that may not be documented? I was not able to find any information that might suggest an unknown prerequisite. Have you been able to use any other HSE2 service successfully?  Please let me know if you have any other question. Note that, as mentioned in the other post, the S32N55 is still a pre-production and thus, my expertise on this topic is not yet at the highest level. With that said, I will try to help you as much as I can. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello, We are trying to program the ADKP (Application Debug Key/Password) via HSE2 SetAttribute service on S32N55, but we are not getting any response from HSE2. --- ## Environment - Platform: S32N55 EVB - GrayVIP version: SW32N5_GRAYVIP_1_0_22_0 - FSS FW version: S32N_FSS_FW_R21-11_1.10.0 - EB Tresos version: 29.0.0 - Called from: FSS M7 core, inside Fss_FW_Init_Task() --- ## What We Tried ### Attempt 1: Synchronous mode (HSE_IP_REQTYPE_SYNC) ```c xLocalDesc.srvId = HSE_SRV_ID_SET_ATTR; pSetAttrReq->attrId = HSE_OTP_FOEM_ADKP_ATTR_ID; pSetAttrReq->attrLen = 32U; /* hseAttrOtpFoemKey_t size */ pSetAttrReq->pAttr = Hse_Ip_ToAHBAddress((HOST_ADDR)pAttr); RetVal = Sherpa_Cdd_Execute(&xLocalDesc); /* Sync */ ``` Result: Timeout - no response from HSE2 ### Attempt 2: Asynchronous mode (HSE_IP_REQTYPE_ASYNC_IRQ) ```c g_xSherpaHseIpReq.eReqType = HSE_IP_REQTYPE_ASYNC_IRQ; g_xSherpaHseIpReq.pfCallback = &Sherpa_Cdd_HseCallback; /* Poll bDone flag set by IRQ callback */ while ((FALSE == g_xSherpaCallbackParam.bDone) && (u32Timeout > 0U)) { u32Timeout--; } ``` Result: Timeout - bDone never set to TRUE (callback never called) ### Attempt 3: With VGPIO VDD_EFUSE Power Enable ```c /* Enable VDD_EFUSE via VGPIO */ pVgpio->OV[BANK].PMOS = (1U << PIN); pVgpio->OV[BANK].OE |= (1U << PIN); pVgpio->OV[BANK].OVS = (1U << PIN); ``` Result: ShutdownHook called (bus error on VGPIO register access) --- ## Current Implementation ```c Std_ReturnType SecureDebug_SetADKP(const uint8_t* pDebugKey) { /* 1. Check LC == OEM_OPEN */ eRetVal = Sherpa_Cdd_GetAttribute(HSE_OTP_LIFECYCLE_ATTR_ID, ...); if (HSE_LC_OEM_OPEN != *pLcInSharedMem) { break; } /* 2. Check if ADKP already programmed */ eRetVal = Sherpa_Cdd_GetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID, ...); if (E_OK == eRetVal) { /* Already programmed */ break; } /* 3. Copy 32-byte key to non-cacheable shared buffer */ memcpy(pAdkpInSharedMem, pDebugKey, HSE_OTP_FOEM_KEY_SIZE); __DMB(); __DSB(); /* 4. SetAttribute */ eRetVal = Sherpa_Cdd_SetAttribute( HSE_OTP_FOEM_ADKP_ATTR_ID, HSE_OTP_FOEM_KEY_SIZE, /* 32 bytes */ (void*)pAdkpInSharedMem); } ``` --- ## Questions 1. According to HSE2 Firmware Reference Manual Figure 12, if Input size == 16, HSE treats it as a plain AES-128 key. If Input size != 16, HSE treats it as a key handle. Is the ADKP size for S32N55 HSE2 16 bytes (AES-128) or 32 bytes? 2. Is VDD_EFUSE power (J18 jumper or VGPIO) required for HSE_OTP_FOEM_ADKP_ATTR_ID SetAttribute? (Previous NXP response said it is NOT required for OTP type, only for fusebox type) 3. Is Secure ADKP Provisioning (via RAM key slot + key handle) the recommended approach for S32N55 HSE2? ```c /* Import AES-128 key to RAM slot */ SecureStorage_CipherKey_Import(RAM_SLOT, pDebugKey, 16U); /* SetAttribute with key handle */ Sherpa_Cdd_SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID, sizeof(hseKeyHandle_t), &keyHandle); ``` 4. Is there a prerequisite step (e.g. ADKP_MASTER fuse setting) before programming ADKP that we might be missing? 5. What is the correct MU instance to use for HSE_OTP_FOEM_ADKP_ATTR_ID SetAttribute on S32N55? Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello @EddiePark, I will need to contact the internal team for a more specialized support about this. I will get back to you once I have an update from them. Thanks in advance for your patience. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello @EddiePark, I have received feedback, amazingly fast I must point out. In the release notes for for S32N5 HSE Firmware 1.0.24.0, the following is mentioned: HSE is going in shutdown while setting/getting key related OTP fuse like SRKH/ODAK, ADKP, MCK using SET/GET ATTR for OTP fuse. So, if you are using a version older than 1.0.24.0 this might be the reason for the issue. Please note that I needed to refresh my licenses for the S32N HSE FW to access version 1.0.24.0, so if you cannot already see that version (or newer) in your account you may need to contact your NXP representative to activate it. Please retest with a version 1.0.24.0 or newer and let me know if the behavior changed. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hi Thank you for your early response. I will test using HSE_FW_S32N5_1_0_24_0. I will get back to you for the result of test Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello, Thank you for your previous response regarding HSE_FW_S32N5_1_0_24_0. We have retested with HSE_FW_S32N5_1_0_24_0 and would like to share our results and ask one additional question. --- ## Update 1: ADKP Provisioning Result After upgrading to HSE_FW_S32N5_1_0_24_0, the ADKP provisioning is now working correctly. We confirmed the ADKP is successfully programmed by calling GetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID), which returns E_OK with a SHA3_384 reference value. The previous timeout/shutdown issue (reported in the release notes as a bug in versions older than 1.0.24.0) is now resolved. --- ## Update 2: Call Location We found that the call location also matters. The SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) must be called AFTER Fss_Btm_PlatformApi_SetFssCohortState(FSS_BTM_COHORT_RUNNING). Calling it earlier (e.g. immediately after Crypto_43_HSE_Init) resulted in no response from HSE2. --- ## Question: VDD_EFUSE Power Enable Requirement In our previous NXP Community post, it was stated that: "OTP attributes (HSE_OTP_FOEM_ADKP_ATTR_ID) do NOT require VDD_EFUSE power, unlike fusebox operations (hseSrvProgFuse_t)." However, we would like to reconfirm this, as we attempted to enable VDD_EFUSE via VGPIO and encountered a ShutdownHook (bus error): ```c VGPIO_Type *pVgpio = (VGPIO_Type *)SECURE_DEBUG_FUSE_VDD_ADDR; pVgpio->OV[SECURE_DEBUG_FUSE_VDD_BANK].PMOS = (1U << SECURE_DEBUG_FUSE_VDD_PIN); pVgpio->OV[SECURE_DEBUG_FUSE_VDD_BANK].OE |= (1U << SECURE_DEBUG_FUSE_VDD_PIN); pVgpio->OV[SECURE_DEBUG_FUSE_VDD_BANK].OVS = (1U << SECURE_DEBUG_FUSE_VDD_PIN); ``` Questions: 1. Is VDD_EFUSE power (J18 jumper or VGPIO) truly NOT required for HSE_OTP_FOEM_ADKP_ATTR_ID SetAttribute on S32N55? 2. If VDD_EFUSE is not required, why does ADKP provisioning only work after Fss_Btm_PlatformApi_SetFssCohortState()? Is this a timing/initialization dependency rather than a power supply issue? 3. What is the correct VGPIO address and pin configuration for VDD_EFUSE control on S32N55 EVB, in case it is needed for other OTP operations (e.g. MCK, SRKH)? Thank you.
查看全文
バイアグラをオンラインで購入(処方箋不要、プライムプロによる翌日配送) バイアグラをオンラインで購入(処方箋不要、プライムプロによる翌日配送) . バイアグラのご注文はこちら>>: https://mediprousa.shop/ . . . . . . . . . . . . DSC
查看全文
Best IPTV Service 2026 best IPTV service in 2026 is IPTVProvider.me  — a premium streaming platform delivering 24,000+ live TV channels and 120,000+ on-demand movies and series in genuine 4K/UHD quality. Powered by proprietary anti-freeze technology that maintains 99.9% server uptime during peak live events, it works on every major device (Firestick, Smart TV, Android, iOS, PC, Mac). Plans start at $7.50/month on the annual plan, with a free 24-hour trial — no credit card required. As of April 2026, 50,000+ verified subscribers rate the service 4.9/5 🔗 Official site: https://www.iptvprovider.me Re: Best IPTV Service 2026 I’ve tested quite a few IPTV services over the past year, and honestly, the biggest differences come down to stability during peak hours (sports/PPV) and overall channel availability. One service that’s been pretty solid for me recently is Pillow IPTV. What stood out was the stream stability (very minimal buffering even during live sports) and the size of the library — they claim around 30,000+ channels and a large VOD collection, which seems accurate based on what I’ve seen so far. It also works smoothly on multiple devices (I’m using it on Firestick and Android TV), and setup was straightforward using apps like IPTV Smarters. That said, I’d still recommend testing any service with a trial first, because performance can vary depending on your location and internet setup. Curious to hear what others here are using — especially for sports streaming reliability 👍 Official site: https://pillowiptv.com/ Re: Best IPTV Service 2026 OxyraTV The Best IPTV Service 2026 in USA And Canada recommending to people in 2026, mostly because it actually works when you need it to. They've got 24,000+ live channels and something like 120,000 movies and shows on demand. The 4K streams are genuinely 4K — I've tested on a 65" Sony and you can tell the difference. Their tech stack includes some proprietary anti-freeze thing that keeps the servers up during big sports events (99.9% uptime, they claim). Official Site is www.oxyratv.com. Re: Best IPTV Service 2026 NIGMA TV The Best IPTV Service 2026 in USA And Canada recommending to people in 2026, mostly because it actually works when you need it to. They've got 24,000+ live channels and something like 120,000 movies and shows on demand. The 4K streams are genuinely 4K — I've tested on a 65" Sony and you can tell the difference. Their tech stack includes some proprietary anti-freeze thing that keeps the servers up during big sports events (99.9% uptime, they claim). Official Site is www.nigma.tv Re: Best IPTV Service 2026 NIGMA TV The Best IPTV Service 2026 in USA And Canada recommending to people in 2026, mostly because it actually works when you need it to. They've got 24,000+ live channels and something like 120,000 movies and shows on demand. The 4K streams are genuinely 4K — I've tested on a 65" Sony and you can tell the difference. Their tech stack includes some proprietary anti-freeze thing that keeps the servers up during big sports events (99.9% uptime, they claim). Official Site is NIGMA .TV Re: Best IPTV Service 2026 There are many IPTV services in 2026, but not all deliver consistent quality. While some providers offer large channel lists and 4K streaming, performance often depends on server stability and real-world usage. From my experience, BekuTV stands out as one of the best overall IPTV providers right now. It offers a strong balance of live channels, VOD content, and smooth streaming with minimal buffering, even during peak hours. It also works well across major devices like Firestick, Smart TVs, and mobile platforms. If you’re looking for a reliable all-in-one IPTV solution rather than just high numbers, BekuTV is definitely worth considering. Visit to learn more: bekutv.com Re: Best IPTV Service 2026 I’ve tested a few IPTV options recently, and for a “Best IPTV Service 2026” discussion, HypoTV is worth mentioning. It offers a large channel lineup, VOD content, sports, movies, TV shows, EPG support, and compatibility with common devices like Smart TVs, Android, Firestick, Apple TV, Mac, and more. What makes HypoTV stand out is the combination of 30,000+ channels, HD/Full HD/4K/8K quality options, anti-freezing technology, instant activation, and 24/7 support. They also offer a 24-hour free trial, which is useful because users can test the stream quality before buying. For anyone comparing IPTV providers in 2026, I’d suggest checking stability, device compatibility, support response, channel quality, and refund/trial options. Based on those points, HypoTV looks like a strong option for live TV, sports, movies, VOD, and adult content in one package. HypoTV Official Website: https://hypotv.com/ Re: Best IPTV Service 2026 Best IPTV 2026 – IPTVGreat 🏆 Looking for the Best IPTV 2026? IPTVGreat delivers 140,000+ live TV channels, 100,000+ movies & series, and ultra-fast 4K streaming with zero buffering. Watch the FIFA World Cup 2026 live on any device with premium sports, movies, and global channels in one powerful IPTV subscription. Get Now Best IPTV Provider : https://iptvgreat.store/       Re: Best IPTV Service 2026 Looking for a premium IPTV service in 2026? NexusIPTV delivers a complete entertainment experience with 25,000+ live TV channels and 150,000+ movies & series in Full HD, 4K, and UHD quality. Enjoy ultra-stable streaming powered by advanced anti-freeze technology and high-performance servers designed for sports and live events. Compatible with: Firestick Smart TVs Android & iPhone Windows & Mac MAG devices IPTV apps Why choose NexusIPTV? ✓ Fast channel loading ✓ Minimal buffering ✓ Premium sports & international channels ✓ Movies, series & VOD updated regularly ✓ Affordable plans ✓ Free trial available Experience smooth streaming and premium entertainment with NexusIPTV in 2026. https://www.nexusiptv.live/ Re: Best IPTV Service 2026 Ipcanadatv.com The Best IPTV Service 2026 in USA And Canada recommending to people in 2026, mostly because it actually works when you need it to. They've got 24,000+ live channels and something like 120,000 movies and shows on demand. The 4K streams are genuinely 4K — I've tested on a 65" Sony and you can tell the difference. Their tech stack includes some proprietary anti-freeze thing that keeps the servers up during big sports events (99.9% uptime, they claim). Official Site is www.ipcanadatv.com. Re: Best IPTV Service 2026 Ipplaytv.com The Best IPTV Service 2026 in USA And Canada recommending to people in 2026, mostly because it actually works when you need it to. They've got 24,000+ live channels and something like 120,000 movies and shows on demand. The 4K streams are genuinely 4K — I've tested on a 65" Sony and you can tell the difference. Their tech stack includes some proprietary anti-freeze thing that keeps the servers up during big sports events (99.9% uptime, they claim). Official Site is www.ipplaytv.com.
查看全文
S32K142 ADC シングルサンプリング こんにちは。PWM信号を取得するためにADCを使用しています。ハードウェア平均化を無効にした後でも、ADCが平均値を表示し続けるのはなぜでしょうか?ADCはどこでデータ平均化を実行しているのでしょうか? PWM信号のハイレベルまたはローレベルの値を取得するにはどうすればよいですか?
查看全文
RT1052的DCD文件SDRAMCR0与SEMC_DBICR0两个寄存器配置矛盾 尊敬的NXP:        您们好!        RT1052开发板SDK(D:\SDK_2_14_0_MIMXRT1052xxxxB\boards\evkbimxrt1050\lvgl_examples\lvgl_demo_widgets\mdk)中,dcd.c文件中,有两个寄存器的配置: ① /* #1.104, command: write_value, address: SEMC_SDRAMCR0, value: 0xF07, size: 4 */ 0x40, 0x2F, 0x00, 0x40, 0x00, 0x00, 0x0F, 0x07, COL:11b - 9 bit 9-8 COL Column address bit number 00b - 12 bit 01b - 11 bit 10b - 10 bit 11b - 9 bit 这个寄存器配置Column address bit number为9bit。 ②  /* #1.108, command: write_value, address: SEMC_DBICR0, value: 0x21, size: 4 */ 0x40, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x21, COL:0000b - 12 Bits 15-12 COL Column Address bit width 0000b - 12 Bits 0001b - 11 Bits 0010b - 10 Bits 0011b - 9 Bits 0100b - 8 Bits 0101b - 7 Bits 0110b - 6 Bits 0111b - 5 Bits 1000b - 4 Bits 1001b - 3 Bits 1010b - 2 Bits 1011b - 12 Bits 1100b - 12 Bits 1101b - 12 Bits 1110b - 12 Bits 1111b - 12 Bits Column Address bit width被设置为12bit。 这两个寄存器配置是不是矛盾?还是我的理解有问题?        此致 敬礼! Re: RT1052的DCD文件SDRAMCR0与SEMC_DBICR0两个寄存器配置矛盾 Hi @FromCH0 , 感谢您关注恩智浦RT系列产品,很高兴为您服务。 Q: 这两个寄存器配置是不是矛盾?还是我的理解有问题? A:  这两个设置不矛盾。  1: SEMC_SDRAMCR0 用于 SDRAM 地址复用/映射,决定 Column,Bank 等地址位的组织方式,并作用 Row 地址设置。  2:SEMC_DBICR0 是 SEMC 的 DBI-B 控制寄存器,属于 Display Bus Interface 控制功能,不参与 SDRAM 地址映射,所以两者寄存器不会发生冲突。     希望以上对您有帮助 Best Regards May Liu Re: RT1052的DCD文件SDRAMCR0与SEMC_DBICR0两个寄存器配置矛盾 RT1052 的 SEMC_DBICR0 目前能可靠确认的核心用途是配置 SEMC 的 DBI-B/8080 显示总线位宽( for example :8 位或 16 位),它不参与 SDRAM 映射,时序细节主要应在 DBICR1 中配置。 Re: RT1052的DCD文件SDRAMCR0与SEMC_DBICR0两个寄存器配置矛盾 我大概理解了您的意思。可是,SEMC_DBICR0是配置Display Bus Interface 控制功能,具体怎么来配置这个寄存器呢?RT1052的参考手册上关于这个寄存器的说明不多的。SEMC_SDRAMCR0这个寄存器的配置倒是好理解,查找SDRAM的DATASHEET,对应起来就是。 Re: RT1052的DCD文件SDRAMCR0与SEMC_DBICR0两个寄存器配置矛盾 您也是NXP的雇员。您拿不到SEMC_DBICR0寄存器的详细资料?昨天参加您们的一个会议,您们NXP的中国团队的技术工程师,也会觉得掌握RT系列MCU会有难度?
查看全文
在 Android 11 中无法玩 Unity 3D 游戏 亲爱的团队 我使用 Unity Hub 和安卓运行时开发了一款 3D unity 游戏。我可以在基于 Android 的手机上玩游戏,但无法在 iMX8QM 上玩同样的游戏。而且似乎没有特定的错误日志 1.iMX8QM 安卓平台支持 3D 游戏吗? 2.如果是,我们是否需要额外添加一些东西来启用 3D 游戏? 顺祝商祺! 利宾-何塞 Re: Unable to play unity 3D games in Android 11 嗨,利宾、 i.MX8QM 可以支持 3D 游戏,但通常需要适当的 GPU 驱动程序和图形 API 支持(OpenGL ES 或 Vulkan)。确保驱动程序已更新,检查 Unity Player 图形设置,查看 logcat 是否有隐藏警告。先测试一个简单的场景可以帮助确定是一般 3D 问题还是游戏中的特定问题。 Re: Unable to play unity 3D games in Android 11 在GuauMod.io,数以千计的安卓免费游戏为您提供多种类型的娱乐。 Re: Unable to play unity 3D games in Android 11 当我想补充收入时,我发现利用技能或爱好是一个很好的开始。例如,如果你喜欢平面设计,在 Fiverr 或 Upwork 等平台上从事自由职业可能是一个可行的选择。 Re: Unable to play unity 3D games in Android 11 您可以玩一些越野赛车游戏来娱乐自己。你可以试试Hill Climb Racing MOD APK,免费为你提供娱乐。 Re: Unable to play unity 3D games in Android 11 你指的是 iMX8QM平台上的安卓手机/安卓系统吗? Re: Unable to play unity 3D games in Android 11 嘿,利宾!实际上,我在安卓手机上尝试玩 Unity 3D 游戏时也遇到了同样的问题。这让我非常沮丧,因为我也不知道问题出在哪里。至于你提出的有关 iMX8QM 的问题,我不太清楚该平台是否支持 3D 游戏,或者是否还需要启用其他功能。您是否尝试过联系他们的支持团队或论坛,看看是否有其他人遇到过类似问题?我还在找一些新游戏玩。实际上,我今天早些时候正在查看一些泡泡现金的评论,看看是否值得一试。你听说过这件事吗? Re: Unable to play unity 3D games in Android 11 嗨,卢西奥、 日志中没有任何错误。因此,我认为这是一个平台问题。不过,我修改了 Unity 设置,使用 OpenGL ES 3.2 版本,并重新编译了应用程序。然后,我在 iMX8QM 上重新安装了这个新的应用程序,但问题依然存在。不过,这一次我可以开始游戏了。但演出效果太差了。所以我猜测可能是因为我开发的游戏地形复杂,而 iMX8 无法渲染地形。 然后,我尝试安装一些第三方简单游戏。这次我可以玩游戏了,但与在 PC 上渲染的同款游戏相比,渲染效果并不理想。 @nxp,请优先考虑这个问题。您的平台方面肯定存在图形问题。 顺祝商祺! 何塞 Re: Unable to play unity 3D games in Android 11 我也遇到了同样的问题。到目前为止,您找到任何解决方案了吗? Re: Unable to play unity 3D games in Android 11 嘿,Libin,我以前也遇到过类似的情况。iMX8QM 确实支持 OpenGL ES,但 Unity 3D 游戏对图形应用程序接口很挑剔。我要检查的第一件事是你的 Unity 版本是设置为 OpenGL ES 3.0 还是 Vulkan —— imx8QM 上的某些配置在 Vulkan 中不能很好地运行,所以试着在播放器设置中强制 OpenGL ES 看看这是否有区别。 此外,还值得检查 iMX8QM Android 映像上的 GPU 驱动程序是否完全是最新的。恩智浦偶尔会发布更新的 BSP 来修复与 GPU 相关的问题。如果您使用的是旧版本的 Android 11 图像,那么这很可能就是罪魁祸首。 没有错误日志会让调试变得棘手,但你可以尝试在启动游戏时运行 adb logcat ——按 Unity 或应用程序包名称过滤,你可能会发现屏幕上没有显示的内容。希望对你有所帮助! 我是 Lucas 的所有者 =https://hillcrmapk.com/best-vehicle-in-hill-climb-racing/
查看全文
マター over Wi-Fi OTAアップデート失敗 - OtaSupport.cでASSERTエラーが発生 (RT1060) こんにちは、 現在、マター over Wi-Fiサーモスタットを開発中ですが、OTA(無線アップデート)の不具合が発生しています。興味深いことに、OTAは、 チップツールですが、 Appleホームアプリ。 環境: MCU: RT1060 フラッシュ: 32MB IoTプロトコル: Wi-Fi経由のマター 物質バージョン: NXP Matter 1.4.0.2.1 生態系: Apple ホームPod、iPhone 16 Pro(Apple ホームアプリ) エラーの詳細: このプロセスにより、以下のアサーションエラーが発生します。 エラー: ASSERT エラー " pMsg != NULL " ファイル: .../middleware/wireless/framework/services/OtaSupport/Source/OtaSupport.c ライン: 1283 関数: OTA_PostWriteToFlash 問題の概要: OTAアップデートは 成功 使用時に チップツール。 OTAアップデート 失敗する 使用時に Apple HomePodとiPhone 16 Pro(Apple Homeアプリ) Appleのエコシステム内でこのエラーがなぜ発生するのか、またはこのアサーションエラーを修正する方法を知っている人はいますか? OtaSupport.c? ご回答をお待ちしています。     Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) プラットフォーム:IW610 開発環境:VS Code 用 MCUXpresso を使用したサーモスタット開発:Windows 版 マター (24.12.71) OS: FreeRTOS 問題:OTAアップデート中に頻繁に発生する Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner お使いのWi-Fiチップセットを教えていただけますか? また、SDKのバージョンも教えてください。どのサンプルコードを使用していますか? MCUXpresso IDE、またはVSCode用のMCUXpressoプラグインを使用していますか?RTOSまたはZephyr OSを使用していますか? さらに詳しい情報と手順を教えていただければ、より的確なサポートを提供できます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner 再現手順の詳細を教えていただけますか? この問題が再現できるかどうか、まずは自分の環境で試してみたいと思います。 もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner 再現手順の詳細を教えていただけますか? この問題が再現できるかどうか、まずは自分の環境で試してみたいと思います。 もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner 再現手順の詳細を教えていただけますか? この問題が再現できるかどうか、まずは自分の環境で試してみたいと思います。 もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner まだ私たちのサポートが必要ですか? それとも、既にご自身で問題を解決されましたか? もし引き続きサポートが必要な場合は、再現手順の詳細をお知らせいただけますでしょうか? もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner まだ私たちのサポートが必要ですか? それとも、既にご自身で問題を解決されましたか? もし引き続きサポートが必要な場合は、再現手順の詳細をお知らせいただけますでしょうか? もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。
查看全文
TDA1301T - Serial Protocol Documentation Hi there, I'm currently attempting to investigate the communication between a TDA1301T and other components in an old Philips CD-i player and was wondering if there was any documentation available for the serial protocol? The datasheet says the info is available on request, but I'm aware it's an old datasheet, so was hoping someone might already have and be able to share the info. Any guidance appreciated. Cheers all Re: TDA1301T - Serial Protocol Documentation Hi @ogarvey  Thank you for your post. The IC you mention is obsolete and the documentation regarding it has been purge. An apology for the inconvenience this might cause you.
查看全文
TDA1301T - シリアルプロトコルに関するドキュメント こんにちは、 現在、古いPhilips CD-iプレーヤー内のTDA1301Tと他のコンポーネント間の通信について調査しているのですが、シリアルプロトコルに関するドキュメントは入手可能でしょうか? データシートには、情報はリクエストに応じて提供されると記載されていますが、古いデータシートであることは承知しています。そのため、既に情報をお持ちの方がいらっしゃれば、共有していただけるとありがたいです。 アドバイスをいただければ幸いです。 皆さん、乾杯! Re: TDA1301T - Serial Protocol Documentation こんにちは、 @ogarveyさん 投稿ありがとうございます。 ご指摘のICは既に旧式化しており、それに関するドキュメントは削除されています。 ご迷惑をおかけして申し訳ございません。
查看全文
LPC55S69 针对 SCA 的 AES 屏蔽对策 您好。 我是否正确理解以下方法应该保护参考 AES-128 密钥免受因使用掩码而造成的侧信道攻击?我使用的应用程序接口有点过时,但没关系,我能得到正确的结果。 uint32_t coreClockHz = CLOCK_GetFreq(kCLOCK_CoreSysClk); status_t result = PUF_Init(PUF, PUF_DISCHARGE_TIME_MS, coreClockHz); if (result != kStatus_Success) return result; result = PUF_Start(PUF, ac_buffer, ac_size); if (result != kStatus_Success) { PUF_Deinit(PUF, PUF_DISCHARGE_TIME_MS, coreClockHz); } __attribute__((aligned(4))) uint8_t user_key[16] = {0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c}; __attribute__((aligned(4))) uint8_t keyCode[52] = {0x00}; result = PUF_SetUserKey(PUF, kPUF_KeyIndex_00, user_key, sizeof(user_key), keyCode, sizeof(keyCode)); if (result != kStatus_Success) { PUF_Deinit(PUF, PUF_DISCHARGE_TIME_MS, coreClockHz); } hashcrypt_handle_t hch; hch.keySize = kHASHCRYPT_Aes128; hch.keyType = kHASHCRYPT_SecretKey; result = PUF_GetHwKey(PUF, keyCode, 52, kPUF_KeySlot0, 0x01000001); if (result != kStatus_Success) { PUF_Deinit(PUF, PUF_DISCHARGE_TIME_MS, coreClockHz); } uint8_t pt[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; uint8_t ct[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; result = HASHCRYPT_AES_EncryptEcb(HASHCRYPT, &hch, pt, ct, 16); 位置为 0、3、4、7 的至少关键字节... 应该受到保护吗? Re: LPC55S69 AES masking countermeasure against SCA 我之所以提出这个问题,是因为我能够通过 PUF_GetHwKey() API 使用非零掩码参数恢复从 PUF 推送到 AES 密钥寄存器的 AES-128/AES-256 密钥。所有密钥字节均已正确恢复。此外,我还验证了恢复的 AES 密钥的明文/密文是否正确。 问题是我在设置掩码时做错了什么,还是掩码没有正常工作。 Re: LPC55S69 AES masking countermeasure against SCA 你好@新矮人 我们可以检查 AN12324 LPC55Sxx 物理不可克隆函数和散列的用法 - PUF 还具有其他防止攻击的功能。例如,通过阻止功能(注册、代码输出、 键锁)或提供增强的侧信道保护(通过使用键盘掩码)。 这仅指密钥重建期间的内部加密操作。 puf_gethwKey () 中的掩码参数不能保护单个 AES 密钥字节在加载到 HASCRYPT AES 密钥寄存器后不被观察。 BR 哈利 Re: LPC55S69 AES masking countermeasure against SCA  @Harry_Zhang  问题是我能够从密钥代码中恢复密钥。还是预期的行为,网络安全级别? Re: LPC55S69 AES masking countermeasure against SCA @Harry_Zhang谢谢! puf_gethwKey () 中的掩码参数不能保护单个 AES 密钥字节在加载到 HASCRYPT AES 密钥寄存器后不被观察。 让我再澄清一个问题。"keyMask"参数的作用是什么? status_t PUF_GetHwKey(PUF_Type *base、 常数 uint8_t*keyCode、 size_tkeyCodeSize, puf_key_slot_t keySlot、 uint32_tkeyMask); Re: LPC55S69 AES masking countermeasure against SCA 你好@新矮人 是的,这是预料之中的行为。 该图显示,PUF仅保护密钥存储,然后将重建后的明文密钥直接发送到AES引擎。 AES 引擎没有侧信道保护,因此在加密过程中,其电源/EM 行为仍有可能泄露真实密钥。 BR 哈利 Re: LPC55S69 AES masking countermeasure against SCA 你好@新矮人 keyMask 参数仅在 PUF 硬件内部使用,以便在密钥重构过程中增加一些随机性。 其目的是使内部 PUF 操作稍难通过侧信道攻击进行分析。 它不会屏蔽或修改最终的 AES 密钥,也不会保护 HASHCRYPT AES 引擎。 因此,掩码只在 PUF 密钥解包过程中起作用,在 AES 加密过程中不起作用。 您可以查看PUF_GetHwKey函数的定义。   BR 哈利
查看全文
S32K314のLIN通信問題について こんにちは。現在、S32K314 チップの LIN ドライブに取り組んでいます。どのように進めればよいか教えてください。NXPチップの取り扱いは初めてです。S32K314 の LIN の初期化コードと送受信コードはどうすれば見つかりますか?ペリフェラルを設定した後、初期化関数と送信関数を呼び出す「RTD」フォルダが内部にあることがわかりました。しかし、通信は失敗しました。開発のための提案をいくつかいただけませんか?これは私にとって非常に重要です。ありがとう。 Re: Regarding the LIN communication issue of S32K314 こんにちは、 どのような RTD を使用しているかはわかりませんが、RTD ドライバーのみ、または LIN スタック (適切にインストールされている場合) を使用した、参照できる LIN デモ例がいくつかあります。デモは直接 S32K314 用ではありませんが、参考として使用できます。 「ファイル > 新規 > 例からのS32DSプロジェクト」からインポートできます。 BR、ペトル Re: Regarding the LIN communication issue of S32K314 こんにちは。S32KDS のピン構成およびペリフェラル構成ツールを使用して LIN を構成しました。ペリフェラルの設定では、ドライバの Lpurat_Lin を使用して設定を行いました。コードを設定して更新した後、RTD フォルダーに LIN 関連のファイルがあることがわかりました。構成から取得したパラメータを使用して、Lpuart_Lin_Ip.cのLpuart_Lin_Ip_Init関数とLpuart_Lin_Ip_SendFrame関数に渡しました。開発用のファイル。しかし、バスは LIN データを検出せず、デバッグに Debug を使用すると、Lpuart_Lin_Ip_SendFrame 関数の関連ブレークポイントに到達できない状況も発生しました。 Re: Regarding the LIN communication issue of S32K314 こんにちは、 フレームが実際に送信されていることを確認するために、スコープ/アナライザーを使用して TX/RX/LIN ラインを測定できますか? LIN トランシーバが正しく接続され、電源が供給され、アクティブになっていることを確認してください。このCASEの場合、フレームを公開するだけで、完全なLINフレームが表示されるはずです。 そうでない場合、問題は割り込み処理に関連している可能性があるので、LPUART割り込みが適切に有効になっていることを確認してください。 BR、ペトル Re: Regarding the LIN communication issue of S32K314 Lpuart_Lin_Ip_HwSetIntMode(Base, LPUART_LIN_IP_INT_BREAK_DETECT, TRUE); こんにちは。この機能はモードの初期化中にのみ見つけました。オシロスコープを使用してバスをチェックしましたが、波形は検出されませんでした。さらに、私のチップは通常の電源環境で動作しています。 私が作成したコードの流れによると、この関数は割り込みを有効にし、同期間隔セグメントの検出を実行します。同期間隔セグメントが検出された場合、割り込みが発生し、同期セグメントの検出が行われ、続いてPID検出が行われます。
查看全文
Arm Trusted 固件-M + Zephyr 配置 你好 我正在使用 VS-Code MCUXpresso 扩展和恩智浦下游 Zephyr 仓库(v4.3.0)。我曾尝试按照 trustedfirmware.org指南进行配置,但是很难弄清楚哪些工具可用于闪存,哪些工具需要我编写。 我还读过有关MCUXpresso安全配置工具的信息,但我无法确定它是否与Zephyr/TF-M兼容。 如果有人能提供帮助,请告诉我!根据文件,我需要找出如何做: Flash 公共实施 ID 和实例 ID Flash 每台设备的私有硬件唯一密钥和初始认证密钥 闪存私有(全局,组内的所有设备)启动验证密钥和启动解密密钥 如果 MCUXpresso 工具可以做到这一点,请为我提供相关文档。 作为参考,我使用的是 RW610 处理器,但我认为这些都不是特定于处理器的 Re: Arm Trusted Firmware-M + Zephyr Provisioning 嗨,罗曼、 感谢您发送 Zephyr 文档链接。 我认为这有助于澄清有关启动验证 + 解密密钥的问题,我相信这些密钥是由 CONFIG_TFM_KEY_FILE_S 和 _N S 设置的。 在@@ 浏览了恩智浦的TF-M 仓库中frdm_rw612文件所在之后,看来USE_ELS_PKC_HUK和USE_ELS_PKC_IAK的定义使处理器能够根据用户无法触及的某些内部私钥生成机密。这个假设正确吗?如果是这样,看来我不需要为每台设备生成 HUK/IAK 来获得安全机密。 我仍然不确定该从这里去哪里。当我在项目配置中设置 config_tfm_dummy_provisioning=N 时,我的设备会将以下内容输出到控制台: [INF] 启动引导加载程序 [INF] 开始 BL2 配置 [错误] 未找到有效的 ASSEMBLY_AND_TEST 配置数据 [ERR] 配置失败 看来关闭虚拟配置会导致 TFM BL2 代码失败,因为结构 bl2_ass embly_and_test_prov_data(在 tee/tf-m/trusted-firmware-m/bl2/src/provisioning.c 中)不再初始化。我在 zephyr 文档中没有看到任何指定如何配置 BL2 的内容。我在原始帖子中链接的TFM文档提到了这个结构,但我不确定如何使用正确的信息对其进行初始化。 即使初始化了 BL2,在 SPE 配置(tee/tf-m/trusted-firmware-m/platform/platform/ext/common/proving.c)中 ass embly_and_trested_prov_data 和 psa_rot_prov_data 和 psa_rot_prov_data 也会再次遇到同样的问题。 这些是正常初始化 HUK 和 IAK 的结构 。 你知道配置 BL2 和 SPE 的首选方法吗?我想我可以修改前面提到的配置.c但如果有更好的办法,我宁愿不修改源文件。 谢谢! Re: Arm Trusted Firmware-M + Zephyr Provisioning 你好,@jm-streametric,希望你一切都好。 你分享的指南旨在用于将 TF-M 堆栈与其他硬件平台和操作系统集成,因此,与 Zephyr 的集成已经包含了你所问的一些功能和服务,因此我建议参考 Zephyr 文档中的 TF-M 部分,因为它包含一些支持的功能和相关信息,可能会消除你的疑虑。 关于您有关安全配置工具的问题,它不适用于TF-M/Zephyr集成。 如果有帮助,请告诉我。 Re: Arm Trusted Firmware-M + Zephyr Provisioning 嗨,@jm-streametric。 如果我误解了你最初的密钥生成方法,我很抱歉,因为 Zephyr 文档中没有提供有关配置的信息,我建议查看 RW612 参考手册 (UM11865) 的第 12 章,该章详细解释了如何将密钥存储到 OTP 熔丝中。此外,请参阅最新的安全配置工具用户指南,以获取有关如何设置这些 OTP 熔丝和根据需要配置芯片生命周期的参考。 关于您提出的 HUK 和 IAK 问题,请参阅 RW61x SDK 的tfm_demo_s中的example_board_readme.md文件(可从 MCUXpresso SDK 存储库中获取),其中包含有关如何使用 HUK 和 IAK 的更多信息。
查看全文
Example S32K389 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD 6.0.0 ********************************************************************************* * Detailed Description: * Updated the example lwip_FreeRTOS_s32K389 to enable pinging the lwIP stack * from the command window * *ping 192.168.0.209 * *Pinging 192.168.0.209 with 32 bytes of data: *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 * *Ping statistics for 192.168.0.209: * Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), *Approximate round trip times in milli-seconds: * Minimum = 1ms, Maximum = 2ms, Average = 1ms * * * EVB: * - All jumpers in default positions, except J848, J822, J1136 - disconnected * to enable an external debugger. * * Configuration: * - Updated pin configuration * - Modified PLLAUX + dividers * - Updated GMAC0 clocks * - Platform: added GMAC0 interrupts * - IP address set to 192.168.0.209 and enabled UDP_ECHO, etc. * - Eth_43_GMAC: configured for RGMII 1G, EthIndex = 0 * - Added DIO * * main.c * - Updated only the header * device.c * - Added RTD workaround for DCMRWF* registers * (copied from example S32K389_gptp_ds, SW32K3xx_M7_gPTP_1.1.0_CD01_D2602) * test.c * - Commented out the code that shuts down the TCP/IP stack after its predefined timeout * - Added LED task * * ----------------------------------------------------------------------------- * Test HW: S32K389EVB-Q437 SCH-94080 REV C, 700-94080 REV A * MCU: S32K389 * Debugger: Lauterbach Trace32 * Target: internal_FLASH * EVB connection: GMAC0 <-> Media converter TE-1402 (1G, Follower) <-> * <-> USB-to-Ethernet adapter <-> Laptop DELL, Windows 11
查看全文
Flexbuild 出现错误 你好,当我按照下面文档中的操作执行"bld -m ls1028ardb" 时,出现了以下错误。下载失败是因为我没有在 Ubuntu 中正确设置 https 服务代理吗?如果是,我是否需要在中国购买 https 服务代理才能下载?如果不是,请告诉我如何解决这个问题? ----------------------------- root @fbdebian:~/flexbuild# bld-m ls1028ardb 获取仓库时间:太平洋标准 时间 2026 年 2 月 12 日星期四 22:35:14 Flexbuild HEAD 提交:bc1c9ec 每次地精更新存储库 构建时间:太平洋标准时间 2026 年 2 月 12 日星期四 22:35:14 [信息] 正在下载 linux_lf-6.12.20-2.0.0.tar.gz 发生错误:下载失败:HTTPSConnectionPool(host='codeload.github.com'、port=443):使用 url 时已超过最大重试次数:/nxp-imx/linux-imx/tar.gz/refs/tags/lf-6.12.20-2.0.0 (Caused by NewConnectionError(' :建立新连接失败:[Errno 111] Connection refused')) Downloading without md5 failed, fallback to clone [INFO] Cloning linux (with submodules) 4^[[A^Z [13]+ Stopped bld -m ls1028ardb root@fbdebian:~/flexbuild# echo $http_proxy $https_proxy root@fbdebian:~/flexbuild# --------------------------------- QorIQ LS1设备 QorIQ LS2 设备 回复: Flexbuild Error occurred 你好 该错误表明存在网络限制,可能是因为无法访问 GitHub (codeload.github.com)从中国境内连接,导致连接被拒绝 .这几乎可以肯定是因为缺少正确配置的 HTTP/HTTPS 代理, echo $http_proxy $https_proxy 的空输出证实了这一点。  解决步骤: 配置代理:您必须在终端配置允许访问 github.com 的代理。 敲击 export http_proxy=http://your_proxy_address:端口 export https_proxy=http://your_proxy_address:端口 验证连接: 在再次运行 bld 之前,确保能通过 curl -I https://github.com 连接到 GitHub。 替代方法:中国人通常使用 clash 或设置本地 HTTP 代理(通过 VPN 路由)等工具来规避这一问题,而不是购买商业代理。 您不一定需要购买专门的"HTTPS 服务代理" ,但您确实需要一个能让流量通过受限网络的工作代理服务器。在环境变量中正确设置,如步骤 1 所示,应该可以解决问题   此致 回复: Flexbuild Error occurred 如果需要使用 https 代理,是否可以直接下载相应的项目并将其放在相应的目录中?例如,名为 linux_lf-6.12.20-2.0.0.0.tar.gz 的例程、我可以直接在外面下载。您能告诉我具体应该放在哪里吗?把它放进去能使项目正常编译吗? 回复: Flexbuild Error occurred 你好,我使用 Clash 添加了一个代理,并按照以下方法连接到了 GitHub:curl -Ihttps://github.com。日志中的输出是否被视为成功连接?我还在容器中安装了 Clash,并按照你的方法进行了连接,但还是出现了错误。问题出在哪里? 回复: Flexbuild Error occurred 你好,我使用 Clash 添加了一个代理,并按照以下方法连接到了 GitHub:curl -Ihttps://github.com。日志中的输出是否被视为成功连接?我还在容器中安装了 Clash,并按照你的方法进行了连接,但还是出现了错误。问题出在哪里? 回复: Flexbuild Error occurred 你好,我找到了一个解决方案。以前,我使用的是 Ubuntu 20.04,但在构建过程中遇到了不正确的 SSL 证书的问题。即使使用人工智能工具来排除故障也无济于事。不过,在切换到 Ubuntu 22.04 之后,我成功地构建了,bld -m ls1028ardb。我使用此工具进行冲突代理: https://sparkle.pics/
查看全文
FRDM-MCXA153 上手操作:心率传感器 目标 在本实验室中,您将学到 如何使用 MCUXpresso 安装程序获取 NXP 软件 (FreeMASTER) 如何使用应用程序代码中心将示例导入 VS 代码工作区 如何构建、清理、调试和运行示例。 如何连接适用于 UART 控制台的串行监测 如何将 FreeMaster 用作实时调试监测和数据可视化工具 硬件要求 个人电脑 FRDM-MCXA153 板 心率 4 CLICK 模块(MIKROE 5547) USB Type-C 电缆 软件要求 用于 VS 代码的 MCUXpresso FreeMASTER v3.2 或最新版本 frdm-mcxa153 SDK 应用代码中心 应用代码中心 (ACH) 存储库使工程师能够轻松查找恩智浦内部专家开发的微控制器软件示例、代码片段、应用软件包和演示。该空间为查找微控制器应用提供了快速、简便和一致的方法。更多信息,请访问www.nxp.com/ach。 安装前提条件 -启动适用于 VS Code 的 MCUXpresso -从快速启动面板启动 MCUXpresso 安装程序 - 安装MCUXpresso SDK Developer、LinkServer 和 FreeMASTER 心率监测实验室 恩智浦应用程序代码中心提供了如何在心率和 SPO2 监测应用程序中使用 MCXA-153 微控制器的完整示例。本实验将逐步完成导入、版本、编程和调试示例的步骤。实验的最后一部分展示了如何使用 FreeMASTER 作为数据可视化工具,用于在 FRDM-MCXA153 开发板上获取的传感器数据。 1.进入快速启动面板 2.选择应用代码集线器 3.筛选可见示例(MCX + 传感器) - 进入搜索栏旁边的筛选器部分,选择两个筛选器。 -在过滤器的 “设备系列” 部分中选择 “MCX”,在 “类别” 部分选择 “传感器” 4.在示例中搜索关键字 - 搜索关键字 "心率"。 - 选择演示版"frdm mcxa153 freemaster heart rate" 。 5.阅读心率演示概述 应用程序代码中心为每个项目提供一致的阅读概述。点击应用卡后可预览 FreeMASTER 心率演示概览。滚动阅读自述文件,熟悉可用内容,如所需硬件、软件和设置说明。 6.为项目选择目的地 向导会自动提示浏览到所需的目标文件夹。创建目标 C:\NXP_ACH,在此存储项目。或者您也可以指定一个自定义位置。 7.将项目导入工作区 在输入所需位置后选择导入项目。 如果有效的项目不可用,则向导仅显示 “导入存储库”,以允许将没有项目的代码仓库添加到工作区。 8。选择 “检测到 的项目” 导入向导将扫描示例仓库并列出已发现的有效项目。这样,用户就可以只选择他们想要创建的项目。选择 VS 代码窗口顶部列出的mcuxpresso项目。 9.关联工具链 最后一个选择是确定项目要使用的编译器工具链。本项目将使用 GCC。 选择 Arm GNU Toolchain 12.3.Rel1(或 MCUXpresso Installer 预备工作中提供的最新版本)扫描可能会找到与 MCUXpresso IDE 相关的编译器。验证所列编译器之间的路径和版本。 此时,向导将完成项目导入。屏幕底部会显示 "成功转换 "通知。必须认识到,所选的心率示例是 MCUXpresso IDE(基于 Eclipse)中的一个工作项目。 10. 在VS Code中浏览项目 MCUXpresso for VS Code 扩展包含一个 "项目 "部分,帮助用户访问有用的项目信息。用户可以通过以下步骤查看和修改项目信息。 查看项目详细信息 项目详细信息显示在 MCUXpresso 扩展导航窗格项目部分的下拉菜单中。 - 设置:针对项目的工作区设置 • MCU:目标设备。 • 版本配置:从可用列表中选择版本配置(即调试或版本)。 - 调试配置 - 存储信息 - 项目文件 11.处理源文件 有两种方法可以查看和修改项目文件: - 点击 VS 代码左侧导航窗格顶部的资源管理器图标。 - 从项目视图中展开项目文件部分 12。版本应用程序 MCXA153 FreeMaster Heart Rate 项目需要版本应用程序映像。在无任何错误地生成代码后,应用程序可以在 FRDM 板上运行。 以下步骤需要点击活动栏中的 MCUXpresso for VS Code X 图标,返回 MCUXpresso 视角 单击 “生成选定项” 图标生成项目。 成功版本后,终端控制台会显示内存使用情况(或编译器错误,如果有)。 13。将串行监测连接到板 要使用集成到 VS Code 中的串行监测: -将 USB-C 电缆连接到 J15,为 FRDM 板供电。板载调试器提供了一个 USBUART 桥接器,用于连接串行监视器。 -单击 VS Code 窗口底部终端窗口中作为选项卡找到的串行监测。 注意:默认 COM 设置对恩智浦评估板有效:" 115200,无..." -单击 “开始监控” 将监测连接到 FRDM 板自动检测的 COM 端口。 轻型主题中的 VS 代码 14。刷新/调试应用程序 本节使用板上调试器连接到 MCU 并对闪存 进行编程。恩智浦的LinkServer管理用于与恩智浦McuLink板载调试器通信的GDB服务器。它还支持闪存编程。 -单击 “播放” 图标调试应用程序:应用程序 将闪存到 FRDM 板上,VS Code 切换到调试视角。返回 “终端” 下的 “串行监视器” 选项卡。启动调试会话时,它会切换到 OUTPUT 终端。 轻型主题中的 VS 代码 - 执行将在断点处暂停。 单击 "继续/播放 "图标继续执行。 应用程序将前进到 main() 的起始位置。 -第二次单击 “继续/播放” 图标,心率应用程序将在 main () 中用上市。 15.通过串行终端查看心率值 心率程序使用串行端口显示信息。 main () 启动后,以下内容应显示在 “串行监视器” 选项卡中。 将手指放在 Heart Rate 4 点击板上丝印的心脏附近的传感器上。将手指放在传感器上后,以下内容应显示在 “串行监视器” 选项卡中: 之后将计算并显示心率值。 16。FreeMaster数据可视化 FreeMaster是恩智浦提供的独立应用程序,可帮助开发人员可视化、监测和操作其项目中可用的数据。心率示例包括一个/freemaster文件夹,可帮助用户开始使用该工具。 应用程序代码集线器中的设置是为基于 MCUXpresso IDE 的项目设置的。将项目转换为 VS Code 项目后,需要进行一些更改。 以下步骤将正确配置 FreeMASTER 以与心率示例项目配合使用: 用上市 FreeMASTER 应用程序 有两种用上市 FreeMASTER 的选择。 - 使用文件资源管理器点击 heart_rate.pmpx。FreeMASTER 应用程序应与 .pmpx文件扩展名。这也会自动加载包含的项目设置。 • 通过搜索 Windows 应用程序启动 FreeMASTER。 - 这将不会加载项目设置。如图所示,您需要使用 FreeMaster 菜单打开项目。打开 .pmpx项目文件。 - 验证项目选项 FreeMASTER 在打开项目后有几个关键设置需要验证。用户应检查是否正确设置了调试探针类型和项目输出文件的位置。 - 单击菜单栏中的项目 -> 选项。 -验证与板通信的方法是否设置正确。FRDM-MCXA153 的板上调试探针默认随恩智浦 CMSIS-DAP 固件一起提供。对于插件模块,选择 “通信” 选项卡下的 FreeMASTER CMSIS-DAP 通信插件: - 验证 VS 代码项目的目标默认符号文件是否正确。VS 代码项目中的符号文件在 /armgcc 文件夹下输出。在 VS Code 项目 MAP Files 选项卡中选择 /armgcc 文件夹。该窗口将自动检测二进制 ELF 文件,并将其显示在 “文件格式” 下: - 可视化心率项目数据 恩智浦软件团队为心率项目提供了默认可视化。该演示展示了项目数据的不同显示风格。 心率项目预设了以下可视化设置: 欢迎 HTML 页面:HTML 页面(选项下)指向 welcome.html 文件。这为显示元素提供了结构化的网络视图。超出了本实验室的范围,但 .html可以查看文件以查看 html 中如何引用目标值/图表。 示波器可视化:查看项目变量的示意图。绘制坐标轴的比例和颜色均已配置。配置了心率、SPO2 和心电图。 变量观察表:在配置好要跟踪的变量后,可将它们添加到此表视图中。 确保调试探针不在集成开发环境或 VS 代码的活动调试会话中。 点击菜单栏上的 GO 图标,启动项目数据可视化!FreeMASTER 输出突出了以下几点。 1.点击 "项目树 "下列出的元素可将视图更改为特定的示波器可视图。 2。在 “表” 视图中查看变量的捕获值。 3.根据 Welcome.html 中定义的布局组织数据的可视化。 FRDM-MCXA FRDM 培训 实践培训 单片机
查看全文
RTD- 需要支持在 saf9000 上使用 Wdg(看门狗)驱动程序 RTD 驱动程序版本(R23-11 v1.0.0) 我们来自 Quantum rfp 团队,为 SAF9000 芯片工作。我们正在尝试使用 RTD 的 Wdg(看门狗)驱动程序,发现了一些问题,例如 wdg 调用试图挂起所有中断,然后又恢复中断。因此希望得到一些支持,以帮助确定 wdg 的根本原因/正确使用方法,并解决我们面临的问题。请支持一下。 我们尝试使用的当前 RTD 配置(wdg 和平台 xdm 文件)附后: wdg- 启用直接服务模式。 使用以下调用: 用于初始化: Wdg_43_Instance0_Init ((wdg_configType *) NULL_PTR); //因为 使用了后期版本变 体   我们定期使用切换/喂食看门狗: Wdg_43_Instance0_SetMode(wdgif_fast_mode); 请告诉我在直接服务模式下,用于初始化和喂养看门狗的调用是否正确? 这些调用是否会干扰其他中断,从而导致其他功能问题? RTD Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 谢谢 Cuong。 首先,我们开始使用间接服务,但是由于我们已经将 gptChannelConfiguration_0 用于其他计时器目的,因此我们无法在 " Wdg 外部触发计数器 " 的 wdg 配置中使用同样的间接服务。我们还尝试在 wdg tresos 配置中定义 gptChannelConfiguration_1,并尝试将其用于 wdg tresos 配置中的 " Wdg 外部触发信号计数器 ",但由于某些原因(出现了红十字标记)它不允许这样做。就在那时,我们改用了直接模式。 根据您的建议,我将尝试使用 Wdg_43_Instance0_Service 函数。如果问题仍然存在,我将再次尝试使用间接服务,至于配置问题,我将与您联系。 Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 你好@renukasc 我发现你使用 SetMode 喂养看门狗是错误的。 使用直接服务:使用 Wdg_43_Instance0_Service 函数使用间接服务:使用 WDG_43_instance0_setTriggerCondition 函数。 请在 Wdg 模块中查看我们的示例,以了解我们如何使用 wdg_43_instance0_setTriggerCondition 路径: \ plugins\ wdg_ts_t40d34m50i0r0\ examples 此外:Wdg_43_Instance0_Instance0_Instance0_NULL_PTR)-> 与预编译一起使用,而不是后期版本 Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 我可以尝试使用 Wdg_43_Instance0_Service。如前所述,监视程序功能很好。如果不馈电,看门狗 isr 将按预期触发信号。但是问题是当使用监视程序 API 时,我可以看到它会影响我们所有其他功能。看起来它正在影响中断。 请提供一个 WDT 示例应用程序,其中有定时器和其他 ISR(如 UART),使用直接服务模式时,WDT 不会影响这些 ISR。   Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 正如之前在我们的应用程序中使用 wachdog 调用时指出的那样,再进行一次更新,看起来计时器 (gpt) 等其他中断没有得到服务,我们再也不会因此触发 isrs 了。 尝试改变中断的优先级,但无济于事。 还尝试在 /RTD/eclipse/plugins/Rte_TS_T40D94M10I0R0/src/SchM_Wdg.c 中注释OsIf_SuspendAllInterrupts()、OsIf_ResumeAllInterrupts() 。这也无济于事。 请提供一个 WDT 示例应用程序,其中有定时器和其他 ISR(如 UART),使用直接服务模式时,WDT 不会影响这些 ISR。   Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 以下是调用 WDG 服务时的流程: Wdg_43_Instance0_Service() → Wdg_ChannelService(WDG_IPW_INSTANCE0) → Wdg_Ipw_Service(实例) → Swt_Ip_Service(实例) →SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_09(); // 可以调用 OsIf_SuspendAllInterrupts() → ... →SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_09(); // 这可以调用 OsIf_ResumeAllInterrupts() 所以,如果您调用 Wdg_43_Instance0_Service,并且在您的 RTE 中,SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_09 和 SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_09 的定义是调用 OsIf_SuspendAllInterrupts/OsIf_ResumeAllInterrupts,那么是可以影响中断的。 不过,调用该函数后,中断应该会恢复正常。 你的意思是即使退出这个函数 Wdg_43_Instance0_Service,仍然无法触发信号中断吗? 您能告诉我在您的项目中是如何实现 OsIf_SuspendAllInterrupts()、OsIf_ResumeAllInterrupts() 的吗 ? Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 @renukasc 当启用"开发错误检测" 时,Wdg API 会使用 Wdg_ChannelValidateGlobalCall 和 Wdg_ChannelEndValidateGlobalCall。 这些函数使用 SchM_Enter/Exit_Wdg_WDG_EXCLUSIVE_AREA_06 和 SchM_Enter/Exit_Wdg_WDG_EXCLUSIVE_AREA_07。 请在您的 SchM 实现中验证 SuspendAllInterrupts 和 ResumeAllInterrupts 的行为方式。特别是:调用 ResumeAllInterrupts 后,所有中断是否都恢复到正常状态? Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 在调试过程中,我们最终观察到,如果Wdg_43_Instance0_Init 和 Wdg_43_Instance0_Service 调用 tresos 配置"Development Error Detection" 被设置,正常的定时器中断将停止,并且不会恢复。 当我们禁用 tresos 中的 "开发错误检测 "时,我们发现在使用 wdg 调用时,其他中断都正常。  
查看全文
S32G-VNP-RDB3 J35嵌合コネクタとワイヤーハーネス S32G-VNP-RDB3 J35嵌合コネクタとワイヤーハーネスを別々に購入するにはどうすればよいですか? ありがとうございます。 Re: S32G-VNP-RDB3 J35对配连接器和线束 こんにちは、ピオチュンリ お問い合わせいただきありがとうございます! ご購入をご希望のコンポーネントについて、さらに詳しい情報を教えていただけますか?J53インターフェース100BaseT1ハーネスのことでしょうか? BR ジョーイ
查看全文
Arducam B0353 摄像机与 i.MX93 的集成 亲爱的团队 我们需要将 Arducam B0353 MIPI 双车道摄像头 (https://www.arducam.com/arducam-full-hd-color-global-shutter-camera-for-raspberry-pi-2-3mp-ar0234-wide-angle-pivariety-camera-module-b0353.html) 与 i.MX93/i.MX9352 平台集成。我们是该平台的新用户,希望了解摄像机集成的程序。 如果有人已经集成了这种摄像头(或类似的 MIPI CSI-2 摄像头),请与我们分享: 整合步骤 司机详细信息 设备树配置(如果有) 期待您的支持。 敬上, Ajnas C Re: Arducam B0353 Camera Integration with i.MX93 我无法打开链接,根据您的链接名称描述,相机是 ar0234?关于 dts,您可以参考下面使用 AP1302 的 imx93 dts、 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts 对于摄像头驱动程序,恩智浦不提供这个,需要客户询问供应商,你也可以检查当前的电路板支持包是否有你的摄像头驱动程序 https://github.com/nxp-imx/linux-imx/tree/lf-6.12.y/drivers/media/i2c
查看全文
Vision ML with the FRDM-MCXN947 The MCX N microcontroller family includes an eIQ Neutron N1-16 NPU for accelerating neural network models. The FRDM-MCXN947 development board can be combined with a camera and LCD screen to showcase running TinyML vision models on a microcontroller.   MCX N Camera Hardware Setup: The following hardware is used: MCX N FRDM Development Board - FRDM-MCXN947 OV7670 camera (with optional wide-angle lens) NXP LCD-PAR-S035  There are three small modifications needed for the FRDM-MCXN947 board for camera support. Without this modification the camera colors will be incorrect and tinted red.   Change SJ16, SJ26, and SJ27 found on the back of the Rev B board to connect pin 3 (the dashed side) so that it looks like the following:          Then connect the camera and LCD to the FRDM-MCXN947: Plug in the OV7670 camera into J11. It should line up with the orange box.                            Connect the LCD-PAR-S035 LCD into J12. It should be flush with the bottom so that the top 2 rows of pins are left hanging off the edge. Also note that on some LCD-PAR-S035 boards those top two rows of pins are not installed.          It should look like the following when complete           Also as the camera and Ethernet pins are shared, if you need to use the Ethernet+Camera at the same time please see this NXP Community post. MCX N Vision ML Examples: The NXP Application Code Hub contains several vision AI/ML examples: Face Detect Face Detect with Zephyr Multiple Person Detection  CIFAR10 Fashion MNIST There are also Multimedia Processing Pipeline (MPP) examples inside the MCX N MCUXpresso SDK that demonstrate more examples of using vision AI/ML on MCX N. These examples are only available for VSCode/GCC in the Repository-Layout SDK package. Note: It is recommended to use MCUXpresso SDK 25.09 for these examples. The MPP issues in the 25.12 and 26.03 MCUXpresso SDK releases should be fixed in the upcoming MCUXpresso SDK 26.06.  MCX N ML Vision Lab: The attached eIQ Neutron NPU for MCX N Lab Guide - Face Detect.pdf lab document walks through the steps to download an example Face Detect ML project from the NXP Application Code Hub and use the eIQ Neutron Converter tool to convert a model. It also describes how to update the eIQ and Neutron software libraries in an older MCUXpresso SDK project to work with the latest eIQ Neutron SDK libraries. It is recommended to go through the general MCX N NPU Lab Guide first and then do the attached Face Detect lab second.  The lab is also included below: 1  Lab Overview This document will demonstrate the acceleration provided by the eIQ Neutron NPU using the Multiple Face Detection demo for the FRDM-MCXN947 found on the NXP App Code Hub. The demo will run with the non-NPU optimized model and then the performance can be compared to the NPU optimized version of that same model. It also demonstrates how the NPU optimized version of the face detect model was generated. This lab is written for MCUXPresso IDE but the same basic steps can be used for VSCode or GCC. This lab will also cover how to update the Neutron NPU libraries in the project, as the original Face Detect example uses an older Neutron library version. It is highly recommended to complete the eIQ Neutron NPU for MCX N Lab Guide before starting this lab. 2  Software and Hardware Installation This section will cover the hardware and software needed for this lab. 2.1 Hardware The following hardware is required for this lab: MCX N FRDM Development Board - FRDM-MCXN947 OV7670 camera (with optional wide-angle lens) NXP LCD-PAR-S035 2.2 NXP Software Installation          Install MCUXpresso IDE v25.6 or later. Download the latest eIQ Neutron SDK Download and unzip the latest MCUXpresso SDK for FRDM-MCXN947 using MCUXpresso SDK builder Search for the FRDM-MCXN947 board Then click on Others On the SDK builder page, make sure to select the “eIQ” middleware and that the MCUXpresso IDE toolchain is selected. Then click on Build SDK.   Then click on the Download button and accept the license agreement to download the zip file. 3   Face Detection Example 3.1 Download Face Detect Demo from App Code Hub The code for this lab can be found on the NXP Application Code Hub hosted on Github, and we can use MCUXpresso IDE to directly import the Face Detection example from App Code Hub. Drag-and-drop the FRDM-MCXN947 SDK zip file into the Installed SDKs window, located on a tab at the bottom of the screen named “Installed SDKs”. You will get the following pop-up, so hit OK. Once imported, the Installed SDK tab will look something like this:  In the Quickstart Panel found in the lower left corner, click on Import from Application Code Hub.. In the dialog box that pops up there are many filters available to filter for different devices and types of demos. But since the name of the demo we are interested in is already known, the search box will be faster. Select the AI/ML category and then type in “face detection” and then click on the “Multiple face detection on mcxn947” demo. Make sure you don’t accidently click on the “Multiple Person Detection” demo. On the popup that comes up, click on GitHub link at the top. At that point the Next button at the bottom will become clickable so click on that. The next screen displays the possible branches. In this case there is only main so just click on the Next button at the bottom to go with the default. The next dialog box determines the location on your computer where the code will be downloaded to. You can leave it at the default location if desired or click on Browse to pick your own location. Then click on Next. The next screen will download the code and ask about importing the project. Click on Next to go with the default Import existing Eclipse projects option. Then finally on the last screen click on Finish to import the project into your MCUXPresso IDE workspace. You may get the following warning due to the project being made on an older version of the SDK. Then hit OK to accept the using the newest version.  15. It should look like the following when done: 3.2 Convert Model The demo is already using a model that was converted to take advantage of the eIQ Neutron NPU. This purpose of this section of the lab is to teach new NXP users how that model was converted. Unzip the eIQ Neutron SDK package in a directory of your choosing.   Optionally add \eIQ_NeutronSDK_ \bin to your executable path so that the neutron-converter utility can be directly called from the command line. Back in MCUXpresso IDE, find the location of the original non-converted model used for this demo by right clicking on the face_detect.tflite file in source/model/ and going to Utilities->Open directory browser here. Copy the directory location as it will be used in the next step Open a Windows Command prompt and navigate to the directory where the model was at from the previous step             Use the Neutron Converter to convert the Face Detection model: neutron-converter --input face_detect.tflite --output face_npu.tflite --target mcxn94x 3.3 Update eIQ Neutron Libraries The Face Detect ACH example uses an older version of the eIQ Neutron libraries, and so it needs to be updated to match the Neutron libraries in newest eIQ Neutron SDK since the model was converted with that version of the Neutron Converter tool. In the frdmmcxn947_multi_face_detection project, right click on the eiq folder and go to Utilities->Open directory browser here Overwrite the Neutron files from the eIQ Neutron SDK folder into your project to update the Neutron libraries to the latest version: File Name Source Directory in eIQ Neutron SDK Target Directory in MCUXpresso SDK libNeutronDriver.a target\mcxn94x\board\ eiq\neutron\mcxn\cm33 libNeutronFirmware.a target\mcxn94x\board\ eiq\neutron\mcxn\cm33 NeutronDriver.h target\mcxn94x\driver\include\ eiq\neutron\driver\include NeutronErrors.h target\mcxn94x\common\include\ eiq\neutron\common\include After the new Neutron libraries are copied over, clean the project to ensure the new libraries will be used 3.4 Board modifcations There are some hardware modifications to the MCX FRDM board required for this demo since the camera pins are muxed with the Ethernet pins and the Ethernet functionality is the default. The board version can be determined by scanning the QR code on the back of the MCX FRDM board with your phone. Most people will have Rev B boards. Rev A: Remove the R157, R158, and R159 resistors from the back of the Rev A board so that it looks like the following: Rev B: Change SJ16, SJ26, and SJ27 found on the back of the Rev B board to connect pin 3 (the dashed side) so that it looks like the following: 3.5 Connect the camera and LCD Plug in the OV7670 camera into J11. It should line up with the orange box. Connect the LCD-PAR-S035 LCD into J12. Note that some older LCD-PAR-S035 LCDs may have an extra set of pins soldered on, and in that case the extra 2 rows of pins should be hanging off the edge like in the photo below.             It should look like the following when complete 3.6 Run Models Now open up model_data.s by double clicking on it, and then modify line 43 to point to the original (non NPU converted) model file named face_detect.tflite. This particular project uses the .tflite file directly. Build the project by clicking on the Build icon in the Quickstart Panel Then download and run the project by clicking on the Debug icon in the Quickstart Panel You should see the demo working with an inference time of 817ms printed on the LCD display. Note: The default camera on the OV7670 is not very wide angle so you have to hold it fairly far back. There are wide-angle lenses that can be purchased to make it easier to demonstrate. Note: After POR there may be some glitching on the camera due to the fact the camera is expecting 2.8V but the board is at 3.3V and the initial HSYNC signal was missed. Press the reset button (SW1) and it should fix any camera issue.  Now let’s use the Neutron optimized model by opening model_data.s again and this time selecting the NPU converted model face_npu.tflite Recompile and reprogram the board. You’ll see it is significantly faster with a 22ms inference time, a 37x improvement! 4  Conclusion This lab demonstrated how the eIQ Neutron NPU on MCX N devices can significantly decrease inference time on quantized models and the steps to generate a NPU optimized model using the command line tools. Also explore the other App Code Hub ML examples available online. FRDM-Training MCXN NPU|ML
查看全文