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: RGMII and RMII PHY configuration

Part Number: PROCESSOR-SDK-AM335X
Other Parts Discussed in Thread: AM3358

Hi

I would like to know if the CPSW configuration support two different PHY mode on the same CPSW ?

Our Hardware engineer connected the Atheros 8031 and SMSC LAN8710 to our Sitara processor.

/var/log/dmesg:[    1.220301] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver SMSC LAN8710/LAN8720
/var/log/dmesg:[    1.220315] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver Atheros 8031 ethernet

I am trying to configure the DTS in order to have both PHY working, one on ETH0 and one on ETH1 but I dont know how to proceed.

I have reused the cpsw_emac section of the am335x-evm-sk and the Atheros started to work, but for the SMSC LAN8710 I used the cpsw_emac section of the bone-common.dtsi and I dont see link on eth1

is there some one which can guide me about those two questions ?

1. Is this design can work ?

2. if Yes, how the cpsw_emac DTS section should look like ?

3. How the pin definition cpsw_default: should look like ?

4. Is the dual_emac mode has to be enabled ?

thanks in advance

  • Hi,

    From your log file excerpt it seems that both PHYs register correctly on the MDIO. There are several things to check:
    1. The RMII interface needs external 50MHz clock.
    2. Pinmux configuration.
    3. eth1 needs to be brought up manually.
    4. Dual EMAC mode has to be enabled depending on your intended use case.
  • Yes thank you.

    Just for confirmation, you're saying thRGMII and RMII on the same CPSW,

    Actually I have this in my DTS:

    &mac {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        dual_emac = <0>;
        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 = <1>;
    };
    
    &cpsw_emac1 {
        phy_id = <&davinci_mdio>, <2>;
        phy-mode = "rgmii-txid";
        dual_emac_res_vlan = <2>;
    };
    

    and somehow things started to work.

    root@linux:~# mii-tool -v eth1
    eth1: negotiated 1000baseT-HD flow-control, link ok
      product info: vendor 00:01:f0, model 15 rev 1
      basic mode:   autonegotiation enabled
      basic status: autonegotiation complete, link ok
      capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
      link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
    root@linux:~# mii-tool -v eth0
    eth0: negotiated 100baseTx-FD, link ok
      product info: vendor 00:13:74, model 7 rev 4
      basic mode:   autonegotiation enabled
      basic status: autonegotiation complete, link ok
      capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

    And pinmux conf remaint the same:

        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 */
    
                /* Slave 2 */
                0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a0.rgmii2_tctl */
                0x44 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a1.rgmii2_rctl */
                0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a2.rgmii2_td3 */
                0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a3.rgmii2_td2 */
                0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a4.rgmii2_td1 */
                0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a5.rgmii2_td0 */
                0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a6.rgmii2_tclk */
                0x5c (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a7.rgmii2_rclk */
                0x60 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a8.rgmii2_rd3 */
                0x64 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a9.rgmii2_rd2 */
                0x68 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a10.rgmii2_rd1 */
                0x6c (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a11.rgmii2_rd0 */
            >;

    is it making sense ???

  • Well, this shows both ports in RGMII mode.
  • Hi,

    I am still stuck with this issue. My setup is as following:

    On ETH0 of the AM3358 I have the Atheros AR8031 and it works properly with no packet LOSS - connected in mode RGMII
    On ETH1 of the AM3358 I have SMSC LAN8710 connected in MII mode - with PACKET LOSS.

    - Can CPSW can handle two PHY working in different mode ? RGMII and MII ?
    - Secondly, in the SITARA Pinmux, I dont see a MII for ETH1, for example:
    PIN GMPC_A0 permits this mode: [GPMC_A0/GMII2_TXEN/RGMII2_TCTL/RMII2_TXEN/GPMC_A16/PR1_MII_MT1_CLK/EHRPWM1_TRIPZONE_INPUT/GPIO1_16].
    This PIN is connected to TXEN of the PHY, so the unique MII moe I can see is MODE1 meaning GMII2_TXEN, is it a correct assumption ?
    - Third, only when the PINs of SMSC are configured RGMII both PHY are working, but with PACKET LOSS on the SMSC, when I configure the cpsw_emac1 in phy-mode = "mii" no one of them is working, in term of Linux OS things seems to be OK, but no traffic is outgoing netheir incoming.

    So I am trying to figure out what is wrong in my configuration, why I select MII mode for cpsw_emac1, and why RGMII work for it (partly, since I am seeing some packet loss).


    Below my DTS:

    cpsw_default: cpsw_default {
    pinctrl-single,pins = <
    //RGMII Atheros
    /* 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 */

    //MII MODE with SMSC LAN 8710
    /* Slave 2 */
    0x78 ( PIN_INPUT | MUX_MODE1 ) /* (U18) gpmc_be1n.gmii2_col */
    0x70 ( PIN_INPUT | MUX_MODE1 ) /* (T17) gpmc_wait0.gmii2_crs */
    0x74 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (U17) gpmc_wpn.gmii2_rxer */

    0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a0.rgmii2_tctl */
    0x44 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a1.rgmii2_rctl */
    0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a2.rgmii2_td3 */
    0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a3.rgmii2_td2 */
    0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a4.rgmii2_td1 */
    0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a5.rgmii2_td0 */
    0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a6.rgmii2_tclk */
    0x5c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a7.rgmii2_rclk */
    0x60 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a8.rgmii2_rd3 */
    0x64 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a9.rgmii2_rd2 */
    0x68 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a10.rgmii2_rd1 */
    0x6c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a11.rgmii2_rd0 */
    >;
    };


    &mac {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    dual_emac = <0>;
    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 = <1>;
    };

    &cpsw_emac1 {
    phy_id = <&davinci_mdio>, <5>;
    phy-mode = "mii";
    dual_emac_res_vlan = <2>;
    };




    thanks
  • Part Number: PROCESSOR-SDK-AM335X

    Tool/software: Linux

    Hi,

    I need help to debug my issue.

    I have read dozen of threads on configuring RGMII and MII on U-boot and DTS in the TI forum, I have tried all of them, nothing is helping.

    My issue is as following:

    Our board is based EVMSK for everything except the ETH1 which is SMSC LAN8710 (used in the design of BBB).

    My DTS is as following:

    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 */

                0x78 ( PIN_INPUT | MUX_MODE1 ) /* (U18) gpmc_be1n.gmii2_col */
                0x70 ( PIN_INPUT | MUX_MODE1 ) /* (T17) gpmc_wait0.gmii2_crs */
                0x74 ( PIN_INPUT | MUX_MODE1 ) /* (U17) gpmc_wpn.gmii2_rxer */

                /* Slave 2 */
                0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a0.gmii2_tctl */
                0x44 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a1.gmii2_rctl */
                0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a2.gmii2_td3 */
                0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a3.gmii2_td2 */
                0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a4.gmii2_td1 */
                0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a5.gmii2_td0 */
                0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a6.gmii2_tclk */
                0x5c (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a7.gmii2_rclk */
                0x60 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a8.gmii2_rd3 */
                0x64 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a9.gmii2_rd2 */
                0x68 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a10.gmii2_rd1 */
                0x6c (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a11.gmii2_rd0 */
            >;
        };

    &mac {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        dual_emac = <0>;
        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";
      };

    &cpsw_emac1 {
        phy_id = <&davinci_mdio>, <5>; //  the PHY IS 0x02 in the design, but we changed the PHY ADDR to 0x5 during our test
        phy-mode = "mii";
      };

    The result is that I see LINK UP on  eth1 but no ping and no traffic is getting out neither received and suddenly the KERNEL reports a WARNING which also made ETH0 not working anymore.

    [  632.563942] device eth0 entered promiscuous mode
    [  632.612187] device eth0 left promiscuous mode
    [  640.634085] device eth1 entered promiscuous mode
    [  648.024063] ------------[ cut here ]------------
    [  648.024160] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:303 dev_watchdog+0x2a4/0x2c8()
    [  648.024185] NETDEV WATCHDOG: eth0 (cpsw): transmit queue 0 timed out
    [  648.024204] Modules linked in: bluetooth ipv6 omap_rng rng_core rtc_omap omap_wdt uio_pdrv_genirq uio vs88ut_fpga(O)
    [  648.024312] CPU: 0 PID: 0 Comm: swapper Tainted: G           O    4.1.19-kramer-bone20-tisdk_vs88ut-001 #30
    [  648.024333] Hardware name: Generic AM33XX (Flattened Device Tree)
    [  648.024351] Backtrace:
    [  648.024417] [<c0012af8>] (dump_backtrace) from [<c0012d18>] (show_stack+0x18/0x1c)
    [  648.024437]  r7:c08225ec r6:0000012f r5:00000009 r4:00000000
    [  648.024501] [<c0012d00>] (show_stack) from [<c063fd80>] (dump_stack+0x20/0x28)
    [  648.024553] [<c063fd60>] (dump_stack) from [<c0036704>] (warn_slowpath_common+0x7c/0xb4)
    [  648.024593] [<c0036688>] (warn_slowpath_common) from [<c0036774>] (warn_slowpath_fmt+0x38/0x40)
    [  648.024613]  r8:ffffffff r7:c08eb6eb r6:c08baad0 r5:00000000 r4:c08225b0
    [  648.024675] [<c0036740>] (warn_slowpath_fmt) from [<c058a934>] (dev_watchdog+0x2a4/0x2c8)
    [  648.024695]  r3:cd9bf800 r2:c08225b0
    [  648.024719]  r4:cd9bf800
    [  648.024769] [<c058a690>] (dev_watchdog) from [<c00766dc>] (call_timer_fn+0x2c/0xa4)
    [  648.024788]  r9:c08baad0 r8:00200200 r7:00000000 r6:c08ade38 r5:c058a690 r4:00000101
    [  648.024858] [<c00766b0>] (call_timer_fn) from [<c0076b68>] (run_timer_softirq+0x234/0x2d4)
    [  648.024877]  r6:c08ade38 r5:c0900b40 r4:cd9bfa38
    [  648.024935] [<c0076934>] (run_timer_softirq) from [<c0039668>] (__do_softirq+0xec/0x218)
    [  648.024953]  r10:00000101 r9:40000001 r8:c08eed80 r7:c08ac000 r6:c08eed84 r5:00000001
    [  648.024999]  r4:00000000
    [  648.025038] [<c003957c>] (__do_softirq) from [<c0039a3c>] (irq_exit+0xa8/0x100)
    [  648.025057]  r10:00000001 r9:c08ae110 r8:cd806000 r7:00000001 r6:00000000 r5:c08c4954
    [  648.025102]  r4:00000000
    [  648.025149] [<c0039994>] (irq_exit) from [<c0068874>] (__handle_domain_irq+0x58/0xb0)
    [  648.025167]  r5:c08c4954 r4:00000000
    [  648.025210] [<c006881c>] (__handle_domain_irq) from [<c0009470>] (omap_intc_handle_irq+0xbc/0xcc)
    [  648.025228]  r9:c08ae110 r8:00000000 r7:00000044 r6:c08adf20 r5:c0916940 r4:c08c4bc0
    [  648.025300] [<c00093b4>] (omap_intc_handle_irq) from [<c0645240>] (__irq_svc+0x40/0x74)
    [  648.025323] Exception stack(0xc08adf20 to 0xc08adf68)
    [  648.025358] df20: 00000001 00000000 00000000 c001ffa0 c08ac000 c08ae110 00000000 00000000
    [  648.025392] df40: 00000000 c08ae110 00000001 c08adf74 c08adf78 c08adf68 c00101fc c0010200
    [  648.025414] df60: 60000013 ffffffff
    [  648.025430]  r7:c08adf54 r6:ffffffff r5:60000013 r4:c0010200
    [  648.025504] [<c00101c8>] (arch_cpu_idle) from [<c00603a0>] (cpu_startup_entry+0x194/0x214)
    [  648.025542] [<c006020c>] (cpu_startup_entry) from [<c063cbe4>] (rest_init+0x78/0x90)
    [  648.025560]  r7:c08ae000
    [  648.025611] [<c063cb6c>] (rest_init) from [<c0868c8c>] (start_kernel+0x354/0x3c4)
    [  648.025629]  r5:c08ee000 r4:c08ee050
    [  648.025675] [<c0868938>] (start_kernel) from [<80008078>] (0x80008078)
    [  648.025697] ---[ end trace c818a663baccaf67 ]---
    [  677.197982] device eth1 left promiscuous mode

    So, I need guidance to debug and how to check the validity of the PHY, it can be in u-boot or Linux, I have debugged the PHY register in both of them the issue remain the same.

    I almost sure the issue is somewhere in the hardware design, but I need your help to find the root cause.

    BTW, Strangely, when I declare "rgmii" for the ETH1, things starts to work but some packets are dropped..... very strange, the PHY is physically configured and connected using MII.....I am lost !

    Any direction, advice is welcome ,

    thank you very much in advance.

  • Reviewing the latest DTS file and pin mux it appears that everything is setup correctly. I will need to discuss with a HW apps team member about the schematic setup.

    Could you please post your current Linux boot log as an attachment?
    After a reboot do not use eth0, run a few ping commands and then please capture the following ethtool commands and post as an attachment:
    - ethtool eth1
    - ethtool -S eth1
    Which Linux SDK are you using?

    The kernel Warn you are seeing appears to be that eth1 is not able to send packets. Most likely the issue that eth0 is ceasing to function is that all the TX descriptors are blocked on eth1 waiting to be sent. Something looks to be blocking the packets from leaving the mac.

    Monday is a holiday here so please be aware a response may not come until at least tuesday.
  • We are using Ubuntu for ARM, and Kernel release 4.1.19-bone20 and also u-boot from the source of RobertNelson  for BBB.

    Below attached what you ask for, boot log + ethtool output + dmesg:

    startup.log
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Checking for: mmc 1:1 /uEnv.txt ...
    Checking for: /boot.scr ...
    Checking for: /boot/boot.scr ...
    Checking for: /boot/uEnv.txt ...
    918 bytes read in 34 ms (26.4 KiB/s)
    Loaded environment from mmc 1:1 /boot/uEnv.txt
    Checking if uname_r is set in /boot/uEnv.txt...
    Running uname_boot ...
    loading /boot/vmlinuz-4.1.19--bone20-tisdk_ ...
    3305464 bytes read in 229 ms (13.8 MiB/s)
    loading /boot/dtbs/4.1.19--bone20-tisdk_/am335x-evmsk.dtb ...
    58189 bytes read in 84 ms (675.8 KiB/s)
    debug: [console=ttyO0,115200n8 ksupport root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait oops=panic panic=-1] ...
    debug: [bootz 0x82000000 - 0x88000000] ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x326ff8 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Using Device Tree in place at 88000000, end 8801134c
    Starting kernel ...
    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Initializing cgroup subsys cpuacct
    [ 0.000000] Linux version 4.1.19--bone20-tisdk_-001 (sweiss@ubuntu-obelix) (gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 4.9-2015.05) ) #30 PREEMPT Thu Feb 16 16:10:40 IST 2017
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine model: AM335x VS-88UT 3.59t
    [ 0.000000] cma: Reserved 24 MiB at 0x8e800000
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] CPU: All CPU(s) started in SVC mode.
    [ 0.000000] AM335X ES2.1 (sgx neon )
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64960
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 ksupport root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait oops=panic panic=-1
    [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [ 0.000000] Memory: 225364K/262144K available (6403K kernel code, 255K rwdata, 2168K rodata, 272K init, 233K bss, 12204K reserved, 24576K cma-reserved, 0K highmem)
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
    [ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
    [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc08670ac (8573 kB)
    [ 0.000000] .init : 0xc0868000 - 0xc08ac000 ( 272 kB)
    [ 0.000000] .data : 0xc08ac000 - 0xc08ebd68 ( 256 kB)
    [ 0.000000] .bss : 0xc08ee000 - 0xc0928778 ( 234 kB)
    [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] Preemptible hierarchical RCU implementation.
    [ 0.000000] Additional per-CPU info printed with stalls.
    [ 0.000000] NR_IRQS:16 nr_irqs:16 16
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [ 0.000018] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [ 0.000040] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [ 0.000052] OMAP clocksource: timer1 at 24000000 Hz
    [ 0.000243] Console: colour dummy device 80x30
    [ 0.000271] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [ 0.000277] This ensures that you still see kernel messages. Please
    [ 0.000283] update your kernel commandline.
    [ 0.000302] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
    [ 0.089087] pid_max: default: 32768 minimum: 301
    [ 0.089191] Security Framework initialized
    [ 0.089245] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.089256] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    thanks!

  • One of our HW engineer found my mistake: TCLK had to be defined as INPUT and not OUTPUT

    WRONG:  0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a6.gmii2_tclk */

    the right configuration is:
                0x58 (PIN_INPUT_PULLUP | MUX_MODE1)    /* gpmc_a6.gmii2_tclk */

    the full Pinmux for MIi2 is:


                0x78 ( PIN_INPUT | MUX_MODE1 ) /* (U18) gpmc_be1n.gmii2_col */
                            0x70 ( PIN_INPUT | MUX_MODE1 ) /* (T17) gpmc_wait0.gmii2_crs */
                            0x74 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (U17) gpmc_wpn.gmii2_rxer */

                /* Slave 2 */
                0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a0.GMII2_TXEN */
                0x44 (PIN_INPUT_PULLUP | MUX_MODE1)    /* gpmc_a1.GMII2_RXDV */

                0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a2.gmii2_td3 */
                0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a3.gmii2_td2 */
                0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a4.gmii2_td1 */
                0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a5.gmii2_td0 */

                0x58 (PIN_INPUT_PULLUP | MUX_MODE1)    /* gpmc_a6.gmii2_tclk */
                0x5c (PIN_INPUT_PULLUP  | MUX_MODE1)    /* gpmc_a7.gmii2_rclk */

                0x60 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a8.gmii2_rd3 */
                0x64 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a9.gmii2_rd2 */
                0x68 (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a10.gmii2_rd1 */
                0x6c (PIN_INPUT_PULLDOWN | MUX_MODE1)    /* gpmc_a11.gmii2_rd0 */

    thanks for your help  !