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.

am3354的核心板,电源芯片换了,emmc型号也换了,怎么改设备树和uboot?

Other Parts Discussed in Thread: AM3354, TPS65910, TPS65217

本来是一块am3354的板子  sdk用的是ti-processor-sdk-linux-rt-am335x-evm-02.00.02.11-Linux-x86-Install.bin

目前用SD卡启动

现在将电源芯片由tps65910换成了tps65217

我只在board/ti/am335x/board.c 的函数 void am33xx_spl_board_init(void)里将 if (board_is_bone() || board_is_bone_lt()) 

换成if(1),这样能启动,后来发现不换也能启动。电源芯片这里正确的方法应该怎么做?

(我在设备树中发现挂在i2c设备下电源芯片还是tps65910,这里不知道有没有影响)

emmc由4.9版本的换成了5.1版本。本来这个应该没问题,问题出在emmc的引脚连错了,

本来emmc的引脚

DAT0 DAT1 DAT2 DAT3 DAT4 DAT5 DAT6 DAT7

应该分别连板子的

GPMC_AD0  GPMC_AD1  GPMC_AD2  GPMC_AD3  GPMC_AD4  GPMC_AD5  GPMC_AD6  GPMC_AD7

现在却连接到了

MMC1_DAT0  MMC1_DAT1  MMC1_DAT2  MMC1_DAT3  MMC1_DAT4  MMC1_DAT5  MMC1_DAT6  MMC1_DAT7

这种情况有没有办法补救?还是说必须重新做板子?

  • emmc的引脚应该是没有接错的,看一下手册4.2章节。比如说mmc1_dat0只是引脚GOMC_AD0的其中一个模式。

  • tps65910 tps65217 上电时序会自动完成控制。
  • 请问你的意思是硬件上电源芯片更换了,在uboot 和设备树上不需要修改吗?
    在原本的设备树中有这么一段
    i2c@44e0b000 {
    compatible = "ti,omap4-i2c";
    #address-cells = <0x1>;
    #size-cells = <0x0>;
    ti,hwmods = "i2c1";
    reg = <0x44e0b000 0x1000>;
    interrupts = <0x46>;
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <0x30>;
    clock-frequency = <0x61a80>;
    linux,phandle = <0x89>;
    phandle = <0x89>;

    tps@2d {
    reg = <0x2d>;
    compatible = "ti,tps65910";
    vcc1-supply = <0x31>;
    vcc2-supply = <0x31>;
    vcc3-supply = <0x31>;
    vcc4-supply = <0x31>;
    vcc5-supply = <0x31>;
    vcc6-supply = <0x31>;
    vcc7-supply = <0x31>;
    vccio-supply = <0x31>;
    linux,phandle = <0x8a>;
    phandle = <0x8a>;

    regulators {
    #address-cells = <0x1>;
    #size-cells = <0x0>;

    regulator@0 {
    reg = <0x0>;
    regulator-compatible = "vrtc";
    regulator-always-on;
    linux,phandle = <0x8b>;
    phandle = <0x8b>;
    };

    regulator@1 {
    reg = <0x1>;
    regulator-compatible = "vio";
    regulator-always-on;
    linux,phandle = <0x8c>;
    phandle = <0x8c>;
    };

    regulator@2 {
    reg = <0x2>;
    regulator-compatible = "vdd1";
    regulator-name = "vdd_mpu";
    regulator-min-microvolt = <0xdec74>;
    regulator-max-microvolt = <0x149f4c>;
    regulator-boot-on;
    regulator-always-on;
    linux,phandle = <0x4>;
    phandle = <0x4>;
    };

    regulator@3 {
    reg = <0x3>;
    regulator-compatible = "vdd2";
    regulator-name = "vdd_core";
    regulator-min-microvolt = <0xdec74>;
    regulator-max-microvolt = <0x118c30>;
    regulator-boot-on;
    regulator-always-on;
    linux,phandle = <0x8d>;
    phandle = <0x8d>;
    };

    regulator@4 {
    reg = <0x4>;
    regulator-compatible = "vdd3";
    regulator-always-on;
    linux,phandle = <0x8e>;
    phandle = <0x8e>;
    };

    regulator@5 {
    reg = <0x5>;
    regulator-compatible = "vdig1";
    regulator-always-on;
    linux,phandle = <0x8f>;
    phandle = <0x8f>;
    };

    regulator@6 {
    reg = <0x6>;
    regulator-compatible = "vdig2";
    regulator-always-on;
    linux,phandle = <0x90>;
    phandle = <0x90>;
    };

    regulator@7 {
    reg = <0x7>;
    regulator-compatible = "vpll";
    regulator-always-on;
    linux,phandle = <0x91>;
    phandle = <0x91>;
    };

    regulator@8 {
    reg = <0x8>;
    regulator-compatible = "vdac";
    regulator-always-on;
    linux,phandle = <0x92>;
    phandle = <0x92>;
    };

    regulator@9 {
    reg = <0x9>;
    regulator-compatible = "vaux1";
    regulator-always-on;
    linux,phandle = <0x93>;
    phandle = <0x93>;
    };

    regulator@10 {
    reg = <0xa>;
    regulator-compatible = "vaux2";
    regulator-always-on;
    linux,phandle = <0x94>;
    phandle = <0x94>;
    };

    regulator@11 {
    reg = <0xb>;
    regulator-compatible = "vaux33";
    regulator-always-on;
    linux,phandle = <0x95>;
    phandle = <0x95>;
    };

    regulator@12 {
    reg = <0xc>;
    regulator-compatible = "vmmc";
    regulator-min-microvolt = <0x1b7740>;
    regulator-max-microvolt = <0x325aa0>;
    regulator-always-on;
    linux,phandle = <0x34>;
    phandle = <0x34>;
    };

    regulator@13 {
    reg = <0xd>;
    regulator-compatible = "vbb";
    linux,phandle = <0x96>;
    phandle = <0x96>;
    };
    };
    };
    };
    这一段需要修改吗?硬件上电源芯片已经换成tps65217
  • am335x-bone开发板使用了TPS65217作为PMIC芯片,你的dts可以参考它的
  • 你好!
    我修改了设备树。在一开始的时候,使用sd卡启动,结果卡在内核启动中。后来我对比了启动信息,发现下一步是挂载文件系统,然后找到设备树,在SD卡设置的地方发现供电与之前的电源芯片有关,后来我修改了这个地方的配置,系统启动。但问题没有结束,启动的信息中有 PM: Cannot get wkup_m3_ipc handle,并且最后也没有处理好这里。
    在之前的系统中,虽然也会出现这个问题,但开机完成后,查看开机信息
    debian@onecut:~$ dmesg | grep m3
    [ 1.973704] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [ 2.117571] input: ti-tsc as /devices/platform/ocp/44e0d000.tscadc/TI-am335x-tsc/input/input0
    [ 2.206831] remoteproc remoteproc0: wkup_m3 is available
    [ 2.223464] PM: Cannot get wkup_m3_ipc handle
    [ 2.448264] remoteproc remoteproc0: powering up wkup_m3
    [ 2.448292] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
    [ 2.448563] remoteproc remoteproc0: remote processor wkup_m3 is now up
    [ 2.448615] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    上面这段是正常的情况,但在更改了电源芯片的系统中只有
    PM: Cannot get wkup_m3_ipc handle
    没有emoteproc remoteproc0: powering up wkup_m3和remoteproc remoteproc0: remote processor wkup_m3 is now up
    这是目前能看到的影响,其他的不知道会不会有影响。
    请问有没有方法能更安全的处理更换电源芯片的设备树?或者上面这个问题有没有什么处理办法?
    谢了!