This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/dra726:在 Linux 上看到 MCP25625时出现问题

Guru**** 2979390 points

Other Parts Discussed in Thread: DRA722

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/671000/linux-dra726-problem-getting-mcp25625-seen-on-linux

器件型号:DRA726
主题中讨论的其他器件:DRA722

工具/软件:Linux

我一直在尝试在 Linux 上识别3个外部 MCP25625 Microchip CAN 器件、但我没有取得太大的成功。  

DCAN1和 DCAN2用作 CAN0和 CAN1

我希望看到其他三个分别为 CAN2、CAN3和 CAN4

这三个器件都连接到 SPI1

GPIO6_7 B16上第一个器件的 int

GPIO6_8 C15上第二个器件的 INT

GPIO6_9 A16上第三个器件的 int

SPI1 cs0 A24

SPI1 CS1 A22

SPI1 CS2 B21

SPI1 SCLK A25

SPI1 d0 B25 -> CAN SI

SPI1 D1 F16 ->可以

FIRS 器件具有16MHz xtal、CLKOUT 连接到其他2个器件


我的 Linux 设备树条目是否正确?


      时钟{
               clk16m:CLK@1{
                       兼容="固定时钟";
                       reg=<0>;
                       #clock-cells =<0>;
                       时钟频率=<16000000>;
                       clock-output-names ="clk16m";
               };
       };

       mcspi1_pins:pinmux_mcspi1_pins{
               pinctrl-single、pins =<
                       0x3a4 (PIN_OUTPUT | MUX_MODE0)                                    /* SPI1_SCLK/SPI1_SCLK *
                       0x3ac (PIN_INPUT | MUX_MODE0)                                         /* SPI1_d0.SPI1_d0 *
                       0x3a8 (PIN_OUTPUT | MUX_MODE0)                                     /* SPI1_D1.SPI1_D1 *
                       0x380 (PIN_OUTPUT | MUX_MODE0)                                     /* SPI1_cs0.SPI1_cs0 *
                       0x384 (PIN_OUTPUT | MUX_MODE0)                                     /* SPI1_CS1.SPI1_cs0 *
                       0x388 (PIN_OUTPUT | MUX_MODE0 | SLEWCONTROL)    /* SPI1_CS2.SPI1_cs0 *
               >;
       };


mcspi1{(&M)
       pinctrl-names ="default";
       pinctrl-0 =<&mcspi1_PINs>;

       Dcan3:Dcan3@0{
       状态="正常";
       兼容="微芯片、MCP2515";
       reg =<0>;
       MODE =<0>;
 
               时钟=<&clk16m>;
       interrupt-parent =<&GPIO>;
               中断=<199 IRQ_TYPE_LEVEL_LOW_>;

       SPI-max-frequency =<10000000>;
       mcp251x、enable-clkout =<1>;
      };

       Dcan4:Dcan4@1{
       状态="正常";
       兼容="微芯片、MCP2515";
       reg =<1>;
       MODE =<0>;
 
               时钟=<&clk16m>;
       interrupt-parent =<&GPIO>;
               中断=<200 IRQ_TYPE_LEVEL_LOW_>;

       SPI-max-frequency =<10000000>;
        };

       Dcan5:Dcan5@2{
       状态="正常";
       兼容="微芯片、MCP2515";
       reg =<2>;
       MODE =<0>;
 
               时钟=<&clk16m>;
       interrupt-parent =<&GPIO>;
               中断=<201 IRQ_TYPE_LEVEL_LOW_>;

       SPI-max-frequency =<10000000>;
      };
};


Linux 配置:

编号
#网络测试
编号
未设置# CONFIG_NET_PKTGEN
# CONFIG_HAMRADIO 未设置
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
未设置# CONFIG_CAN_GW

编号
# CAN 设备驱动程序
编号
未设置# CONFIG_CAN_VCAN
未设置# CONFIG_CAN_SLCAN
CONFIG_CAN_DEV_m
CONFIG_CAN_CAL_BITMING=y
未设置# CONFIG_CAN_LED
CONFIG_CAN_TI_HECC=m
未设置# CONFIG_CAN_FLEXCAN
未设置# CONFIG_CAN_GRCAN
未设置# CONFIG_CAN_RCAR
未设置# CONFIG_CAN_SJA1000
CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_Platform=m
CONFIG_CAN_M_CAN=m
未设置# CONFIG_CAN_CC770

编号
# CAN SPI 接口
编号
CONFIG_CAN_MCP251X=m

CONFIG_SPI=y
CONFIG_SPI_DEBUG=y
CONFIG_SPI_MASTER=y

编号
# SPI 主控制器驱动程序
编号
CONFIG_SPI_OMAP24xx=y


在 u-boot 中


  {SPI1_SCLK、(M0 | PIN_OUTPUT)}、                         // SPI1_SCLK/SPI1_SCLK *
  {SPI1_D1、(M0 | PIN_INPUT)}、                            // SPI1_D1.SPI1_D1 *
  {SPI1_D0、(M0 | PIN_OUTPUT)}、                           // SPI1_d0.SPI1_d0 *
  {SPI1_CS0、(M0 | PIN_OUTPUT)}、                          // SPI1_cs0.SPI1_cs0 *
  {SPI1_CS1、(M0 | PIN_OUTPUT)}、                          // SPI1_CS1.SPI1_CS1 *
  {SPI1_CS2、(M0 | PIN_OUTPUT | SLEWCONTROL)}、            // SPI1_CS2.SPI1_CS2 *

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michel、

    很抱歉耽误您的回答。
    在器件树中、将中断父项设置为特定 GPIO 实例、并相应地更改中断。
    例如、scan3的条目将是

    interrupt-parent =<&GPIO6>;
    中断=<7 IRQ_TYPE_LEVEL_LOW_>;

    此致
    Shravan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    我仍然只能在/sys/class/net 上看到两个内部 CAN 端口 CAN0和 CAN1以及 eth0 lo 和 sit0

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米歇尔

    为了使 SPI1_SCLK 信号正常工作、需要设置 INPUTENABLE 位、因此需要在 u-boot 中设置引脚多路复用器配置

    {SPI1_SCLK、(M0 | PIN_OUTPUT | INPUT)_EN}

    您不需要在内核器件树中设置 pinmux。

    几个问题:
    1.我不明白16MHz 时钟的用途。 SPI 模块只能设置为主模式(驱动器中仅支持主模式)、在该模式下、串行时钟是通过 SPI 连接的器件的输出。
    2.每个 dcan 节点条目中的节点属性有何用途? microchip、MCP2515器件树绑定不包含"node"作为条目。

    此致
    Shravan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    我可能会混合时钟的信号化。 3个微芯片中的一个具有16MHz xtal、输出被馈送到其他两个器件。

    我在关注其他人的一个例子、可能是个坏主意。 您将如何设置该部件?
    每个器件都有自己的 cs 和中断。 只有第一个具有专用的 xtal、而另两个则使用第一个的外部时钟输出。

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米歇尔

    SPI 器件串行时钟输出应设置为所有器件的输入。

    您能否尝试以下更改并发送日志:

    1.将'#define debug'添加到文件'drivers/SPI/SPI.c'、'drivers/SPI/SPI-OMAP2-mcspi.c'和'drivers/net/CAN/SPI/mcp251x.c'的第一行。 使用这些更改重建内核
    2.在目标列表中,文件夹“/sys/device/platform/44000000.ocp/48098000.spi/spi_master”的内容应该是 spi0.0、spi0.1、spi0.2等设备。 这表示 SPI 器件已被识别。
    3.您能否在使用步骤1中指示的调试标志重建内核后提供 dmesg 日志。

    此致
    Shravan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shravan、

    这里是 dmesg 的内容、您可以看到、没有提到我启用的3个 SPI 端口中的任何一个。

    [0.000000]在物理 CPU 0x0上引导 Linux
    [0.000000]正在初始化 cgroup Subsys cpuset
    [0.000000]正在初始化 cgroup 子系统 CPU
    [0.000000]正在初始化 cgroup Subsys cpuacct
    [0.000000] Linux 版本4.4.4.45-revA+(Michel@Michel)(gcc 版本5.3.1 20160113 (Linaro GCC 5.3-2016.02))#32 SMP 抢占 Thu Mar 22 21:30:21 EDT 2018
    [0.000000] CPU:ARMv7处理器[412fc0f2]修订版2 (ARMv7)、CR=10c5387d
    [0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、PIPT 指令高速缓存
    [0.000000]机器型号:ACTIA 12英寸显示器
    [0.000000]保留存储器:创建了0x95800000的 CMA 存储器池、大小为56 MIB
    [0.000000]保留存储器:已初始化节点 ipu2_CMA@95800000、兼容 ID shared-dma-pool
    [0.000000]保留内存:创建了0x9d000000的 CMA 内存池,大小为32 mib
    [0.000000]保留存储器:已初始化节点 ipu1_CMA@9d000000、兼容 ID shared-dma-pool
    [0.000000] CMA:在0xbe400000处保留24 MIB
    [0.000000]内存策略:数据高速缓存 writealloc
    [0.000000] OMAP4:将 bbfe00000映射到 fe600000以设置 DRAM 隔离层
    [0.000000]在节点0上的总页:255232
    [0.000000] free_area_init_node:节点0、pgdat c08b1680、node_mem_map ef6cc000
    [0.000000]正常区域:用于 memmap 的1728页
    [0.000000]正常区域:保留0页
    [0.000000]正常区域:190208页、LIFO 批处理:31
    [0.000000] HIGHMEM 区域:65024页、LIFO 批处理:15
    [0.000000] DRA722 ES2.0
    [0.000000] PERCPU:嵌入式11页/CPU @ef672000 s14784 r8192 d22080 u45056
    [0.000000] pcpu-alloc:s14784 r8192 d22080 u45056 alloc=11*4096
    [0.000000] pcpu-alloc:[0] 0
    [0.000000]在区域顺序和移动分组中构建了1个区域列表。 总页数:253504
    [0.000000]内核命令行:console=ttyO2,115200n8 root=PARTUUUUUUID=0000-02 rw rootfstype=ext4 rootwait
    [0.000000] PID 哈希表条目:4096 (顺序:2、16384字节)
    [0.000000]条目高速缓存散列表条目:131072 (顺序:7、524288字节)
    [0.000000] inode 高速缓存散列表条目:65536 (顺序:6、262144字节)
    [0.000000]内存:886604K/1020928K 可用(6035K 内核代码、316K rwdata、2204K rodata、320K init、293K BSS、 19636K 保留、114688K CMA 保留、235520K HIGHMEM)
    [0.000000]虚拟内核内存布局:
    向量:0xff0000-0xff1000 (4KB)
    Fixmap:0xc00000 - 0xc00000 (3072 KB)
    vmalloc:0xf0800000 - 0x800000 (240 MB)
    低内存:0xC0000000-0xf0000000 (768 MB)
    pkmap:bfe00000 - 0xC0000000 (2 MB)
    模块:bbf000000 - bbfe00000 (14 MB)
    .text:0xc0008000 - 0xc0813fa4 (8240 KB)
    init:0xc0814000 - 0xc0864000 (320 KB)
    .data:0xc0864000 - 0xc08b3190 (317KB)
    .bss:0xc08b5000 - 0xc08fe604 (294KB)
    [0.000000] slub:HWalign=64、order=0-3、MinObjects=0、CPU=1、Nodes=1
    [0.000000]可抢占的分层 RCU 实现。
    [0.000000]叶扇出的生成时间调整为32。
    [0.000000] RCU 将 CPU 从 NR_CPU=2限制为 nr_CPU_IDs=1。
    [0.000000] RCU:调整 RCU_Fanout_leaf = 32、nr_cpu_ids=1的几何结构
    [0.000000] NR_IRQ:16 nr_IRQ:16 16.
    [0.000000] ti_dt_clocks_register:无法查找时钟节点 GMAC_gmii_ref_clk_div
    [0.000000] OMAP 时钟事件源:Timer1为32786Hz
    [0.000000]构建了以6.14MHz (PHY)运行的 cp15计时器。
    [0.000000]时钟源:arch_sys_counter:mask:0xffffffffffffffffffffffffff max_cycles:0x16af5adb9、max_idle_ns:440795202250 ns
    [0.000004] sched_clock:6MHz 时为56位、分辨率为162ns、每4398046511023ns 换行一次
    [0.000016]切换到基于计时器的延迟环路、分辨率为162ns
    [0.000325]时钟源:32K_COUNTER:MASK:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:58327039986419 ns
    [0.000332] OMAP 时钟源:32768Hz 时为32K_COUNTER
    [0.000702]控制台:彩色虚拟设备80x30
    [0.000718]警告:'console=ttyO2'已被'ttyS2'替代
    [0.000725]这可确保您仍能看到内核消息。 请
    [0.000730]更新您的内核命令行。
    [0.000742]校准延迟环路(跳过)、使用计时器频率计算的值。 12.29茂物剪(lpj=61475)
    [0.000754] pid_max:默认值:32768最小值:301
    [0.000848]安装高速缓存散列表条目:2048 (顺序:1、8192字节)
    [0.000858]安装点缓存散列表条目:2048 (顺序:1、8192字节)
    [0.001389]正在初始化 cgroup Subsys IO
    [0.001406]正在初始化 cgroup Subsys 内存
    [0.001430]正在初始化 cgroup 子系统设备
    [0.001443]正在初始化 cgroup Subsys 冷冻柜
    [0.001453]正在初始化 cgroup 子系统 perf_event
    [0.001463]正在初始化 cgroup Subsys PID
    [0.001488] CPU:测试写入缓冲区一致性:好的
    [0.001686]/cpus/cpu@0缺少时钟频率属性
    [0.001698] CPU0:线程-1、CPU 0、套接字0、mpidr 8000000
    [0.001735]为0x80008280 - 0x800082e0设置静态标识映射
    [0.050037]带来了1个 CPU
    [0.050048] SMP:总共激活1个处理器(12.29个 BogoMips)。
    [0.050055] CPU:所有 CPU 均在 HYP 模式下启动。
    [0.050061] CPU:提供虚拟化扩展。
    [0.051028] devtmpfs:已初始化
    [0.080045] VFP 支持 v0.3:实施方41架构4第30部分变体 f rev 0
    [0.081007] OMAP-hwmod:L3_main_2、使用来自 OCP 的断开 dt 数据
    [0.182275] OMAP-hwmod:dcan1:_wait_target_disable 失败
    [0.188693] omap_hwmod:dcan2:_wait_target_disable 失败
    [0.294715]时钟源:Jiffies:MASK:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:19112604462750000 ns
    [0.302425] pinctrl 内核:已初始化 pinctrl 子系统
    [0.303249] NET:注册协议系列16.
    [0.304159] DMA:为原子相干分配预先分配的256 KiB 池
    [0.330219]空闲:使用调速器梯
    [0.360244]空闲:使用调速器菜单
    [0.36825] OMAP GPIO 硬件版本0.1
    [0.374829] IRQ:找不到/ocp/l4@4a000000/SCM@2000/pinmux@1400的 IRQ 域!
    [0.375201] IRQ:找不到/ocp/l4@4a000000/SCM@2000/pinmux@1400的 IRQ 域!
    [0.395650]没有 ATAG?
    [0.395675]硬件断点:找到5个(+1保留)断点和4个观察点寄存器。
    [0.395655]硬件断点:最大观察点大小为8字节。
    [0.396149] OMAP4_SRAM_INIT:无法分配处理勘误 I688所需的 SRAM
    [0.396158] OMAP4_SRAM_INIT:无法获取处理勘误 I688所需的 SRAM 池
    [0.396337] OMAP DMA 硬件版本0.0
    [0.480764] OMAP-DMA-engine 4a056000.DMA-controller:OMAP DMA 引擎驱动程序(支持 LinkedIn List1/2/3)
    [0.481890] EDMA 43300000。EDMA:禁用 memcpy
    [0.486621] EDMA 43300000。EDMA:TI EDMA DMA 引擎驱动程序
    [0.489423]已注册 OMAP-iommu 588820.MMU:588820.MMU
    [0.489556] OMAP-iommu 55082000.MMU:55082000.MMU 已注册
    [0.492412] Palmas 0-0058:IRQ 标志为0x00000000
    [0.512213] PALMAS 0-0058:多路复用 GPIO 51、PWM 0、LED 2
    [0.551215] OMAP_i2c 48070000.i2c:400kHz 时的总线0修订版0.12
    [0.551763] OMAP_i2c 48060000.i2c:总线2 rev0.12为100kHz
    [0.552246] OMAP_i2c 4807a000。i2c:400kHz 时的总线3修订版0.12
    [0.552721] omap_i2c 4807c000.i2c:400kHz 时的总线4修订版0.12
    [0.552871]介质:Linux 介质接口:v0.10
    [0.552922] Linux 视频捕捉接口:v2.00
    [0.552978] pps_core:LinuxPPS API 版本。 1已注册
    [0.552985] pps_core:软件版本 5.3.6 -版权所有2005-2007 Rodolfo Giometti
    [0.553008] PTP 时钟支持已注册
    [0.553050] EDAC MC:版本:3.0.0
    [0.561115] OMAP-MAP-MAP-MAP-MABOO邮 箱48840000.mailbox:OMAP 邮箱版本0x400
    [0.561307] OMAP-mailbox 48842000.mailbox:OMAP mailbox 修订版0x400
    [0.561666]已初始化高级 Linux 声音架构驱动程序。
    [0.562329]时钟源:切换到时钟源 ARCH_SYS_COUNTER
    [0.572190] NET:注册协议系列2.
    [0.572708] TCP 建立哈希表条目:8192 (顺序:3、32768字节)
    [0.572772] TCP 绑定哈希表条目:8192 (顺序:4、65536字节)
    [0.572897] TCP:配置哈希表(建立8192 BIND 8192)
    [0.572953] UDP 哈希表条目:512 (顺序:2、16384字节)
    [0.572984] UP-Lite 哈希表条目:512 (顺序:2、16384字节)
    [0.573193] NET:注册协议系列1.
    [0.583488] RPC:注册后命名的 UNIX 套接字传输模块。
    [0.583498] RPC:注册的 UDP 传输模块。
    [0.583505] RPC:注册的 TCP 传输模块。
    [0.583511] RPC:注册的 TCP NFSv4 4.1反向通道传输模块。
    [0.584478]硬件性能事件:通过 armv7_cortex_a15 PMU 驱动器启用、提供7个计数器
    [0.586757] futex 散列表条目:256 (顺序:2、16384字节)
    [0.603232] squashfs:4.0版(2009/01/31) Phillip Lougher
    [0.613886] NFS:注册 id_resolver 密钥类型
    [0.613913]注册了密钥类型 id_resolver
    [0.613921]注册了密钥类型 id_legacy
    [0.613994] NTFS:驱动程序2.1.32 [Flags:R/O]。
    [0.616188]退回:池大小:64页
    [0.616338]块层 SCSI 通用(BSG)驱动程序0.4版已加载(主要247)
    [0.616353]已注册 IO 调度程序 NOP
    [0.616364] IO 调度程序截止日期已登记
    [0.616397]已注册 IO 调度程序 cfq (默认值)
    [1.905983]时钟:DPLL_PCIe_ref_ck 无法转换为"锁定"
    [1.907306] pinctrl-single 4a00340.00.pinmux:在 PA fc003400大小为1128的282个引脚
    [1.907388] pinctrl-single 4a002e8c.pinmux:PA fc002e8c 上1个引脚大小为4
    [1.910648]未找到使用虚拟稳压器的背光电源
    [1.964793]串行:8250/16550驱动程序,10个端口,禁用 IRQ 共享
    [1.967978] 4806a000.serial: tmio 0x4806a000处的 ttyS0 (IRQ = 299、base_baud = 3000000)是8250
    [1.968886] 4806c000.serial: tmio 0x4806c000处的 ttyS1 (IRQ = 300、base_baud = 3000000)是8250
    [1.96977]控制台[ttyS2]已禁用
    [1.969784] 48020000.serial: tmio 0x48020000处的 ttyS2 (IRQ = 301、base_baud = 3000000)是8250
    [2.824476]控制台[ttyS2]已启用
    [2.828829] 48066000.serial:在 MMIO 0x48066000 (IRQ = 302、base_baud = 3000000)处的 ttyS4是8250
    [2.838466] 48424000.serial:在 MMIO 0x48424000 (IRQ = 303、BASE_BAUD = 3000000)上的 ttyS8为8250
    [2.848396][DRM]已初始化 DRM 1.1.0 20060810
    [2.854334] OMAP DSS 版本6.1
    [2.858083] omapdss_DSS 580000.dss:bound 58001000.dispc (ops dispc_component_ops)
    [2.953548] loop:模块已加载
    [2.958154] libphy:固定 MDIO 总线:探测
    [3.012348] DaVinci_MDIO 48485000.MDIO:达芬奇 MDIO 修订版本1.6
    [3.018472] libphy: 48485000.mdio:探测
    [3.034801] DaVinci_MDIO 48485000.MDIO:PHY[0]:device 48485000.MDIO:00、driver TI DP83867
    [3.043627] cpsw 48484000。以太网:检测到的 MACID = fc:0f:4b:5c:92:34
    [3.050285] cpsw 48484000。以太网:CPT:溢出检查周期800
    [3.058351]鼠标开发:PS/2鼠标设备,适用于所有鼠标
    [3.074472] i2c /dev/entries 驱动程序
    [3.173219] ledtrig-CPU:已注册以指示 CPU 上的活动
    [3.180755] OMAP-rproc 588200.IPU:分配的保留存储器节点 ipu1_CMA@9d000000
    [3.202368] remoteproc0:588200.IPU 可用
    [3.207267] remoteproc0:注意:remoteproc 仍在开发中并被视为实验。
    [3.232323] remoteproc0:二进制格式尚未最终确定,并且还不能保证向后兼容性。
    [3.252398] remoteproc0:dra7-ipu1-fw.xem4的直接固件加载失败,并出现错误-2
    [3.260609] remoteproc0:返回到用户帮助程序
    [3.265841] OMAP-rproc 5502000.IPU:分配的保留存储器节点 ipu2_CMA@95800000
    [3.282386] remoteproc1:5502000.IPU 可用
    [3.287284] remoteproc1:注意:remoteproc 仍在开发中并被视为实验。
    [3.312331] remoteproc1:二进制格式尚未最终确定、并且尚不能保证向后兼容性。
    [3.332394] remoteproc1:dra7-ipu2-fw.xem4的直接固件加载失败,并出现错误-2
    [3.340605] remoteproc1:返回到用户帮助程序
    [3.353669] NET:注册协议系列10.
    [3.372738] SIT:IPv6 over IPv4隧道驱动程序
    [3.377910] NET:注册协议系列17.
    [3.392405]注册的密钥类型 DNS_旋 变传感器
    [3.396700] NET:注册协议系列41.
    [3.401258] OMAP-VOLTGE_LARD_INIT:未添加电压驱动器支持
    [3.422827]为电源 VDD、CPU0 -> VDD、4a003b20.oppdm 添加别名
    [3.429039]为电源 VBB、CPU0 -> VBB、4a003b20.oppdm 添加别名
    [3.452655]为电源 VDD、CPU0 -> VDD、4a003b20.oppdm 添加别名
    [3.458862]为电源 VBB、CPU0 -> VBB、4a003b20.oppdm 添加别名
    [3.484005] TI OMAP4+器件的电源管理。
    [3.489072]正在注册 SWP/SWPB 仿真处理程序
    [3.512746] DMM 4e000000.DMM:已初始化所有 PAT 条目
    [3.533724][DRM]支持 vblank 时间戳缓存修订版2 (2013年10月21日)。
    [3.540365][DRM]不支持 vblank 时间戳查询的驱动程序。
    [3.565862][DRM]启用 DMM 回绕滚动
    [3.599719] mmc0:主机不支持读取只读开关、假设已启用写入
    [3.601630] mmc0:地址59b4处的新高速 SDHC 卡
    [3.611950] mmcblk0:mmc0:59b4 EB2MW 29.8 GiB
    [3.620126]控制台:切换到彩色帧缓冲器器件240x45
    [3.620185] mmcblk0:P1 P2
    [3.658039] omapdrm omapdrm.0:fb0:omapdrm 帧缓冲器件
    [3.693144][DRM]在次要0上初始化 omapdrm 1.0.0 20110917
    [3.699129] mmc1:未设置 MAN_BKOPS_EN 位
    [3.706799] mmc1:地址0001处的新高速 MMC 卡
    [3.722549] mmcblk1:mmc1:0001 Q2J54A 3.59GiB
    [3.727347] hctosys:无法打开 RTC 器件(rtc0)
    [3.732976] ALSA 器件列表:
    [3.735953]找不到声卡。
    [3.749817] mmcblk1boot0:mmc1:0001 Q2J54A 分区1 16.0 mib
    [3.765969] mmcblk1boot1:mmc1:0001 Q2J54A 分区2 16.0 mib
    [3.772873] mmcblk1:P1 P2
    [3.803363] EXT4-FS (mmcblk0p2):已安装文件系统、具有有序数据模式。 OPTS:(空)
    [3.811506] VFS:在设备179:2上安装了根(ext4文件系统)。
    [3.828734] devtmpfs:已安装
    [3.831849]释放未使用的内核内存:320k (c0814000 - c0864000)
    [3.838238]此架构没有内核内存保护。
    [4.141469] systemd[1]:生成时间之前的系统时间、提前时钟。
    [4.194690]随机:systemd:未初始化 urandom 读取(16字节读取、11位熵可用)
    [4.210374] random:systemd:未初始化 urandom 读取(16字节读取、12位熵可用)
    [4.228106] systemd[1]:systemd 229在系统模式下运行。 (+PAM -audit -selinux +IMA -AppArmor +smack +sysvinit +utmp -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +blkid -ELFUTILS +KMOD -IDN)
    [4.246730] systemd[1]:检测到架构 ARM。
    [4.276039] systemd[1]:将主机名设置为 。
    [4.321445]随机:systemd-sysv-ge:未初始化 urandom 读取(16字节读取、12位熵可用)
    [4.345282] random:systemd-gpT-aut:uninitialized urandom read (16字节读取、13位熵可用)
    [4.356823]随机:systemd-gpT-aut:未初始化 urandom 读取(16字节读取、13位熵可用)
    [4.411879]随机:systemd-sysv-ge:未初始化 urandom 读取(16字节读取、14位熵可用)
    [4.457554] random:systemd-sysv-ge:未初始化 urandom 读取(16字节读取、14位熵可用)
    [4.654405]随机:systemd:未初始化 urandom 读取(16字节读取、17位熵可用)
    [4.664057]随机:systemd:未初始化 urandom 读取(16字节读取、17位熵可用)
    [4.674233]随机:systemd:未初始化 urandom 读取(16字节读取、17位熵可用)
    [5.21483] systemd[1]:dbus.socket:找到 dbus.socket/start 上的订购周期
    [5.222097] systemd[1]:dbbus.socket:找到了对 sysinit.target/start 的依赖
    [5.229357] systemd[1]:dbbus.socket:找到对 alignment.service/start 的依赖
    [5.236836] systemd[1]:dbus.socket:找到与 basic.target/start 的依赖关系
    [5.243846] systemd[1]:dbus.socket:找到了对 sockets.target/start 的依赖性
    [5.251016] systemd[1]:dbus.socket:找到了对 dbus.socket/start 的依赖
    [5.257937] systemd[1]:dbus.socket:通过删除作业 alignment.service/start 来中断订购周期
    [5.267126] systemd[1]:alignment.service:删除了作业 alignment.service/start 以从 dbus.socket/start 开始中断订购周期
    [5.304947] systemd[1]:已开始向控制台目录监视发送密码请求。
    [5.332689] systemd[1]:侦听 Syslog 套接字。
    [5.352745] systemd[1]:侦听网络服务 Netlink 套接字。
    [5.383925] systemd[1]:创建的层用户和会话层。
    [5.412674] systemd[1]:侦听 udev 控制套接字。
    [5.442619] systemd[1]:侦听/dev/initctl 兼容性命名管道。
    [5.483889] systemd[1]:已达到目标交换。
    [5.513238] systemd[1]:创建的层系统层。
    [5.542570] systemd[1]:已达到目标层。
    [5.562617] systemd[1]:侦听 udev 内核套接字。
    [5.592611] systemd[1]:收听《日刊》(/dev/log)。
    [5.622644] systemd[1]:在 Journal Socket 上收听。
    [5.654619] systemd[1]:正在启动安装虚拟控制台...
    [5.696247] systemd[1]:正在安装临时目录...
    [5.724950] systemd[1]:安装 POSIX 消息队列文件系统...
    [5.765162] systemd[1]:开始为当前内核创建所需的静态设备节点列表...
    [5.812750] systemd[1]:已开始将密码请求转发到 Wall Directory Watch。
    [5.842544] systemd[1]:已达到目标路径。
    [5.863248] systemd[1]:创建的 slice system-Getty.slice。
    [5.894647] systemd[1]:正在开始重新装载根和内核文件系统...
    [5.926157] EXT4-FS (mmcblk0p2):已重新安装。 OPTS:(空)
    [5.932683] systemd[1]:已达到目标远程文件系统。
    [5.970972] systemd[1]:正在启动加载内核模块...
    [5.995964] CMEMK 模块:参考 Linux 版本4.4.45
    [6.001854]未指定物理内存
    [6.006956] systemd[1]:创建的片系统-串行\x2dgetty.slice。
    [6.013326] cmemk 已初始化
    [6.025753] systemd[1]:正在启动日志服务...
    [6.041284] cryptodev:已加载驱动程序1.8。
    [6.171819] systemd[1]:已挂载 POSIX 消息队列文件系统。
    [6.202631] systemd[1]:挂载的临时目录。
    [6.232805] systemd[1]:已启动日志服务。
    [7.030697] systemd-journale[134]:收到从 PID 1刷新运行时日志的请求
    [11.626704] OMAP-DES 480a5000.des: OMAP DES 硬件加速器版本:2.2
    [11.639156] 2-0018未找到使用虚拟稳压器的电源 IOVDD
    [11.678900] 2-0018未找到电源 DVDD、使用虚拟稳压器
    [11.685221] ALG:skcipher:setkey 在 ECG-DES-OMAP 的测试5上失败:flags=100
    [11.701970][egalax_i2c]:驱动程序初始化完成!
    [11.702110][egalax_i2c]:启动探针
    [11.702131][egalax_i2c]:IRQ = 139
    [11.703301]输入:/devices/virtual/input/input0上的 eGalax_Touch_Screen
    [11.741261] 2-0018未找到电源 AVDD、使用虚拟稳压器
    [11.747878][egalax_i2c]:寄存器输入器件完成
    [11.748198] ALG:skcipcip-ddst:setkey 在 ECG-DES-OMAP 的测试5上失败:flags=100
    [11.769659][egalax_i2c]:请求 IRQ (139) GPIO (113)、结果为:0
    [11.769669][egalax_i2c]:I2C 探针完成
    [11.811352] 2-0018未找到电源 DRVDD、正在使用虚拟稳压器
    [11.862260] ALG:skcipcip-ddst:setkey 在 ECG-DES-OMAP 的测试5上失败:flags=100
    [11.882696] CAN 器件驱动程序接口
    [12.008291] random:非阻塞池已初始化
    [12.037612] omap_rng 48090000.rng:OMAP 随机数生成器版本。 20.
    [12.069298] c_CAN_platform 4ae3c000.can: c_CAN_platform 注册的设备(regs=fce3c000、IRQ=348)
    [12.160089] OMAP-hwmod:dcan2:_wait_target_disable 失败
    [12.288438] c_CAN_platform 48480000.can: c_CAN_platform 设备已注册(regs=fa480000、IRQ=349)
    [12.420168] VPE 489d0000.VPE:正在加载固件 vpdma-1b8.bin
    [12.442546] VPE 489d0000.VPE:器件注册为/dev/video0
    [12.955459] omap_hwmod:dcan2:_wait_target_disable 失败
    [12.984635] EXT4-FS (mmcblk1p2):已安装文件系统、具有有序数据模式。 OPTS:(空)
    [12.993663] FAT-FS (mmcblk1p1):卷未正确卸载。 某些数据可能已损坏。 请运行 fsck。
    [13.134208] Net eth0:正在初始化 cpsw 版本1.15 (0)
    [13.194446] net eth0:已初始化 cpsw ale 版本1.4
    [13.272519] OMAP-SHIM 4b101000.sham:OMAP 版本4.3上的硬件加速器
    [13.281414141]净 Eth0:ALE 表大小1024
    [13.300819] FAT-FS (mmcblk0p1):卷未正确卸载。 某些数据可能已损坏。 请运行 fsck。
    [13.500724] remoteproc0:加载 dra7-ipu1-fw.xem4失败
    [13.641181] net eth0:Phy found:id is:0x2000a231
    [13.726241] remoteproc1:加电5502000.IPU
    [13.731059] remoteproc1:引导 FW 映像 dra7-ipu2-fw.xem4,大小为3738972
    [13.792371] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
    [13.804982] omap_hwmod:dcan2:_wait_target_disable 失败
    [13.825685] OMAP-IMU 55082000.MMU:55082000.MMU:2.1版
    [14.121400] remoteproc1:远程处理器5502000.IPU 现已启动
    [14.177145] virtio_rpmsg_bus virtio0:rpmsg 主机处于联机状态
    [14.212124] remoteproc1:注册的 virtio0 (类型7)
    [14.270159] virtio_rpmsg_bus virtio0:创建通道 rpmsg-RPC addr 0x65
    [14.345185] rpmsg_RPC rpmsg0:使用 src 1024 dst 101探测服务 DCE-callback
    [14.403893] OMAP-hwmod:dcan2:_wait_target_disable 失败
    [14.442668] virtio_rpmsg_bus virtio0:创建通道 rpmsg-RPC addr 0x66
    [14.514769] rpmsg_RPC rpmsg1:使用 src 1025 dst 102探测服务 rpmsg-DCE
    [14.533968] OMAP_hwmod:dcan2:_wait_target_disable 失败
    [14.593026] rpmsg_RPC rpmsg0:已发布函数= 4
    [14.598122] rpmsg_RPC rpmsg1:已发布函数= 9
    [14.662184] OMAP-hwmod:dcan2:_wait_target_disable 失败
    [14.707837] ASOC-simple-card sound@0:tlv320aic3x-hifi <->48464000.McASP 映射正常
    [14.769378] OMAP_WDT:OMAP 看门狗计时器修订版0x01:初始超时60秒
    [14.835149] OMAP-AES 4b500000.AES:OMAP AES 硬件加速器版本:3.3
    [14.850343] OMAP-hwmod:dcan2:_wait_target_disable 失败
    [14.988013] OMAP-hwmod:dcan2:_wait_target_disable 失败
    [15.048946] OMAP-AES 4b700000。AES:OMAP AES 硬件加速器版本:3.3
    [15.094962][DRM]在次要版本1上初始化 PVR 1.14.3699939 20110701
    [16.368179] omap_hwmod:dcan2:_wait_target_disable 失败
    [18.072166] usbcore:注册的新接口驱动程序 usbfs
    [18.089636] usbcore:注册的新接口驱动程序集线器
    [18.110192] usbcore:注册的新设备驱动程序 USB
    [18.199458] xhci-hcd xhci-hcd.0.auto: xHCI 主机控制器
    [18.214961] xhci-hcd xhci-hcd.0.auto:新 USB 总线已注册、分配的总线编号1
    [18.245954] xhci-hcd xhci-hcd.0.auto: HCC params 0x0220f04c HCI version 0x100 quirks 0x00210010
    [18.281235] xhci-hcd xhci-hcd.0.auto: IRQ 425、IO 内存0x48890000
    [18.308567]集线器1-0:1.0:找到 USB 集线器
    [18.328676]集线器1-0:1.0:检测到1个端口
    [18.332843] PVR_K:UM DDK-(3699939)和 KM DDK-(3699939)匹配。 [确定]
    [18.356215] xhci-hcd xhci-hcd.0.auto: xHCI 主机控制器
    [18.361734] xhci-hcd xhci-hcd.0.auto:注册新 USB 总线、分配的总线编号2.
    [18.427150] USB USB2:我们不知道该主机的 LPM 算法、因此无法禁用 LPM。
    [18.469325]集线器2-0:1.0:找到 USB 集线器
    [18.491473]集线器2-0:1.0:检测到1个端口
    [18.506421] dwc3 488d0000.usb: OTG:注册的主主机 xhci-hcd.1.auto
    [18.531904] dwc3 488d0000.usb: OTG:已注册共享主机 xhci-hcd.1.auto
    [18.558179] dwc3 488d0000.usb: OTG:直到小工具寄存器才启动
    [19.110940] omap_hwmod:dcan2:_wait_target_disable 失败

    米歇尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    米歇尔

    从您的日志中、我看到 mcspi 驱动程序未注册、主要是因为它在设备树中被禁用。 您需要在设备树中明确启用它。 请在您正在使用的器件树中包含以下条目。

    mcspi1{(&M)
    状态="正常";
    };

    此致

    Shravan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    此语句位于器件树中

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    我已解编译器件树、并为 mcspi1获取该代码

    SPI@48098000{
    兼容="ti、omAP4-mcspi";
    REG =<0x48098000 0x00000200>;
    中断=<0x00000000 0x0000003c 0x00000004>;
    #address-cells = 0x00000001>;
    大小单元格=<0x00000000>;
    ti、hwmids ="mcspi1";
    TI、SPI-num-cs =<0x00000004>;
    DMA = 0x000000c5 0x00000023 0x000000c5 0x00000024 0x000000c5 0x00000025 0x000000c5 0x00000026
    dma-names ="tx0"、"rx0"、"tx1"、"rx1"、"tx2"、 "rx2"、"TX3"、"rx3";
    STATUS ="禁用";
    };

    这适用于 mcspi2

    SPI@4809a000{
    兼容="ti、omAP4-mcspi";
    REG =<0x4809a000 0x00000200>;
    中断=<0x00000000 0x0000003d 0x00000004>;
    #address-cells = 0x00000001>;
    大小单元格=<0x00000000>;
    ti、hwmids ="mcspi2";
    TI、SPI-num-cs =<0x00000002>;
    DMA = 0x000000c5 0x0000002b 0x000000c5 0x0000002c 0x000000c5 0x0000002d 0x000000c5 0x0000002E>
    dma-names ="tx0"、"rx0"、"tx1"、"rx1";
    STATUS ="禁用";
    };


    我必须仔细检查我的补丁、因为 SPI 的部分似乎没有被编译。
    我现在有一个更热的项目、我在业余时间一直在做这个部分的工作。
    我想将我们的 RTOS 方法与使用 Linux 端的方法进行比较。 现在、具有 IPU1通信的 RTOS 占用大约70-80%的 CPU 时间、我明天就要处理、我的办公室计算机上没有正确的 Yocto 条目。 在家里、我使用的是一个旧板、其中交换了红色和绿色、QSPI 无法正常工作(交换了 Rx 和 TX)、除此之外、这些板是完全相同的。

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shravan、

    我修复了设备树的问题。 存在一个奇怪的错误。

    /* SPI 器件

    此处显示 SPI 代码

    /* UART */

    基本上所有 SPI 代码都已注释

    我有一些功能、但不知怎么说、我只能看到其中一个 CAN 端口、它的顺序并不总是相同的。

    我希望内部 CAN 始终为 CAN0和 CAN1

    DIR /sys/class/net
    drwxr-xr-x 2根根,0年2月25日08:03。
    drwxr-xr-x 47根根,0年2月25日08:03。
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 CAN0 ->../../devices/platform/44000000.ocp/4ae3c000.can/net/can0
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 CAN1 ->../../devices/platform/44000000.ocp/48098000.spi/spi_master/spi1/spi1.0/net/can1
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 CAN2 ->../../devices/platform/44000000.ocp/48480000.can/net/can2
    lrwxrwxrwx 1根根根根,0年2月25日08:03 eth0 ->../../devices/platform/44000000.ocp/48484000.ethernet/net/eth0
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 lo ->../../devices/virtual/net/lo
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 sit0 ->../../devices/virtual/net/sit0
    root@activa-global-display:~#


    root@activa-global-display:~# dir /sys/class/net
    drwxr-xr-x 2根根,0年2月25日08:03。
    drwxr-xr-x 47根根,0年2月25日08:03。
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 CAN0 ->../../devices/platform/44000000.ocp/48098000.spi/spi_master/spi1/spi1.0/net/can0
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 CAN1 ->../../devices/platform/44000000.ocp/4ae3c000.can/net/can1
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 CAN2 ->../../devices/platform/44000000.ocp/48480000.can/net/can2
    lrwxrwxrwx 1根根根根,0年2月25日08:03 eth0 ->../../devices/platform/44000000.ocp/48484000.ethernet/net/eth0
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 lo ->../../devices/virtual/net/lo
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 sit0 ->../../devices/virtual/net/sit0

    root@activa-global-display:~# dir /sys/class/spi_master
    drwxr-xr-x 2根根,0年2月25日08:03。
    drwxr-xr-x 47根根,0年2月25日08:03。
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 SPI1 ->../../devices/platform/44000000.ocp/48098000.spi/spi_master/spi1
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 SPI2 ->../../devices/platform/44000000.ocp/4809a000.spi/spi_master/spi2
    lrwxrwxrwx 1 root root 用户0 Febr25 08:03 spi3 ->../../devices/platform/44000000.ocp/480ba000.spi/spi_master/spi3
    root@activa-global-display:~# dir /sys/class/spi_master/spi1
    drwxr-xr-x 7根根,0年2月25日08:03。
    drwxr-xr-x 3根根,0年2月25日08:03。
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 device ->../../../48098000.spi
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 of _node ->../../../../../../firmware/devicetree/base/ocp/spi@48098000
    drwxr-xr-x 2 root 用户0 Mar 23 02:19 power
    drwxr-xr-x 5根根,0年2月25日08:03 spi1.0
    drwxr-xr-x 4 root 用户0 Feb. 25 08:03 spi1.1
    drwxr-xr-x 4 root 用户0 Feb. 25 08:03 spi1.2
    drwxr-xr-x 2 root 用户0 Mar 2302:19统计信息
    lrwxrwxrwx 1根根根根,0年2月25日08:03子系统->../../../../../../class/spi_master
    -rw-r--r-- 1 root root 4096 Februe 25 08:03 uevent
    root@activa-global-display:~# dir /sys/class/spi_master/spi1/spi1.
    spi1.1/ spi1.1/ spi1.2/
    root@activa-global-display:~# dir /sys/class/spi_master/spi1/spi1.0
    drwxr-xr-x 5根根,0年2月25日08:03。
    drwxr-xr-x 7根根,0年2月25日08:03。
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 driver ->../../../../../../../bus/spi/drivers/mcp251x
    -r--r-- 1根根4096 Mar 23 02:19 modalias
    drwxr-xr-x 3 root 用户0 Mar 2302:19 net
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 of _node ->../../../../../../../firmware/devicetree/base/ocp/spi@48098000/dcan3@0
    drwxr-xr-x 2 root 用户0 Mar 23 02:19 power
    drwxr-xr-x 2 root 用户0 Mar 2302:19统计信息
    lrwxrwxrwx 1根根根根,0年2月25日08:03子系统->../../../../../../../bus/spi
    -rw-r--r-- 1 root root 4096 Februe 25 08:03 uevent
    root@activa-global-display:~# dir /sys/class/spi_master/spi1/spi1.1
    drwxr-xr-x 4根根,0年2月25日08:03。
    drwxr-xr-x 7根根,0年2月25日08:03。
    -r--r-- 1根根4096 Mar 23 02:19 modalias
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 of _node ->../../../../../../../firmware/devicetree/base/ocp/spi@48098000/dcan4@1.
    drwxr-xr-x 2 root 用户0 Mar 23 02:19 power
    drwxr-xr-x 2 root 用户0 Mar 2302:19统计信息
    lrwxrwxrwx 1根根根根,0年2月25日08:03子系统->../../../../../../../bus/spi
    -rw-r--r-- 1 root root 4096 Februe 25 08:03 uevent
    root@activa-global-display:~# dir /sys/class/spi_master/spi1/spi1.2
    drwxr-xr-x 4根根,0年2月25日08:03。
    drwxr-xr-x 7根根,0年2月25日08:03。
    -r--r-- 1根根4096 Mar 23 02:19 modalias
    lrwxrwxrwx 1 root root 用户0 Mar 23 02:19 of _node ->../../../../../../../firmware/devicetree/base/ocp/spi@48098000/dcan5@2.
    drwxr-xr-x 2 root 用户0 Mar 23 02:19 power
    drwxr-xr-x 2 root 用户0 Mar 2302:19统计信息
    lrwxrwxrwx 1根根根根,0年2月25日08:03子系统->../../../../../../../bus/spi
    -rw-r--r-- 1 root root 4096 Februe 25 08:03 uevent

    root@activa-global-display:~# dmesg | grep SPI
    [2.957802]   OMAP2_mcspi 480980.SPI:注册主器件 SPI1
    [2.958039]   SPI spi1.0:设置:速度50000、采样前沿、clk 正常
    [2.958056]   SPI spi1.0:设置模式0、8位/w、最大500000Hz --> 0
    [2.958246]   OMAP2_mcspi 480980.SPI:注册的儿童 spi1.0
    [2.958368]   SPI spi1.1:设置:速度50000、采样前沿、clk 正常
    [2.958382]   SPI spi1.1:设置模式0、8位/w、最大500000Hz --> 0
    [2.958569]   OMAP2_mcspi 480980.SPI:注册的儿童 spi1.1
    [2.958695]   SPI spi1.2:设置:速度50000、采样前沿、clk 正常
    [2.958708]   SPI spi1.2:设置模式0、8位/w、最大500000Hz --> 0
    [2.958895]   OMAP2_mcspi 480980.SPI:注册的儿童 spi1.2
    [2.959199]   OMAP2_mcspi 4809a0.SPI:注册主器件 SPI2
    [2.959377]   SPI spi2.0:设置:速度2000000、采样前沿、clk 正常
    [2.959392]   SPI spi2.0:设置模式0、8位/w、2000000 Hz 最大值--> 0
    [2.959650]   at25 spi2.0:2 KB at25 EEPROM、页码16
    [2.965122]   OMAP2_mcspi 4809a0.SPI:注册的儿童 spi2.0
    [2.965403]   OMAP2_mcspi 480ba000。SPI:注册主设备 spi3.
    [7.821677]   mcp251x spi1.0:设置:速度50000、样本前缘、clk 正常
    [7.821695]   mcp251x spi1.0:设置模式0、8位/w、最大500000Hz --> 0
    [7.89717]   mcp251x spi1.0:CANCTRL 0x87
    [7.925834]   mcp251x spi1.1:设置:速度50000、样本前缘、clk 正常
    [7.925851]   mcp251x spi1.1:设置模式0、8位/w、最大500000Hz --> 0
    [8.077128]   mcp251x spi1.2:设置:速度50000、样本前缘、clk 正常
    [8.077144]   mcp251x spi1.2:设置模式0、8位/w、最大500000Hz --> 0

    米歇尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michel、

    CAN 驱动程序不支持修复 CAN 器件的名称(驱动程序不使用器件树中的别名节点)。

    但是,您可以在 systemd 中设置一个规则,根据 MACAddress 指定特定的名称,有关详细信息可在该链接中找到。

    https://www.freedesktop.org/software/systemd/man/systemd.link.html

    此致

    Shravan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    这部分不是我最大的顾虑、我可以找到方法来确定哪一个是什么。 我担心的是、为什么只有一个 CAN 被识别为 CAN 端口。 硬件的设置方式是、第一个器件的 xtal 为16MHz、而不是连接到第一个器件的 freq 输出的其他两个器件。

    在 RTOS 中、第一个通道工作正常、但另一个通道工作正常。 我在读取微芯片器件规格时注意到的一点是、外部时钟在加电时设置为1/8的输入时钟。 这是否是在 modprobe 期间无法将它们识别为 CAN 端口的原因? 如果是、如何告知第一个器件将速度设置为16MHz?

    有人告诉我、这两个器件无法与 TI-RTOS 一起正常工作。 也许分配给该项目的编程人员没有改变速度、我将需要研究一下。 这可能是一个硬件问题、但在我们更改硬件之前、我们必须确保它是一个硬件问题。
    您是否发现所有3个器件未使用 xtal 时出现任何问题?

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    米歇尔

    您必须查看微芯片数据表以检查支持的时钟频率、但是在浏览驱动器时、我看到支持1MHz 至25MHz 范围内的频率、因此16MHz/8=2MHz 应该可以正常工作。

    但是、在器件树中、我注意到 can4、can5的 clk 属性设置为16MHz xtal。 如果其他两个 CAN 器件的输入时钟是第一个 CAN 器件的输出、则必须从第一个 CAN 器件创建输出时钟的实例、并将其设置为 CAN4、CAN5的时钟属性。  

    此致

    Shravan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米歇尔

    您能否在内核中的"驱动程序/net/CAN/SPI/mcp251x.c"文件中的函数'cp251x_hw_reset'中添加一些调试打印内容。
    可能是驱动程序无法与其他两个 CAN 器件通信。
    关于 TI-RTOS、我不确定。 RTOS 上的所有者是 OOO、下周回来。 我会与他联系并回复。

    此致
    Shravan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    创建该实例的方法是什么?

    至于2MHz、我们很难获得一些客户所需的500kHz 广播。 对于当前客户、需要250kHz、因为有人告诉我最后两个器件(使用 TI-RTOS)不能正常工作。 我们没有时间检查输出频率、编程器就在路上。

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    我今晚会尝试一下、让您知道我看到的内容。

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米歇尔

    我注意到驱动程序不支持器件树入口 enable-clkout。 我确实看到了一个在线可用的修补程序(下面粘贴的链接)、您是否有此修补程序?

    github.com/.../0006-mcp251x-add-device-tree-support.patch

    此补丁作为'cp251x_set_normal_mode'方法的一部分分析器件树中的'enable-clkout'属性、但此方法仅在存在事件时调用、不作为驱动程序探测器的一部分。 您可能需要将其添加为驱动程序探测器的一部分。

    此致
    Shravan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shravan、

    我将对此进行查找

    该补丁适用于内核3.8、我使用内核4.4

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    米歇尔

    我在 K4.4上看不到此修补程序、因此必须进行移植。

    此致

    Shravan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有时间进行移植、使第二和第三微芯片器件正常工作。 当我完成其他部件时、我将返回到该状态。 这不是很热、因为我们目前只使用其中一个 CAN 端口、但稍后可能会成为一个大问题。

    米歇尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michel、

    我知道。 但是、问题似乎在于 mcp25x 驱动程序识别出1个以上的 CAN 器件。 在完成其他部件后、您是否可以开始新的主题?

    此致

    Shravan