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.

am335x linux内核挂在starting kernel...



大家好,我们目前自己做了一块开发板,芯片使用的是am335x,基于米尔科技的BSP进行移植,内核版本为L4.1.8。目前遇到以下问题:

1.参考论坛上帖子对DDR做了校验ok

2.uboot无法启动,参考论坛上的帖子注释rtc32k_enable()函数,uboot正常运行

3.目前uboot打印最后一句log信息starting kernel...后,没有任何log输出,后参考论坛帖子,在make menuconfig中去掉了RTC相关宏,在设备树中也disabled了RTC配置,但是starting kernel...之后仍然无任何log,串口打印log如下:

4.通过md命令查看log buffer,发现kernel启动到“ omap_hwmod: debugss: _wait_target_disable failed”之后,就报“Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa04a054”错误,内核挂死

5.对比米尔科技开发板正常启动log信息,下一行log应该是“[    0.168150] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns”,对jiffies时钟的注册,通过打印调试信息,发现jiffies时钟源模块初始化函数init_jiffies_clocksource未执行,也就是说kernel还没到这一步就挂死了

6.目前还没有找到原因,不知道与uboot及kernel对RTC功能的disabled是否有关,也不知道为什么要关闭这些RTC配置,因为正常的米尔科技BSP没有关闭这些RTC配置,也能正常跑起来,这又是怎么回事呢?请各位TI大神鼎力相助,非常感谢

  • 大家好,

    我们目前新做了一块am335x开发板,目前基于米尔科技BSP包进行移植,目前Uboot可正常跑起来,在挂载kernel的时候,停在starting kernel...,暂不知道是什么原因,请各位帮忙支持,谢谢

  • 你的板子也是参考米尔的板子吗? 

  • 板子没有参考米尔科技。
    1.目前DDR已经通过官方MLO校准过
    2.uboot中关掉rtc32k_enable()函数,uboot才跑起来。
    3.目前挂载starting kernel...的log如下:
    U-Boot SPL 2016.05-g80fc3b6-dirty (Dec 27 2018 - 19:45:40)
    Trying to boot from MMC1
    reading u-boot.img
    reading u-boot.img


    U-Boot 2016.05-g80fc3b6-dirty (Dec 27 2018 - 19:45:40 +0800)

    Watchdog enabled
    I2C: ready
    DRAM: 1 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    Net: Could not get PHY for cpsw: addr 0
    Could not get PHY for cpsw: addr 4
    cpsw
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    ** Bad device specification 0x82000000 uEnv **
    switch to partitions #0, OK
    mmc0 is current device
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    930 bytes read in 6 ms (151.4 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc ...
    Running uenvcmd ...
    reading //zImage
    3370440 bytes read in 191 ms (16.8 MiB/s)
    reading //mehow_am335x_emmc.dtb
    33576 bytes read in 10 ms (3.2 MiB/s)
    reading ramdisk.gz
    20563698 bytes read in 1126 ms (17.4 MiB/s)
    Booting from mmc0 ...
    bootargs=console=ttyO0,115200n8 loglevel=8 root=/dev/ram0 rw rootfstype=ext2
    Kernel image @ 0x82000000 [ 0x000000 - 0x336dc8 ]
    ## Loading init Ramdisk from Legacy Image at 88080000 ...
    Image Name: ramdisk
    Created: 2018-11-15 12:27:17 UTC
    Image Type: ARM Linux RAMDisk Image (uncompressed)
    Data Size: 20563634 Bytes = 19.6 MiB
    Load Address: 88080000
    Entry Point: 88080000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Ramdisk to 8ec63000, end 8ffff6b2 ... OK
    Loading Device Tree to 8ec57000, end 8ec62327 ... OK
    Fixing up ETH0 & ETH1 to CPSW Ethernet
    ## Transferring control to Linux (at address 82000000)...

    Starting kernel ...

    4.因pimux不一致,所以设备树有所修改,因没有使用电源管理芯片,所以设备树电源管理这块有修改,设备树配置如下:
    /*
    * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License version 2 as
    * published by the Free Software Foundation.
    */
    /dts-v1/;

    #include "am33xx.dtsi"
    #include <dt-bindings/interrupt-controller/irq.h>

    / {
    model = "MYIR MYD C335x";
    compatible = "ti,myd_c335x", "ti,am33xx";

    cpus {
    cpu@0 {
    /*cpu0-supply = <&vdd_core>;*/
    };
    };

    memory {
    device_type = "memory";
    reg = <0x80000000 0x40000000>; /* 1 GB */
    };

    gpio_keys: volume_keys@0 {
    compatible = "gpio-keys";
    #address-cells = <1>;
    #size-cells = <0>;
    autorepeat;

    switch@9 {
    label = "volume-up";
    linux,code = <115>;
    gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
    gpio-key,wakeup;
    };

    };

    gpio-leds {
    compatible = "gpio-leds";
    pinctrl-names = "default";
    pinctrl-0 = <&leds_pins>;

    D3 {
    label = "myc:green:user1";
    gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
    linux,default-trigger = "cpu0";
    default-state = "off";
    };

    D39 {
    label = "myd:green:user2";
    gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
    default-state = "off";
    };
    };

    backlight {
    compatible = "pwm-backlight";
    pwms = <&ehrpwm1 0 50000 0>;
    brightness-levels = <0 51 53 56 62 75 101 152 255>;
    default-brightness-level = <8>;
    };

    panel {
    compatible = "ti,tilcdc,panel";
    status = "okay";
    panel-info {
    ac-bias = <255>;
    ac-bias-intrpt = <0>;
    dma-burst-sz = <16>;
    bpp = <16>;
    fdd = <0x80>;
    sync-edge = <0>;
    sync-ctrl = <1>;
    raster-order = <0>;
    fifo-th = <0>;
    };

    display-timings {
    800x480p62 {
    clock-frequency = <30000000>;
    hactive = <800>;
    vactive = <480>;
    hfront-porch = <39>;
    hback-porch = <39>;
    hsync-len = <47>;
    vback-porch = <29>;
    vfront-porch = <13>;
    vsync-len = <2>;
    hsync-active = <1>;
    vsync-active = <1>;
    };
    };
    };
    };

    &am33xx_pinmux {
    pinctrl-names = "default";
    pinctrl-0 = <&volume_keys_s0>;

    volume_keys_s0: volume_keys_s0 {
    pinctrl-single,pins = <
    0x40 (PIN_INPUT_PULLUP | MUX_MODE7) /* (R13) gpmc_a0.gpio1[16] */
    >;
    };

    leds_pins: pinmux_leds_pins {
    pinctrl-single,pins = <
    0x54 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a5.gpio1_21 */
    0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */
    >;
    };

    i2c0_pins: pinmux_i2c0_pins {
    pinctrl-single,pins = <
    0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
    0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
    >;
    };

    i2c1_pins_default: pinmux_i2c1_pins {
    pinctrl-single,pins = <
    0x180 (PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_rxd.i2c1_sda */
    0x184 (PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_txd.i2c1_scl */
    >;
    };

    i2c1_pins_sleep: i2c1_pins_sleep {
    pinctrl-single,pins = <
    0x180 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_rxd.i2c1_sda */
    0x184 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_txd.i2c1_scl */
    >;

    };

    uart0_pins: pinmux_uart0_pins {
    pinctrl-single,pins = <
    0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
    0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
    >;
    };

    uart2_pins_default: pinmux_uart2_pins_default {
    pinctrl-single,pins = <
    0x150 ( PIN_INPUT | MUX_MODE1 ) /* (A17) spi0_sclk.uart2_rxd */
    0x154 ( PIN_OUTPUT | MUX_MODE1 ) /* (B17) spi0_d0.uart2_txd */
    >;
    };

    uart2_pins_sleep: pinmux_uart2_pins_sleep {
    pinctrl-single,pins = <
    0x150 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x154 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };


    ehrpwm1_pins_default: backlight_pins {
    pinctrl-single,pins = <
    0x48 0x6 /* (U14) gpmc_a2.ehrpwm1A */
    >;
    };

    ehrpwm1_pins_sleep: ehrpwm1_pins_sleep {
    pinctrl-single,pins = <
    0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* (U14) gpmc_a2.ehrpwm1A */
    >;
    };

    cpsw_default: cpsw_default {
    pinctrl-single,pins = <
    /* Slave 1 */
    0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
    0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
    0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
    0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
    0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
    0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
    0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
    0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
    0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */
    0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
    >;
    };

    cpsw_sleep: cpsw_sleep {
    pinctrl-single,pins = <
    /* Slave 1 reset value */
    0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };

    davinci_mdio_default: davinci_mdio_default {
    pinctrl-single,pins = <
    /* MDIO */
    0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
    0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
    >;
    };

    davinci_mdio_sleep: davinci_mdio_sleep {
    pinctrl-single,pins = <
    /* MDIO reset value */
    0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };

    mmc1_pins_default: pinmux_mmc1_pins {
    pinctrl-single,pins = <
    0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
    0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
    0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
    0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
    0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
    0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
    0x160 (PIN_INPUT_PULLUP | MUX_MODE7) /* spi0_cs1.gpio0_6 */

    >;
    };

    mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
    pinctrl-single,pins = <
    0x0F0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x0F4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x0F8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x0FC (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x160 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };

    emmc_pins: pinmux_emmc {
    pinctrl-single,pins = <
    0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
    0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
    0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
    0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
    0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
    0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
    0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
    0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
    0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
    0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
    /* EMMC nReset */
    0x78 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio1_28 */
    >;
    };
    lcd_pins_default: lcd_pins_default {
    pinctrl-single,pins = <
    // 0x20 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data23 */
    // 0x24 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data22 */
    // 0x28 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data21 */
    // 0x2c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data20 */
    // 0x30 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data19 */
    // 0x34 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data18 */
    // 0x38 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */
    // 0x3c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */
    0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
    0xa4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
    0xa8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
    0xac (PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
    0xb0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
    0xb4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
    0xb8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
    0xbc (PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
    0xc0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
    0xc4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
    0xc8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
    0xcc (PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
    0xd0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
    0xd4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
    0xd8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
    0xdc (PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
    0xe0 (PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */
    0xe4 (PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */
    0xe8 (PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */
    0xec (PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
    >;
    };

    lcd_pins_sleep: lcd_pins_sleep {
    pinctrl-single,pins = <
    // 0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad8.lcd_data16 */
    // 0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad9.lcd_data17 */
    // 0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.lcd_data18 */
    // 0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.lcd_data19 */
    // 0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.lcd_data20 */
    // 0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.lcd_data21 */
    // 0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.lcd_data22 */
    // 0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.lcd_data23 */
    0xa0 (PULL_DISABLE | MUX_MODE7) /* lcd_data0.lcd_data0 */
    0xa4 (PULL_DISABLE | MUX_MODE7) /* lcd_data1.lcd_data1 */
    0xa8 (PULL_DISABLE | MUX_MODE7) /* lcd_data2.lcd_data2 */
    0xac (PULL_DISABLE | MUX_MODE7) /* lcd_data3.lcd_data3 */
    0xb0 (PULL_DISABLE | MUX_MODE7) /* lcd_data4.lcd_data4 */
    0xb4 (PULL_DISABLE | MUX_MODE7) /* lcd_data5.lcd_data5 */
    0xb8 (PULL_DISABLE | MUX_MODE7) /* lcd_data6.lcd_data6 */
    0xbc (PULL_DISABLE | MUX_MODE7) /* lcd_data7.lcd_data7 */
    0xc0 (PULL_DISABLE | MUX_MODE7) /* lcd_data8.lcd_data8 */
    0xc4 (PULL_DISABLE | MUX_MODE7) /* lcd_data9.lcd_data9 */
    0xc8 (PULL_DISABLE | MUX_MODE7) /* lcd_data10.lcd_data10 */
    0xcc (PULL_DISABLE | MUX_MODE7) /* lcd_data11.lcd_data11 */
    0xd0 (PULL_DISABLE | MUX_MODE7) /* lcd_data12.lcd_data12 */
    0xd4 (PULL_DISABLE | MUX_MODE7) /* lcd_data13.lcd_data13 */
    0xd8 (PULL_DISABLE | MUX_MODE7) /* lcd_data14.lcd_data14 */
    0xdc (PULL_DISABLE | MUX_MODE7) /* lcd_data15.lcd_data15 */
    0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
    0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.lcd_hsync */
    0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.lcd_pclk */
    0xec (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.lcd_ac_bias_en */
    >;
    };
    };

    &uart0 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart0_pins>;

    status = "okay";
    };

    &uart2 {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&uart2_pins_default>;
    pinctrl-1 = <&uart2_pins_sleep>;
    status = "okay";
    };

    &i2c0 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c0_pins>;

    status = "okay";
    clock-frequency = <400000>;

    tps: tps@2d {
    reg = <0x24>;
    };
    };

    &usb {
    status = "okay";
    };

    &usb_ctrl_mod {
    status = "okay";
    };

    &usb0_phy {
    status = "okay";
    };

    &usb1_phy {
    status = "okay";
    };

    &usb0 {
    status = "okay";
    };

    &usb1 {
    status = "okay";
    dr_mode = "host";
    };

    &cppi41dma {
    status = "okay";
    };

    &i2c1 {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&i2c1_pins_default>;
    pinctrl-1 = <&i2c1_pins_sleep>;

    status = "okay";
    clock-frequency = <100000>;
    };

    &lcdc {
    status = "okay";
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&lcd_pins_default>;
    pinctrl-1 = <&lcd_pins_sleep>;
    };

    &elm {
    status = "okay";
    };

    &epwmss1 {
    status = "okay";

    ehrpwm1: ehrpwm@48302200 {
    status = "okay";
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&ehrpwm1_pins_default>;
    pinctrl-1 = <&ehrpwm1_pins_sleep>;
    };
    };

    &mac {
    slaves = <2>;
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    dual_emac = <1>;
    // active_slave = <1>;
    status = "okay";
    };

    &davinci_mdio {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&davinci_mdio_default>;
    pinctrl-1 = <&davinci_mdio_sleep>;
    status = "okay";
    };

    &cpsw_emac0 {
    phy_id = <&davinci_mdio>, <4>;
    phy-mode = "rgmii-txid";
    // dual_emac_res_vlan=<0>;
    };

    &cpsw_emac1 {
    phy_id = <&davinci_mdio>, <6>;
    phy-mode = "rgmii-txid";
    // dual_emac_res_vlan=<1>;
    };

    &tscadc {
    status = "okay";
    tsc {
    ti,wires = <4>;
    ti,x-plate-resistance = <200>;
    ti,coordinate-readouts = <5>;
    ti,wire-config = <0x00 0x11 0x22 0x33>;
    ti,charge-delay = <0x400>;
    };

    adc {
    ti,adc-channels = <4 5 6 7>;
    };
    };

    &mmc1 {
    status = "okay";
    bus-width = <4>;
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&mmc1_pins_default>;
    pinctrl-1 = <&mmc1_pins_sleep>;
    cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
    };

    &mmc2 {
    /* eMMC (not populated) on MMC #2 */
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&emmc_pins>;
    bus-width = <8>;
    ti,non-removable;
    };

    &sham {
    status = "okay";
    };

    &aes {
    status = "okay";
    };

    &wkup_m3_ipc {
    ti,scale-data-fw = "am335x-evm-scale-data.bin";
    };

    &sgx {
    status = "disabled";
    };
  • 另外,通过make menuconfig关掉了RTC模块,设备树中也disable了RTC模块
  • 我目前通过md命令查看__log_buf,里面的值全为a
  • log如下:
    U-Boot 2016.05-g80fc3b6-dirty (Dec 27 2018 - 19:45:40 +0800)

    Watchdog enabled
    I2C: ready
    DRAM: 1 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    Net: Could not get PHY for cpsw: addr 0
    Could not get PHY for cpsw: addr 4
    cpsw
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    ** Bad device specification 0x82000000 uEnv **
    switch to partitions #0, OK
    mmc0 is current device
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    930 bytes read in 6 ms (151.4 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc ...
    Running uenvcmd ...
    reading //zImage
    3370440 bytes read in 191 ms (16.8 MiB/s)
    reading //mehow_am335x_emmc.dtb
    33576 bytes read in 10 ms (3.2 MiB/s)
    reading ramdisk.gz
    20563698 bytes read in 1126 ms (17.4 MiB/s)
    Booting from mmc0 ...
    bootargs=console=ttyO0,115200n8 loglevel=8 root=/dev/ram0 rw rootfstype=ext2
    Kernel image @ 0x82000000 [ 0x000000 - 0x336dc8 ]
    ## Loading init Ramdisk from Legacy Image at 88080000 ...
    Image Name: ramdisk
    Created: 2018-11-15 12:27:17 UTC
    Image Type: ARM Linux RAMDisk Image (uncompressed)
    Data Size: 20563634 Bytes = 19.6 MiB
    Load Address: 88080000
    Entry Point: 88080000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Ramdisk to 8ec63000, end 8ffff6b2 ... OK
    Loading Device Tree to 8ec57000, end 8ec62327 ... OK
    Fixing up ETH0 & ETH1 to CPSW Ethernet
    ## Transferring control to Linux (at address 82000000)...

    Starting kernel ...
  • 各位,我又重新提交了这个问题,请大家前往这个链接:e2echina.ti.com/.../496045
  • 我觉得应该boot还是有问题,造成无法成功启动系统

  • 你参考一下这个方法看看:e2echina.ti.com/.../86544
  • 你好,非常感谢。我看过这个帖子,从他的log来看有这句:

    [ 0.000000] clock: Could not find fieldval 0 for clock dpll_core_m6_ck parent dpll_core_x2_ck
    提示找不到dpll_core,看了下他最终的解决办法,与我目前使用的米尔科技的BSP一样。我也调试过,这个函数有执行。
  • 感觉我的应该不是这个地方的问题
  • 通过查找PC指针,发现是代码中RTC相关代码未disable完全,重新修改,该问题解决
  • 感谢分享经验