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.

[参考译文] BEAGLEBK:设置 I2C 总线2 (来自 ti-SDK u-boot)会导致 BeagleBone Black 复位

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/995057/beaglebk-setting-i2c-bus-2-from-ti-sdk-u-boot-is-causing-beaglebone-black-to-reset

您好!

U-Boot 版本:U-Boot 2019.01-g333c3e72d3

TI-SDK:TI-PROCESSOR-SDK-LINUX-AM335x-EVM-06.03.00.106

在选择"I2C 总线2"时,BeagleBone Black 将进行复位

U-boot 登录:“U-Boot 2019.01-g333c3e72d3”

------------------

U-Boot SPL 2019.01-g333c3e72d3 (2020年4月19日- 11:21:12 +0000)
尝试从 MMC1引导


U-Boot 2019.01-g333c3e72d3 (2020年4月19日- 11:21:12 +0000)

CPU :AM335X-GP 修订版2.1
型号:TI AM335x BeagleBone Black
DRAM: 512 MiB
NAND: 0 MIB
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
正在从 FAT 加载环境... 好的
NET:  eth0:以太网@4a100000
警告:USB_Ether MAC 地址不匹配:
ROM 中的地址为         :de:ad:be:ef:00:01
环境中的地址为 04:79:B7:A8:FD:e0
,eth1:USB_ether
按任意键停止自动引导: 0
=> I2C 探针
未选择 I2C 总线
=> I2C DEV 2
将总线设置为2
数据中止
PC:[<9ff887fa>]         LR:[<9ff887cf>]
重新分配 PC:[<808207fa>]   LR:[<808207cf>]
SP:9df3af08 IP:9df3aedc    FP:000003e8
R10:9df4b0e8 R9:9df47eb8    R8:9df4b158
R7:00000002 R6:00000001    R5:9ffc29a7 R4:4819c000
r3:000000a4 r2:0000aec4    r1:000050b4 r0:9df48748
标志:nzCv 在  模式 SVC_32上关闭 FIQ 的 IRQ
代码:2e002702 461dbf18 7b7af44f 6004f8c8 (5ae37a6b)
正在重置 CPU ...

正在重置...

--------------------

这是预期的吗?

另一方面、 电路板上的出厂 u-boot 映像(U-Boot 2018.09-00002-g0b54a51ee)也不会出现这种情况:

U-Boot "2018.09-00002-g0b54a51eee"上的 U-boot 日志

----------

U-Boot 2018.09-00002-g0b54a51eee (2018年9月10日- 19:41:39 -0500)、编译:jenkins5

CPU :AM335X-GP 修订版2.1
I2C:  就绪
DRAM: 512 MiB
与驱动程序"omap_hmc"不匹配
与驱动程序"omap_hmc"不匹配
未找到某些驱动程序
复位源:发生上电复位。
RTC 32KCLK 源:外部。
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
正在从 EXT4加载环境...
**无法使用 MMC 0:1加载 env **
电路板:BeagleBone Black
未设置。 验证第一个电子保险丝 MAC
BeagleBone Black:
BeagleBone:Cape EEPROM:I2C_probe:0x54:
BeagleBone:Cape EEPROM:I2C_probe:0x55:
BeagleBone:Cape EEPROM:I2C_probe:0x56:
BeagleBone:Cape EEPROM:I2C_probe:0x57:
NET:  eth0:MII 模式
CPsw、USB_ether
按空格键可在2秒钟内中止自动引导
=> I2C DEV 2
将总线设置为2
=>

------------

此致、

Adarsh

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

    您好、Adarsh、
    在较新的 AM335x SDK 中、驱动程序模型(DM)用于 SPL/u-boot 中的 I2C 端口。
    您可能需要检查 u-boot 板 DTB 文件以查看在 u-boot 器件树文件中启用了哪些 i2c 端口。
    1.一个选项是通过"DTC -i dtb board_xyz.dtb > board_xyx.dtb"将板 DTB 文件转换回 DTC 文件、然后检查在板 DTB 文件中启用了哪些 i2c 端口。
    2.另一个选项是运行"dm tree" cmd @u-boot Prompt 以列出驱动程序模型(Dm)树。 如果未设置为启用"dm ..."、则可能需要在 u-boot board_xyz_defconfig 中添加"CONFIG_CMD_DM=y" 命令
    示例"dm 树"日志位于在 AM335x GP EVM 上捕获的附件 I 中。
    请注意、两个 i2c 端口与 AM335 EVM 的 i2c0和 i2c1节点的 u-boot 器件树配置匹配、如下所示:

    /arch/arm/dts/am335x-evm.dts
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    ...
    &i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pins>;
    
    	status = "okay";
    	clock-frequency = <100000>;
    ...

    最棒的

    -香港

    e2e.ti.com/.../4617.am3_5F00_6.3_5F00_i2c_5F00_speed.txt

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

    您好、Hong、

    我同意你刚才提到的一两种选择。

    在本例中、我使用的是中的预构建映像(u-boot-AM335x-evm.img、MLO-AM335x-EVM)

    "ti-processor-sdk-linux-am335x-evm-06.03.00.106"。

    默认情况下,在这些映像中启用 i2c0和 i2c2控制器(从"am33xx.dtsi"和"am335x-bone-common.dtsi"文件中观察到这一点 )。输出也确认了这一点

    u-boot shell 提示符处的"DM 树"命令。

    确认配置并启用了"i2c 总线2"后、在运行"i2c dev 2"时、电路板是否会崩溃并重新启动?

    U-Boot SPL 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     root        0  [ + ]   root_driver           root_driver
     rsa_mod_ex  0  [   ]   mod_exp_sw            |-- mod_exp_sw
     simple_bus  0  [ + ]   generic_simple_bus    `-- ocp
     simple_bus  1  [   ]   generic_simple_bus        |-- l4_wkup@44c00000
     simple_bus  2  [   ]   generic_simple_bus        |   |-- prcm@200000
     simple_bus  3  [   ]   generic_simple_bus        |   `-- scm@210000
     simple_bus  4  [   ]   generic_simple_bus        |       `-- scm_conf@0
     gpio        0  [ + ]   gpio_omap                 |-- gpio@44e07000
     gpio        1  [   ]   gpio_omap                 |-- gpio@4804c000
     gpio        2  [   ]   gpio_omap                 |-- gpio@481ac000
     gpio        3  [   ]   gpio_omap                 |-- gpio@481ae000
     serial      0  [ + ]   omap_serial               |-- serial@44e09000
     i2c         0  [   ]   i2c_omap                  |-- i2c@44e0b000
     i2c         1  [   ]   i2c_omap                  |-- i2c@4819c000
     mmc         0  [ + ]   omap_hsmmc                |-- mmc@48060000
     blk         0  [ + ]   mmc_blk                   |   `-- mmc@48060000.blk
     mmc         1  [ + ]   omap_hsmmc                |-- mmc@481d8000
     blk         1  [   ]   mmc_blk                   |   `-- mmc@481d8000.blk
     timer       0  [ + ]   omap_timer                |-- timer@48040000
     timer       1  [   ]   omap_timer                |-- timer@48042000
     timer       2  [   ]   omap_timer                |-- timer@48044000
     timer       3  [   ]   omap_timer                |-- timer@48046000
     timer       4  [   ]   omap_timer                |-- timer@48048000
     timer       5  [   ]   omap_timer                |-- timer@4804a000
     misc        0  [ + ]   ti-musb-wrapper           |-- usb@47400000
     usb         0  [ + ]   ti-musb-peripheral        |   |-- usb@47401000
     eth         1  [ + ]   usb_ether                 |   |   `-- usb_ether
     usb         0  [   ]   ti-musb-host              |   `-- usb@47401800
     eth         0  [ + ]   eth_cpsw                  `-- ethernet@4a100000
    => i2c dev 0
    Setting bus to 0
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     root        0  [ + ]   root_driver           root_driver
     rsa_mod_ex  0  [   ]   mod_exp_sw            |-- mod_exp_sw
     simple_bus  0  [ + ]   generic_simple_bus    `-- ocp
     simple_bus  1  [   ]   generic_simple_bus        |-- l4_wkup@44c00000
     simple_bus  2  [   ]   generic_simple_bus        |   |-- prcm@200000
     simple_bus  3  [   ]   generic_simple_bus        |   `-- scm@210000
     simple_bus  4  [   ]   generic_simple_bus        |       `-- scm_conf@0
     gpio        0  [ + ]   gpio_omap                 |-- gpio@44e07000
     gpio        1  [   ]   gpio_omap                 |-- gpio@4804c000
     gpio        2  [   ]   gpio_omap                 |-- gpio@481ac000
     gpio        3  [   ]   gpio_omap                 |-- gpio@481ae000
     serial      0  [ + ]   omap_serial               |-- serial@44e09000
     i2c         0  [ + ]   i2c_omap                  |-- i2c@44e0b000
     i2c         1  [   ]   i2c_omap                  |-- i2c@4819c000
     mmc         0  [ + ]   omap_hsmmc                |-- mmc@48060000
     blk         0  [ + ]   mmc_blk                   |   `-- mmc@48060000.blk
     mmc         1  [ + ]   omap_hsmmc                |-- mmc@481d8000
     blk         1  [   ]   mmc_blk                   |   `-- mmc@481d8000.blk
     timer       0  [ + ]   omap_timer                |-- timer@48040000
     timer       1  [   ]   omap_timer                |-- timer@48042000
     timer       2  [   ]   omap_timer                |-- timer@48044000
     timer       3  [   ]   omap_timer                |-- timer@48046000
     timer       4  [   ]   omap_timer                |-- timer@48048000
     timer       5  [   ]   omap_timer                |-- timer@4804a000
     misc        0  [ + ]   ti-musb-wrapper           |-- usb@47400000
     usb         0  [ + ]   ti-musb-peripheral        |   |-- usb@47401000
     eth         1  [ + ]   usb_ether                 |   |   `-- usb_ether
     usb         0  [   ]   ti-musb-host              |   `-- usb@47401800
     eth         0  [ + ]   eth_cpsw                  `-- ethernet@4a100000
    => i2c dev 2
    Setting bus to 2
    data abort
    pc : [<9ff887fa>]          lr : [<9ff887cf>]
    reloc pc : [<808207fa>]    lr : [<808207cf>]
    sp : 9df3af08  ip : 9df3aedc     fp : 000003e8
    r10: 9df4b478  r9 : 9df47eb8     r8 : 9df4b4e8
    r7 : 00000002  r6 : 00000001     r5 : 9ffc29a7  r4 : 4819c000
    r3 : 000000a4  r2 : 0000aec4     r1 : 000050b4  r0 : 9df48748
    Flags: nzCv  IRQs off  FIQs on  Mode SVC_32
    Code: 2e002702 461dbf18 7b7af44f 6004f8c8 (5ae37a6b) 
    Resetting CPU ...
    
    resetting ...
    
    U-Boot SPL 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    

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

    "ti-processor-sdk-linux-am335x-evm-06.03.00.106/board-support"中 u-boot 版本的默认"dts/dtsi"文件

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

    您好、Adarsh、
    默认情况下、所有器件都将从0开始以简单的顺序获得 DM 序列号/索引。
    如下面列出的"dm 树"所示、器件 i2c 端口2 (i2c@4819c000)映射到 u-boot DM 中的 i2c 索引#1。

    >>>> from "dm tree" on your board
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     i2c         0  [   ]   i2c_omap                  |-- i2c@44e0b000
     i2c         1  [   ]   i2c_omap                  |-- i2c@4819c000

    您是否曾尝试使用"i2c dev 1"来选择电路板上的器件 i2c 端口#2?
    最棒的
    -香港

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

    您好、Hong、

    根据您的建议、我尝试了"i2c dev 1"。但似乎不会发生这种情况。

    U-Boot SPL 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => i2c dev 0
    Setting bus to 0
    => i2c dev 1
    Setting bus to 1
    Failure changing bus number (-19)
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     root        0  [ + ]   root_driver           root_driver
     rsa_mod_ex  0  [   ]   mod_exp_sw            |-- mod_exp_sw
     simple_bus  0  [ + ]   generic_simple_bus    `-- ocp
     simple_bus  1  [   ]   generic_simple_bus        |-- l4_wkup@44c00000
     simple_bus  2  [   ]   generic_simple_bus        |   |-- prcm@200000
     simple_bus  3  [   ]   generic_simple_bus        |   `-- scm@210000
     simple_bus  4  [   ]   generic_simple_bus        |       `-- scm_conf@0
     gpio        0  [ + ]   gpio_omap                 |-- gpio@44e07000
     gpio        1  [   ]   gpio_omap                 |-- gpio@4804c000
     gpio        2  [   ]   gpio_omap                 |-- gpio@481ac000
     gpio        3  [   ]   gpio_omap                 |-- gpio@481ae000
     serial      0  [ + ]   omap_serial               |-- serial@44e09000
     i2c         0  [ + ]   i2c_omap                  |-- i2c@44e0b000
     i2c         1  [   ]   i2c_omap                  |-- i2c@4819c000
     mmc         0  [ + ]   omap_hsmmc                |-- mmc@48060000
     blk         0  [ + ]   mmc_blk                   |   `-- mmc@48060000.blk
     mmc         1  [ + ]   omap_hsmmc                |-- mmc@481d8000
     blk         1  [   ]   mmc_blk                   |   `-- mmc@481d8000.blk
     timer       0  [ + ]   omap_timer                |-- timer@48040000
     timer       1  [   ]   omap_timer                |-- timer@48042000
     timer       2  [   ]   omap_timer                |-- timer@48044000
     timer       3  [   ]   omap_timer                |-- timer@48046000
     timer       4  [   ]   omap_timer                |-- timer@48048000
     timer       5  [   ]   omap_timer                |-- timer@4804a000
     misc        0  [ + ]   ti-musb-wrapper           |-- usb@47400000
     usb         0  [ + ]   ti-musb-peripheral        |   |-- usb@47401000
     eth         1  [ + ]   usb_ether                 |   |   `-- usb_ether
     usb         0  [   ]   ti-musb-host              |   `-- usb@47401800
     eth         0  [ + ]   eth_cpsw                  `-- ethernet@4a100000
    => 
    

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

    您好、Adarsh、
    我们可以在您的电路板上运行快速测试@u-boot 提示符吗?

    #1 => md.l 0x44E00044 1
    44e00044: 00030000                               ....
    #2 => mw.l 0x44E00044 0x2 1
    #3 => md.l 0x44E00044 1
    44e00044: 00000002   

    电路板上 CMD #1的返回值是多少?
    如果 CMD #1返回如上所示的"0x00030000"、则继续运行 CMDS #2和#3。
    然后、运行"i2c dev 1"以查看是否有差异?
    最棒的
    -香港

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

    您好、Hong、

    输出:

    U-Boot SPL 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => md.l 0x44E00044 1
    44e00044: 00030000                               ....
    => mw.l 0x44E00044 0x2 1
    => md.l 0x44E00044 1
    44e00044: 00000002                               ....
    => i2c dev 1
    Setting bus to 1
    Failure changing bus number (-19)
    => 
    

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

    您好、Adarsh、
    根据在电路板上捕获的日志、似乎未在 SPL/u-boot 中启用 i2c #2时钟。
    => MD.L 0x44E00044 1.
    44e00044:00030000
    我们是否可以将以下一行添加到"arch/arm/cpU/armv7/am33xx/clock_am33xx.c"中、然后重新运行测试?

    before:
    		&cmper->i2c1clkctrl,	/* enabling clock for i2c #1 */
    after
    		&cmper->i2c1clkctrl,	/* enabling clock for i2c #1 */
    +		&cmper->i2c2clkctrl,	/* enabling clock for i2c #2 */

    最棒的

    -香港

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

    您好、Hong、

    在"ti-processor-sdk-linux-am335x-evm-06.03.00.106" SDK 发行版的 u-boot 代码中,文件"clock_am33xx.c"位于

    "arch/arm/mach-OMAP2/am33xx"。 应用建议的修改后的输出:

    U-Boot SPL 2019.01-gc148924-dirty (Apr 23 2021 - 10:51:42 +0530)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-gc148924-dirty (Apr 23 2021 - 10:51:42 +0530)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     root        0  [ + ]   root_driver           root_driver
     rsa_mod_ex  0  [   ]   mod_exp_sw            |-- mod_exp_sw
     simple_bus  0  [ + ]   generic_simple_bus    `-- ocp
     simple_bus  1  [   ]   generic_simple_bus        |-- l4_wkup@44c00000
     simple_bus  2  [   ]   generic_simple_bus        |   |-- prcm@200000
     simple_bus  3  [   ]   generic_simple_bus        |   `-- scm@210000
     simple_bus  4  [   ]   generic_simple_bus        |       `-- scm_conf@0
     gpio        0  [ + ]   gpio_omap                 |-- gpio@44e07000
     gpio        1  [   ]   gpio_omap                 |-- gpio@4804c000
     gpio        2  [   ]   gpio_omap                 |-- gpio@481ac000
     gpio        3  [   ]   gpio_omap                 |-- gpio@481ae000
     serial      0  [ + ]   omap_serial               |-- serial@44e09000
     i2c         0  [   ]   i2c_omap                  |-- i2c@44e0b000
     i2c         1  [   ]   i2c_omap                  |-- i2c@4819c000
     mmc         0  [ + ]   omap_hsmmc                |-- mmc@48060000
     blk         0  [ + ]   mmc_blk                   |   `-- mmc@48060000.blk
     mmc         1  [ + ]   omap_hsmmc                |-- mmc@481d8000
     blk         1  [   ]   mmc_blk                   |   `-- mmc@481d8000.blk
     timer       0  [ + ]   omap_timer                |-- timer@48040000
     timer       1  [   ]   omap_timer                |-- timer@48042000
     timer       2  [   ]   omap_timer                |-- timer@48044000
     timer       3  [   ]   omap_timer                |-- timer@48046000
     timer       4  [   ]   omap_timer                |-- timer@48048000
     timer       5  [   ]   omap_timer                |-- timer@4804a000
     misc        0  [ + ]   ti-musb-wrapper           |-- usb@47400000
     usb         0  [ + ]   ti-musb-peripheral        |   |-- usb@47401000
     eth         1  [ + ]   usb_ether                 |   |   `-- usb_ether
     usb         0  [   ]   ti-musb-host              |   `-- usb@47401800
     eth         0  [ + ]   eth_cpsw                  `-- ethernet@4a100000
    => i2c dev 0
    Setting bus to 0
    => i2c dev 1
    Setting bus to 1
    Failure changing bus number (-19)
    => md.l 0x44E00044 1
    44e00044: 00000002    
    => i2c dev 1
    Setting bus to 1
    Failure changing bus number (-19)
    => 
    
    

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

    您好、Adarsh、
    我将在上一份答复中补充一些澄清。
    我在 AM335x GP EVM u-boot 器件树中添加了 i2c 端口#2、并捕获了如下所示的日志:

    => i2c bus
    Bus 0:  i2c@44e0b000
    Bus 1:  i2c@4802a000
    Bus 2:  i2c@4819c000

    因此、您需要使用"i2c dev 2"来选择电路板上的 i2c 端口#2 (i2c@4819c000)。
    我认为在 SPL 代码中添加"i2c DEV 2"后、"i2c DEV 2"现在应该适用于您的电路板。

    /arch/arm/mach-omap2/am33xx/clock_am33xx.c"
    		&cmper->i2c1clkctrl,	/* enabling clock for i2c #1 */
    +		&cmper->i2c2clkctrl,	/* enabling clock for i2c #2 */

    最棒的

    -香港

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

    您好、Hong、

    能够设置 i2c 总线2,不会出现任何问题。

    请将此修复推入下一个"ti-sdk"版本。

    此致、

    Adarsh

    U-Boot SPL 2019.01-gc148924-dirty (Apr 23 2021 - 10:51:42 +0530)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-gc148924-dirty (Apr 23 2021 - 10:51:42 +0530)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     root        0  [ + ]   root_driver           root_driver
     rsa_mod_ex  0  [   ]   mod_exp_sw            |-- mod_exp_sw
     simple_bus  0  [ + ]   generic_simple_bus    `-- ocp
     simple_bus  1  [   ]   generic_simple_bus        |-- l4_wkup@44c00000
     simple_bus  2  [   ]   generic_simple_bus        |   |-- prcm@200000
     simple_bus  3  [   ]   generic_simple_bus        |   `-- scm@210000
     simple_bus  4  [   ]   generic_simple_bus        |       `-- scm_conf@0
     gpio        0  [ + ]   gpio_omap                 |-- gpio@44e07000
     gpio        1  [   ]   gpio_omap                 |-- gpio@4804c000
     gpio        2  [   ]   gpio_omap                 |-- gpio@481ac000
     gpio        3  [   ]   gpio_omap                 |-- gpio@481ae000
     serial      0  [ + ]   omap_serial               |-- serial@44e09000
     i2c         0  [   ]   i2c_omap                  |-- i2c@44e0b000
     i2c         1  [   ]   i2c_omap                  |-- i2c@4819c000
     mmc         0  [ + ]   omap_hsmmc                |-- mmc@48060000
     blk         0  [ + ]   mmc_blk                   |   `-- mmc@48060000.blk
     mmc         1  [ + ]   omap_hsmmc                |-- mmc@481d8000
     blk         1  [   ]   mmc_blk                   |   `-- mmc@481d8000.blk
     timer       0  [ + ]   omap_timer                |-- timer@48040000
     timer       1  [   ]   omap_timer                |-- timer@48042000
     timer       2  [   ]   omap_timer                |-- timer@48044000
     timer       3  [   ]   omap_timer                |-- timer@48046000
     timer       4  [   ]   omap_timer                |-- timer@48048000
     timer       5  [   ]   omap_timer                |-- timer@4804a000
     misc        0  [ + ]   ti-musb-wrapper           |-- usb@47400000
     usb         0  [ + ]   ti-musb-peripheral        |   |-- usb@47401000
     eth         1  [ + ]   usb_ether                 |   |   `-- usb_ether
     usb         0  [   ]   ti-musb-host              |   `-- usb@47401800
     eth         0  [ + ]   eth_cpsw                  `-- ethernet@4a100000
    => i2c dev 0
    Setting bus to 0
    => i2c probe
    Valid chip addresses: 24 34 50
    => i2c dev 2
    Setting bus to 2
    =>
    => dm tree
     Class    index  Probed  Driver                Name
    -----------------------------------------------------------
     root        0  [ + ]   root_driver           root_driver
     rsa_mod_ex  0  [   ]   mod_exp_sw            |-- mod_exp_sw
     simple_bus  0  [ + ]   generic_simple_bus    `-- ocp
     simple_bus  1  [   ]   generic_simple_bus        |-- l4_wkup@44c00000
     simple_bus  2  [   ]   generic_simple_bus        |   |-- prcm@200000
     simple_bus  3  [   ]   generic_simple_bus        |   `-- scm@210000
     simple_bus  4  [   ]   generic_simple_bus        |       `-- scm_conf@0
     gpio        0  [ + ]   gpio_omap                 |-- gpio@44e07000
     gpio        1  [   ]   gpio_omap                 |-- gpio@4804c000
     gpio        2  [   ]   gpio_omap                 |-- gpio@481ac000
     gpio        3  [   ]   gpio_omap                 |-- gpio@481ae000
     serial      0  [ + ]   omap_serial               |-- serial@44e09000
     i2c         0  [ + ]   i2c_omap                  |-- i2c@44e0b000
     i2c_generi  0  [ + ]   i2c_generic_chip_drv      |   |-- generic_24
     i2c_generi  1  [ + ]   i2c_generic_chip_drv      |   |-- generic_34
     i2c_generi  2  [ + ]   i2c_generic_chip_drv      |   `-- generic_50
     i2c         1  [ + ]   i2c_omap                  |-- i2c@4819c000
     mmc         0  [ + ]   omap_hsmmc                |-- mmc@48060000
     blk         0  [ + ]   mmc_blk                   |   `-- mmc@48060000.blk
     mmc         1  [ + ]   omap_hsmmc                |-- mmc@481d8000
     blk         1  [   ]   mmc_blk                   |   `-- mmc@481d8000.blk
     timer       0  [ + ]   omap_timer                |-- timer@48040000
     timer       1  [   ]   omap_timer                |-- timer@48042000
     timer       2  [   ]   omap_timer                |-- timer@48044000
     timer       3  [   ]   omap_timer                |-- timer@48046000
     timer       4  [   ]   omap_timer                |-- timer@48048000
     timer       5  [   ]   omap_timer                |-- timer@4804a000
     misc        0  [ + ]   ti-musb-wrapper           |-- usb@47400000
     usb         0  [ + ]   ti-musb-peripheral        |   |-- usb@47401000
     eth         1  [ + ]   usb_ether                 |   |   `-- usb_ether
     usb         0  [   ]   ti-musb-host              |   `-- usb@47401800
     eth         0  [ + ]   eth_cpsw                  `-- ethernet@4a100000
    =>